Submission #7440: CasualPokePlayer's GBC Pokémon: Gold Version "no ACE" in 10:55.02

(Link to video)
Game Boy Color
(Submitted: Pokémon: Gold Version)
no ACE
Bizhawk 2.5.2
39128
59.73595485857669
18968
PowerOn
pokegold.gbc
Submitted by CasualPokePlayer on 4/13/2022 10:56:08 PM
Submission Comments
Playground submission

Emulator used: Bizhawk 2.5.2

  • SubGBHawk is used due to the use of several sub-frame resets.
  • CGB in GBA is enabled for potential console verification which I mean no chance in heck this thing is getting console verified anyways lmao.

Categories

  • Corrupts save data
  • Forgoes machine level "holy grail" glitches (i.e. Arbitrary Code Execution, Arbitrary ROM Execution and Arbitrary Memory Corruption)
  • Luck manipulation
  • Contains speed/entertainment trade-offs

About the run

Version Choice

Gold is used over Silver due to the use of wrong pocket TM47. This wrong pocket TM in Gold corrupts the map, which is useful in glitching all the way to Mt. Silver. This TM does nothing in Silver, making Gold superior due to this. Crystal doesn't have this nice map corruption TM either, and is even worse due to item 0x00's description crashing the game (in G/S, the item description is a harmless ?).

Glitch Summary

  • Save corrupt main save data and collide that checksum three times. Each corruption has a specific use:
    • Remove the party list terminator and nuke starter stats
    • Remove the "CANCEL" in the main items pocket
    • Nuke party stats again after getting the party list terminator back in.
  • With the "CANCEL" removed in the main items pocket, item underflow can be easily obtained. This will be used like so:
    • Make a Bike and put it on the top of the list.
    • Make some Mail and put it on the starter.
    • Make TM47 in the wrong pocket.
  • To corrupt the map with TM47, simply use the TM, then use some GB Printer option (either via the Pokedex or Mail). A save+quit can be done too or alternatively for more results.
  • With the party terminator gone, the game lets me swap the moves of "Pokemon" outside of my party. This might seem to be overpowered on first glance, but in reality it's very unlikely data will line up with these "Pokemon" moves/PP. Luckily, it so happens that the 162th "Pokemon" will have Red's event flag in its "moves," so that can be knocked out easily instead of dealing with the E4.
  • Since the game will crash if it heals my party with no party terminator and since the game autoheals right before the credits, I have to get another Pokemon so I have an actual terminator in there so it doesn't just crash before the credits roll. I obtain HM03 for this purpose. This wrong pocket HM's pointer is in the middle of daycare code, specifically the code for withdrawing a Pokemon. In effect it will add a copy of whatever is in the daycare (in this case, nothing, so mon 0x00) to my party, and will add the terminator to go with it.
  • Since there is no way I can win against Red with a Struggle-ing level 1 0x00 Pokemon, I need a way to quickly win this. To do this, I just nuke the party stats with save corruption so all my mons have 0 HP. If all Pokemon in my party are fainted and a battle is initiated, the game activates a failsafe which automatically wins the battle.

Route

Intro

  • Options are not set as text can print at the fast speed when A or B is held anyway.
  • Oh yeah I just copy pasted my save glitch Silver TAS for this intro since that would be mostly identical input lmao
  • The player is named "J". The name will appear quite a bit so it's worth giving a name, and A/B/I/J all take the same amount of time to input. J is used because

New Bark Town

  • A collision is done first to get rid of the party terminator.
  • The Potion is obtained, then a second collision is done to get rid of the item terminator.
  • Underflow items lmao
  • I used the "registered item slot" byte to create the Bike. Note that if exactly 255 items in the pack, the game will jump the cursor back up to the top after interacting with items. This makes it easy to get the Bike to the top of the pack.
  • Mail is created and given to the starter.
  • TM47 is created.

En route to Goldenrod

  • TM47 is used to get past Mikey.
  • TM47 is used to get past the Sudowoodo.
  • TM47 is used to avoid trainers en route to Goldenrod
  • TM47 is used to get past the Magnet Train guard.

En route to Mt. Silver

  • TM47 is used to get out of bounds in Cerulean. This is used to get to Pewter from this direction. TM47 is used again to glitch back in bounds.
  • TM47 is used to get past the Mt. Silver guards. A save+quit is needed here too.
  • Red's flag is modified with out of bounds Pokemon move swaps so Red will appear.
  • HM03 is created then used to get the terminator back in. The final collision is done so its HP is nuked. I have to save+quit here anyways for the map corruption to be complete, so this works nicely anyways.
  • Red is an autowin due to all my Pokemon being fainted.

slamo: Claiming for judging.
slamo: Updated movie with proper header.
slamo: This is almost exactly the same as the rejected "save glitch" submission from about a year ago, so I'm going to defer to GoddessMaria's original judgement. Even if the "no ACE" goal was strictly adhered to this time, I think feos summed it up best in the thread when comparing glitched Pokemon runs (such as the published "save glitch" run):
If you have to be a Pokemon expert and a code expert to understand the difference, then technicality shadows entertainment.
The goal is a little too complicated for just about anybody to understand and verify, but I think it's an interesting enough run to keep around for our new section. Moving to Playground.
Last Edited by slamo on 5/8/2022 5:08 PM
Page History Latest diff List referrers