Submission #7090: CasualPokePlayer's GBC Pokémon: Gold/Silver/Crystal Version "save glitch" in 10:54.77

(Link to video)
Game Boy Color
(Submitted: Pokémon: Gold Version)
save glitch
Bizhawk 2.5.2
39113
59.73584456126311
17088
Unknown
pokegold.gbc
Submitted by CasualPokePlayer on 4/7/2021 3:37:32 AM
Submission Comments

Introduction

I haven't done Gen 2 in a while so time to push another movie on here and also attempt to get a low glitch TAS onto here! This TAS aims to obsolete [2504] GBC Pokémon: Gold Version "save glitch" by Bobmario511 in 54:24.96. Wait, this movie is already obsoleted? Yes, however, given the judgement of my failed Coin Case submission, it doesn't really seem to make sense for that movie (which does not do any game end glitching) to be obsoleted in favor of the game end glitch TASes, especially given its entertainment rating being higher than all of the game end glitch TASes (at a nice 6.9 average). I believe the other save glitch TASes (which are essentially game end glitch TASes) (and maybe the Coin Case TAS too for consistency?) should have their branches renamed to "game end glitch", with the non-geg save glitch TASes staying as "save glitch".
Also, there is some recent precedent for "game end glitch" being used over "save glitch" for runs that have both: [4315] GB The Legend of Zelda: Link's Awakening "game end glitch" by CasualPokePlayer in 01:02.42
Also if this gets rejected I can call it a late April Fools submission right?

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.

GoddessMaria: Judging.
GoddessMaria: This one, admittedly, had me stumped. The intended purpose of this movie was to separate the "save glitch" branch from the "game end glitch" one, which would've been harmless enough. However, there's a problem with that for these games. What method is used to achieve their respective end goals? The answer is ACE, which makes them still linked rather than different in their goals.
Now the question becomes, how do they compare against each other in reaching that goal. The fact that they both use ACE means that the faster of the two would be more worthwhile. As the "game end glitch" branch achieves its goal but writing code to go straight to the end as opposed to the "save glitch", which this movie is aiming for, is a less optimal version of the former. That having been said, this movie is still slower than the published movie due to them both using ACE and the published movie does this much faster. Therefore...
I'm rejecting this movie due to arbitrary goal choice.
Last Edited by adelikat on 11/6/2023 1:52 AM
Page History Latest diff List referrers