Port of the lost Test Fight debug menu to a Pokémon Yellow save file with ws m (0x63)

Subscribers:
17,600
Published on ● Video Link: https://www.youtube.com/watch?v=f9W_afoJJC8



Game:
Category:
Tutorial
Duration: 1:25
3,045 views
111


Notes: Now you can access the Test Fight debug menu without access to the debug ROM. :] ^-^

I'll add the save file shortly.

I added a few minor modifications to the code, to fix some bugs when I was trying my below method, to fix the mojibake (garbled text), and removed the function that alters the battle menu and makes all your moves Pound (because I feel it's better to use your own moves). Also, it corrupted my party, so I edited the code to fix that. I changed it not to give you the set items x99 because that would destroy your inventory and remove ws m.

This is how you can do it.

1. If you don't have the ROM, you can build it from the Pokémon Yellow disassembly with the instructions on https://github.com/pret/pokeyellow/blob/14555dde3618a7f2b8a4ce054f321fb9b04599ab/INSTALL.md Even though it looks intimidating, if you follow it through exactly step by step, you should be able to build your own Pokémon Yellow ROM and the (originally leaked) debug build.
2. Find the code from TestBattle. You should be able to locate it using the SYM file generated from the disassembly project, otherwise it should be at pointer 3f 6750 TestBattle (that's offset FE750).
3. After setting up ws m, make another bootstrap code that opens SRAM bank 2 and jumps to A000 (e.g. ld a,02 then ld (4000),a ; then ld a,0a ld (0d01),a. I know the latter isn't the official memory bank controller command, but I borrowed it from an earlier attempt that worked).
4. The next part is tedious unless you can make a tool to manually do it. If there is a way to do it from A000 as a vector that would be much easier. At the moment I don't know how (nor how to make a tool).

It's a fun hacking exercise though.
-You will want to take every banked pointer (4000-7FFF) that would have been in bank 3F and replace it with the original pointer +38B0 (landing it in SRAM). There is one that won't make sense with +38B0 being before A000. For that one exception, nop those instructions out and ignore it. Do this for both jumps/calls and values into the registers.
-Have two BGB emulator windows open, one with a SYM file loaded for retail Yellow and one for debug Yellow. For the unbanked pointers (0000-3FFF) which aren't in the retail Yellow SYM file, replace them with the retail Yellow equivalent (these are functions which moved around slightly, such as BankSwitch).
-As you'll be doing this for a while, test the end result through trial and error on BGB debugger (setting breakpoints to places where there may be bugs). I'm sure I made lots of silly errors; so this part was essential.

For more information on Test Fight, see:
https://tcrf.net/Proto:Pok%C3%A9mon_Yellow




Other Videos By Evie (ChickasaurusGL) 🌺


2022-06-24Changes in the behaviour of Poké Flute (with a sleeping party) outside of battle (Generations I-III)
2022-06-24Brief closing and reopening of the moves list (Pokémon Red/Green/Yellow JP)
2022-06-24Ghost Bicycle glitch blackout method (Pokémon Red/Green/Blue/Yellow JP)
2022-06-21PikaPicAnimGFX arbitrary code execution (Pokémon Yellow only)
2022-06-19Hall of Fame party menu pseudo-OAM buffer (CC5B) art creation exploit (Pokémon Yellow)
2022-06-19Receiving the Cerulean City Bulbasaur happiness gift, even though we never received Pikachu (Yellow)
2022-06-19Giovanni door soft-locking (similar to Cinnabar Island Blaine Door) Dokokashira door glitch (RG JP)
2022-06-19Addendum to empty party glitch (Trainer Card flashing) (Red/Green)
2022-06-07Pokémon Green (Japan) - Reverse Badge Acquisition proof-of-concept route
2022-06-05Change Fossil/Ghost MissingNo. base stats/header to all 255 arbitrary code execution (Generation I)
2022-06-04Port of the lost Test Fight debug menu to a Pokémon Yellow save file with ws m (0x63)
2022-05-24C109 (facing direction) arbitrary code execution expanded party method (Pokémon Yellow)
2022-05-14rst 38 arbitrary code execution (Pokémon Red/Green/Blue/Yellow 1.0 JP) via Map 250/FA (Red/Green JP)
2022-05-09Calling the Game Boy DMG boot ROM code (Pokémon Yellow arbitrary code execution experiment)
2022-05-09Pokémon Remerald is such broken game
2022-05-05Party slot 7 (and up) is checked for the walking Pikachu (Pokémon Yellow)
2022-05-05Pokémon Rapphire (Half Pokémon Ruby, half Pokémon Sapphire)
2022-05-05ROM splicing - 0000-3FFF is from Tetris (Rev A) 4000-7FFF is from Dr. Mario (Rev 0) (Tetris Doctor)
2022-05-05ROM splicing - 0000-3FFF is from Dr. Mario (Rev 0) 4000-7FFF is from Tetris (Rev A) (Dr. Tetris)
2022-03-20Pokémon Yellow infrared support proof of concept: Mew with remote control (arbitrary code execution)
2022-03-20Catch any Pokémon at the Trainer House (Glitch Unown 0xA2+wrong pocket TM36) (Gold/Silver)



Other Statistics

Pokémon Yellow Statistics For Evie (ChickasaurusGL) 🌺

Currently, Evie (ChickasaurusGL) 🌺 has 1,198,362 views for Pokémon Yellow across 134 videos. There's close to 18 hours worth of content for Pokémon Yellow published on his channel, or 13.58% of the total watchable video on Evie (ChickasaurusGL) 🌺's YouTube channel.