Run attributes
  • Aims for fastest completion of the game
  • Manipulates luck
  • Abuses programming errors
  • Exploits a game-breaking glitch
  • Corrupts save data
Emulator: Visual Boy Advance re-recording v22
Comments
The movie file for this run was changed shortly after the submission due to a minor improvement. It improves gia's run by 1381 frames (23.01 seconds). Now the main character doesn't need to go outside his house to complete the game.
The improvement is because of a new trick to change the destination of the warp points in the map, making it possible to go to the Hall of Fame by exiting your room, and thus trigger the end game sequence.
I discovered this trick almost accidentally while I was trying to understand how the "Doko Kashira Door" glitch worked in the japanese version Pokemon Green, trying to improve primo's run. I found out that the game runs a special check every four steps you take, and this routine is responsible for decreasing your pokemon's HP if it's poisoned and checking if all your party has fainted. While performing the glitch, this function starts to look at data far beyond the area reserved for your pokemon party, and decreases by one bytes that hold important data, like the destination where the warps will send you. Because of this, if a door that's affected by this function sends you to map #45, for example, taking four steps and entering it again will take you to map #44.
I couldn't find anything more worthy than that, but this discovery made me see that it's possible to manipulate the destination of the warps by changing a single byte. With some RAM searching, gamesharking and a table with the map ID's, I could find the memory addresses needed for this run.
The byte which controls the destination of the warp while in your room is 0xD3B2 in Red/Blue and 0xD3B1 in Yellow. gia's run warped to the hall of fame by placing the HOF's ID (which is $76, 118 in decimals) at the byte determining the area you're at. However, in order to complete the glitch, you must get into a battle so that the game loads this information. Changing the destination of a warp, however, can be done much faster.
Then, it must be clear by now that the objective of this run is to input the gameshark code 0176B1D3 without a cheating device. This is done via save corruption. By resetting the game during a save process at the earliest frame that doesn't destroy your data causes your party counter to have garbage, allowing you to have much more than six pokemon. By switching the 1st with the 10th (EDIT: Switching the 2nd with the 10th is 2 frames faster and saves a lag frame later, thanks was0x), the byte that holds the amount of items you have is changed, and your bag can access much more memory than it's supposed to access.
Below the items is important data, including, but not limited to, the X-Y coordinates, the rival's name, your trainer's ID and the byte we need to change. Bytes that are in odd addresses can be changed by switching items, while the ones in even addresses can be more easily changed by tossing items. Since we need to change an odd byte, we must switch items and the only thing that can be changed to $76 that early in the game is the low byte of your trainer's ID. This is manipulated by inserting idle frames before the first four button presses. This was done optimally by gia in his run using a bot. (I tried to do it using a Lua script, but all desync'ed) Therefore, the start of this run is the same as gia's (I actually changed some buttons pressed hoping to avoid lag, but it didn't work). With the right ID bytes, we only need to switch this item that appears on the inventory with the item corresponding to our byte, and we can happily go downstairs into the Hall of Fame. (The item we need is shown as Iron, because Iron's ID is $25, the same of the map of player's house 1F)
Regarding TAS aspects, I don't put fast text speed, because I can make it go faster holding B, there's no need to change battle style or turn off animations, since no battles occur. I name the player ASH because it's the shortest name, making text scroll faster. I also move next to the stairs before saving because I get poisoned for some reason after corrupting the save file, if I walk too many steps after the glitch, the poison animation gets me and I lose some frames. The rival's name is an interesting question, all names in the game occupy 12 bytes, even yours and the rival's, that could be stored in 8. If you name the player or the rival with a default name, there'll be garbage data after the end-of-string marker, and naming them with a custom name causes the data beyond the EOS to be blank bytes. (It means that it's different to choose the name "BLUE" and give the name "BLUE" yourself). This is important because the garbage data from a default name makes some bad items appear, causing more lag at the item scrolling. You could name your rival with bytes that correspond to actual items, like was done on gia's run, to make the scrolling faster. However, I tested these two possibilities myself and getting the default name "BLUE" finishes the game around 40 frames faster, because less scrolling needs to be done in this run.
Possible improvements
It's getting really difficult to think of improvements for this. In gia's previous submission, he stated that red and blue could be finished faster. This, however, is not true. Yellow is less laggy than R/B and loads a lot faster, making it the faster of the three games.
Doko Kashira can change the tile of the location of the warps in the map. With more research, it could be possible to set the warp's location in your room right next to you, so that you don't need to walk. It needs to be done real quick though, as walking doesn't take too much time.
Special thanks
  • was0x, he found an improvement in my original movie shortly after the submission was posted and allowed me to replace my movie with one that's 3 frames faster
  • primorial#soup, for his previous runs and for disassembling the ROM, giving TAS'ers a lot of information about the game's RNG and input oddities
  • hanzou, his discovery on ZZAZZ glitch showed it was possible to manipulate the game's RAM by exploding the inventory
  • Chamale, for his discovery of save corruption
  • gia, for his excellent run, memory map and manipulation bots
  • Glitch City Laboratories, their AreaDex project helped me with RAM searching
As a final note, I hope the viewer enjoys this short run, and apologize for the lack of writing skills in English, which makes my text unclear sometimes.

adelikat: Replacing submission file with a 3 frames faster version. See here for details.

adelikat: Accepting as an improvement to the published movie.


Joined: 4/3/2005
Posts: 575
Location: Spain
Awesomastounding! Voting yes! I also vote for the "honored for their exploits" screen in the screenshot.
No.
Joined: 5/19/2010
Posts: 259
Location: California
*Does Not Leave Home *Catches No Pokémon *Ends Up with 152 Pokémon WTFBBQ? Yes vote.
#3201
Banned User
Joined: 5/22/2010
Posts: 80
Location: WAR TOWN, Georgia (USA)
LMAO @ play time of 0:00, all pokemon caught, and the rating. You should also add the goal "Aims for in-game time instead of real time" since no one can beat 0:00! [Y]
Do I look like someone who really cares what God thinks?! "GI Joe: The Atlantis Factor" - May be improved in the future.
Joined: 5/8/2010
Posts: 177
Location: Entropy
I guess we can't call this a game anymore, it's more like a code in Binary! Your pokemon is broken!
Active player (428)
Joined: 9/7/2007
Posts: 329
hegyak wrote:
Ok, the game is now so broken that there is no way it represents Yellow anymore except for the title screen. Recommended screen shot Ash's Pokedex Rating. It's so good, it says "error."
It also says "rocket" though the "t" is on the next line. So Ash is really a member of team rocket, who cheat their way to fame. Yes vote despite not having the "Go! 99999999999" message. So Ash wakes up ready to begin being a Pokemon trainer. As he walks out of his room into some strange dimension, Professor Oak is there and says, "Due to a computer error, you are now the Pokemon champion. Congratulations."
Skilled player (1326)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
I swear, the moment I get access to my personal computer again, this is getting encoded so fast YouTube won't know what hit it.
MarbleousDave
He/Him
Player (13)
Joined: 9/12/2009
Posts: 1559
152/151 Pokemon = 101% No battles, no option menu, just pure entertainment.
N._Harmonik
She/Her
Joined: 8/27/2006
Posts: 502
Location: Canada
Great! Now can we pretty-please-with-a-cherry-on-top get a glitchless run of Pokémon Yellow as well?
Why, oh, why do I even <i>try</i> to understand my own species?
Former player
Joined: 11/13/2005
Posts: 1587
Voted yes because of the amazing Pokedex rating. Most awesome!
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
Player (42)
Joined: 12/27/2008
Posts: 873
Location: Germany
Following a related video link in Flygon's youtube vid, I saw that gia found out the same improvement I did two months ago and used it to make a TAS: http://www.youtube.com/watch?v=cYHYL8JJsFo&NR=1 I'm wondering now why he didn't submit it here and why the hell mine is 5 seconds faster when the only mistakes I see is naming the rival and switching the first pokemon instead of the second. EDIT: Apparently, he's taking into account the time of that butterfree thingy in the beginning, makes more sense now.
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
It's not quite as entertaining to me as the previous run, but it's still ridiculous and darned impressive. Nice going! I also second the idea of having "ASH x64" in the screenshot.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [1582] GBC Pokémon: Yellow Version "save glitch" by p4wn3r in 01:43.27