GBC Pokémon Yellow in 1:27.23

Hell yeah! Frame war with myself!
One day, I was browsing some videos at Youtube and gia said the published movie could be improved by almost 6 seconds and asked if I could find the improvement. This submission aims to prove that the published run is actually improvable by almost TEN seconds. On a more serious note, I'd like to apologize to this site for submitting a run every time I found an improvement for this movie. I'm well aware that there are rules prohibiting this, but this TAS is counter-intuitive by nature and remains complex even at its broken state. I have learned the lesson now and took some weeks testing everything I could think of. Having said that, this submission is 9.72 seconds faster than my previous attempt, this time there isn't only one improvement, but three. I dearly hope that this is the final revision of this movie.

Attributes

  • Aims for fastest completion of the game
  • Manipulates luck
  • Corrupts save data
  • Heavy glitch abuse
  • Emulator used: VBA-rr v22

Comments

The glitch used to complete the game is the "Inventory glitch", caused by the items counter being overwritten with an arbitrarily large value, this expands the inventory to farther regions of memory and forces the game to convert this data into items, which can be manipulated by the player by means of item switching/tossing. This bug is very powerful, by abusing it, I can speed up the text and overwrite a warp's destination to the Hall of Fame, a map that, once entered, starts the end game sequence.
To overwrite the items counter this early, it's necessary to hard reset the game at the earliest frame that doesn't give a "save file destroyed" message. This corrupts the save and overwrites the party counter. Swapping the 2nd pokemon with the 10th overwrites the items counter and activates the inventory glitch.
The improvements come from faster scrolling, faster text speed and better overwriting of the warp address.

Fast item scrolling trick

When I had the idea for this, I began to wonder why I hadn't thought of it before...
The first items on the inventory have ID# 0, these items are very slow to scroll through, roughly at 30 frames per item. By swapping the 9th pokemon with the 11th, I turn many of these items into ID# 255, the CANCEL button, these items are scrolled at 7 frames per item. The faster scrolling was the biggest improvement in the movie.

Text acceleration glitch

If anyone thought Oak's talking at the Hall of Fame was too long, your problems are over.
The last four bits of memory address 0xD354 control the text speed. The game offers three "text speeds" for the player choice: FAST, MID and SLOW. Because there's no need to turn off animations or change the battle style and it's possible to keep the text at FAST speed by holding the B button, this TAS can safely ignore the options menu and thus, starts the game with the text set at MID speed.
However, it's possible to change text speed to "FASTEST" by putting a number that's multiple of 16 at 0xD354 by means of the inventory glitch. After doing this, all text will be output at once, instead of one character per frame as in fast speed. The funny thing about this discovery is that I declared the function of this address to be unknown for a long time, because I always held down the B button while I was experimenting with it, and this hid its effects.

Item switch + toss trick

The most perceptive viewers will see that I use a new strategy to overwrite 0xD362. In my previous submission, I said switching an item with a quantity above 99 did no good because the game would always set it back to 99. I was wrong, this is only true for normal items.
Glitched items that don't crash the game when you click them will maintain their abnormal quantity after switched. The previous run wasted many frames to toss the necessary amount to warp to the Hall of Fame. This new discovery allowed more improvements. My initial idea was to manipulate the higher byte of the Trainer ID to be 0x76. That doesn't work, because its address would always be attached to a Master Ball, a normal item which, as said before can't be switched.
Fortunately, there's the lower Trainer ID byte, it can be manipulated to be a useful glitch item (in this case, 6F) without any loss of frames at the title screen. The quantity attached to this item is always 0xBA = 186. Switching this item to the appropriate slot allows me to toss only 68 items to warp to the hall of fame, instead of the 138 that the published run throws away. In total, this trick saved 29 frames.

Other things I tried that didn't work

Overwriting address 0xD35D

Try entering the gameshark code 01765DD3 before starting Yellow. You'll spawn at the Hall of Fame and complete the game. This address can be reached faster than the one used here, but overwriting it to the Hall of Fame's map ID without a gameshark makes the game crash. I tried using it to warp to Gary's room, but this always made the game keep flashing weirdly and turned all nearby tiles into unwalkable blocks. That practically eliminated the use of this address.

Changing NPC dialogs to trigger the credits

That would be very cool. My idea was to change the dialogs that some NPCs have using the inventory glitch in a way that the credits are rolled immediately. It'd be an enormous improvement since the Hall of Fame wouldn't have to be visited. However, after some research, I figured this data is not stored in an obvious way and would need a lot of memory manipulation to pull off. Aside from this, all addresses I found that control this are around 0xD4XX, this is way too far to scroll. So, probably, even if this was possible, it'd still end up slower.

Coordinate manipulation

This one was very tricky because coordinates are a little complicated in this game. I wanted to do this to see if I could exit the house without the need of walking so many steps. It turned out that to overwrite coordinates, other "sensitive" addresses needed to be changed too and that always made the game crash. With a lot of item switching, I could only save two steps so this trick was useless.

Special thanks

  • gia, hanzou, Chamale and primorial#soup, the amazing RBY glitch finders.
  • Torchickens/ChickasaurusGL for his AreaDex project and GCL in general for info in Pokémon glitching.
  • Thomaz, Mukki, FractalFusion, Tilus, Mr. Pwnage, cstrakm, was0x, gocha and pretty much everybody else whose contributions made RBY TASing awesome.

Flygon: YouTube module added.
FractalFusion: Judging.
p4wn3r: Since no one else has done it, I replaced the YouTube encode with one that spells the author's nickname correctly.
FractalFusion: Accepting as an improvement to the published run.
GabCM: Using p4wn3r's and mmarks' encodes for publication.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15527
Location: 127.0.0.1
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
How many times do I have to HD encode this game?
Banned User
Joined: 8/30/2010
Posts: 500
Location: Argentina Bs. As.
Starting SD encode
[18:51] <scrimpy> Oh, nothing [18:51] <mmarks> oh [18:51] <Nach> I think scrimpy is just jealous of you mmarks
Banned User
Joined: 8/30/2010
Posts: 500
Location: Argentina Bs. As.
Wow p4wn3r, if that you have many tricks up his sleeve and several improvements. Yes vote to this movie
[18:51] <scrimpy> Oh, nothing [18:51] <mmarks> oh [18:51] <Nach> I think scrimpy is just jealous of you mmarks
Banned User
Joined: 8/30/2010
Posts: 500
Location: Argentina Bs. As.
[18:51] <scrimpy> Oh, nothing [18:51] <mmarks> oh [18:51] <Nach> I think scrimpy is just jealous of you mmarks
Joined: 5/2/2009
Posts: 656
Wait... 6F? Like... 6st FLOOR? How the hell you throw away an entire FLOOR?
My first language is not English, so please excuse myself if I write something wrong. I'll do my best do write as cleary as I can, so cope with me here =) (ノಥ益ಥ)ノ
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
YouTube HD HD download mmarks, in future, please don't Archive.org new movies... it's against site policy.
Editor, Expert player (2071)
Joined: 6/15/2005
Posts: 3282
OmegaWatcher wrote:
Wait... 6F? Like... 6st FLOOR? How the hell you throw away an entire FLOOR?
Not only one floor, but 68 of them! This run is glitched even more. And so I vote yes.
Active player (498)
Joined: 1/12/2007
Posts: 682
These runs are getting ridiculous. Well, more ridiculous... Yes vote, of course.
ALAKTORN
He/Him
Former player
Joined: 10/19/2009
Posts: 2527
Location: Italy
obvious yes vote :)
Skilled player (1826)
Joined: 4/20/2005
Posts: 2161
Location: Norrköping, Sweden
That was totally mathematical. Spoiler: I still laugh at the end when it says you've caught and seen 152 pokemons. Yes vote from me!
Noxxa
They/Them
Moderator, Expert player (4107)
Joined: 8/14/2009
Posts: 4089
Location: The Netherlands
Woo, most glitched run ever is completed even faster. Yes vote, obviously.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Joined: 6/4/2009
Posts: 893
9 sec? oh common' . . . yes
Editor, Expert player (2327)
Joined: 5/15/2007
Posts: 3927
Location: Germany
I didn't see this one coming. Good work!
Warepire
He/Him
Editor
Joined: 3/2/2010
Posts: 2178
Location: A little to the left of nowhere (Sweden)
What can I say? p4wn3r's done it again. Yes vote.
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
Oh, and, obviously. A bloody high up Yes vote!
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
This has to be the worst memory corruption we have ever seen. Rockman may corrupt the tiles permanently, but I question the stability of any datastructure at all here.
Dwedit
He/Him
Joined: 3/24/2006
Posts: 692
Location: Chicago
The only real glitchiness here is from resetting while saving, and the game not properly verifying the save. Everything else is just a side effect of that. It's kinda like the Chrono Trigger TAS.
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
Yup, so what?
Skilled player (1736)
Joined: 9/17/2009
Posts: 4979
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
First you throw away Master balls, and now you throw away entire floors. What's next, the game itself? o.0
GoddessMaria
She/Her
Reviewer, Experienced player (862)
Joined: 5/29/2009
Posts: 517
Location: Hell...
Goodness..! Such an already glitchy run is now even more glitchier! Yes vote from me! ^^
Current projects: failing at life
Masterjun
He/Him
Site Developer, Skilled player (1986)
Joined: 10/12/2010
Posts: 1185
Location: Germany
We should throw away the "No" and the "Meh" Vote for this Submission (yes vote from me^^)
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
GabCM
He/Him
Joined: 5/5/2009
Posts: 901
Location: QC, Canada
God damnit! When will you stop improving this! Voting Yes.
Skilled player (1098)
Joined: 8/26/2006
Posts: 1139
Location: United Kingdom
Very nice. I particularly liked what you did to the text speed. I didn't see that one coming. Yes vote.
Editor, Experienced player (859)
Joined: 8/12/2008
Posts: 845
Location: Québec, Canada
"Frame war with myself!" Yes vote.