For those thinking the japanese versions of Pokémon are the only ones that could be completed extremely fast with the use of glitches, well, the UE versions can be completed even faster.
By breaking the game into allowing the modification of its internal variables the main character gets into the Hall of Fame without receiving his first pokemon, yet his pokedex marks 152 out of 151 pokemon.

Game Objectives

  • The objective is to get to the credits as fast as possible.
  • Uses save and restart.
  • Displays extreme breaking of the game.
  • Uses mysterious warping.

Emulator used

  • Visual Boy Advance re-recording v19.3

Stupid Comments

This is an anime themed run! It gets to show Ash is a known cheater and definitely sharked his Pikachu and set his pokedex to mark 152 when there only existed 151 pokemon at the time.
At first it looked like he was going to have a normal day and meet Oak and get his first pokemon, but no, he had to beat Gary in getting to the league. And for that he had obtained a Game Shark.
First, he sharked balls for he wanted to be tripping them. Then he did the same with his items. While the items are scrolled we get to see the game scream OH S... in disbelief of what is going to happen. But nothing would stop it he was only thinking on himself.
After leaving Pallet, a wild Pidgey tried to steal his gameshark so he was forced to enter codes to summon his precious, the over nine thousand poké, so inmensely powerful it even raised the health of its enemy with only its presence.
Realizing that the road was going to be full of obstacles Ash hacked some more. On his mind there was only hate towards his enemy, and figures that resemble yellow and red Ponytas. He teleported straight to the Hall of Fame. What a surprise that Oak greeted him, he was supposed to wait for him at his lab! Oh crap, "Gary was here" written on the desk!?
"Well not only that, when you were out Team Rocket slammed into the lab, and hacked your pokedex leaving this message..."
(They also stole Pikachu)

Serious Comments

Hello, this is my first TAS. I found luck manipulation to be a chore, no idea how you guys do it manually and several times for a single run, if any of you do so of course.
Since I had to be staring at each frame while making this I had enough time to notice patterns or shapes on the glitches and make up a story as I went. If you feel lazy you can try to find what I used as inspiration by watching with frame advance.
Pokemon Yellow is the less buggy out of the first generation Pokemon games. Having been released last, there was time to patch errors like the well known Old Man (MissingNo.) glitch. It also lacks the Brock skip glitch for instance. Well it doesn't matter, it can be finished as quick as Red or Blue can.
Yes, the three games can be finished with this exact same route. Yellow is the slowest for the simple fact that it has ONE extra tile on its map which means you have to walk one extra step. Red and Blue lack this step. Out of the two, Red is the fastest because its first name choice for the protagonist is Red which has one less letter than Blue for Pokemon Blue. The name gets printed three times, for a total of 3 frames advantage for the red version.
Initially I didn't want to use an anime theme, I wanted to use Yellow as the protagonist and Blue as the rival's name. But the second option is Ash and it has much fewer letters than Yellow, for 5 frames advantage (9 minus 4 it takes to select the name). My main goal was not to get 2 minutes on the clock so I decided to save these frames just in case.
(That meant I had to name the rival Gary, despite Blue being the faster option (4 frames again). It would be a mistake not to go with the theme after naming the protagonist Ash on Pokemon Yellow, the Pikachu version... the one that after all tries to resemble the anime.-Scratch this) After a bit of testing, by using a custom name for the rival I eliminate a huge chunk of "lag" while scrolling items. This is not lag per se but the game glitching out due to the items it tries to display do not have valid item values and forcing you to press the B button several times. While scrolling the items I have to pass by the rival's name addresses, so I gave him a name that has values that correspond with actual items taking out the glitchiness (which could be considered bad because now the screen is less glitchy). I also used one of the "letters" to skip Oak. I used to go out of the way to get a value to skip him, but instead this is on the way and I don't lose time other than doing the item switch.
To be able to pull this route, I had to spawn with a trainer id of 76 in hexadecimal (on the lower byte, D359). This has a 1 in 256 chance of happening, and is set when you select New Game, but the random number generator at that time can't be manipulated without inserting idle frames. These frames can be inserted before any valid input given to the game and will modify the generator differently. Before choosing new game there are four valid inputs (first for Game Freak logo, second for intro, third for game logo, and fourth for New Game itself).
I checked manually the combinations of up to four idle frames, but didn't get the 76 I needed. So instead I made two programs do the work for me: One that created movies with every combination of idle frames and another that played these non stop until it found one that worked. I modified tas-movie-editor and Visual Boy Advance for this. They found the best combination quickly, at iteration 74 which corresponds with 5 idle frames.
With the first part of the puzzle I could continue with the plan. First I walked up to the point where I stop... yeah... Ok, it has some significance, one tile forward and the Oak skip trick won't work because the closest value that gets this done doesn't work one tile forward. It also makes it wait until the last moment to show that it is not going to be a normal run, I mean I could have saved as soon as the game started.
I use a save corruption exploit, reset while saving and your file may get corrupted, reset at a specific frame, and you will still be able to load your corrupted file. The corruption fills your owned pokemon data -which you have zero atm- with FFs, or 255 in decimal (if you watch the address D200 -VBA's Memory Watch window- you will see this after resetting). That area includes the pokemon owned counter, in other words the game thinks you have 255 pokemon on your belt, that's a lot of balls.
When Chamale wrote that this exploit gave him over 25 pokemon it rang my bell. I had been testing the ZZAZZ glitch since hanzou introduced it at the forum, this glitch ultimately ends with the overwriting of the items counter and subsequent memory shuffling that allows for a teleport to Hall of Fame as demostrated by hanzou. Since the game only has room for 6 pokemon but think you got 255, pokemon can be switched and that means overwriting data that are not pokemon with whatever data the pokemon had, and not only is this cool, the belt data is right before the owned items data, and having as values FF is perfect.
Switch your first pokemon with the tenth and you will overwrite the items counter, since you will be placing FF in there, now you will have 255 items, but 20 is the regular maximum! Below the item data there is important data, like your current area (D35D), coordinates (D35E, D360-D361 and D362-D363), badges (D355), trainer id (D358-D359), the rival's name, etc. So by manipulating your belt you can manipulate your items and then get access to manipulate this. Items use two bytes, the first for the item, the second for its quantity, so when you switch items you are exchanging four addresses (the two you switch from and the two you switch to). Tossing items modify the address on the quantity byte, these are the even addresses (0-2-4-etc). Completely tossing all of the item will shift all bytes by two, this will most of the time crash your game. The item with value FF is read as the Cancel button, and can't be tossed nor switched, unless the text Cancel doesn't show (and if you do you'll cause a single byte shift).
Now with access to this data from the items menu, I overwrite the area value to be able to get to Route 1 without triggering Oak. The closest value that doesn't crash the game (is FD and is quite far away, but it works -Scratch this too) is E7 and corresponds to the third character "!" given to the rival as his name, it is on the way while scrolling so no time is lost. Please keep in mind that Pokemon Red and Blue accept more values (they don't crash/freeze), like the Card Key item (30) that is on the way as well.
Now in Route 1 I proceed with the final step of a ZZAZZ attempt, to generate a teleport to another area. Get into a wild battle, and switch the area value with whatever value you want, then end the battle through whatever means. You'll spawn at the new location.
First things first, I needed a random encounter on the first possible step. You can't get a random encounter in Pallet so I had to get to Route 1. You can't get a random encounter on the step in which you enter Route 1, and you can't move right because the collision model is actually one tile to the left, (due to my playing with values to skip Oak) which means you are actually next to the wall. Moving left won't trigger a random battle because the grass is not there (in other words the grass is not shifted, only the collision). So the only way is up.
There are two pokemon that can be triggered, Pidgey and Rattata. Pidgey is 6 frames faster and I lucked out in getting one within two frames of optimal while recording the movie. There's no way to manipulate the RNG without adding idle frames. To manipulate it without them like for example primo's do, you have to hold the input when accepting text dialogs. There are none of those after I reset.
I used the bots again, this time there are more than 60 inputs, not four, before the random battle. That means anything bigger than 3 frames and it's hell (3 frames have like 90,000 combinations, which is still doable but would take several days). Since I already had a Pidgey within 2 frames though, the bots only had to check the combinations for one idle frame, which is nothing, and they found one valid run, on the last combination possible, getting a Pidgey with just one frame lost.
I wrote a small program to calculate the number of combinations for 'n' idle frames inserted before 68 possible inputs, lucky me I only had to do number 1:
  1. 68
  2. 2414
  3. 57154
  4. 971635
  5. 13991544 <- 13 Million something
  6. 170230452
  7. 1799579064 <- 1 Billion something
Anyway, the 76 I manipulated earlier as the trainer id is also the code for Hall of Fame, and the data is right next to each other so I don't waste time switching "items". When I switch, the data from one address goes to the other, so I am setting my area value as 76.
This is not the only switch required, because my current coordinate position values would get me out of the map at Hall of Fame and the game would crash. So I switch another item on top of their values keeping things cool.
Then I just run from the battle and profit. Oak is a smart man and can't be fooled easily, he proceeds with the registration but he knows what I did there.
By the way, the pokedex data is between your belt and the items, so when I switch pokemon I also complete the pokedex, in fact it now says 152 out of 151.
Since this wouldn't be complete without Team Rocket, well, they had to make an unexpected appearance, I wasn't expecting that the first time, with a dark tone for music change and everything. Even though the game is about to end, there is trouble ahead...
My RAM map is not complete, so there could be another method to teleport to Hall of Fame, even from the starting room, by creating a patch of grass, setting the exit or escape roping to the final room, or similar. Also, due to the variability of input and frames a couple frames improvement could be found by varying the button presses, I think this is called a "frame rule". But their effect is random, sometimes a combination will speed you a frame here and then slow you down in another place, and usually it is that it can't be sped up.
I DID use a "constant" combination I found and had no chance to use during the movie, I used it on the last dialog, pressing A then the next frame B on a dialog without an "arrow" makes it close 1 frame earlier. The movie's input ends at the same frame though because it's the last dialog.
For those wondering, the run is around 1 minute and 13 seconds according to the ingame timer (which only displays the minutes). DA3F is the address for the hour, then it goes to minutes, seconds and frames (60 fps). A 0:00 run sounds unlikely and the addresses are not even within range for manipulation so that's a no as well ;o

Other comments

I suggest you turn on Input Display, open Memory Watcher, enlarge its height to the max, and set it to watch the address D200 to D350 so you can "see" what happens in memory.
I don't think many people will get what is going on even if they know the Pokémon games. It is very possible to execute these glitches and NOT teleport to the end and instead play some more to make it more friendly to them, but my goal was to find out the final screen time display upon completion, was it going to be 0:00, 0:01 or 0:02? I got a movie where I "walk" to the Hall of Fame and it takes six minutes (perhaps five if optimized), but my goal was speed so I finished this one. All in all, there are enough glitches to perhaps do a glitchfest run, some walk on water, glitched battles, changing the music tempo, palettes, battling gym leaders but changing their pokemon, etc, (yes all that is possible, at the same time may not be so possible but that's what planning is for).
It may be possible to break a frame rule by using a different input combination on certain dialog. Usually it doesn't make a difference but sometimes pressing A alone is faster, or B the frame before then A, or A the frame before then B, or holding B and pressing A the frame that it has to be pressed, etc. When it doesn't work it usually makes you lose one frame instead. This frame advantage can be lost arbitrarily if the game wants to though, for example when you name yourself or your rival, or at reset. And of course a faster way to teleport to the end will also improve the run.
Suggested screenshots:

Bisqwit: Author submitted a replacement movie. Submission updated. Quoting Gia:
I missed a quite obvious optimization and after applying it I also lucked out with the random encounter, the improvement is 672 frames though, not 10.

NesVideoAgent: Hi! I am a robot. I took a few screenshots of this movie and placed them here.
Bisqwit: But the movie desynced for NVA, as it did for me. Removing the said screenshots.

adelikat: The glitching presented here is different enough to warrant a new category. So accepted for publication but not to obsolete the green run.


Emulator Coder
Joined: 6/8/2005
Posts: 236
Location: Madison, Wisconsin
DrJones wrote:
"honored for their exploits"
Hahaha, how literal.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15602
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. ---- [1123] GBC Pokémon: Yellow Version "save glitch" by gia in 02:06.28
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
I think the megaman1 run has been bested in terms of glitch research and, in some way, glitch abuse (even in megaman the glitches only abuse the game engine, they don't actually go and modify the RAM data to get impossible values). Good work.
Mitjitsu
He/Him
Banned User
Joined: 4/24/2006
Posts: 2997
I don't see any problem with modifing RAM addresses in a game as 10's of us have been able to play back the .vbm and verified its legit, of course you made a some what disguised point of how the movie might look fake to outsiders. These acusations will continue to rain down on the site for a very long time to come. It doesn't make it worse than movies on the site which abuse more visual glitches e.g. *wall zipping and clipping glitches. I actually think its more of a credit to the movie and author for being able to find such a unique glitch and implement it. Its way better than the other short glitched movies on the site** I would also say it was an arbitary decision to keep the Green run as well, and will once again build up problems in the future. Creating either impossible or very difficult situations and will likely just enforce the hypocrisy on this site. * Don't try to mention that wall zipping isn't technicaly a glitch ** IMO
Experienced player (829)
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
AKA wrote:
I would also say it was an arbitary decision to keep the Green run as well, and will once again build up problems in the future. Creating either impossible or very difficult situations and will likely just enforce the hypocrisy on this site.
I find it more arbitrary that some Pokemon games have been obsoleted by entirely different Pokemon games. Saying that one game (that uses one glitch) should be obsoleted by another game (that uses a completely different glitch) only adds to the supposed hypocrisy you speak of. IMO.
Living Well Is The Best Revenge My Personal Page
Former player
Joined: 12/27/2006
Posts: 532
Location: Göteborg, Sweden
I never knew Oak liked people glitching the game up.
My published movies [03:45:05] <Naohiro19> Soulrivers: ... [03:45:19] <Soulrivers> ? [03:46:35] <Naohiro19> <Soulrivers> No! <Naohiro19> So? <Soulrivers> Yes! [03:46:48] <Naohiro19> joke
Mitjitsu
He/Him
Banned User
Joined: 4/24/2006
Posts: 2997
mmbossman wrote:
I find it more arbitrary that some Pokemon games have been obsoleted by entirely different Pokemon games. Saying that one game (that uses one glitch) should be obsoleted by another game (that uses a completely different glitch) only adds to the supposed hypocrisy you speak of. IMO.
Again, another mirror statement from you that was designed to attack me *yawn* EDIT: Clarification I consider R/B/G/Y the same family of games and any slight differences negligible. A version change would be acceptable grounds for obseletion short of switching to different regions with faster texts. The Green run did not obselete the current hour+ run because it used a glitch near the begining which skipped nearly all the game. On the other hand this movie used a glitch which effectively skipped all of the game. So effectively you have 2 glitched any% which 1. Uses a glitch after a few mins of play to skip to the end of the game, which is simalar to ALttP. 2. Uses a glich shortly after gaining control of the main character to skip to the end of the game which is simalar to HoD. Also the way you implied IMO sounded like an attack on me given that it has the same spacing after my last paragraph and there was no reason to use it. My application was to prevent 'I think not [/url]', while your one was well... To imply something which didn't need implying in the first place.
Experienced player (829)
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
What? I posed an argument against yours that is a very valid point. How is that attacking you AKA? Using a similar example to yours, if I were to say that Megaman 1 should be obsoleted by Megaman 6 because they use different glitches, that would be ok with you? I mean, they're really just the same game with a different name, right? EDIT:
AKA wrote:
I consider R/B/G/Y the same family of games
lewisje wrote:
Then again, Yellow was so fundamentally different from the Japanese Green/Red/Blue and American Red and Blue that it deserved its own category.
This is the problem I have with Game A obsoleting Game B. What constitutes a "family" of games? I'm not pushing for an any%, and glitched any%, and a 100% category for every pokemon game around, but I think it causes more problems to have green obsolete yellow, which can obsolete blue, which can obsolete red. Those types of decisions are arbitrary and lead to problems in the future.
Living Well Is The Best Revenge My Personal Page
Joined: 11/11/2006
Posts: 1235
Location: United Kingdom
Soulrivers wrote:
I never knew Oak liked people glitching the game up. <img>
If you're interested, I made an animated version in a post a couple pages back. And now for the postpicking.
AKA wrote:
I don't see any problem with modifing RAM addresses in a game as 10's of us have been able to play back the .vbm and verified its legit
Theres no doubt it's legit, only it directly resets the hardware to cause the softwate to be interrupted during it's save routine. I'm getting the impression thats the controversial part of this run.
AKA wrote:
Of course you made a some what disguised point of how the movie might look fake to outsiders.
Can you explain to these outsiders how this movie isn't cheating? :) Warning! The previous sentence could be seen as an act of trolling!
AKA wrote:
It doesn't make it worse than movies on the site which abuse more visual glitches e.g. *wall zipping and clipping glitches
Depends on your definition of 'worse'. The primary difference is those runs don't use unintended activity of anything but the controller, whereas this run uses a hard reset as well.
AKA wrote:
I would also say it was an arbitary decision to keep the Green run as well, and will once again build up problems in the future. Creating either impossible or very difficult situations and will likely just enforce the hypocrisy on this site.
I actually agree on this... to a certain extent. This apparently can be done on every 1st gen Pokemon game, so why not either move stuff to the concept runs section or clear up the categories a bit?
AKA wrote:
* Don't try to mention that wall zipping isn't technicaly a glitch
Wall zipping isn't technically a glitch. It's a feature to avoid getting jammed in walls. The important thing is that it can be abused.
<adelikat> I am annoyed at my irc statements ending up in forums & sigs
Former player
Joined: 12/27/2006
Posts: 532
Location: Göteborg, Sweden
Raiscan wrote:
Soulrivers wrote:
I never knew Oak liked people glitching the game up.
If you're interested, I made an animated version in a post a couple pages back.
My bad, I didn't look through the topic. ;)
My published movies [03:45:05] <Naohiro19> Soulrivers: ... [03:45:19] <Soulrivers> ? [03:46:35] <Naohiro19> <Soulrivers> No! <Naohiro19> So? <Soulrivers> Yes! [03:46:48] <Naohiro19> joke
Joined: 5/21/2008
Posts: 15
Location: Cincinnati, OH
mmbossman wrote:
AKA wrote:
I would also say it was an arbitary decision to keep the Green run as well, and will once again build up problems in the future. Creating either impossible or very difficult situations and will likely just enforce the hypocrisy on this site.
I find it more arbitrary that some Pokemon games have been obsoleted by entirely different Pokemon games. Saying that one game (that uses one glitch) should be obsoleted by another game (that uses a completely different glitch) only adds to the supposed hypocrisy you speak of.
I'm with AKA, unless that "completely different glitch" could have also been performed in the game from the obsoleted run and therefore it's just a cosmetic change. Then again, Yellow was so fundamentally different from the Japanese Green/Red/Blue and American Red and Blue that it deserved its own category.
gia
Player (109)
Joined: 5/3/2006
Posts: 223
Bah I wanted the submission to be published after a whole year despite the yeses, what is the record on that sense? Japanese Red and Green have no actual correlative on the american releases since they use the old "engine" that was updated on japanese Blue which is the actual correlative to the american Red and Blue, Yellow has a japanese Yellow. Anyway, as per my comments the run can be done on Red and Blue too. And already said Red is the faster of the three. I can say I did not try on the japanese Yellow since it's the same game with japanese text. I also did not try on Green because I consider it a different game (grouped with JRed), it might have a completely different RAM map too, cant remember but I recall something from a gameshark codes list. I have tried on real hardware and had people trying but haven't been able to get that "frame", I DO recall as a kid when I played this all day my batteries died while I was trying to push a last save and when I replaced batteries I had "lost" all my pokemon except my first, Charizard, I was sad and had to restart the game. Thinking about it now it could have been that the pokemon were cloaked (and well they were FFs anyway). Anyway, I think it's good that they are separate categories for what I exposed up there and also because the other one is proven to work on real hardware, or so I recall reading. I do not believe anyone will try to submit _the same thing_ for Red or Blue despite it is possible unless they actually improve the run with a "route" change. And then a single arbitrary decision could be made so it replaces Yellow, or they could remain separated, whatever. If you push a rule that all games within a generation are grouped then you will have to include more than one arbitrary decision later when the runs are too different, so it's the same, maybe worse, since pokemon would not be the only game affected.
Joined: 2/25/2006
Posts: 407
The big problem here is that the Save Ram glitch is not emulated properly by gameboy emulators :P isn't gambatte more "accurate" over VBA rerecording?
Ryzen 3700X, ASUS Crosshair VIII Hero (WiFi) Motherboard, 32GB 3600MHz RAM, MSI Geforce 1070Ti 8GB, Windows 10 Pro x64 http://tasvideos.org/Nach/FranpaAlert.html
N._Harmonik
She/Her
Joined: 8/27/2006
Posts: 502
Location: Canada
Anyone for a glitchless run?
Why, oh, why do I even <i>try</i> to understand my own species?
Joined: 2/26/2007
Posts: 1365
Location: Minnesota
N. Harmonik wrote:
Anyone for a glitchless run?
Pika PIKA! But, more seriously, I don't think it would be different enough to warrant a new run. The only difference that would be noticeable, to me, would be the god damned rat running around complaining he isn't used first all the time... and Team Rocket sucking balls constantly.
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.
N._Harmonik
She/Her
Joined: 8/27/2006
Posts: 502
Location: Canada
stickyman05 wrote:
N. Harmonik wrote:
Anyone for a glitchless run?
Pika PIKA! But, more seriously, I don't think it would be different enough to warrant a new run. The only difference that would be noticeable, to me, would be the god damned rat running around complaining he isn't used first all the time... and Team Rocket sucking balls constantly.
Okay, how about a catch-all-Pokémon run? ...Whoops! This run DOES catch 'all' 151 Pokémon (and 1)! But seriously...
Why, oh, why do I even <i>try</i> to understand my own species?
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Btw, I got thinking: This run is based on resetting the (emulated) console while the game is saving, which causes the saved data to be corrupted. However, how well does the emulator emulate the actual console (and its memory card) in this regard? If this was somehow replayed in the real console, would the reset-while-saving trick work in the same way? Would the data be corrupted in the exact same way in the real thing? I'm thinking that the memory card (or whatever is used in the console) has a certain writing speed, etc. How well does the emulator emulate this? Does it replicate the real thing accurately? If this glitch is based on how the *emulator* functions in this situation, doesn't it make it emulator-specific? Basing a run on an emulator glitch (which doesn't exist in the actual console) has never been acceptable. Of course even if the emulator does something different than the console, it could still be controversial, because the exact same effect could maybe still be achieved in the console too, just not in the exact same way.
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
Rridgway did the bug on console after several hours of trying. I'm not sure exactly what he saw, though.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Added into newly-added category: technique: corrupts save data
Joined: 3/7/2006
Posts: 720
Location: UK
This glitch has been well-documented in real-time playings of the game, though getting the exactly right frame to have to best effect is sort of difficult on a real Gameboy. However, since the new VBA came out which fixed some bad emulation of RAM (the glitch in that Wario Land somethingorother submission) I'm fairly confident it's doing a great job emulating such glitches now. I can't offer any serious information about the (a)synchronous saving I/O or whatever, but I suspect it uses the same kind of processing as the rest of it on a machine as simple as the Gameboy. It does freeze up while you're saving, after all... if I had something more concrete, I'd post it in your "what if" thread.
Voted NO for NO reason