(Link to video)
Pokémon Emerald Version in 1:19:52.87 (1:16:40 in-game time) by GoddessMaria.
Emulator used: VBA-rr v22 (Works on VBA-rr v23.6 svn-r480)
You will need Real-Time clock enabled (Options -> Emulation -> Real Time Clock) and Save Type Flash 128K (Options -> Emulation -> Save Type -> Flash 128K) enabled in order to correctly watch this movie.

Game Objectives (in no specific order)

  • Uses no predefined saves
  • Aims for fastest time
  • Takes damage to save time
  • Heavy luck manipulation
  • Heavy glitch abuse

Introduction

So this entire idea to TAS the game (from my own perspective) came when I was working on the Battle Factory TAS. A thought had crossed my mind about how a TAS of the main game would be like. Because of my curiosity, I went ahead and started to try it out. It was during this that I had learned odd behaviors between Frontier and normal battles. I proceeded to take on the game as close to a "secret" project until completion before unveiling it publicly to see what the responses would be like, which led to the test run's birth. A bit later into it, the Pomeg Berry glitch (this by itself was known for a long time) had an expansion into it where it became possible to clear the game far sooner with use of corrupted moves. Once that had surfaced, the number of possibilities increased and soon the glitched run became more sought after. Since I was working on the final version anyway, I decided to take it on. This submission is the result of the final version.

Tricks and Tips

Pomeg Berry Glitch

Pomeg Glitch was a little funny glitch known for a long time in Pokemon Emerald where you could decrease a Pokemon HP to 0 or beyond 0 with Pomeg Berries. But this way to KO a whole Pokemon team outside of battle can lead to awesome glitching.

The Original Pomeg Berry Glitch

The original Pomeg Glitch. This Glitch revolves around EVs, points gained through battle that increases a Pokemon stats if he won enough of them in a certain stat. When a Pokemon is caught, he has no EVs. He can gain a maximum of 510, with a limit of 255 EVs per stat. Items like HP Up, Carbos, Iron, Protein,.. give 10 EVs in a certain stat. In Emerald, 6 Berries gained a new effect : they decrease EVs by 10 in a certain stat. (The opposite of the EV boosting items) These Berries are : Pomeg, Kelpsy, Qualot, Hondew, Grepa, Tamato. This mechanism was meant to be useful to people that wanted to train their Pokemon in a specific way but accidentally gained EVs in stats that aren't useful.
To perform the original Pomeg Glitch (or the first part of the newer one), you need the following:
  • A Pokemon who has HP EVs. A good amount of HP EVs is needed in order to ensure that after giving a few Pomeg Berries, the Pokemon's Max HP will decrease by at least 1 point.
  • Use Poison and wild battles to decrease your remaining HP down to 1.
  • Give Pomeg Berries to your Pokemon. Its Max HP will decrease, and due to a programming error, its remaining HP will also decrease.
  • Your Pokemon is now at 0 or 65.535 HP (-1 = 65.535 since HP is stored in 2 bytes : values between 0 and 65.535).
If its HP is 65.535 or less, you can use a healing item to make it go up to 0. Now, the Pokemon is KO, but he fell KO in a non-programmed manner, so the game won't make you black out if you KO all your party Pokemon with this method.

The "new" Pomeg Berry Glitch

-Make a team with 3 to 6 Pokemon. Your first Pokemon must be alive, with HP EVs and 1 HP. You'll give him a Pomeg Berry to KO it later in the process. Your last Pokemon must be alive, preferably with full health. All the other Pokemon (between first and last) must be KO or Eggs (considered as KO Pokemon because they can't fight).
-Go make a wild battle. In this battle, switch to your last Pokemon, then flee. The game will update the slot of the last Pokemon seen alive in Battle with your last Pokemon's slot.
-Deposit the last Pokemon. Now, there's no Pokemon on the slot previously memorized by the game, but your team still has an alive Pokemon remaining.
-Use a Pomeg Berry to KO your first Pokemon (and last alive Pokemon). Now your team is full of KO Pokemon.
-Go into a wild battle again. The game will first check your team to see if he finds an alive Pokemon. If he doesn't see one, he will launch the "Pokemon" in the slot of the last Pokemon seen alive, as in normal gameplay, it is automatically an alive Pokemon. But here, there is no Pokemon into this slot. The game will still follow its script and interprete the zeroes as a Pokemon. Thus, a ? will be launched, with no moves, 0 PPs, 0 HP, Lv 0, ID 0,... This Glitched Pokemon is called Decamark because of its summary name being ??????????.
-Go into the Pokemon selection. The game is puzzled : he found out that there are 4 (for example) "concrete" Pokemon into the party, but he also sees that there is 1 battling Pokemon, and 4 Pokemon in reserve. For now, the Pokemon selection pointer is set to select 4 Pokemon, so the last Pokemon of your team can't even be selected.
-Check the Summary of one of your Pokemon, and go back. Due to anti-cheat scripts, the game will now consider the Decamark as a "concrete" Pokemon. But under Decamark's data, there's a wide RAM area full of zeroes. Thus, the game will also interpret these zeroes as Pokemon, and the number of Pokemon the pointer can select becomes higher than 6.
-Push Up or Down to move the Pointer on the Cancel button. A Glitch happens here since the pointer is still selecting a Pokemon, but he's also selecting the Cancel Option. This makes the Pointer position glitch, and teleports it way down into RAM. The pointer jumped to an adress around Box 2 Pokemon 24 data, and you can push Up to make it start an ascension in RAM data. Also, the pointer is programmed to check 2 values : Pokemon species and something else (HP probably), so he's still doing the check. But since he's reading some RAM data values (by blocks of 100 bytes, the size of a Party Pokemon's data), this check corrupts some values everytime it's performed. We have then a RAM corrupting tool that only affects 2 bytes every 100 bytes, (not completely periodically), changing the values in a really precise way.
The two Pointer RAM corruptions Here's a part to develop a bit the corruption pattern, and the possible changes. Since the Pokemon selection pointer is programmed to check 2 values, we can consider that there are 2 different corruptions.
The first one is linked to the reading of HP / unknown value. In Party Pokemon data, this value is always at the same place, thus, this corruption is completely periodical, happening every 100 byte at the same adress everytime. The pointer reads data with double-words, so RAM data needs to be seen in 32-bit mode (double-words mode). If a double-word is corrupted, the console will try to set Bits 0 and 2 of the leftmost byte to 1. ex : 0x0024 5678 -> 0x0524 5678, 0x0400 0000 -> 0x0500 0000 Thus, you have 4 different value changes : Bit 0 and 2 effectively set to 1 (+0x0500 0000), only Bit 0 (+0x0400 0000) or only Bit 2 (+0x0100 0000) set to 1, or no Bit set to 1 (no change).
The second one is linked to the reading of Pokemon species. And this value isn't at a fix position, due to an anti-cheating build that organizes most of the Pokemon data into 4 substructures, and orders these substructures depending on the PID (congruence of PID modulo 24). Thus, the pointer will read the PID value to determine where the Species value is, and read it after that. Since there are 4 different positions for substructures, there are 4 different positions for species data into Party Pokemon's data. Thus, the corruption happens every 100 byte, but in 1 of 4 different places, so the corruption itself can't be seen as periodical.
The PID reading doesn't bring any value corruption (strangely). A corrupted double word has Bit 6 of its leftmost byte set to 1 or set to 0. ex : 0x0200 0000 -> 0x4200 0000 This corruption isn't a real toggle (if Bit is 1, it becomes 0, and vice-versa). The Bit is set to 1 or 0 depending on the value of PID and TID (stored in a double word next to PID). If Bit 6 of the leftmost bytes of PID and TID have the same value, the Bit will be set to 1. Else it'll be set to 0. ex : PID = 0x4000 0000, TID = 0x0000 0001 -> Bit set to 0.
This second corruption is more interesting than the first one since you can always change the value of a double-word, if you can manipulate the value read as PID to control the corruption the pointer will make. With complete control of PID value (modulo 24), you can also manipulate the position of the second corruption. Check http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_data_substructures_in_Generation_III to have a table of substructures position depending of the congruence of PID mog 24 (species is stored in Growth).
Here are the adresses for corruptions : PID reading : 0x02029820 TID reading : 0x02029824 First Corruption : 0x0x02029830 Second Corruption : 0x02029844 0x02029850 0x0202985C 0x02029868
If you want to know the corruption adresses somewhere else in RAM, add or substract a multiple of 0x64 (= 100) to them.

Manipulating RAM Corruption

Since PC Pokemon data is stored after nearly every other data, you can corrupt most of the in-game values / identifiants / flags.
The adresses where RAM corruption by pointer will happen are fix. But hopefully, another anti-cheating script saves the corruption. The role of this script is to take RAM data values (at least the ones useful for the game), and change their position everytime the player enters a door, closes PC, starts a battle, closes Bag,... Any of these values (seen as double-words) can take 32 different positions (all the values have the same adress gap between their previous and new position). And the RAM corruption has (nearly) the same pattern every 100/4 = 25 double-words. This means that any RAM double-word affected by the repositioning anti-cheat script (part of the DMA script I think) can be corrupted.
If the Anti-DMA cheat code is used (needed to activate other cheat codes), the pointer corruption will always give the same results, so it's better to not use cheat codes while making Pomeg Glitch.
RAM Corruptions used
In the run, two elements are corrupted with Pomeg Glitch to break down the timer. We also made it in a way that both values are corrupted in a single Pokemon Pointer Corruption.
-The first one is Ever Grande Fly Location (or EGFL). This flag can be raised with the Second Corruption, meaning that you can directly Fly to Ever Grande, and only Victory Road + League remain. Also, Pomeg Berries are found in Route 119 and 123, right before Fortree, so Pomeg Glitch can start right next to the 6th Gym. Also, at League, the guards only check the optional Badges to let you go. Since these Badges are Badges 2 and 6, we already have them when we fly towards Ever Grande. Skipping everything between Fortree and Victory Road nearly halves the run in two.
Since second corruption is involved, there is a setup to do before being able to corrupt this flag. There are 4 possible values that, being read as PID, can influence the Pointer to corrupt the Fly Location Flags and raise EGFL. These values are all Trainer flags, so they can't be well manipulated into a run where you would only be ar Fortree. During a speedrun, when arriving at Fortree, none of these values allow an EGFL corruption. Hopefully, one of these value manages Twins / Couple Battles, and fighting Route 103 or Route 104 twins (only one of them) is enough to allow an EGFL corruption.
This means there's a 1/32 chance to have the good value positioning inducing an EGFL corruption.
-The second one involves Pokemon Corruption. Even if the corruption only concerns the leftmost byte of any double-word, it's enought to be able to completely manipulate a Pokemon's data. If you corrupt its PID, you will swap substructures order and obtain a completely different Pokemon, without the checksum noticing it. (anti-cheat algorithm detecting a manual data modifiation) But this corruption involves having specific Moves and EVs, which would take too much time. So we are directly corrupting a Pokemon's data, even if it becomes a Bag Egg. Castform was an ideal Pokemon since it's given just before Fortree, allowing you to manipulate the order of its substructures, and the values of some of its data.
The data we want to corrupt is Move identifiant to get a certain Glitch Move. There are 354 moves in 3rd Generation. Any move with an identifiant higher than 354 will have its characteristics read on ROM adresses not affected for this, meaning that this move can have nearly any combination of characteristics. ex : Move with a sleeping effect, Dragon type, 241 Base Power, 115 PPs, 130% Precision, 187% of Effect Precision, and a Priority of 15.
Glitch Moves names are also read on data that wasn't supposed to be a name, so they are often way too long than basic names. The Glitch Move name can have an important impact on battles, because when the Move selection is opened, Moves names are stored into RAM. And if the name is too long, then it will still be stored, and this will overwrite some other values managing the battle. One of there values manages the battle type (wild, trainer, double, Battle Frontier, Dojo, Palace, Safari Zone).
Depending on the glitch Move, you can find yourself with a combination of Battle types that completely messes the battle (double + Palace + Safari Zone for example), or simplifies it (wild battle means that you can flee).
There is also an hidden battle type that was used for development that ends any battle as soon as B is pushed. Glitch Moves with this effect, known as Instant Flee Glitch Moves, are complete speedrunning deities.
There are several moves that, once corrupted, have this effect. A move identifiant is something like 0x00B5. This can be corrupted into 0x01B5, 0x04B5, 0x05B5 or 0x40B5 depending on the Pokemon PID and TID (they "crypt" the rest of the data to avoid easy cheating).
In the run, we are using Castform's Powder Snow (0x00B5) to obtain Instant Flee Glitch Move 0x04B5. Castform must have its Moves substructure placed first, and the leftmost byte of PID xor TID must have its Bit 0 set to 1 and Bit 2 set to 0. Also, he must be put in Box 1 Place 4 with Powder Snow in second position in order to get 0x04B5 Glitch Move along with EGFL.
Once Castform is corrupted, it turns into a Bad Egg. But if we withdraw it, it will take the position of the "last Pokemon seen alive in battle". And glitching the Pokemon selection pointer renders the game unable to find the Pokemon to heal when we black out, so we can keep a party of KO Pokemon after using Pomeg Glitch.
Thus, after withdrawing Castform's Bad Egg, if we make a battle, the Bad Egg will be sent out to fight. He will have an Egg sprite, an odd Level, but he keeps its moves, so he still has the Instant Flee Move 0x04B5. This means that every battle after Pomeg Glitch will be completely wrecked, saving a lot of time on Victory Road + League.

Luck Manipulation

Like any Pokémon game, knowing how to luck manipulate correctly (and therefore knowing its RNG mechanics) is very important. I have to thank FractalFusion for collecting most of the RNG information used for this run and making the lua scripts as well as mkdasher for modifying it.

RNG Mechanics

Using scripts that cover how many times the RNG was called in the past frame, and which values, I was able to find other stuff. Starting Pokemon stats is easy enough to find. Of course, I was looking for stuff that could be applied many times in the run. And I found a lot.
Critical hits was by far the most important in my mind. In general, an attack results in a critical hit if the fourth digit of the RNG value at the time of determination is 0. Easy stuff there. Furthermore, 7 RNG values later is damage variation. I know "damage variation" sounds like peanuts compared to critical hits, but believe me, it is very important in this run. Damage variation works as such: The fourth digit of the RNG value functions as a damage scaler. If it is 0, damage is applied at full 100%; if 1, 99%; if 2, 98%, and so on (if F, 85%). 0 is the only digit that gives the max damage; all others reduce it by at least 1. So if manipulating critical, or max damage, alone is hard, imagine manipulating both of them together.

Battle luck manipulation

It is important to know how RNG determines critical hits, misses, side effects, etc.
Critical hits are determined just after the “X used Y!” message, and right after, damage percentage is determined (from 85% to 100%). There’s a chance of 1/16 to get a critical hit, 1/16 to get a max damage hit, and 1/256 to get a critical max damage hit, which is necessary sometimes on this run. (And obviously quite hard to luck manipulate).

How to Luck Manipulate:

None of the above would have been of any use if I didn't know how to luck-manipulate properly. First of all the text has to be mid speed (or slow, but definitely not fast). The reason is that, first of all, mid speed can be scrolled as fast as possible just by pressing and holding buttons. But beyond that, the problem with fast speed is that the text speed cannot be scrolled at will. Then you have to manipulate a whole bunch of events all together as a group, rather than separating the events by mid-speed text that can be sped up and slowed down at will. Normally, when luck-manipulating something, I first TAS to find the fastest way through a battle. Once I have found that, I go back and redo it, patching it up to make it look better (waiting doesn't look very good).
Note that in battle (except in subscreen menu), the RNG goes forward at 2 per frame. Sometimes, it is better to delay one frame before battle to switch the parity of the RNG. The parity can be controlled in certain cases, like when accessing the subscreen menu, or due to some weird occurrence, usually coincident with AI matters.

Manipulating IV’s (Mudkip)

The main RNG seed is generated just after choosing a name for your character (“U” in my case). This seed would determine how good my Mudkip could be.
Another important thing is that, the seed is the thing that lets me get the IVs I want for Mudkip.
So, after getting this seed, the IV's I could get for Mudkip:
Mudkip IV's: HP: 12, Atk: 31, Def: 19, Sp.Atk: 31, Sp.Def: 6, Speed: 9 with the Quiet Nature (+sp.atk/-speed)

Route planning

From the start of the game up until after the Weather Institute, the routing was similar to the Ruby TAS. There are some changes between the Ruby TAS and this Emerald TAS. Barring the obvious game differences/enhancements between R/S and Emerald, the runs themselves are not the same.
Some of these changes are as follows:
  • Zigzagoon is not used in the Emerald TAS.
  • Taillow/Swellow is not used in the Emerald TAS.
  • Abra is found earlier in the game.
  • View radius for some trainers are different in Emerald which makes some battles mandatory in the run in comparison to Ruby, such as the Bird Trainer in Fortree Gym.
  • An alternate path through Victory Road is required in the Emerald TAS due to no access to HM07 Waterfall.

Run info

Beginning

At the start, I change my setting around due to "animations" being present in Emerald now that weren't a thing in R/S. When choosing the name, I needed to delay a few frames for the right starting seed. I also named the character "U" for two reasons: one being due to viewing it in the long run, it would say "U received Y" with "U" meaning you the viewers as opposed to I referring to myself, the runner. The second reason was when I first thought about the name, the name "Yuu" came up and because of that name being 3 characters long, I decided to shorten it to just "U" which would sound just the same but shorter. At the very beginning of movement, you can hear a "bump" sound when I'm inside the truck. You can hear the same thing when I stop talking to the rival's mother later. It is faster to do this rather than turning as fast as possible without bumping (A comparison vid can be found here). This trick will be used in all the run.
Once I get the Mudkip, I proceed through the tutorial battle against the Wild Zigzagoon (Poochyena in R/S). Just like in R/S and the first turn of FR/LG, you cannot get any critical hits in tutorial battles. Once over, I proceed to Route 103 to face Brendan. This battle goes by quickly so moving on back to Littleroot Town because Brendan told us so. Got the Pokédex from Birch, the 5 Poké Balls from Brendan, and the Running Shoes from Mom before finally leaving again. Everything else was pretty much straightforward.

Petalburg City

First thing done was entering and leaving the Pokemon Center to set a Teleport point for later on before entering the gym. Spoke to Dad (Norman), the gym leader and our conversation gets interrupted by that blasted Wally. He wants a Pokemon but doesn't know how... So I am sent to go help him catch a Pokemon. Took this time to manipulate the borrowed Zigzagoon's IVs and nature for helping us out.
Zigzagoon IVs: HP: 7, Atk: 28, Def: 10, Sp.Atk:24, Sp.Def:6, Speed: 7 with Naughty nature (+Atk,-Sp.Def)
Back at Route 102, we walk into the grass and we proceeded to manipulate the IVs and Nature of the wild Ralts to have low HP & Defense IVs with a -Def nature. Two max damage Tackles were enough to 2HKO the tutorial Ralts, but the game treats it as a capture anyway. Returning to the gym, Wally returns the borrowed Zigzagoon before leaving and I followed afterwards as Dad will only battle after I get 4 badges. So after listening to this stalker, I head towards Petalburg Woods where I encounter a guy looking for a Shroomish, only to be ambushed by a Team Aqua Grunt. Being a good person, I defeated the Aqua Grunt with 2 critical Tackles and 1 normal Tackle. After saving the Devon employee, I receive a Great Ball and pick up an Ether before exiting the woods. Rest is straightforward.

Rustboro City

Starting off by entering the Trainer School, getting the Quick Claw as it lets a Pokemon go first (with the right manipulation), and giving it to Mudkip before going into the gym. At the gym, we battle Youngster Josh for the experience (EXP) and took out his Geodude with 3 critical Mud-Slap for the double level up so Mudkip can use Water Gun while being in Torrent range thanks to the first Tackle from it. Next is Gym Leader Roxanne... nothing really special here. Got the Stone Badge and TM39 Rock Tomb from her, then left the gym. After leaving the gym, the same Devon Employee guy from before is in pursuit of that Team Aqua Grunt from Petalburg Woods as the grunt managed to steal the Devon Goods from him. Bumbling idiot! So as I am heading towards Route 116 when the Devon guy stops me to..pretty much want me to help him again to avoid him getting in trouble by Mr. Stone... so having no choice in the matter, I set out into Route 116 so I can get the Goods back from that no-good thief! This is where I capture the Abra and after doing that, make it to Rusturf Tunnel where that Grunt is now holding an old man's Wingull hostage. *Gasps* ...anyway, I confront the Grunt and defeated him a second time. Now the Wingull is free and I have the Goods back! So I return to Rustboro City to give the Devon Goods back to the employee only to get sent on 2 more errands! After testing the Match Call feature for Devon, I have Abra teleport me back to Petalburg City, which saves time as opposed to revisiting Petalburg Woods again and also having to be forced into a Double Battle with the Twins on the bridge. Back at Route 104, I catch Marill to use as a HM Slave and left Brendan at the entrance to Mr. Briney's hut.

Dewford Town

Here, I go to Granite Cave first to take the Letter to Steven and picked up the Escape Rope near the stairs since I didn't buy anything earlier on. Once done with the Letter delivery, I used the Escape Rope that was picked up earlier and left the cave onwards to the gym. In Emerald, the gym Layouts are different so I didn't have to face any trainers at all so I could get to Brawly without any problems. Not much else to note except this being the point when Mudkip evolves into Marshtomp. Got the Knuckle Badge and TM08 Bulk Up from Brawly and proceeded onwards to Slateport City.

Slateport City

Nothing really noteworthy happened in Slateport so moving on to Route 110. Another thing that differs between R/S and Emerald is the additional trainers and repositionings of the ones from R/S. Walking in between them will result in a Double Battle, which would be far slower due to both of them having a Plusle and a Minun each along with them both spamming Helping Hand so taking the two PokéFans on individually is faster. After dealing with those two, I take on Brendan again but not before adjusting my team so that Marill is sent out first. Now onto the battle! I had to manipulate a critical Rock Throw from the Slugma to KO Marill and a normal Ember was enough to KO Abra. I needed them both KO'd set things up for the Pomeg Berry Glitch later. With that done, I proceeded to let Marshtomp finish things. After that, I had to face another 2 trainers in which one of them was able to be avoided in R/S but cannot avoid in Emerald due to the additional Double Battle bit that the game has. Took care of them and moving onwards to Mauville city.

Mauville City

The first things done here are getting both HM06 Rock Smash and Mach Bike. I move Marshtomp back to the front of the party before teaching Marill Rock Smash. During this time, I register the Mach Bike and use it in that menu and proceed on. Of course we deal with that pesky Wally and afterwards have to listen to that stalker named Scott, whom introduced himself earlier in Slateport City. Now that the distractions are out of the way, onwards to the gym! The gym pattern this time doesn't seem to be much different that I noticed so after beating the Youngster, I face the Gym Leader Wattson. Quick Claw manipulation was key in this battle and while the other 3 Pokemon were taken down with normal Mud Shot, the Manetric needed a critical Mud Shot to be KO'd. Got the Dynamo Badge & TM34 from Wattson and with that, I take my leave from Mauville City...for now anyway. Everything from that point up until Route 113 is about the same as before. In Route 113, I proceed to catch a Skarmory to use as my Flier. Moving on to Route 114, I waited a few frames before dismounting the bike and battling the Hiker. In the battle, I manipulated a critical Ember to KO Skarmory as it wouldn't have KO'd otherwise. Took care of that and from there, nothing really important happens so see you at Lavaridge Town!

Lavaridge Town

Finally made it to Lavaridge Town and unlike the test TAS, I didn't visit the Poké Mart and went straight ahead to the gym. This gym's pattern is pretty simple that I make it to the Gym Leader easily. Haii Flannery! <3 ...sorry, couldn't resist! So onto the battle! STAB (Same Type Attack Bonus) Torrent Super Effective Water Gun makes quick work of the first 3 Pokemon. Her ace Pokemon, Torkoal, on the other hand required a critical to go with it. Got the Heat Badge & TM50 Overheat from Flannery-chan and after listening to that jerk, Brendan, indirectly call us weak, we use Abra's Teleport to go back to Petalburg City.

Petalburg City (revisit)

At Petalburg City again, we decide to buy 1 Potion and 1 Super Potion for later on at the Poké Mart before visiting the gym. Once I get inside the gym, I take this time to use the Potion so I can live a hit from Cooltrainer Mary's Delcatty and whatever other weaker move there is. The gym layout itself is pretty much the same as R/S so moving onto Dad's room! This is one annoying battle and I'm glad that it's the last one before the real fun begins. Mud-Slap was very helpful through this battle as it prevented his Pokemon from KO'ing Marshtomp! It was basically critical Mud-Slap then critical STAB Torrent Water Gun for his other Pokemon until it came to his Ace Pokemon, Slaking. Starting that one was a critical Mud-Slap and manipulated the miss and thanks to Slaking's Truant ability, it can't attack every other turn. So I take advantage of those times to hit Slaking with critical Mud-Shots and Water Gun. I switched over to Tackle on turn 5 of the Slaking fight to avoid the Hyper Potion heal from Norman and since Faint Attack is weak on Slaking due to Dark-type moves being Special in Generations 2 & 3 as well as Slaking having a Base 95 Sp.Atk stat, I was able to live with 2 HP. Finished it off with a critical STAB Torrent Water Gun and that's all! Got the Balance Badge & TM42 Facade from Dad and get Surf from Wally's dad as a gift for dealing with his pesky son. Now that we are done with all of that, it's time to start preparing for the Pomeg Berry Glitch! First off, I need to have a Pokemon brought back to life for the next battle so I teach Marshtomp Surf (replacing the empty Water Gun) and pick up the hidden Rare Candy below Petalburg City. Used the Rare Candy on Abra since Abra doesn't learn anything until after it evolves and proceeded onto Route 103 to face the Twins Amy & Liv as they are needed for glitch setup. I managed to manipulate the Plusle to use Quick Attack on the Abra while I used Surf the move after to KO both in turn 1. Now with that done, I move on and grab the hidden Full Heal in Route 110 for later on before going back to Mauville City.

Mauville City (revisit)

As I stated before, I was going to end up back here again eventually so time to break down what goes on here. First, I set the new Teleport Point here and leave again for Rusturf Tunnel again. Next, I defeat the Hiker that is sitting there before getting HM04 Strength from Wanda's boyfriend. In R/S, Hiker Mike doesn't bother you on the 3rd Square of his view radius. This was fixed in Emerald so now he will spot you if you try to go on his 3rd view square. So after getting HM04 Strength from Wanda's boyfriend, I go into the secondary section of Route 116 to grab the HP Up there. Now I use the HP Up on Marshtomp and teach Strength to Marill before using Teleport to return to Mauville City (yet again...). After returning to Mauville City, I leave again for the last time and battle the two trainers in the way in Route 118 before making it to the Weather Institute. After kicking Team Aqua out of the Weather Institute, I manipulate the Castform to have the needed value for the Pomeg Berry Glitch coming up and leave here so I can get to Fortree City. Before that though, I use the Super Potion and Ether here so Marshtomp can use Surf again as well as have enough HP for the next step. Again, Brendan shows up late like always and wants to battle. Not much to say there. Now for the next important step, I needed to battle Ninja Boy Hideo and manipulate the Poison Gas from his second Koffing to hit so I would have enough HP to move around with while Poisoned. After this battle, I pick up the Pomeg Berries next to Hideo before entering Fortree City.

Fortree City

Alright, finally made it to Fortree City! Like with Petalburg City and Mauville City, I set a Teleport Point here and proceed over to Route 120 to meet Steven & the wild Kecleon that he wants me to battle. In this one, I switch to Kecleon and moved Powder Snow to the second slot before fleeing the battle. Afterwards, I teleport back to the Pokemon Center to deposit the Castform for the glitch and moved the Kecleon blocking the gym before going to Route 119 again. Once in Route 119, I use the Full Heal to heal the Poison and used a Pomeg Berry on Marshtomp (who is at 1 HP now) to trigger the Pomeg Berry Glitch. Now I needed to manipulate a wild encounter with the value of 07DF8F87 for EGFL. Once I got it, I needed to to make it change to value 47DF8F87 before "losing" the battle. Now that everything else is done, I go back into the Pokemon Center to withdraw the Bad Egg and go to the gym. The battles from this point on are very short thanks to the Bad Egg having a corrupted move which makes battles end instantly once the B button is pressed after the moves are revealed. With that said, breezed through the gym, got the Feather Badge & TM40 Aerial Ace from Winona, and left the gym. Once outside, I teach Skarmory Fly and use it to fly over to Ever Grande City. We are nearing the end!

Ever Grande City

Victory Road is interesting this time around as without HM07 Waterfall & the Rain Badge (Badge 8), we can't take the normal route through here. So thanks to the Bad Egg, the battle with that pesky Wally is even shorter now and same goes for the other battles. Other than the path change, everything else is nearly the same. Moving on to the Pokemon League portion! I only have 6 Gym Badges.. I won't be able to get in! Or am I? The two guys standing guard of the Elite Four entrance let me through anyway and in all honesty, they should both be fired for it! Anyway, Elite Four & Champion battles are quick thanks to the Bad Egg and with that said, this run is over!

Special Thanks

I have to thank FractalFusion for his knowledge of the games, starting with the Ruby TAS! I learned a lot from him!
I also must thank mkdasher for his help and assistance during the glitch portions as well as providing additional support.
Major thank you to Metarkrai for helping me and sharing his knowledge of the Pomeg Berry Glitch! If not for him, I probably wouldn't have finished this run at all so thank you very much!
Even if he didn't directly involve himself in the TAS production, I want to thank Werster for RTAing Emerald and kind of giving me a guide through some sections of the run.

More Thank Yous!

I want to also extend my thanks to the following:
  • Toothache42
  • Patashu
  • Noxxa
  • Gamer Maiden Sonia
  • Ranko Hoshino
  • Spikestuff
  • Kooper Koushiro
  • Gargleflop
And thank you all, the viewers and supporters, for everything!

Noxxa: Judging.
Noxxa: There are some minor technical slip-ups present, mostly in bicycle movement/luck manipulation, but it's not significant enough to bring the whole run down. Besides that, it's a good run and is well received. Accepting to Moons.
Spikestuff: Publishing...

Skilled player (1150)
Joined: 5/11/2011
Posts: 425
Location: China
^v^ I remember this pokemon and the bad egg is always happened on the hack rom.
Joined: 1/6/2012
Posts: 51
Location: France
jlun2 : In order to make an ACE, you need to use a certain glitch Pokemon. There's not a ton of research onto this, so we only know 1-2 identifiants that work thanks to TheZzazZ (or people he worked with). In order to obtain a specific Glitch Pokemon, you need to have specific Moves, Evs, or Pokerus + Met Location. The required identifiant wasn't obtainable with Moves or Pokerus (not quickly obtainable), and it would also take too much time to EV a Pokemon. Thus, this rechnique is slower than running through Victory Road. mtvf1 : Nice screen captures. I really like the nonsensical Move names / descriptions that are the cause of a single Glitch Move. Glitch Moves have a few nice ways to crash the game beautifully, so I like them pretty much. (Glitch Pokemon are more stable than Glitch Moves) Now that there are some Glitch strategies to run Emerald, the nice thing would be to make like Red/Blue, a 100% run (4 Stars), as Pomeg Glitch can reduce tremendously the required time to do it on console (Battle Frontier, Contests, and Regional Dex).
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Curious how this is one of the few times jumping to the credits directly is slower lol.
grassini wrote:
GodessMaria,do you ever plan on testing the japanese ruby sapphire versions?you mentioned u can skip a lot of badges in the endgame check at ever grande and the japanese versions can walk through water with a glitch and possibly reach lilycove faster(thru slateport)?
iirc walking on water requires diving, and I'm not sure if there's any dive points for slateport. But I could be wrong. Speaking of badge checks, does that actually exist, or did you corrupt memory to say you "got the badges" despite the contrary?
Joined: 6/6/2004
Posts: 223
jlun2 wrote:
Speaking of badge checks, does that actually exist, or did you corrupt memory to say you "got the badges" despite the contrary?
Each badge enables the use of one HM move, and the game is designed so that in the normal course of the game, the player will have to use most of those moves to get past obstacles. The only HMs that don't have any effect on the player's short-distance mobility are Flash and Fly, so in theory the player could follow the normal route without getting the badges that unlock those moves. For some inexplicable reason, the game only checks against those two non-essential badges instead of all 8, and indeed the last thing that happens in this run before going to the end is that the character picks up the Fly badge.
Editor, Skilled player (1939)
Joined: 6/15/2005
Posts: 3247
On GoddessMaria's twitch.tv stream, I saw the making of the last part of the TAS (where all the glitching was). Interesting glitch going on there. I find it interesting how one can use the game's "anti-cheat" corruption tool to corrupt RAM and, well, cheat one's way to victory. I looked at how the glitch works a little bit, but I am not familiar with it. Might take some more time to figure out. It seems though that it is faster to scroll the glitched Pokemon menu selector (the one where "cancel" is highlighted) by alternating up instead of holding up. I was also impressed by the manipulation for Mudkip's IV and the Ralts tutorial glitch, without needing my help. That being said, it's probably just me being too experienced with TASing this generation of games, but I wasn't impressed with much before the glitch, or much afterward. Afterward is unavoidable, but once you see one battle, it's pretty obvious what is going to happen in the rest of them. There are a few things that I noticed could be improved: - The path picking up the Ether and leaving in Petalburg Woods is not the shortest possible. - In the first battle in Norman's gym, Mud Shot is used, and then Water Gun. Water Gun should be used first, because Mud Shot makes an effect if it does not KO the Pokemon. - In the last battle against Brendan, Pelipper should be manipulated to use something other than Protect. - I'm not sure clearing the Kecleon outside Fortree Gym before doing the corruption is faster. Biking is 4 times faster than walking, so it should be possible to lose HP quickly by biking, faster than the time it takes to walk back and forth on the Fortree steps. - I noticed wall bumping going on as manipulation to avoid encounters. This is OK when running/walking, but it loses a lot of time when biking. Going back to the last frame when starting the biking motion, and starting one frame later is probably best. Even taking a couple extra steps to bike (going back and forth) is better although it costs 8 frames. In any case, I think the run could also be improved by using a different main Pokemon for battle and perhaps some X Attacks, but Emerald is somewhat tricky, so some study would have to be done regarding this.
Mr. Pwnage wrote:
For some inexplicable reason, the game only checks against those two non-essential badges instead of all 8
I think gym 2's badge is essential to get to that point. I think you need it to activate Norman's gym (gym 5). I know though that gym 6's badge is non-essential, and that the badge check will reject you if you try to enter without it.
grassini wrote:
you mentioned u can skip a lot of badges in the endgame check at ever grande and the japanese versions can walk through water with a glitch and possibly reach lilycove faster(thru slateport)?
I don't know about this glitch. Do you mean the walk-on water glitch using Dive? Because that exists in English versions as well, and you still can't walk through boundaries.
Joined: 1/6/2012
Posts: 51
Location: France
jlun2 : With Pomeg Glitch, you can corrupt the flag area, but you can't corrupt everything. For badges, you can unlock up to 3 of them with corruption (since 3 different bits can be set on a certain double word with different corruptions), but they aren't useful badges (not badge 6), so it's not used. I worked on the glitch during my whole summer holidays, and tired to find every little eploit, but in term of flags, there's nothing that can help the EGFL : you can't freely corrupt map location (except with ACE, but the current procedure is too long), you can't obtain Fly Badge faster, you can't unlock Pokemon League Fly Location. The other useful flag that can be corrupted is the Mystery Gift Delivery Man giving you a Southern Island ticket. You can corrupt the timer for 1st League Victory, which would add a star to your trainer card, but this has no value as a real "ending" to the game (no credits, no hall of fame). You can also alter the NPC Position and script, making them disappear from map or have a loong glitched text leading to a fight/freeze, but since you need to make a wild battle in the map where you want a NPC to disappear, you can't make it everywhere, and it has no use to the run. But it allows you to make the Day Care man disappear and access the Day Care garden ! The last blurry area of Pomeg Glitch is ACE. If it can be better understood, and other Glitch Pokemon / Moves enabling it are found, one of them might be quickly available, and the Map Adress corruption would be faster. But then, I'd really like a code for gaining the Gold Symbols, the complete Regional/National Dex, and the Contests wins, because having a coloured trainer card is so cool (and hard to do).
Experienced player (647)
Joined: 5/16/2009
Posts: 235
"Used the Rare Candy on Abra since Abra doesn't learn anything until after it evolves and proceeded onto Route 103 to face the Twins Amy & Liv as they are needed for glitch setup." Can you explain this? Why are they needed for the setup?
Joined: 1/6/2012
Posts: 51
Location: France
-The first one is Ever Grande Fly Location (or EGFL). This flag can be raised with the Second Corruption, meaning that you can directly Fly to Ever Grande, and only Victory Road + League remain. Also, Pomeg Berries are found in Route 119 and 123, right before Fortree, so Pomeg Glitch can start right next to the 6th Gym. Also, at League, the guards only check the optional Badges to let you go. Since these Badges are Badges 2 and 6, we already have them when we fly towards Ever Grande. Skipping everything between Fortree and Victory Road nearly halves the run in two. Since second corruption is involved, there is a setup to do before being able to corrupt this flag. There are 4 possible values that, being read as PID, can influence the Pointer to corrupt the Fly Location Flags and raise EGFL. These values are all Trainer flags, so they can't be well manipulated into a run where you would only be ar Fortree. During a speedrun, when arriving at Fortree, none of these values allow an EGFL corruption. Hopefully, one of these value manages Twins / Couple Battles, and fighting Route 103 or Route 104 twins (only one of them) is enough to allow an EGFL corruption.
A route 103/104 twin fight is needed to be able to corrupt EGFL. And a party Pokemon needed to be revived in order to start the fight, so Abra was chosen since Marill would have learnt a new move by levelling up. This thing was what blocked werster when he first tried to route plan the glitched run (he spent 2 hours trying to corrupt EGFL in vain).
Experienced player (647)
Joined: 5/16/2009
Posts: 235
Okay, I missed the Twin thing there, thanks.
PCachu
He/Him
Joined: 10/1/2009
Posts: 166
Team Aqua and Team Magma are trying to destroy the world in their misguided efforts to better it! lol, don't care, champion now, suck it Wally.
Editor, Experienced player (608)
Joined: 11/8/2010
Posts: 4012
Very nice run, GoddessMaria! It was an entertaining watch, especially after the glitch happened, and you did really well with all the luck manipulation and precise RAM corruption. Yes vote!
Fortranm
He/Him
Editor, Experienced player (780)
Joined: 10/19/2013
Posts: 1115
Totally impressive. Using Swellow is not the fastest route for Emerald? Is it because of the double battles so the main battle Pokemon would better be able to learn Surf?
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14879
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. ---- [2705] GBA Pokémon: Emerald Version "Pomeg glitch" by GoddessMaria in 1:19:52.87
Joined: 5/8/2010
Posts: 177
Location: Entropy
Wth, this went under my radar. I guess this is what happens when I'm super busy for a few weeks, just a great run.
Editor
Joined: 11/3/2013
Posts: 506
Fortranm wrote:
Totally impressive. Using Swellow is not the fastest route for Emerald? Is it because of the double battles so the main battle Pokemon would better be able to learn Surf?
I think there's a few factors - skipping more of the fights, and having to faint an extra Pokemon, both make it less worth picking up another unnecessary Pokemon; luck manipulation differences probably play a factor too (IIRC luck manipulation runs differently in this version so rare events like encountering an ideal Taillow or manipulating a King's Rock from Pickup are probably out of the question). Double battles come into it a little bit too.
Editor, Skilled player (1939)
Joined: 6/15/2005
Posts: 3247
Fortranm wrote:
Totally impressive. Using Swellow is not the fastest route for Emerald? Is it because of the double battles so the main battle Pokemon would better be able to learn Surf?
I don't know if GoddessMaria tested it or not. There are a few things that make the use of Swellow difficult, the biggest of which is probably Wattson. In Emerald, all his Pokemon have Shock Wave. There's also no getting King's Rock from Pickup like in Ruby/Sapphire, or any Rare Candies for that matter. Note that Swellow learns Fly, so it won't cost an extra Pokemon to catch. In any case, it is worth exploring which other Pokemon are good candidates.
Fortranm
He/Him
Editor, Experienced player (780)
Joined: 10/19/2013
Posts: 1115
http://bulbapedia.bulbagarden.net/wiki/Pickup There is no level 10+ wild Zigzagoon in the game?
Editor, Skilled player (1939)
Joined: 6/15/2005
Posts: 3247
Fortranm wrote:
http://bulbapedia.bulbagarden.net/wiki/Pickup There is no level 10+ wild Zigzagoon in the game?
The only wild encounters for Level 10+ Zigzagoon are Route 118 and 119, both of which are too far ahead in the game. (Ruby and Sapphire have such encounters earlier in the game, on route 110).
Joined: 1/6/2012
Posts: 51
Location: France
The main Pokemon also needs enough Base HP to gain 1 HP with an HP Up at Fortree. In the run, Marshtomp had 7 HP Ev before taking HP Up, so the Pokemon needs to gain 1 HP with 8-15 HP Evs at Lv 30-35. Marshtomp has 80 Base HP, and Swellow 70, so Swellow should work. Also, would Pokerus be useful or not ? You would need less criticals with a stronger Pokemon (more damage, stronger moves earlier), but the experience gain animation would be longer (more text with "bonus", and more experience).
EgixBacon
He/Him
Player (181)
Joined: 4/15/2013
Posts: 331
Location: In the attic
Metarkrai wrote:
The main Pokemon also needs enough Base HP to gain 1 HP with an HP Up at Fortree. In the run, Marshtomp had 7 HP Ev before taking HP Up, so the Pokemon needs to gain 1 HP with 8-15 HP Evs at Lv 30-35. Marshtomp has 80 Base HP, and Swellow 70, so Swellow should work. Also, would Pokerus be useful or not ? You would need less criticals with a stronger Pokemon (more damage, stronger moves earlier), but the experience gain animation would be longer (more text with "bonus", and more experience).
I'm pretty sure Pokérus doesn't cause you to gain more EXP. You gain 2x EV points from each defeated poke, but not more EXP. Perhaps you were confusing it with the Lucky Egg?
FanFiction|Youtube Still on Win7! Take that, Microsoft!
Joined: 1/6/2012
Posts: 51
Location: France
EgxHB : Thanks for correcting me ! I thought that Pokerus doubled both Experience and EVs. So yeah, he's not really useful to the run (too few battles and Levels to have a great stat difference with EVs gained).
Active player (434)
Joined: 2/5/2012
Posts: 1688
Location: Brasil
FractalFusion wrote:
grassini wrote:
you mentioned u can skip a lot of badges in the endgame check at ever grande and the japanese versions can walk through water with a glitch and possibly reach lilycove faster(thru slateport)?
I don't know about this glitch. Do you mean the walk-on water glitch using Dive? Because that exists in English versions as well, and you still can't walk through boundaries.
https://www.youtube.com/watch?v=_JCUkA0UWJg&list=UUZz2ixp-5T6VeAPtAMQ5v5Q
TAS i'm interested: megaman series: mmbn1 all chips, mmx3 any% psx glitched fighting games with speed goals in general
Experienced player (647)
Joined: 5/16/2009
Posts: 235
Metarkrai wrote:
EgxHB : Thanks for correcting me ! I thought that Pokerus doubled both Experience and EVs. So yeah, he's not really useful to the run (too few battles and Levels to have a great stat difference with EVs gained).
Pokerus is definitely useful, since you would skip getting the HP UP (and of course, using it).
Active player (434)
Joined: 2/5/2012
Posts: 1688
Location: Brasil
more information about tile corruption on glitchcity http://forums.glitchcity.info/index.php/topic,7002.msg196093.html#msg196093
TAS i'm interested: megaman series: mmbn1 all chips, mmx3 any% psx glitched fighting games with speed goals in general
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
1. Is the options faster to use ingame rather than the start screen? 2. The previous Sapphire TAS mentions this:
A thing I recently discovered is that if I enter an area and the music fades, the game waits for it to fade before loading the next area. This is an issue with the bike since its song fades to the normal area song. Getting off the bike immediately loads the normal area song, so I can do that and run into the next area. Also, between two areas that change songs, before the transition, I can use the bike to get the current song to fade, so the game doesn't have to wait as long before it fades completely. The fadeout issue explains the occasional bumping against walls in the run.
Does that not apply here? 3. After getting HM Surf, is it faster to do double battles rather than single battle twice? An example would be at the weather institute; wouldn't it make more sense to use surf twice, killing ball 4 pokemon rather than 4 times? Same with the victory road part with bad egg. 4. iirc the pokemon center doesn't have that fadein if you plug in the wireless adapter. I'm not sure how that would be implemented on VBA due to lack of development, but maybe for BizHawk? 5. Wouldn't it be faster to deposit almost all you pokemon before the E4? The best time to do that seems to be during Fortree city.