(Link to video)
Submission Text Full Submission Page
This TAS of Pokémon Yellow resets while saving to screw up some memory so that it can complete the game as fast as possible.

Game objectives

  • Emulator used: BizHawk 1.4.0
  • Heavy glitch abuse
  • Corrupts save data
  • Manipulates luck

Comments

The previous run was made on VBA which was replaced by Bizhawk for GB and GBC TASes. This run is more than copied input from the other movie. I had to figure out what was going on in the game and then try to optimize that. The clearly hardest part was luck manipulation. To get the values needed you have to manipulate the TID, short for Trainer ID. The TID ($D358) is 16 bits long and it is based on the RNG which is based on an internal timer of the GBC.

Stage by stage comments

First Room

Here I... well I beat the game...

How I beat the game

SAVING GAME! DO NOT TURN OFF THE MACHINE!
            ^ this is where I turn off the machine
Normally, when resetting the game while saving it will either say that the save file is corrupted or it won't let you open the "Pokemon" menu. If you reset at the perfect time it will let you load the game which has corrupted RAM. The game fills every address starting from $D162 to $D2F5 with 0xFF (dec 255) which will make the game think you have 255 Pokemon. Since the game only has place for 6 Pokemon, it will overwrite other addresses when you switch Pokemon.
Clever usage of this glitch can lead to overwriting the value in $D35D which is the current map. Overwriting that address with a value that loads bank 0x16 and overwriting 2 bytes at $D36D, which determines the area where the code will jump, leads to executing the Hall of Fame sequence. The values for $D35D which can load bank 0x16 are: 0x11, 0x13, 0x15, 0x16, 0x17, 0x1A, 0x1B, 0x1D, 0x5A, 0x71, 0x76, 0xCF, 0xD0 and 0xEA. The 2 bytes at $D36D have to be so that they eventually lead to the code for the Hall of Fame. One could throw away items to get the amount of that item to one of those values and then swap items to place them right, but that just takes too long. To make things faster I manipulated my TID to fit for those values. That means my TID has to be 0x64yy where yy is one of the 14 values listed above. The reason for the 0x64 at the start is because the value before the TID is always 0x01, so when we place the 2 bytes at $D36D, the game will jump to code 0x6401 which then will load the required code for the Hall of Fame.
So we have to get the values from
  • $D357 to $D36D
  • $D358 to $D36E
  • $D359 to $D35D
Since the TID is based on the internal gameboy timer, the only way to manipulate the TID is delaying. The TID is determined after you press on "New Game", which gives me 4 places to delay input: 1. at the GAME FREAK scene, 2. at the little running Pikachu scene, 3. at the title screen, 4. at the "New Game" menu. I wrote a bot that brute forces a TID of 0x64yy and this run is what I got. Even though there are 14 values for yy, this run just happens to have the same value for yy as the previous run (I tested this with other values of that list and it works). So in this run we have a TID of 0x64D0, which is located at $D358. To move that value around I have to swap Pokemon and Items.
  • So I first swap one of the first few Pokemon, in this case the 7th, with the 10th Pokemon. This will overwrite addresses like the item count with 0xFF. So that now the game thinks that you have 255 items (there is also a side effect that the Pokedex data is filled with 0xFF, so we have seen and caught 152 Pokemon).
  • Then I swap the 12th Pokemon with the 13th so that the 0x64 goes to $D384 and 0xD0 goes to $D385.
  • Then I switch the 13th Pokemon with the 11th so that the 0x64 goes to $D32C and 0xD0 goes to $D32D. Here a 11 byte data overlaps and causes 0x64 to go to $D342.
  • Since it's impossible to get the 0xD0 to the right place with only Pokemon swaps, we have to move items to get the 0xD0 from $D32D to $D331.
  • The last swap is the 11th Pokemon with the 12th. This causes our 0xD0 to go to $D35D (current map) and the 0x64 goes to $D36E, since there is a 0x01 before the TID it is now at $D36D.
After closing the menu the game will read the 0xD0 and it will load bank 0x16. It will jump to 0x6401 which will the lead eventually to the Hall of Fame code and to the credits.

Other comments

Small things that save time (not over the previous run)

  • Naming myself ASH instead of YELLOW
  • Holding B while advancing text to display the text faster
  • I tested several Pokemon to swap the first time, it seems like some just lose a frame

Thanks

I want to thank p4wn3r and gia, not only because they did the previous runs, but also because they did a very good job exploring this game and explaining stuff. This game is more complicated than I thought so I want to thank them.

FractalFusion: Judging. This will take a while.

Player (135)
Joined: 8/27/2004
Posts: 164
Not going to vote on this, because I can't be objective. On a personal level, I don't like the idea that someone's TAS can be obsoleted by a totally different person, without new strategies, without even a faster time, just because there is a better emulator out there. It would only feel "fair" to me if the new TAS included new glitches or timesavers, that is, if a hypothetical version of the new TAS made on the old emulator would be very likely to obsolete the old run. I wonder if anyone would be interested in an official team that would attempt to "redo" highly optimized TASes in new emulators. The updated run would have a new time and movie file, but the author would be unchanged and the original submission text (and movie file?) would be included. I think it's fair to say that some runs are unlikely to be improved, but should still be kept updated as the quality of emulators increases.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
You know my opinion on abusing reset, but at this point it doesn't really matter. It's just beating a dead horse.
fsvgm777
She/Her
Senior Publisher, Player (221)
Joined: 5/28/2009
Posts: 1185
Location: Luxembourg
VBA inaccurately lags less. Also, VBA has issues with Pikachu's voice samples (it plays them at a low volume, when it should be at full volume (like in BizHawk/Gambatte or a real GBC)).
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Joined: 1/9/2013
Posts: 27
Location: Virginia
Before I comment, can somebody clear something up for me... I know it's slower in "realtime" because the emulator used is more accurate, but is that the only difference? Without this difference would they both be the same speed?
MESHUGGAH
Other
Skilled player (1890)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
What I think you did is... 1. You watched the movie of the previous world record TAS and learned it's strategies/techniques from the input/subtext/your skills. 2. You started from scratch/previous movie and used the very same strategies as the previous run. 3. You submitted it with syncing on the currently preferred emulator. This is totally right and it's 100% ok. However, I think that this TAS was really easy to execute once you know these strategies. Yes, it was really hard to find out how the game works, what values you need and what should be changed in what order... but I'm pretty sure that both p4wn3r and gia could make this TAS on this version of Bizhawk gambette whatever emulation maybe in 2 minutes because they are 4w3som3. So what I mean that there's no problem with your TAS or submitting it. Now bookmark this post and read this message if this TAS will be accepted: 1. Watch TASes made on unpreferred emulators 2. Check if they easy to copy/sync 3. Sync it everytime there's a new version 4. Congratulations, you successfully made a TAS in a few minutes
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Editor, Expert player (2315)
Joined: 5/15/2007
Posts: 3856
Location: Germany
p4wn3r and gia should be given credit.
RachelB
She/Her
Player (127)
Joined: 12/3/2011
Posts: 1579
It would only feel "fair" to me if the new TAS included new glitches or timesavers, that is, if a hypothetical version of the new TAS made on the old emulator would be very likely to obsolete the old run.
Which it does.
I know it's slower in "realtime" because the emulator used is more accurate, but is that the only difference? Without this difference would they both be the same speed?
No, this run would be faster, if not for the incorrect lag emulation in vba.
Joined: 3/9/2009
Posts: 530
Masterjun wrote:
since when is it not allowed to use the strategy and ideas of the previous run? You guys should know, that this strategy is optimized like hell. It uses the minimum amount of pkm switches, it skips scrolling through rival names glitchy items. It has to manipulate only 2 bytes. I indeed have videos of other strats (skips to the rating without walking so you can end the movie when you close the menu) but they were slower just because this is so optimized.
Then are you admitting that you didn't do anything different besides using a different emulator and accounting for the lag differences?
Masterjun
He/Him
Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
yes
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Joined: 3/9/2009
Posts: 530
RachelB wrote:
No, this run would be faster, if not for the incorrect lag emulation in vba.
As per the above, no. It wouldn't. Belated Edit: There's this too, also obsoleting something on the basis of hearsay and a new emulator. http://tasvideos.org/3881S.html Did anybody actually see if what he says about there being four frames of improvement was actually true? People did ask in the thread for the improvements to be specified and they never were.
Skilled player (1707)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Tangent wrote:
Did anybody actually see if what he says about there being four frames of improvement was actually true? People did ask in the thread for the improvements to be specified and they never were.
Assuming the game only lags during loading, and both emulators feature the same number of lag frames elsewhere, you can compare the frames taken to get from 1 loading point to the next.
Masterjun
He/Him
Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
This run doesn't save time, but it in fact doesn't lose time! I had new strategies like jumping to the rating without having to walk. Since I have to manipulate one byte more for this, it is likely to be slower when optimized... gia had the idea that you don't have to walk, but he didn't find any place to jump. I thought one step further that you can jump to an address even before the code you want to have and let the game execute garbage code until the wanted code. But there is one more thing I want to say...
Tangent wrote:
There's this too, also obsoleting something on the basis of hearsay and a new emulator. http://tasvideos.org/3881S.html Did anybody actually see if what he says about there being four frames of improvement was actually true? People did ask in the thread for the improvements to be specified and they never were.
Really? I mean really? Bringing my already accepted YI run into this discussion? I mean I totally didn't write a post about my improvement and I totally didn't write "This room is also the reason why I originally started making an improvement on this run, because you can clip the invisible wall on the right for one frame (like a walljump) and if you time it perfectly you can enter the door faster."
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
MESHUGGAH
Other
Skilled player (1890)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Masterjun wrote:
Really? I mean really? Bringing my already accepted YI run into this discussion? I mean I totally didn't write a post about my improvement and I totally didn't write "This room is also the reason why I originally started making an improvement on this run, because you can clip the invisible wall on the right for one frame (like a walljump) and if you time it perfectly you can enter the door faster."
Come on, don't take every posts as an attack. I'm pretty sure Tangent was interested in how these submissions are investigated ("judged"). I'm also eagerly waiting for the result of this submission, I have a lot of troll ideas for April Fools if this becomes a thing.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Joined: 2/26/2012
Posts: 15
If this run is the same time discounting improved lag emulation, I don't think it should be accepted over the previous because as was said
1. Watch TASes made on unpreferred emulators 2. Check if they easy to copy/sync 3. Sync it everytime there's a new version 4. Congratulations, you successfully made a TAS in a few minutes
It seems rather redundant to put a TAS on the site for the sole reason of it using a newer preferred emulator without saving any game play time over its predecessor.
Noxxa
They/Them
Moderator, Expert player (4141)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
I personally wouldn't accept movies on new emulators that don't include any improvements to the runs themselves. That opens up a very nasty can of worms, and I've already seen posts from some users essentially stating they will exploit this, if a precedent like this is accepted. Accepting runs like that are both disrespectful to the original authors, as well as negatively impacting the site's credibility as a record compendium. After all, if runs get obsoleted by slower runs time-wise that are not faster in any way, their records just stop making any sense at all.
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: 3/9/2009
Posts: 530
Masterjun wrote:
Really? I mean really? Bringing my already accepted YI run into this discussion? I mean I totally didn't write a post about my improvement and I totally didn't write "This room is also the reason why I originally started making an improvement on this run, because you can clip the invisible wall on the right for one frame (like a walljump) and if you time it perfectly you can enter the door faster."
Yes. Really. Judges aren't perfect. All you needed to do there was copy/link that ten month old post and say "This is where I saved 4 frames." Dodging repeated questions just makes you look like you're hiding something. Here, from reading the (original) submission message and initial comments, they distinctly gave the impression that you had improved it in some way other than a different emulator. Being completely open about what you're doing is always the best policy.
Masterjun
He/Him
Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
what question am I dodging
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Guga
He/Him
Joined: 1/17/2012
Posts: 838
Location: Chile
Gotta love Tangent's accusations.
Skilled player (1707)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Mothrayas wrote:
I personally wouldn't accept movies on new emulators that don't include any improvements to the runs themselves. That opens up a very nasty can of worms, and I've already seen posts from some users essentially stating they will exploit this, if a precedent like this is accepted. Accepting runs like that are both disrespectful to the original authors, as well as negatively impacting the site's credibility as a record compendium. After all, if runs get obsoleted by slower runs time-wise that are not faster in any way, their records just stop making any sense at all.
I guess if this gets accepted, if it looks pretty much exactly the same, then put the previous author(s) of the runs as authors of this run instead. So people like me won't exploit this and the site can still have runs done with the latest emulators.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
jlun2 wrote:
I guess if this gets accepted, if it looks pretty much exactly the same, then put the previous author(s) of the runs as authors of this run instead. So people like me won't exploit this and the site can still have runs done with the latest emulators.
Um, please do go ahead and replace runs with not so accurate emulators with very accurate emulators. Just realize which emulators are not so accurate and which are very accurate. Since this obsoletion only applies that way, and not from not so accurate to another not so accurate.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Player (79)
Joined: 8/5/2007
Posts: 865
Nach wrote:
jlun2 wrote:
I guess if this gets accepted, if it looks pretty much exactly the same, then put the previous author(s) of the runs as authors of this run instead. So people like me won't exploit this and the site can still have runs done with the latest emulators.
Um, please do go ahead and replace runs with not so accurate emulators with very accurate emulators. Just realize which emulators are not so accurate and which are very accurate. Since this obsoletion only applies that way, and not from not so accurate to another not so accurate.
I vehemently reject your characterizations of VBA and BizHawk.
AnS
Emulator Coder, Experienced player (723)
Joined: 2/23/2006
Posts: 682
Input resyncing is not TASing. Ideally it should be done automatically, with minimum human involvement. In fact, in TAS Editor 1.0 you can already do it semi-automatically, so once it's ported to Bizhawk (TAStudio) you can expect an avalanche of dummy submissions, which take only a couple of hours to produce. This submission definitely can not be "accepted as an improvement", because it fails to beat the old record. It only makes the old record sync with another emulator, similar to how the author of NESBot had to pad FM2 movies with blank frames in order to sync with the real NES. However, such kind of submissions can be accepted as "movie conversions" (so that old authors remain, and the new author is only mentioned in the description). Well, seeing as here the new author didn't simply copy the old Input but recreated the Input while trying to improve it (thus wasting more than ~2 hours) I wouldn't object against adding him to the end of the actual authors list as a consolation. Just, when writing the judge decision, make it clear that you are not encouraging submissions that fail to improve.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2739
Location: The dark corners of the TASVideos server
om, nom, nom... blech!