TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #6119: TiKevin83's GBC Pokémon: Yellow Version "no save corruption" in 10:18.49

Console: Game Boy Color
Game name: Pokémon: Yellow Version
Game version: USA/Europe
ROM filename: Pokemon Yellow (UE).gbc
Branch: no save corruption
Emulator: BizHawk 2.3
Movie length: 10:18.49
FrameCount: 36941
Re-record count: 224992
Author's real name: Travis McGeehan
Author's nickname: TiKevin83
Submitter: TiKevin83
Submitted at: 2018-10-04 00:03:27
Text last edited at: 2018-10-04 05:04:40
Text last edited by: Spikestuff
Download: Download (7823 bytes)
Status: new
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:
This is an explanation of the strategy behind a console-verified Pokemon Yellow Any% NSC TAS in 10:17. It will show at GDQx 2018 and can be seen now at the following link:


(Link to video)

This was an improvement from an initial prototype which was made for the 2018 Pokemon Speedrun (PSR) Marathon with a time of 11:28:


(Link to video)

Credit goes to Luckytyphlosion for glitch routing, Stringflow for helping with botting setups for more intense RNG, and GoddessMaria's general assistance including looking at forest and gen 1 miss manips.

Setup

We now use the pipeline described here to verify console accuracy of gameboy TASes. https://pastebin.com/DXiDT9ZT

This pipeline has been used to verify TASes by both me and Extrems, and it was demonstrated publicly in the practice rooms at SGDQ 2018.

I used a gbc_bios.bin for the GBC firmware and set CGB in GBA to True for GBP verification purposes.

General Strategy

RAM Addresses in BizHawk are offset C000 lower than those listed in other sources; addresses are Big Endian and in WRAM.

End of Paragraph Textboxes that can be cleared with B faster than with A/without a jingle can frequently be cleared faster by adding B presses earlier in the textbox due to JoyPadLowSensitivity

Route

Intro

Manip TID 26F1 (RAM Address 1358 in BizHawk), current manip waits 4-3-12-2 frames on the first 4 inputs of the TAS to get this.

Start a new game, and hold B while text is appearing while clearing text with A, switching which input holds and which one clears as needed to avoid consecutive input lag. This achieves the same effective text speed as Fast without setting options before New Game.

Name your character Ash

Name your rival xSxx (x is symbol below S)

Set options using fast options: inputs Start->Up->Up->Left+A->B->Start. This is the payoff for not setting options before new game, it is faster in TAS timing to set options after the game loads as the start menu is a few frames less laggy than entering options from the main menu.

Rival One and Cutscenes

Manip a Pikachu with DVs 35D8 (RAM Address 1185 in BizHawk).

Win in 3 turns in red bar by taking 2 tackle crits, you should only need to crit Eevee two of the three turns. A slightly better Pikachu DV setup is possible which can get red bar off a crit+highroll and highroll instead of 2 crits.

Avoid encounters, get the parcel, take all yolograss, deliver the parcel, avoid encounters again and buy a single poke ball.

Do the old man catch tutorial. This is an improvement from the previous route which would lose about 7 seconds by catching the extra pokemon and using the Viridian Center instead of deathwarping to Pallet and catching the extra pokemon on the way back to Viridian.

ACE

Take all the yolograss and DeathFly off a Pidgeotto, it needs 8 Attack for a better range to 1 shot this Pikachu. The current TAS has a rough time of this because of the state of the DSUM when encountering Pidgeotto. We are effectively forced to wait 4-5 seconds before the encounter due to the cyclical pattern in which specific encounters appear. It might be possible in a future rewrite to take advantage of the cycle much earlier in the TAS and align it such that the window for Pidgeotto to be encountered occurs just as we enter the trainer's vision.

On the way back to Viridian, catch a pidgey and nickname it "tas " (tas and 7 spaces, this is absolutely crucial for ACE).

Deposit Pikachu, ideally moving the NPC who blocks the optimal path out of the way.

After exiting the center, walk 6 steps left and 4 steps up. When you Press A to save, continue holding A and add B Start Select for ~56 frames to do a faster soft reset.

Walk left to the first tile above the water and flash the pokedex (Start A B Start).

Go back towards the forest and enter the 2nd house on a frame where the bird moves left and the girl moves up immediately. The NPCs will have timers that are randomly set between 0 and 127 after each movement; we want to manipulate them to roll low so we can repeatedly move them.

Girl NPC Timer: BizHawk Address 0228

Bird NPC Timer: BizHawk Address 0238

Manipulate the Bird to move left 3 times and the girl to move up twice in total, including their movements as you're entering. While you're doing this flash the town map in the back of the room once. Walk to the tile 1 up and 3 right from the entrance as the NPCs finish getting into place.

Manipulate the bird to move left again just after you stop on that tile, then move right on a frame that puts FE in RAM Address 0331 and continue walking down and then left to leave the house.

Walk back to the forest and hop the first ledge you see once on your way there.

Choose Buy in the Mart, Double input 12 down then hold Down through 4 click items which need a B press to pass, then double input 6 down, press A scroll down to 89 and press B. Then double input 5 down and buy 4F.

Press B and hold with Left to reapply B to leave the buy menu, then press B twice more to close the shop.

Step right, open the menu, open items and use 4F twice.

Open the party, your cursor location during these swaps can be tracked at RAM Address 0C26 starting at 0:

Switch slot 0 and 1

Switch slot 1 and 9

Switch slot 9 and 10

Switch slot 15 and 16

Go back to Items.

Swap your first two items (both TM41) then swap the 2nd TM41 (TM41 x99) with the item below CANCEL.

Back to the party:

Switch slot 16 and 23

Switch slot 23 and 22

Switch slot 19 and 12

Close the menu and clear the 1 Error text box

The practical upshot of this sequence of party swap arbitrary code execution is that your number of seen pokemon is set such that Professor Oak's dialogue at the hall of fame does not require an input to clear, saving about 18 seconds over an ACE route that does not change the quantity of seen pokemon. The TAS ACE route now used is unique from the RTA route due to the near impossibility of manipping the unbuffered trainer ID (4 consecutive 1 frame 60fps inputs) and the impracticality of manipping Pikachu DVs through several textboxes and NPC timers. More information about the nuances of the party swap ACE will hopefully be added soon.


Similar submissions (by title and categories where applicable):