Submission Text Full Submission Page
The ABC is a classic challenge.
Jokes aside, this continues on the work of TheZZAZZGlitch's work on Gen 1 ABC, improving the route from 33 A presses down to 29 A presses.

Game objectives

  • Completes the game as fast as possible using minimum A presses
  • Save data corruption is not allowed
  • All other glitches are allowed

ACE setup

This run is similar to TheZZAZZGlitch's run and the current game end glitch run, in that it abuses 0xF8FF ACE. Due to the A press limitation, we can't rely on a custom player name for the ACE payload, so only the TID, DVs, and IGT are used to perform the ACE payload. IGT needs to be 33 seconds and 39 frames. The trainer ID is manipulated to be 0x1419. The boxed Pokemon's DVs are manipulated to be 0x22C0. This results in the following payload:
; de = 0xF08D
; wPlayTimeSeconds + wPlayTimeFrames
ld hl,0x0027
; wNumInBox + wBoxSpecies
ld bc,0xFFB0
; wBoxMon1BoxLevel
dec b ; bc = 0xFEB0
; wBoxMon1Type1 + wBoxMon1Type2
inc d ; de = 0xF18D
inc d ; de = 0xF28D
; wBoxMon1CatchRate
dec l ; hl = 0x0026
; wBoxMon1Moves
ld a,[bc] ; a = 0xBB
dec l ; hl = 0x0025
; wBoxMon1OTID
inc d ; de = 0xF38D
add hl,de ; hl = 0xF3B2
; wBoxMon1Exp
add a,a ; a = 0x76
; wBoxMon1DVs
ld [hl+],a ; [0xF3B2] = 0x76
ret nz
The end of the payload writes 0x76 to 0xF3B2. This corresponds to the map ID for the warp at the top left corner of Viridian Forest. 0x76 is the Hall of Fame map ID.
However, there is a minor issue here. The 0x76 comes from 0xBB * 2 (& 0xFF) resulting in 0x76. That 0xBB is coming from 0xFEB0. That is invalid OAM memory. This run abuses the behavior on the CGB-E+ (that includes the GBA) which results fairly simple behavior, the resulting value read from invalid OAM is the upper nybble of the lower byte, duplicated. So 0xFEAx results in 0xAA, 0xFEBx results in 0xBB, and so on. However, this only applies if OAM memory is readable. With the current payload, the timing would result in the read always being blocked, thus ruining the payload. A simple solution I found was to use the IGT to write more of the payload. A simple jr opcode can be written at 0xF8FF, as that's where hl points to when IGT is being executed. This is used to shorten the time of the ACE payload, so by the time OAM is read, it will be unlocked, and the payload will work.

Route

  • The trainer ID is manipulated to be 0x1419. 0x1924 or 0x2419 also work, but 0x1419 ended up being the fastest to manipulate.
  • Preset names are used as they only require 1 A press to select.
  • Options won't be set at any point in the run, as they cost A presses. Luckily, there aren't many fights, so there isn't much time loss in practice.
  • Charmander is picked as the starter, with 0x22C0 DVs. In theory, a ton of other DVs would work for the ACE payload, but 0x22C0 must be used, as it is the only ones which give Charmander 0 HP DVs, and thus gives Charmander 18 HP (even 1 HP DV would bump Charmander's HP to 19). Nicknaming costs A presses, so nicknaming is not done. Note that Squirtle and Bulbasaur cannot be used, as they have Tackle, which ruins the payload used (and Squirtle would have a 4 turn fight anyways, costing more A presses). This saves 2 A presses over TheZZAZZGlitch's run, whose ACE payload resulted in a 4 turn fight with Charmander's HP DVs.
  • The Rival fight is purposefully lost, as it does not need to be won and it is fastest to lose. This is done in 3 turns, each comprising of a 1/256 miss with Growl, and a 1/39 crit with Tackle. A 1/39 Tackle crit does 6 damage to Charmander, so having 18 HP allows for a 3 turn fight. Who doesn't love a 1/1178114537369 Rival fight.
  • A Level 5 Spearow is caught with 0xE2E0 DVs. Various DVs were technically workable here. However, to avoid needing to manipulate 1/39 crits to maintain red bar, the DVs needed to be as follows: Attack must be 10, 12, or 14; Defense must be 0, 2, 4, 6, or 8; Speed must be 14; Special can be any value.
  • Charmander is deposited into the PC. The Pokemon Center is not used to set the blackout location, as that costs A presses.
  • A Level 5 Pikachu is manipulated at the end of the forest to deathwarp. Pikachu's stats are irrelevant (even if Pikachu had 0 special and Spearow had 15 special, Thundershock crit is a guaranteed KO).
  • The first bug catcher fight is manipulated to have 2 high roll crits from Weedle, allowing for red bar for the fight and the next fight. The L9 Weedle is KO'd with a 1/39 non-crit and a high roll non-crit.
  • The second bug catcher KOs Spearow, as defeating it is not needed. This saves 2 A presses over TheZZAZZGlitch's run.
  • The third bug catcher's Pokemon is won just like the first bug catcher. Damage isn't taken here as there's no more battles afterward and the battle must be won for the ACE to work.


TASVideoAgent
They/Them
Moderator
Location: 127.0.0.1
Joined: 8/3/2004
Posts: 17574
Location: 127.0.0.1
Player (90)
Location: Cornelia Castle
Joined: 4/1/2016
Posts: 326
Location: Cornelia Castle
Options can be set with Start on the title screen, so no A presses needed. This could save some time.
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
Patashu
He/Him
Joined: 10/2/2005
Posts: 4146
Great work. Or should I say, 40 ERROR.
Puzzle gamedev https://patashu.itch.io Famitracker musician https://soundcloud.com/patashu Programmer, DDR grinder, enjoys the occasional puzzle game/shmup.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4146
Great work. Or should I say, 40 ERROR.
Puzzle gamedev https://patashu.itch.io Famitracker musician https://soundcloud.com/patashu Programmer, DDR grinder, enjoys the occasional puzzle game/shmup.
Experienced player (520)
🇩🇪 Germany
Joined: 1/28/2008
Posts: 149
Location: 🇩🇪 Germany
nice @Casual good improvement!
2-do: Smurfs Nightmare, The (EU) GBC 10% fin : Mega Man: Dr. Wily's Revenge improvement: submitted Mega Man II Improvement: submitted Mega Man IV Improvement: submitted Mega Man V Improvement: submitted future plan: -n-
Editor, Experienced player (671)
Joined: 11/8/2010
Posts: 4224
Good strategy, and nice throwback to see Trainer-Fly glitch used again since Primorial#soup's TAS.
TASVideosGrue
They/Them
Location: The dark corners of the TASVideos server
Joined: 10/1/2008
Posts: 2958
Location: The dark corners of the TASVideos server
om, nom, nom... blech, salty!