SGB Pokémon Red in 41:02.38

Yet one more movie of the first release of the famous Pokémon RPG series. The games of the first generation, most of the time known as RBY, are notable for having a lot of beneficial glitches. Everything that's done in this run can be done by human playing, but most require a lot of luck manipulation and therefore, tool assistance.
This game can be completed in less than one minute of ingame time by abusing save data corruption, but since it changes gameplay completely and is an "artificial" form of glitching, this category was maintained and is often considered the any% completion of the game. This submission improves primo's Blue run under the same conditions by 37 minutes and 55.9 seconds. As far as speedrunning is concerned, Red, Blue and Yellow versions of this game are considered the same game. There's no reason to prefer the Red version, I chose it mainly because of my personal preferences. All movies faster than this submission done in any version under the same conditions should obsolete it.

Attributes

  • Aims for the fastest completion of the game
  • Forgoes time saving glitches (save corruption)
  • Heavy glitch abuse
  • Heavy luck manipulation
  • Contains speed-entertainment tradeoffs
Emulator: VBA-rr v19.4
Pokémon RBY is not well emulated by VBA, especially under glitchy circumstances (more specifically the ZZAZZ glitch, which will be explained further). Newer versions tend to randomly crash the game, fill the RAM with strange values and even turn the entire map with wall status (ZZAZZ glitch is well researched nowadays and this behavior is unreported by console players).
All glitches exploited here can be done in any VBA version. I'd love to do the run in a newer version but the emulation inaccuracies could demand several route changes and even require the run to be entirely redone for no reason at all. Since I didn't want to "manipulate" the emulator to work properly, I switched to v19.4, which seems to be the most stable for ZZAZZ. Since validation is essential for this level of glitchiness, the activation of the inventory glitch by means of ZZAZZ (the biggest improvement here) was reported to work on real console by RBY speedrunner Thomaz and was explored by many people at Glitch City Laboratories.

Comments

If in doubt about the bugs exploited in this run, refer to FractalFusion's Pokemon game resources article. The important programming errors used here are:

Brock Skip glitch

When talking to the boy in Pewter that stops you from leaving town before you've beaten the gym, it's possible to get past him without facing Brock. By finishing the dialog with B, you can open the menu before walking. After opening it, however, you can't move the cursor. By setting the cursor to SAVE beforehand you can save the game, reset and when the game is loaded again, you can hold right and continue onwards to Mt. Moon.

Trainer-Fly glitch

This one is better known as its weaker form "Mew glitch". That's surely the most important bug in the game, the one that makes possible to complete the pokedex without ever trading and is also a requirement for more devastating glitches. It works like this:
  • Find a trainer whose line of sight has the max range.
  • Get into his line of sight while he's being entered into the map, since he faces south by default, this gives you enough time to open the menu before he notices you.
  • Quickly open the menu and use any warp move (Fly, Dig, Teleport) or an Escape Rope.
  • After warping, you can't open the menu or talk to people. To fix this, face another trainer (be sure to have at least one tile of distance so that he walks to you, otherwise the game will lock up).
  • Return to the route where you warped from the trainer, a battle with a wild pokemon will start. The species of this pokemon is determined by the special stat of the last pokemon you encountered, its level can be anything from 1 to 13, depending on the last pokemon's attack modifier. A special stat of 21, for example, triggers Mew.

Experience underflow glitch

The experience required for reaching a level and also the exp a pokemon of such level will have when caught is determined by four formulas. Pokemon with fading experience have the formula E = 1.2L³ - 15L² + 100L - 140, where E is the amount of exp points and L the level. Notice that, for levels 0 and 1, this formula yields a negative value. This wasn't supposed to be a problem because no pokemon at level 0 or 1 exist in the wild. However, with Trainer-Fly, it's possible to catch a lv1 pokemon. This is done by using an Attack-reducing move such as Growl on an opponent. Using growl six times takes the Attack modifier from 7 to 1, with Trainer-Fly this generates a Lv1 Pokemon.
Since the game uses a three byte unsigned data to hold the experience, negative experience will make it underflow, giving it millions of exp points. Having a fading experience pokemon at level 1 receive less than 54 exp points will keep its experience at a huge value (more than this amount will make the number overflow back to a small value) makes the game recalculate its level. After this, its level will be set to 100 because of the big amount of experience.

Snorlax Skip

This is another consequence of the Trainer-Fly glitch. In short, what Trainer-Fly does is simulate a battle with a legendary pokemon. Every legendary pokemon in this game can only be fought once, so it has to be removed after the battle starts. The programmers found an interesting way to implement this. Every map has a list of missable objects, they put every legendary in the first position of the list for their respective map and hard coded legendary battles to always remove the first missable object in the list. Additionally, the list of missables is not changed if you enter a map without missables.
This can be exploited to remove Snorlax at east of Vermilion without getting the PokeFlute by doing the following:
  • Start the Trainer-Fly glitch.
  • Enter the map with Snorlax
  • After seeing Snorlax, pass only through maps without missables
  • Finish the Trainer-Fly glitch
The method above will start a legendary fight with Snorlax still being at the top position of the missable object list. It'll then disappear.

ZZAZZ glitch

The bug which allowed the huge improvement. Trainer-Fly mechanics can be used not only to catch pokemon, but to fight Trainers. If it's used with a special less than 200, it'll start a legendary fight with that species of pokemon. A value of 200 or larger instead starts a trainer fight. It's well known that there are pokemon "missingno.s" in the game, but there are also "Trainer Missingno.s", positions in memory accepted by the game as trainers that don't contain anything.
To start a Trainer battle, the game needs to load a lot of data, such as the trainer sprite, his pokemon and the money he'll concede if defeated. When it loads the money is where things can get really ugly. For reasons that are beyond me, money is stored in a completely different manner, the game uses a data structure of three bytes and instead of converting the value to binary, it stores it in "human" representation. For example, $123456 would be stored as 0x123456 instead of 0x01E240, the proper conversion.
Trainer missingno.s of ID 251, 252, 254 and 255 point to location with invalid money data. When the game tries to perform arithmetic with these data in said structure, it goes nuts and starts overwriting huge portions of RAM. More specifically, for every block of three bytes, two of them will contain 0x9999 (the maximum amount of money a trainer could give). This pattern repeats itself many times through RAM. To see this better, I recommend pausing the video on the emulator after the ZZAZZ trainer is faced and set VBA's memory viewer to 0xD070.
The most noticeable effects of this glitch is that your party is turned into Bulbasaurs, many of your pokemon go to level 153, learn Explosion, get poisoned and your name is replaced with something with Z's (that's where the name of the glitch comes from, its discoverer got his name turned to ZZAZZ), this is because all these things correspond to ID 0x99.
To use this to complete the game, some witchcraft has to be made. Having a party of four pokemon, your party will look like this in memory: 4 A B C D 255 0 0 (4 is the quantity, A, B, C, D species ID and 255 marks the end of the party). After ZZAZZ, it'll be: 4 153 153 C 153 153 0 153 See that the party now has nothing to mark its end, what will happen if we deposit a pokemon?
When you deposit a pokemon, the game starts shifting bytes to the left to maintain the data structure. It'll keep shifting bytes until it finds the 255 that marks the end of the party, but now this value is gone! Under special conditions, it's possible to make the first 255 the game finds to be the one that marks the end of the inventory.
For example, an inventory of 3 items is as follows:
3 X1 N1 X2 N2 X3 N3 255 (3 - amount of items, Xi - Id of the i-th item, Ni - quantity of the i-th item, 255 - end) After the shift, it becomes: X1 N1 X2 N2 X3 N3 255 255
Notice that the ID of the first item became the items counter, quantities became IDs and IDs became quantities. The most important stuff is that the items counter can now become an arbitrarily large value. That triggers the Inventory glitch, which has amazed many people at the Yellow submissions.

Inventory Glitch (ZZAZZ variant)

Having the items counter changed allows accessing important parts of RAM and, more specifically, overwriting a warp to the Hall of Fame to trigger the game's end. Because ZZAZZ is very destructive, attempting to toss any item will crash the game immediately, so it can't be done as fast as in the Yellow runs. The only option is to change the pokemon center door to the Hall of Fame via item switching. In this movie, I do some scrolling inside the PokeCenter because doing it outside causes massive lag. Additionally, I do a trick to speed up the text.

Luck manipulation

The RNG in this game is a TASer's nightmare. Everything affects it, what makes hex editing almost impossible and heightens significantly the complexity of a brute-force algorithm. It uses hardware register entropy, which is not easily emulatable. This makes it very hard to understand its behavior deterministically. Despite attempts from many TASers, some involving disassembly of the ROM, the mechanics of the RNG are still shrouded in mystery.
For this run, I was lucky enough that most of the time the movie synched in v19.4 and v22, so I could use some Lua scripts to brute-force some instances. However, because of an annoying VBA Lua bug, a desync would occur if the bot loaded a savestate, so I had to rerecord manually while it worked.

The 3-step rule

Almost self explanatory, this rule says that wild encounters after a battle can only happen after the player has walked at least 3 steps. That made me waste two steps in this movie.

D-sum

Addresses 0xFFD3 and 0xFFD4 control most of the randomness in this game. They are updated many times per frame in a way that their sums remains almost constant. This sum was called "D-sum" by primorial_soup. In the overworld, the D-sum slowly decreases and during a battle, it slowly increases.
The important thing to know is that manipulating something that's affected by the two addresses is very difficult, because when one is within the desired range, the other will automatically be in a fixed interval so that the D-sum remains the same. Thus, to manipulate this, it's necessary to get the D-sum to a desired range, but since it doesn't change fast, major frame losses are expected.
Things that are affected by the D-sum are:
  • Max critical hits and enemy moves (sometimes when you manipulate a max crit, the enemy will always use a slow move, that was only a problem once in the movie, with a Caterpie, I managed to bypass this losing a lot less than I should have).
  • Wild Pokemon Encounters (some seconds have to be waited in order to encounter the species you want with a small amount of steps).

The route

Pallet Town/ Viridian City

At the title screen, I manipulate the Trainer's ID lower byte to be 118. For those who aren't familiar, this is the same as getting the remainder of the Trained ID when divided by 256 to be 118. This is necessary to warp to the Hall of Fame. I pick Charmander and manipulate it to have high DV's. Nothing really special happens after this in this part.

Pewter City

I buy 4 Pokeballs and 2 Escape Ropes, set the cursor to SAVE and walk to the Pewter Boy to perform the Brock Skip glitch. The necessary reset here is done by soft resetting. I did this to make sure I don't corrupt the save data, because the game only soft resets after the saving sequence is completed. Some annoying trainer battles after this and I enter the Pokemon center to set up the warp for the Trainer-Fly glitch that will soon occur.

Mt. Moon

I Trainer-Fly from the rocket at the last floor and get warped back to the entrance. I face a Youngster and growl his Zubat six times to get a L1 Gengar for the exp underflow glitch. After facing him, I go downstairs, catch the Gengar, do a two-pokemon kill on a L10 Zubat, which gives the necessary experience for Gengar to go to L100. After this, I use Gengar to destroy every trainer and proceed to Cerulean. Since Charmander is slow for the next parts, there were only two good pokemon to consider: L7 Gyarados and L100 Gengar. Published run uses a Gyarados, but here, it sucks because it won't get Bubblebeam from Misty, since the Cascadebadge is not necessary in this run.

Cerulean City

I heal at the PokeCenter to set the warp and go north to face Gary and Nugget Bridge. I catch an Abra in the grass to be able to use Teleport (for Trainer-Fly glitch) and visit Bill to be able to proceed to Vermilion. After that, I use an Escape Rope to get back to Cerulean, and defeat the Rocket to get TM28 DIG, having done this, there are only two more trainers to get to Vermilion.

Vermilion City

The glitch fest starts. I do Trainer-Fly, face the Gambler and encounter a L11 Drowzee, I manipulate its special stat to be 25 and growl it six times to get a L1 Gastly from the glitch. Having done this, I enter Snorlax's map, go back to vermilion and catch the gastly with Special DV = 9.
I do Trainer-Fly again and get Gastly to L100, it evolves to Haunter and has a special stat of 254, one of the numbers required for the ZZAZZ glitch. There are only two pokemon in the game that can have the ZZAZZ-required special at L100: Haunter and Kadabra. Haunter needed to be glitched as its primary form Gastly because no wild pokemon this early can give a Haunter. Kadabra demanded one additional Trainer Battle to glitch, so it's slower.

Silence Bridge - Hall of Fame

I go through Silence Bridge, facing three mandatory Trainers to reach the grass where Ditto can be encountered. I have Ditto transform into Haunter, acquiring its 254 special stat. Now all requirements for ZZAZZ glitch are fulfilled. I run away, get back to Vermilion and do ZZAZZ.
When the ZZAZZ trainer is encountered, attempting to fight him will make the game crash. The only way out of battle is to throw a pokeball at him (???), at the same time, I switch TM28 into the first slot because its ID is high enough to let me access the necessary portions of memory with the upcoming inventory glitch.
Once the items counter is glitched via depositing, I withdraw a pokemon to restore the end of party byte (this is necessary if you don't want to have an "infinite" amount of pokemon being shown at the Hall of Fame), deposit three pokemon because it's faster than letting their animation play and do the inventory glitch to warp to the Hall of Fame and finish the game.

Mukki: Judging...
Mukki: The issue was raised that this run has a similar element to our, shorter, glitched runs, while also displaying a significant change in content to the current any%. While this is true, to publish both would be absurd, as we would be stretching the number of branches for this game arbitralily and on unreasonable grounds. The short run utilises save corruption and it is a very clear goal that the any% does not use it, everything else is good. The categories for Pokémon Generation 1 should be:
  • "Dokokashira Door": A glitched run using a glitch specific to the original Japanese release of Pocket Monsters Green. The extreme nature of the glitch allows for a separate category.
  • "Save Corruption": Can be used in any of the first generation games. The extreme nature of the glitch allows for a separate category.
  • "Any%": Complete the game as fast as possible without using either of the above methods.
  • "Gotta Catch 'Em All": Complete the game while also registering all 151 pokémon.
Accepting as an improvement to the currently published run.
sgrunt: I'll handle this one.

Experienced Forum User
Joined: 10/20/2006
Posts: 1248
p4wn3r wrote:
Ah, and also, I put the route in the submission since some people have been confused ;)
Ah, I see. ^^ Seems I had already forgotten how that ZZAZZ glitch works. Yes vote in any case. I agree that this is the most boring category of Pokémon runs to watch though because of the weird pacing. We have memory corruption on Yellow, a version specific glitch for the Japanese Green version that both end the game pretty quickly and a slower 100% run in the making. With that in mind, I am kind of torn on whether a new glitchless any% should obsolete this once there's also a published 100% run (very likely to get finished before glitchless any%). But since the trainer fly glitch, that is for now exclusive to this run, will be used in the 100% run a lot, the phases of "standard" trainer battles would overlap with the glitchless any% and the way of finally beating the game is very similar to the Yellow version, I guess one could argue that this run wouldn't have enough exclusive content to warrant its category under those circumstances. As long as there's no glitchless any%, I absolutely don't see any reason why this shouldn't be published though.
Experienced Forum User, Skilled player (1630)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
sgrunt wrote:
notably, getting to the hall of fame seems to use a trick fairly similar in nature to what's ultimately used in the Yellow run.
I couldn't help but feel the same way. I basically skipped around to the end, only to see the exact same glitch used in Pokemon yellow. Yes, it does it without reset corruption, but that appears to not actually change the glitch itself (changing exit location by discarding an object), simply the pre-cursor steps to executing the glitch. While a good set of glitches, I think the warp-to-hall-of-fame glitch shouldn't have been used.
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Experienced Forum User
Joined: 5/2/2009
Posts: 656
This movie fells like a mix of the 100% WIP with the glitched one. It's just a glitchy TAS trying to get the same effect possible with the save corruption, only 40 minutes longer. I'm voting meh on this one.
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 =) (ノಥ益ಥ)ノ
Experienced Forum User, Player (42)
Joined: 12/27/2008
Posts: 872
Location: Germany
Perhaps I should redo the run and take some extra time to finish the game like this or this and aim for the category "no save corruption that doesn't look like Yellow". Or maybe I should decide to ignore the ZZAZZ glitch and end up with a route that could be thought of "the 100% run that doesn't catch all pokemon" (that's exactly what the published movie is at this point). I don't intend to be rude, but in all honesty, this criticism seems to me as "I think this was broken too much, perhaps by imposing more arbitrary restrictions you could make me have a different form of entertainment, even if this would almost double the time of this submission". Also, seeing from the low entertainment rating that glitchfree RPG runs have, I think 90% of the people won't like such a run because "it's too long and too boring". Since the 100% run was brought up, I prefer not having a movie that lasts a little more than 3 hours (testrun finished at 4h) eliminate a 40-minute category, 90% of viewers won't even watch the 100% run. Just to finish, I truly believe that most people who think the only interesting part is the last glitch and this run is Yellow 40 mins longer will like the published Blue run even less if they watch it.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
Hasn't it been agreed that save file corruption always warrants its own category? This is just an improvement to the fastest any% run, as I see it, not some strange new arbitrarily made-up category.
Post subject: Movie published
TASVideoAgent
They/Them
Experienced Forum User, Moderator
Joined: 8/3/2004
Posts: 14685
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. ---- [1700] SGB Pokémon: Red Version "warp glitch" by p4wn3r in 41:02.38
Experienced Forum User, Player (87)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
Overall a little disappointing. By glitching a Gengar so early, this run requires very little manipulation, but yet many of the places which do are clearly sub-optimal (see, for example, 8:10 and 23:35). The ending is also rather unsatisfying, but I suppose that can't be helped.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
gia
Experienced Forum User, Player (108)
Joined: 5/3/2006
Posts: 223
DarkKobold wrote:
sgrunt wrote:
notably, getting to the hall of fame seems to use a trick fairly similar in nature to what's ultimately used in the Yellow run.
I couldn't help but feel the same way. I basically skipped around to the end, only to see the exact same glitch used in Pokemon yellow. Yes, it does it without reset corruption, but that appears to not actually change the glitch itself (changing exit location by discarding an object), simply the pre-cursor steps to executing the glitch. While a good set of glitches, I think the warp-to-hall-of-fame glitch shouldn't have been used.
Different glitch actually, in yellow, the "glitch" is corrupting the save. From there there aren't glitches, just a "hacker" exploiting the hole opened. Here the glitch is the ZZAZZ glitch, to the viewer it may look the same but it isn't. Just looking at the RAM makes this clear, the effects they have are very different. Although once the hole is open you do pretty similar stuff with it. But again, you dont do save glitch here, you dont do ZZAZZ there.
Noxxa
They/Them
Experienced Forum User, Expert player, Moderator (4115)
Joined: 8/14/2009
Posts: 4082
Location: The Netherlands
gia wrote:
Different glitch actually, in yellow, the "glitch" is corrupting the save. From there there aren't glitches, just a "hacker" exploiting the hole opened. Here the glitch is the ZZAZZ glitch, to the viewer it may look the same but it isn't. Just looking at the RAM makes this clear, the effects they have are very different. Although once the hole is open you do pretty similar stuff with it. But again, you dont do save glitch here, you dont do ZZAZZ there.
I doubt the average viewer is going to look at all of the RAM, though. To the average viewer it still looks all the same.
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.
Experienced Forum User
Joined: 8/18/2010
Posts: 12
OK, I'm not sure what the site conventions are for posting in a thread like this, but there was a "Discuss this movie" link, so... Anyway... Basically, this movie uses a direct memory manipulation glitch to warp to the Hall of Fame (as used in the Yellow run), but activates it by a different method (ZZAZZ glitch instead of save corruption). This site focuses on entertainment, right? A movie like this is not entertaining to me given the existence of a shorter run. I really think there should be an any% TAS that does not warp to the ending sequence (that is, something corresponding to Thomaz's SDA run, which I find much more impressive). (And the argument that people will skip over the first 40 minutes isn't valid to me-- if they're bored of RPG runs they'll probably just watch the 2-minute runs instead, or not watch any. If I'm looking for warping directly to the Hall of Fame I'd watch the short run instead. If anything, the skip-to-the-end argument can be used to say that this run is not different enough from the short run to warrant a separate category.) For comparison, what if someone submitted a run of A Link to the Past that uses the mirror glitch (use the Magic Mirror when jumping off a ledge) instead of walking through the stairs, in order to reach the Triforce room and skip most dungeons and final Ganon? Would that obsolete the full-game run, simply because it didn't activate the game-breaking skip in the same manner? I'm not trying to make this argument from a definition standpoint. I'm trying to make it from an entertainment standpoint-- that's what this site focuses on, right? From what I can tell, this run would correspond to a mirror-glitch ALttP run, or a 16-star SM64 run (as opposed to a 70-star SM64 run that doesn't use BLJ or other glitches that can skip castle checkpoints), or something similar. That is, it looks relatively normal up to a certain point, but then skips to the end in the same manner (at least as far as most viewers can tell) as the game-breaking skip run. (Though from a definition standpoint, I am of the opinion that anything involving direct memory manipulation (not sure if that's the correct term, but I'm referring to what was done here, as well as in Pokémon Yellow, Chrono Trigger, Super Mario Land 2, and others) should be a separate category-- it may be fun to watch, but it's not a substitute for a run without that type of glitch.)
Experienced Forum User
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
Zeldara109 wrote:
For comparison, what if someone submitted a run of A Link to the Past that uses the mirror glitch (use the Magic Mirror when jumping off a ledge) instead of walking through the stairs, in order to reach the Triforce room and skip most dungeons and final Ganon? Would that obsolete the full-game run, simply because it didn't activate the game-breaking skip in the same manner?
A Link to the Past would most probably get a "Magic Mirror Glitch" category.
Experienced Forum User, Skilled player (1698)
Joined: 9/17/2009
Posts: 4949
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Zeldara109 wrote:
For comparison, what if someone submitted a run of A Link to the Past that uses the mirror glitch (use the Magic Mirror when jumping off a ledge) instead of walking through the stairs, in order to reach the Triforce room and skip most dungeons and final Ganon? Would that obsolete the full-game run, simply because it didn't activate the game-breaking skip in the same manner?
Uh...the full game run doesn't use glitches like those. Also, the mirror glitch can be done without a mirror. Just press a very specific button combination while going up stairs.
Experienced Forum User
Joined: 8/18/2010
Posts: 12
jlun2 wrote:
Uh...the full game run doesn't use glitches like those. Also, the mirror glitch can be done without a mirror. Just press a very specific button combination while going up stairs.
Isn't that my point? The ZZAZZ glitch and the save corruption run lead to the same game-breaking skip (the ability to switch/toss items to warp to the ending scene), except the ZZAZZ glitch takes longer to activate. In ALttP, the walk-through-stairs glitch and the mirror glitch lead to the same game-breaking skip (the ability to walk through walls to warp to the ending scene), except the mirror glitch takes longer to activate. Basically, I don't consider this run to be any more of an improvement on the full-game TAS than a mirror-glitch run of ALttP would be an improvement over that full-game TAS. While warp-to-the-ending glitches can be impressive, they're not a substitute for a run without them. Edit: By the way, I don't normally get this annoyed about things... it's just that I was looking forward to a TAS that follows the improved route as seen in this unassisted run (or any improvements that have been made since then), and still am.
Experienced Forum User, Skilled player (1698)
Joined: 9/17/2009
Posts: 4949
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Hm....I don't know much about the glitches of this game, so I can't do much. Maybe you can send a pm to the author of the run to ask about it?
Experienced Forum User
Joined: 1/28/2011
Posts: 14
Wasn't sure where to post this, thought I'd do it here. Me and ParadoxKarl were routing a run with the ZZAZZ glitch, done pretty much exactly the same as this run. I found that you had ato use a very specific emulator, the VBA-rr 19.4 used to make the video, anything like 23.5 wouldn't work. We could get the glitch on 19.4 every time, easy peasy, but it was literally impossible on others, and when you tried to play the movie on another emulator the movie would desync where depositing the pokemon. Sceptical, ParadoxKarl went on console to test. And...got nothing. It didn't work for him. On the game page it says Thomaz tested thsi on console to confirm it worked. ParadoxKarl contacted him and Thomaz said the opposite, that it didn't work?! I tested today and found the same thing, item inventory glitch couldn't be obtained when i used ZZAZZ :( Before you ask - yes I had the same items in the same order - and yes I made sure the last byte of my trainer ID was 118. Not sure what this means for the run but I'm 99.9% sure this doesn't work on console...
Experienced Forum User, Player (42)
Joined: 12/27/2008
Posts: 872
Location: Germany
Sometime ago, I was helping Thomaz start a ZZAZZ run, we talked mostly on MSN, but he said he initially got the glitch to work, but it didn't want to work later. I remember to have brought up the issue that it could be that it couldn't work on console but he said that he didn't undersrtand because it had worked before, so I took that he meant the console... perhaps he was talking about an emulator, or something since you confirmed him to have said the opposite. He also told me that someone commented on one of his videos saying that someone could get ZZAZZ to work on a real gameboy, but well, if you say the opposite, that's something to definitely worry about...
Experienced Forum User
Joined: 1/28/2011
Posts: 14
The initial glitch works, as in you'll fight a missingno trainer which will mess with shit, ie every trainer will become one and your pokemon become bulbasaurs at level 153/207, name changes to ZZ etc, so my guess is it's all a mistranslation, by they saying ZZAZZ works, they mean just that the initial glitch works, but the item inventory glitch using ZZAZZ doesn't?
Experienced Forum User, Player (42)
Joined: 12/27/2008
Posts: 872
Location: Germany
I'll check it out and try to track what makes this movie sync on v19. EDIT: It's not the Echo RAM fix... VBA was being stubborn and putting the Echo RAM fix back on, I forced v23.5 to run the movie without the Echo RAM fix and it syncs. The reason the method doesn't seem to work with this fix on is because the game writes 255 to some bytes and this will stop it from shifting bytes far away and protect the inventory from the glitching. I have no idea why these 255's appeared there. It might be possible to change the method so that it works, but that doesn't change the fact that this run only syncs because of an emulation error. What do we do now?
Experienced Forum User
Joined: 1/28/2011
Posts: 14
Well I'm not 100% sure because I'm not a frequent here, but I think the run gets taken down for not being able to be replicated on console?
Experienced Forum User, Skilled player (1698)
Joined: 9/17/2009
Posts: 4949
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
p4wn3r wrote:
What do we do now?
You can try contacting a judge for their opinion.
Joined: 5/27/2011
Posts: 2
Well I'm not 100% sure because I'm not a frequent here, but I think the run gets taken down for not being able to be replicated on console?
This is hard to do on console, but possible. This is how i've successfully reproduced the inventory glitch on console. It doesn't require anything frame-precise or save-corruption, just a bit of luck (I used French Yellow Cart on GBP&GBC) : - Start a new game. Make sure your trainer Id isn't equal to 255 mod 256, else, start again. - get a level 100 pokemon as soon as you can (the gendar level 1 trick as shown in this red tas works well, but remember to weaken/paralyze him and bring 15-20 pokeballs) - capture abra, use it to get mew (teleport from the trainer on the left in grass of route 24, fight the east swimmer in Cerulean Gym then go back to route 24) for your TM/HM needs (you can also have it level 100 if you want) - race through the game to access wild dittos - in yellow they are in the base of the pokemon mansion (you can remove the eastern snorlax by doing the "mew glitch" with any pokemon on the route on the left - once you meet the pokemon, do whatever you want and the game will think you faced snorlax and delete it) - Use the ditto glitch with a special of 31 to get 128 rare candies (repeat it for 128 gold nuggets if you want money) - Level your abra with rare candies (let it evolve) to 254 special (use calcium to adjust its special if necessary) - Get a full pokemon party, avoid pokemons with a catch rate of 255 - Get an item with high #ID on top of your inventory, bring pokeballs - If on yellow, bring a repel + escape rope - Save the game - Ditto glitch with 254 special. Do not save the game at this point or your save will be erased without notice. If on yellow, use your repel before flying to Cinnabar Island, it should vanish right before you enter the ditto basement (you have a trainer fight you on your way) then escape rope once you escaped from your 254-spec morphed ditto - throw a pokeball to escape the glitched trainer. - walk to the pokemon center. don't enter until your laggy-walk has stoped or you may end up glitched before reaching the PC, trapped inside and forced to reset. A few poison hits should remove the lag. Don't browse your pokemon party or you will freeze (you may only do this if your 0xFF end pokemon party wasn't erased and I assume this is not what you're wanting to do) - Store one of your pokemon. See if that pokemon you stored glitched your inventory. If it didn't, try to find out which one of your pokemon was the last pokemon that had his stats changed as a result of byte-shifting, store it and try again. If you end up with one pokemon left, reload and try again. If you can't find any way to glitch your inventory, try with another pokemon party. If you still can't achieve anything, try restarting all over again... - If you did glitch your inventory, remember the steps that helped you to achieve this and it should work each time you reproduce these steps. have fun messing with the ram :P Now using your glitched inventory you can show off to your friends by flying to Viridian City before canceling the start option then walk straight and get registered, skipping all badge checks and all battles :D
Editor, Experienced Forum User, Player, Publisher (46)
Joined: 10/15/2021
Posts: 364
Experienced Forum User, Site Admin, Skilled player (1219)
Joined: 4/17/2010
Posts: 11239
Location: RU
SGB decoration also counts as non-gameplay area similar to overscan, so subtitles need to be moved to in-game area.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Experienced Forum User, Player, Publisher (46)
Joined: 10/15/2021
Posts: 364
Redone Link to video
Experienced Forum User, Site Admin, Skilled player (1219)
Joined: 4/17/2010
Posts: 11239
Location: RU
This is good now.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.