Save Corruption [J]
Posted by: ravioli
Date: 2016-09-01 20:09:41
Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of a thread from Glitch City Laboratories Forums.
You can join Glitch City Research Institute to ask questions or discuss current developments.
You may also download the archive of this forum in .tar.gz, .sql.gz, or .sqlite.gz formats.
I think the timing window is right after the Yes/No box disappears.
Does anybody know the correct timing for save corruption when you begin the game inside of your house in Red and Green to access the Pokemon menu? Thanks :)
I think the timing window is right after the Yes/No box disappears.
I think the time you have to reset may actually be a different time for Red and Green too. It's possibly after the full saving message prints (?) but I sadly can't remember for sure.
FractalFusion made a VBM movie demonstrating this glitch in Japanese Red, in which you can finish the game very quickly with only a few Pokémon swaps and luck manipulation for a specific Trainer ID. I've decided strictly not to use emulators anymore and only consoles with tools so I'm afraid I can't encode the video on VBA to check and unfortunately Spikestuff's Youtube video is down.
In Japanese Yellow it is after the Yes/No box disappears, according to this NicoNico video. I'm unsure what the timing is for Japanese Blue but it may be after the Yes/No box disappears as well.
By the way your new avatar looks cute :)
I forgot some specifics, but I know using BGB's debugger helps IMMENSELY and you should reset at a specific instruction, but I forget which one.
Ah, Golderzoa's video. Thanks for that! ^^
That's a shame and hope you get it to work soon. If someone wants to download and play the VBM movie they may be able to find out the timing for Japanese Red (and Green) but I personally don't support it anymore.
By the way your new avatar looks cute :)
Thank you! :)
The moment we need to reset should be from when the last checksummed byte is written to the moment right before the number of Pokémon in the party is written.
Then count the number of CPU cycles and multiply by their length. Gotcha.
CALL 3E9D (ぼ)
for Red v1.0
CALL 3E8B (ぼ)
for Red v1.1 (unconfirmed)
CALL 3EB1 (ぼ)
for Japanese Blue
CALL 3EAD (ぼ)
for Japanese Yellow
CALL 3EAE (ぼ)
for Japanese Yellow Rev A, B, C
- Do the save and reset thing to corrupt memory.
- After reloading the game, open the Pokemon menu.
- Switch the 7th and 8th Pokemon. This gives a HoF end message that does not require input.
- Switch the 9th and 10th Pokemon. This moves 01 D1/F1 at D2D7 to D2AB.
- Switch the 15th and 26th Pokemon. This moves D2AB to D2ED, the address to an execution pointer, when closing the menu.
- Close the menu. The game reads D101 (F101) off the above address and jumps there. There are 00 bytes (NOP) until D11D, which it executes, resulting in the HoF. The instructions place 0x55 into the A register (01 SUB AC -> 0x55), then jumps to 3E9D, which seems to be a warp manager that uses the A register.