Introduction

After the Brock through Walls glitch recently brought new life and improvements to the Gen I Pokémon games, it may also have broken some of the categories. This movie is supposed to not only contest for the fastest time in the so-called "any%" category, but also contest the categorization itself, which has shifted a considerable amount with the new findings and may need to be adjusted.

Categories

  • Aims for fastest completion of the game
  • Heavy glitch abuse
  • Heavy luck manipulation
  • Forgoes save corruption
  • Corrupts memory
Used emulator: BizHawk 1.8.0 (syncs on 1.1.0 - 1.6.1 and 1.8.0+)

About the run

Goal choice

This run tries to finish the game, contesting with what is currently the (awkwardly named) "any%" category, which forbids certain kinds of heavy exploits. It specifically disallows:
  • save corruption - separating it from the "SRAM glitch" category (see here)
  • manipulating warp locations - separating it from the "warp glitch" category (see here)
Note that this run is faster than the currently published "warp glitch" movie, which doesn't use the Brock through Walls glitch. It does not, however, compete with this publication, there is a much faster route for this category using the new glitch.

Emulator Choice

This movie uses the pre-1.7 frame timing and syncs on all pre-1.7 versions as well as 1.8 which allows to adjust the timing method.

Version Choice

Both the Red and Blue version work for the chosen route, and there are only very minor time differences between them. I chose the Red version merely for convenience, since the needed Weedle encounters are more frequent in Red, plus minor time savings in having a faster intro sequence and having a shorter default player name.

Brock through Walls

Even though this glitch has apparently been known about for a long time for the Japanese version of the game, it was not until recently that it is understood and usable in the UE version as well. It allows using the Pewter gym guy to exploit the game's cutscene mechanics in order to walk through any overworld object.
The game stores the player movement during a cutscene as a sequence of simulated joypad inputs (at $ccd3). The inputs will be played back one by one, and the cutscene ends when all movements are finished. After performing the Brock Skip glitch, it's possible to talk to the Pewter gym guy from the right, which is not supposed to be possible, so there's no cutscene path defined for it. The mapping from the player's coordinates to the path he'll walk in the cutscene is defined in d:7d06. Each entry consists of four bytes:
<y> <x> <2-byte address of the path to walk>
With no mapping defined for the right side of the NPC (coordinates (36, 16) ), the game searches on in the memory areas beyond, and will eventually reach the RAM starting at $c000. If it doesn't find the coordinates anywhere, it will loop around the game memory forever, effectively soft-locking the game. The coordinates must be aligned properly to the 4 byte blocks at d:7d06, that means the block must start at an address ending in 2, 6, a or e. If aligned properly, the two bytes after the coordinates are used as the address that points to the joypad inputs the player will execute during the cutscene. This list is terminated by an 0xff byte, and the game will continue copying bytes until it is found. If there is no 0xff byte in time, it will overwrite other memory areas, specifically $cd3b. This address is used to define joypad inputs that can override the simulated ones during a cutscene. The feature is (to my knowledge) not used in the game, and causes the cutscene to pause while overriding inputs are pressed, while still preserving all other effects of the cutscene, specifically the ability to walk through any object. Using any warp (e.g. entering a building) cancels the cutscene and the associated effects.
In this run, Charmander's DVs are used to put the coordinates at $d186. The PP for the first and second move (at $d188) are therefore used to determine the address from which to read, which will be 33 for Tackle and 34 for Growl at the time of execution. These spell out the address $2221, which sets $cd3b to 0xe0, enabling exactly the left, up and down directional buttons, which happen to be the exact directions that are necessary. Note that the required buttons don't need to be enabled in order to use them, as long as there is an enabled button you can press whilst going in the desired direction (like B, Select, or even a different directional button). Also, if the memory corruption goes further, $cd60 and $cd6b can be affected, which can influence the ability to use certain buttons or do interactions, but they stay unmodified in this run.

Route

Intro

  • The enemy is named "B", since displaying shorter names is faster.
  • The player is given the default name, it's not shown often enough for a shorter name to make up for the time lost in renaming it.

Pallet town

  • The options are changed to fast text speed, no battle animations and a set battle style, which speeds up all upcoming battles. Changing the options in-game is faster than doing it in the main menu.
  • Charmander is chosen as the starter, since it knows Growl and can be poisoned. Bulbasaur would be faster in the rival fight, but it can't be poisoned which would lose more time later.
  • Charmander's DVs are manipulated to be 1/0/2/4, which is needed for the Brock through Walls glitch later on.
  • Losing to the rival is faster than winning, and we won't need the experience.
  • Note that Charmander's Growl misses exploit the fact that all moves (except for Swift or when using X-Accuracy) have at least 1/256 chance of failing, even if they are supposed to always hit.
  • When delivering Oak's package, it's faster to stand next to or above Oak instead of in front of him. This will cause the rival to walk less steps, and NPCs walk at only half of your speed.

Viridian City

  • The Pokecenter is used to set the warp location for the upcoming death-warp.
  • Buying a Pokeball in the mart is faster than picking up the one in Viridian Forest.

Viridian Forest

  • Charmander is poisoned by a wild Weedle to drain its HP and faint to an encounter right in front of the Bug Catcher. This sets up a Trainer-Fly.
  • A wild Rattata with a Spc stat of 7 is growled 6 times to set up a L1 Nidoking encounter.
  • Nidoking's Atk DV is manipulated to be 15, as it will do all upcoming trainer fights.
  • Using the Experience Underflow glitch, Nidoking is raised to L100 on a L3 Weedle.

Pewter city

  • The selected start menu item is set to "save" in preparation of the Brock Skip glitch.
  • The north-east house is entered to manipulate Route 23 later on.
  • After performing the Brock skip glitch, we turn around and talk to the guy again to trigger the Brock Through Walls glitch, allowing us to ignore any obstacles in our path and go directly to the Indigo Plateau.

Route 23

  • All overworld maps (cities and routes) are connected at their edges, so you can traverse the world without loading zones. The connection between Route 22 and Route 23 is special though, since it is the only one that can't be used legitimately (you need to go through the gate house), even though it works and is defined in a perfectly valid way. This allowed the current publication to skip two of the badge checks, and allows this run to skip all eight badges. The tileset used in the two routes is different, which not only creates visual glitches when crossing maps, it also confuses the game about where to place the player in the map, putting it at the coordinates of the warp with the ID of the last used warp. By entering and exiting the house in Pewter city, this ID is set to 4, which allows us to skip all guards checking for badges.

Indigo Plateau

  • Depositing Charmander seems tempting, but ends up costing more time than can be saved in the Hall of Fame.
  • When using Thrash, you are bound to use it for 3-4 turns. This saves time by skipping the move selection, but causes confusion after it finishes, so it's only used to end a fight.
  • Agatha is the most painful fight, her Gengars and Haunter can only be damaged with Poison Sting, which is doubly non-effective and has only 15 base power. Even being at L100 with optimal DVs and having the STAB bonus, it takes 7 hits to kill the L60 Gengar.

Noxxa: Judging.
Regarding primorial#soup's run, it does much of the same things this run does: use underflow to glitch a Pokémon to level 100 instantly, skip badges and skip badge checks by walking through walls. There isn't really much that primo's run does that this run doesn't, except show off more of the game because the walk through walls glitch comes much later in that run. Primo's run has no real limitation that would make it a different category from this run, so this run will obsolete it.
The "warp glitch" run by MrWint is pretty much any% (sans save corruption), and this run beats the game faster under at the same restrictions (and more, in fact), so that will be obsoleted as well. While there may be an improvement incoming that uses a glitched warp, it will have to be seen when that is submitted whether that would obsolete this run, or whether this run would remain as "no warp glitch", like primo's current run is now.
Spikestuff: Publishing....

Editor, Skilled player (1936)
Joined: 6/15/2005
Posts: 3239
There is a glitchless TAS of sorts, but it is on the Japanese version. Red HP sound glitch and 1/256 miss is used, but not Marowak Pokedoll skip. It uses the Nidoran route, and explicitly says that a former TAS using the Squirtle route was slower by over a minute. (1/4): https://www.youtube.com/watch?v=_flV070jIEY (2/4): https://www.youtube.com/watch?v=kmyhjnZpNUo (3/4): https://www.youtube.com/watch?v=UNYqO5BWE1A (4/4): https://www.youtube.com/watch?v=GJRjvtNG5Vw (click CC for translation notes; also, please tolerate the red HP and sound glitching because it is everywhere in this run).
ALAKTORN wrote:
I thought he meant getting Graveler just to use for the Agatha fights, then switch back to Nidoking. Would that be slower? Is there really no better Pokémon than Nidoking?
I meant whether it was possible to replace needing to glitch L100 Nidoking (which takes a while) with something else.
ALAKTORN
He/Him
Player (99)
Joined: 10/19/2009
Posts: 2527
Location: Italy
FractalFusion wrote:
ALAKTORN wrote:
I thought he meant getting Graveler just to use for the Agatha fights, then switch back to Nidoking. Would that be slower? Is there really no better Pokémon than Nidoking?
I meant whether it was possible to replace needing to glitch L100 Nidoking (which takes a while) with something else.
Clearly. I went on to ask the question I thought you were asking myself, though. Edit: watching the Japanese TAS, I honestly wasn’t annoyed at all by the red bar glitch. Seems like it would save a lot of time in a no/low glitch run, too.
Joined: 7/29/2009
Posts: 55
I liked the run, because it showed off the glitch to get an overpowered Pokemon early without the battles getting stale as they would in a proposed "all badges" run. I don't think this should get obsoleted by a run that only forgoes save corruption and still warps to the Hall of Fame without fighting the elite 4+rival.
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
ALAKTORN wrote:
FractalFusion wrote:
ALAKTORN wrote:
I thought he meant getting Graveler just to use for the Agatha fights, then switch back to Nidoking. Would that be slower? Is there really no better Pokémon than Nidoking?
I meant whether it was possible to replace needing to glitch L100 Nidoking (which takes a while) with something else.
Clearly. I went on to ask the question I thought you were asking myself, though. Edit: watching the Japanese TAS, I honestly wasn’t annoyed at all by the red bar glitch. Seems like it would save a lot of time in a no/low glitch run, too.
It's not a glitch, it's a feature, to reduce the amount of time the player has to listen to the red bar sound. I'm planning to test it and see if it would speed things up to let Charmander take damage against Missingno and end up in red bar health.
ALAKTORN
He/Him
Player (99)
Joined: 10/19/2009
Posts: 2527
Location: Italy
I thought it was a glitch based on “too many sounds going on at once, hardware cannot compute”.
Editor
Joined: 11/3/2013
Posts: 506
DRybes wrote:
count me in the crowd for removing the 1h18m and the 28m and having this obsolete them both (shortly followed by a yet-to-be-made run obsoleting this one) having a unique 'warp glitch' category at this point is like showcasing a bowl of lucky charms with one of the dozen marshmallow types removed
If you believe that this run should be obsoleted by the one Chamale's working on, shouldn't this one be rejected due to a large known improvement?
Joined: 9/15/2013
Posts: 154
What is the "Brock Through Walls" glitch classified as? It sounds like carefully planned memory corruption more than ACE, but I'm not sure. While this is certainly entertaining (I didn't know the Brock skip glitch was that buggy), and obsoletes all non-save corrupting runs it does cause a bit of an issue. A run calling for the credits via item underflow/CoolTrainer/ACE that also uses Brock Through Walls to achieve the goal faster... does that get published alongside this one? Primorial's run and the current CoolTrainer one both being published makes sense. Having this one and a newer version of the CoolTrainer run (I think someone in the R/B thread said it could be shortened to 13-14 minutes?) doesn't make as much sense. Although I wasn't aware Primorial's run also used walk-through-walls, which I'm pretty sure should be classified as some form of a warp glitch, so... I vote for obsoletion of both. Though I also vote that a future glitched run cutting to the credits but also using Brock Through Walls to obsolete this. As it stands, there's very little "normal" gameplay in either this or a glitch-to-credits run. (Yes vote, by the way.) If it wasn't for the limited amount of submissions per game, I would've instead voted to keep the former variants of the memory corruption run (which featured significantly different glitches), this run as an obsoletion to Primorial's and a memory-corrupting run that uses BTW, but that probably won't happen. As it stands they all reach the credits in different ways and the reason these types of runs are interesting is how the credits are reached and the setup for said payload, not necessarily the fact that they're so fast.
Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
Dyshonest wrote:
What is the "Brock Through Walls" glitch classified as? It sounds like carefully planned memory corruption more than ACE, but I'm not sure.
Yes, "carefully planned memory corruption" sums it up pretty well. In the end, Brock Through Walls just uses memory corruption on a certain byte which normally locks input during a cutscene state. The memory corruption reenables input (partially), and being in the cutscene state allows the player to walk through walls. No ACE is involved.
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: 9/15/2013
Posts: 154
Mothrayas wrote:
Dyshonest wrote:
What is the "Brock Through Walls" glitch classified as? It sounds like carefully planned memory corruption more than ACE, but I'm not sure.
Yes, "carefully planned memory corruption" sums it up pretty well. In the end, Brock Through Walls just uses memory corruption on a certain byte which normally locks input during a cutscene state. The memory corruption reenables input (partially), and being in the cutscene state allows the player to walk through walls. No ACE is involved.
What can that byte be used for? Purely what inputs are/aren't allowed? Or can it be used to call for other things to occur?
Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
Dyshonest wrote:
What can that byte be used for? Purely what inputs are/aren't allowed? Or can it be used to call for other things to occur?
It's a byte. It determines what inputs are/aren't allowed, as was stated. It is only read by the game for that purpose (and on occasion written to, for instance to initialize a cutscene, or when doing exactly what the memory corruption in this run does), but it is never executed, so no, it cannot be used to "call" anything.
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: 9/15/2013
Posts: 154
Interesting. Is the specific DV combination used here the only such one that is useable for this or are there others? And does it have to be Charmander with those specific moves?
Post subject: Please read thread first.
Player (142)
Joined: 7/16/2009
Posts: 686
Dyshonest wrote:
Interesting. Is the specific DV combination used here the only such one that is useable for this or are there others? And does it have to be Charmander with those specific moves?
Already asked: http://tasvideos.org/forum/p/385402#385402 with the replies: http://tasvideos.org/forum/p/385423#385423 http://tasvideos.org/forum/p/385465#385465
Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
To be precise, when doing Brock through Walls the game looks for a mapping of the user's current coordinate (coordinates 36, 16; which is in hexadecimal 0x1024). If it can't find it, the game soft-locks (as described in the submission text), so it's necessary to have either 1/0/2/4 DVs or 16PP/36PP for the first two moves the second and third move (thanks Chamale for the correction) or having a Pokémon with 16 special in slot 1 and 8/10/13/15/17 health in slot 2, as described in Chamale's post linked above.
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.
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
Mothrayas wrote:
16PP/36PP for the first two moves.
The second and third move, actually, which is why Bulbasaur is fastest for that method - it learns a third move as early as level 7.
Player (27)
Joined: 3/2/2014
Posts: 34
Location: Canada
Great job on the new TAS! Although I was too late to vote, (I did anyway) I really liked the new discovery to get to the Elite Four without any badges.
Meerkov wrote:
The human element of the run is far more entertaining than the game itself. If it wasn't for someone lying about their record 40 years ago, I don't think we'd take a second look at this run/game. Meh vote.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
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. ---- [2680] GB Pokémon: Red Version "Brock through walls" by MrWint in 22:02.94
Editor, Experienced player (607)
Joined: 11/8/2010
Posts: 4012
It looks like this only obsoleted the old "warp glitch" movie. Wasn't it supposed to obsolete primorial#soup's run too? Or did something change?
Spikestuff
They/Them
Editor, Expert player, Publisher (2254)
Joined: 10/12/2011
Posts: 6324
Location: The land down under.
CoolKirby wrote:
It looks like this only obsoleted the old "warp glitch" movie. Wasn't it supposed to obsolete primorial#soup's run too? Or did something change?
I cannot touch both of them + don't know how to. This has happened before, should be worked out soon.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. These colours are pretty neato, and also these.
Skilled player (1703)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Contains speed/entertainment tradeoffs - Major skip glitch - Executes arbitrary code - Heavy glitch abuse - Corrupts memory - Heavy luck manipulation - Genre: RPG
Um....didn't this thread already had a discussion saying that this wasn't the case? What changed?
Joined: 12/29/2007
Posts: 489
^Looks like a leftover copy+paste from the previous movie maybe? That one used ACE, this doesn't.
Spikestuff
They/Them
Editor, Expert player, Publisher (2254)
Joined: 10/12/2011
Posts: 6324
Location: The land down under.
Zowayix wrote:
^Looks like a leftover copy+paste from the previous movie maybe? That one used ACE, this doesn't.
Yup a leftover, I was unmarking all the others and missed that one by mistake.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. These colours are pretty neato, and also these.
Joined: 12/29/2007
Posts: 489
The one thing I don't understand at all about this movie is how you managed to skip badges 2 through 7. As far as I understand the tiles that trigger the guards' speech span the entire width of the map, so you'd encounter them even with a walk through walls glitch. No doubt it's related to what was said about entering the ID #4 warp in Pewter City, but how does that relate to the game 'warping' (?) you to the ID #4 warp in Route 23? You don't take any warp tiles, and the overworld should be seamless. Also, how does a glitched tileset have anything to do with coordinates or player position? Looking at this map and comparing the path you walk after initiating Brock Through Walls, it doesn't look like you go far enough west to cover what would be Route 22. What exactly is going on from the game's point of view? If you could somehow "draw" the path you take on the above-linked map (glitched tilesets notwithstanding), that would be very appreciated.
Skilled player (1018)
Joined: 7/24/2013
Posts: 175
The overworld is "seamless", but only because the game correctly determines your position on the new map based on the last position on the old map and the map connection data, under normal circumstances. On loading the map for Route 23, the game needs to decide where to put the player, and does that using the information in the map connections. It does this in this case as well, only that this position is later overwritten due to a piece of code that sets the player position to a warp position whenever the tilesets of the last and the new map don't match. I'm not exactly sure why it does this test, since it can't ever trigger under normal circumstances, but it can be exploited to set your position past all guards. If you are interested, I can look up the exact location of this piece of code for you so you can explore it for yourself. Anyway, here is the path used in this run. Going OOB on Route 2 does not save any time, I did it merely because the map connections happen to work out this way, any other path would work as well. Note that the used image does not accurately represent the dimensions of the individual maps (especially Route 23 and the Indigo Plateau), but it's sufficient in this case.
Joined: 12/29/2007
Posts: 489
MrWint wrote:
due to a piece of code that sets the player position to a warp position whenever the tilesets of the last and the new map don't match.
Ah, that's it right there. Wow, never knew that before. Thanks! The map was very helpful as well! But how come the same thing doesn't happen here? In Primo's 1h19m run, the player uses WTW to go from Route 22 to Route 23, but doesn't warp at all (looking at the map, the player stays lined up directly below the Victory Road exit warp at all times even when on Route 22). I'd have expected that the player at least "warp" a couple of steps to the left so as to match one of the Boulderbadge gatehouse exit tiles.
Editor, Experienced player (607)
Joined: 11/8/2010
Posts: 4012
MrWint wrote:
It does this in this case as well, only that this position is later overwritten due to a piece of code that sets the player position to a warp position whenever the tilesets of the last and the new map don't match. I'm not exactly sure why it does this test, since it can't ever trigger under normal circumstances
Wouldn't this code be executed when using Fly so that you can still warp to the last Pokémon Center even if its map has a different tileset?