News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Bisqwit

Pages: [1] 2 3 4 5 6 ... 19
Is it possible to get a version where the title screen stays the same? No html links?
What do you mean that the title screen stays the same?
A) It neither scrolls nor jumps to the prologue
B) No text changes on the title screen, obscuring the fact that this is a modded version

The patch generator may be broken again. For what reason I don't know. Stand by while I'll investigate it.
Note to self: Remember to followup on this promise.

Fisher, there is something odd with the sounds in your footage. It is not a good NES emulator. A bad emulator may be the cause of the problems you reported, too.

In other news, I made this video that explores the password scheme of the game! Thought of sharing it here.

Saves are 256 bytes in size, so yes, your chip will do just fine, assuming its signal characteristics are otherwise suitable for a Famicom/NES cartridge. No SRAM protection is needed (if I understand the implications of your question correctly), just make sure it responds only to requests in $6000-$7FFF range. ($0000-$7FFF is fine I think, so really only bit 15 matters.)
Yes, I would like to see pictures. :-)

The patch generator may be broken again. For what reason I don't know. Stand by while I'll investigate it.

I did send it as soon as you replied back the first time, I don't know why you haven't received it yet.
I'll send you another copy of my last sent mail again today. Let's hope it reaches :p

I did receive the message you sent today, but once again, it is a copy of the same message that I already replied to on March 2. And I re-sent my reply on May 30. Neither of which you have confirmed. I sent my messages to the address, that we successfully roundtrip first on Sep 14, starting with your message titled "New email and questions", and from which I last heard of you on March 5. I see you have now reverted to the old address Maybe you better check the address you told me to use?

July 25, 2016, 05:06:37 am - (Auto Merged - Double Posts are not allowed before 7 days.)

I'm having trouble trying to create a patch with the vending machine, I would like a patch in english, NTSC, with MMC1, No CHR-ROM, SRAM saving and password support. The other options are the vending machine's default ones.
Could you please generate this to me?

Can you please clarify the kind of problem you are having? I tried your options and I got a download link to just fine.

Yeah I think that was the last message, although I don't have it stored in my Inbox anymore due to a mistake, but I do have the message before that one I haven't sent any others that I recall at the top of my head.

I would like to finish the translation, since there are but a few things remaining I think.
Could you let me know what is left to be done in detail through email so that I can finish the remaining stuff up, please?

So my chart was correct after all, and I did get back to you about the last message you sent me. I will resend my last message then. As for catching up, I think the responsibility of keeping track of which parts are done and which are not lies with you. (Well, ultimately for quality control it is also my responsibility, but I'm delegating because I can :))
EDIT: Please confirm you received my message this time.
EDIT 2: I'm seeing neither a confirmation nor a reply.

You never got back to me about the last message I sent you. :P
I think the only part left was about three characters unaccounted for (ñ, ú & é I think), either that or that they were still going over the character limitation.
The last message I have received from you is in March 5, saying "I know som stuff might get in the way some times, but don't worry, take your time.", in response to "Progress report", after I had already sent you an update in March 2. If you have sent other messages, I have not received them. I could not find them even in the spam folder.

To keep better track of the translation projects for various languages, I created this spreadsheet.

EDIT: Forgot to make it publicly viewable. Should be fixed now!
EDIT 2: Sheet 2 in the same document shows the character sets / fonts used in each translation. Translators, take note. This may help you in understanding the character budget.

Thank you. The problems have now been fixed.

There are still some problems on the site. Some options output an IPS that is broken (it has a "PK" header instead of a "PATCH" header). Some options just lead to the 404 page still.

If you haven't yet done work on the site, I apologize for this redundant post.
You get a "PK" header if you choose to pack the patch in a ZIP file. That's an option given by the patch vending machine.
Which options give a 404?

The Castlevania II patch maker on your site has been down on my end for a while now. I just get he site's 404 page when I try it. Is it down for you as well? I'm using Google Chrome, by the way.

Coincidentally the same was just reported to me by e-mail an hour ago or so. It has been broken for several days apparently. Thank you for the report. I will fix it.

Well... looks like I've found a small bug:
In the town of Veros, if you stand on the front of the singpost and a male NPC crosses you, the screen goes black, and the sound plays slower. The game goes back to normal as soon as the NPC gets away from the signpost. Interesting that the female NPC does not activate this bug.
Not a terrible bug that renders the game unplayable, just a weird one that perharps are related to the mapper 2.

Yes, it is related to mapper 2. Cluebooks and signposts are rendered in a different font from the rest of the dialog. When you are near one of these, the game switches to a ROM page that contains that font, and switches back when you are near some other object. An NPC that passes by can apparently cause a pingpong effect where the game keeps switching ROM pages. With other mappers this does not cause problems, because switching ROM pages is fast, but with mapper 2, switching "pages" involves actually copying data from ROM into graphics memory, which is really slow. This causes lag. There may be more details to it (that explain why some NPCs do not trigger the problem), but this is the gist of it. Thank you for the report. I'll see if I can think of a more efficient solution some day.

Any chance I can help make a Brazilian's Portuguese translation? Where should I start??
Thanks again for this great work!!

Helping create a new translation is actually quite an involving process that requires commitment. The instructions can be found in an earlier post by me in this thread. Thank you in advance.

When I tested on the emulator, I had the option to save. Is the mapper 2 save feature I've suggested already implemented? Looks like I'll have to try adding a PRG RAM and see if it works.

Yes, if you select the save/load feature, the game will try to use PRG RAM and save/load in it. If the board does not have PRG RAM, you will get a buzzer error sound when attempting to enter the save/load screen. If the PRG RAM is not battery backed, the game cannot detect that and will still attempt to save there.

I've done right the math, adding a latch to all 8 CPU bits would allow up to 4 Megabytes of ROM!! WOW!! And even more can be done if we also latch PPU bits!!

Yep, sounds about right. Although the present version of Simon's Quest's UNROM patch assumes a maximum of 256 kilobytes of ROM. More works only if the board is not prone to bus conflicts in bankswitching commands.

Programming / NES/6502 fixed-cycle delay code vending machine
« on: April 20, 2016, 12:00:01 pm »
Hello! I decided to share some code that I used in my Simon's Quest retranslation/improvement project.

This "vending machine" is a front-end to a generator, that generates a macro, that gives you the shortest possible instruction sequence on the NES CPU, for producing a specified amount of cycles of delay. I am using it in various situations for precisely-timed split-screen / scanline effects. Advantages over handwritten code include that the number of cycles to delay can be any compile-time numeric expression, as is needed in my project, where the number of splits & delays per screen can be large, especially with the map screen that is split into four slices, and the number of cycles to delay depends on various factors: The NTSC/PAL selection, and the mapper, as page-switches in each mapper consume a different number of cycles. Using generated code thus helps keep small not only the binary size, but the source code size as well.

Please report to me if there are any problems with the vending machine or with the code it generates. Be sure to read the "Watch out for…" section of that page first.

That map-bug is a comfy way to level up quick. I like!  :thumbsup:

Sorry about that! I will fix it soon hopefully.

Please, could you help me?
I'm trying to make a UOROM version of Castlevania 2, and find that your patch besides doing this, improves the game a lot! I plan to make a repro for my personal use.
The problem is that after aplying the patch, the emulator says it needs the FDS bios.
I took a look with an hex editor, and the resulting file seems to have no header.
Am I doing something wrong?
I'm aplying the .ips patch with lips on the USA verified good dump.
Should I add a header to it manually?
Thanks in advance!!

Hello! I presume that the patch that you applied is cv2eng-2_9_8_15-ntsc-stm2mwfmFuVp4.ips ?
I tried applying this patch myself, and I have confirmed the problem you reported, that the iNES header disappears from the patched file when using this patch. All the .nes files should have a proper iNES header before and after patching, and it should not require any user effort.
Very sorry about that. I will investigate this problem. Thank you for reporting the problem.
In the mean time, take this patch: It should contain exactly the same set of features, but created using my dev tools rather than the vending machine (and is also of the newest dev version rather than the you requested).

Leave town to the right, you should see a blue wolfman and a skeleton coming at you.
Attack both without moving yourself.
When both monsters are dead, keep going some steps to right till the screen starts moving. Stop here.
Now have a look at your map.
Leave map.

Also: Incredibly nobody seems to have reported it yet, but when you enter and exit map, all NPCs (including monsters) are respawned in their initial positions.

These two reports seem to be identical. Did this not happen in an earlier version? Hmm. It certainly is not intended to happen.

Hi there, bisqwit!
Just a quick question: is it possible to load a sram savegame without resetting the console, i.e. loading from sram while playing? Just curious...

Useful answer: No, it is not. From the in-game savegame engine you can only save games.

Literally true answer: Technically the save engine actually loads a game every time you move a cursor, in order to render the information about the save. And it does a full and complete loading, too, loading the whole save, extracting it over the current game status and all. But when you exit the screen, the savegame engine actually loads an invisible backup save that it made without you knowing, when you entered the screen in the first place.

Progress report: I found the reason to the clue-overwriting bug I explained earlier. It was caused by optimizations I made some game code used by the palette fader. I failed to consider that the map-restoring engine actually referred to the old code with hardcoded offsets.

Oddly enough, there is actually code in my patch that attempts to make sure Simon is not invisible when Dracula is killed. Seems that I need to test it in detail.
Code: [Select]
  // When Dracula is killed, ensure that Simon is not invisible
  // ObjectAI_object4D_DraculasDeath at $B69F in bank 1: Unblink Simon

  $b = new Blob("SimonUnblinkCall");
  $b->AppendCallPointerTo("SimonUnblinker"); // 3-byte JSR replaces 3-byte "LDA abs,X"
  $linker->AddBlob($b, 0x769F, true);
  $b = new Blob("SimonUnblinker",
    "\xBD\xD8\x03\x60"); // the same 3-byte LDA, and RTS
  $linker->AddBlob($b, Array(0x4000,0x1C000)); // will be placed somewhere in one of these two banks
EDIT: Bug fixed.  This code rather ensured that Simon will be invisible during the ending. Replacing lda #2 with lda #1 fixes the problem.

EDIT: Map-screen crash bugs completely resolved. Turned out to be missing parenthesis in delay_n call, and then foiled by a macro. In case you are wondering how can this possibly result in a crash, it goes as follows: My delay engine uses partial instructions sometimes to reduce the size of delay loops. It does so only if the partial instruction is harmless in the context. Mismatched operator priority caused "n = 40" to evaluate into something completely other, enabling partial instruction execution when the instruction was in fact unsafe (plp). The following is an example of a harmless partial-instruction delay loop, where the first two instructions are "ldx #imm" and "lda zp,x" for the first loop only, but "ora #imm" and "nop" respectively for all consecutive loops. It is the smallest possible code that produces exactly 82 (or 1729 or 1810 or 2017 or 2098) cycles of delay, with 7 bytes of code, given that all registers can be clobbered except Y.
Code: [Select]
.if(n = 82 || n = 1729 || n = 1810 || n = 2017 || n = 2098)
        ; 7 bytes
        ldx #((n-1)/9)
        @d = * - 1
        ; (^hides 'ora #imm' (2-byte))
        lda $EA,x ; hides a 'nop'
        bne @d
You can find my delay macro modules at: . There's a file for every thinkable combination of registers to not clobber, and each file contains the smallest possible macro for any number of cycles to delay from 2 to 5000.

EDIT: Additional bug found: Daggers and knives crash the game. Found reason: Making a certain piece of code relocatable made the BNE at its end miss its target. Replacing with JMP fixes the problem.

Version is available for download.
Changes since
-- Fixed aforementioned crash & data corruption bugs, and the ending invisibility bug.

Additionally, the Tagalog version broken ROMs in some combinations (involving VRAM) have been fixed by an earlier release (most likely

EDIT: Found that it still crashes when exiting map screen in mapper 1. Also found what causes it. The bug was fixed in the same release (by updating it). Also: Incredibly nobody seems to have reported it yet, but when you enter and exit map, all NPCs (including monsters) are respawned in their initial positions.

Very cool that you did another update. Where you able to make progress with Simon disappearing after killing Dracula and not appearing during the ending (Good and Best) ?

I apologize, but it has not yet been fixed. Additionally, two more bugs have been discovered:
-- (Any chipset) Enter map, exit. You will receive a free clue on your status screen, or lose some of them (something writes a random 1-bit value into $4F3).
-- PAL version, mapper 10 (MMC4): Entering the map will crash the game.

Personal Projects / Release
« on: March 02, 2016, 05:06:52 pm »
I have now released version of this project.
Download at:
Currently available in languages: Finnish English Japanese French Tagalog

Changes since
― Many internal changes, resulting in more efficient linking.
― Vampyre_shriek20 is changed into Vampyre_shriek30, as it was observed that people may take a long time to complete the game.
― The sightseer can now give a maximum of 5 laurels and 8 garlics.
― English: "12 P.M." was changed to "midnight".
― Finnish: Ondolin kirkonkylä was changed into Ondolin kauppala after observing that there is no church in Ondol.
― Finnish: Two typos were fixed.
― Finnish: Two clues were made reasonably easier to understand.

Pages: [1] 2 3 4 5 6 ... 19