Port of the lost Test Fight debug menu to a Pokémon Yellow save file with ws m (0x63)
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) 🌺
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.