Submission #1517: FractalFusion's GBA Pokémon Sapphire in 1:36:44.28

Game Boy Advance
(Submitted: Pokémon Sapphire)
Pokémon - Sapphire Version (U) (V1.0) [!].gba
Submitted by FractalFusion on 4/10/2007 11:13 PM
Submission Comments
FractalFusion's Pokémon Sapphire in 1:36:44. It is 12:32 faster than the published run, due to strategy changes and better precision.
This run is updated from a previous run. To see the changes starting with the last Pokemon of the fourth last battle, start from this savestate:
This run uses VBA rerecording 19.2, with real-time clock and Flash 128K. It has been reported (at least for the published run) to work on the following ROMs:
  • Pokémon - Sapphire Version (U) (V1.0) [!].gba
  • Pokémon Sapphire (U) [hIRff]
  • Pokémon Sapphire (U) [h1] (Clock)
Important: This run uses real-time clock, unlike the previous submission.
If you feel like, put it on 200% speed.


  • Uses no predefined saves
  • Aims for fastest time
  • Takes damage to save time
  • Manipulates luck
As far as I know, there are no programming errors apart from direct hardware/memory manipulation.

About the game and the run

Pokémon Sapphire is a turn-based move game where stats (Level, HP, Attack, Defense, Speed, Special Attack, Special Defense), types, and type class (physical, special) are important. There are many items, such as TMs and HMs to teach moves, event-specific items, held items that influence battle (e.g. an item that gives you a chance to strike first even if slower), and the bike. Some of these items are necessary to complete the game.
These are the main differences of Sapphire/Ruby compared to Gold/Silver:
  • Pokémon now have Pokémon abilities. These abilities vary widely. For example:
    • 1.5x boost on Water/Fire/Grass moves when at 1/3 of max HP or lower.
    • 1/16 max HP damage on an opponent who hits with a contact move.
    • Prevention of stat reduction by opponent.
    • Immunity to Ground attacks/paralysis/sleep/confusion/attract/freeze/critical hits.
    • Chance for status effect or condition on an opponent who hits with a contact move.
    • Lowering of opponent's Attack when user enters battle.
    • Constant rain/sun when user enters battle.
  • Pokémon have Pokémon natures. A nature either has no effect, or raises one stat by 10% while lowering another by 10%.
  • There are now 6 IVs (formerly, DVs), one for each: HP, Attack, Defense, Speed, Special Attack, Special Defense. Each IV goes from 0 to 31. The higher, the better.
  • You get the running shoes very early, which lets you run as fast as you can bike in earlier games; however, trainers that look around will look in your general direction if you run near them.
  • The bike goes twice as fast and has start-up acceleration delay.
  • Messages waste about 1.5 seconds, regardless of whether it is a critical hit, missed attack, SE/NVE, status effect/condition, and others, which is much longer than in earlier games. Also, on fast text speed, these messages cannot be advanced by your control, which makes sub-fast text speed essential.
Why is there gender? I don't know, because in this run, gender is pointless. Same for shiny Pokémon. It could be argued that gender is useful in that it allows an opposing Pokémon of the opposite gender to use the useless move Attract, when it would not otherwise.
Also, I heard of something called PokéRUS, which speeds up EV training. For the purposes of this run, I do not consider it to exist.
The differences between Sapphire and Ruby are much greater than those for the first two prototypes of the first two generations of games. In Sapphire, you fight against Team Aqua, and in Ruby, you fight against Team Magma. Team Aqua is distinguished by the Water/Dark Pokémon Carvanha/Sharpedo, while Team Magma uses the Fire/Ground Pokémon Numel/Camerupt. Both have advantages and disadvantages; Carvanha/Sharpedo has low defensive stats compared to Numel/Camerupt, and is not as likely to cause SE/NVE messages, but has no double-weakness to Water (or anything) and has the aforementioned contact-move counter-damage ability, which may cause an extra message that wastes 1.5 seconds.
The other difference is the legendary, the Water Pokémon Kyogre in Sapphire and the Ground Pokémon Groudon in Ruby. Both have the constant weather-effect abilities listed above. Kyogre is more useful as it learns the Waterfall HM and has high Special Attack for its weather effect. Unfortunately for both legendaries, the weather effect causes extra messages.
Pokémon Emerald, on the other hand, is a mixture of Sapphire and Ruby in that you get to fight both Team Magma and Team Aqua in the same game. Also, double battles are often forced in this game, usually if you get two trainers to gang up on you. Why can't you pair up with someone? Well, you can in that game, but only on one occasion. The final champion in Emerald is a former gym leader in Ruby/Sapphire. Finally, you can get the legendary Rayquaza, but it requires a diversion from the normal route that takes time.
Luck manipulation is a huge factor in this game. It affects damage variation, critical hits, first-turn attack, hit accuracy if not 100%, the Magnitude attack, opponents' attacks (to some degree), opposing trainers' Pokémon order (to some degree), out-of-battle encounters, random trainers' looking direction, random walking people's movement, wild Pokémon's IVs, catching wild Pokémon, and others. Some opposing strategies can be luck-manipulated but opponents will play weaknesses when they can. In an opponent's Pokémon order, the first Pokémon is always fixed.
I use mid text speed. This allows control on text speed, making luck-manipulation easier. Text can always be scrolled the fastest by autofiring A and L (if L=A) in alternation.
See Pokémon Tricks for more information.

Pokémon caught and used

Mudkip/Marshtomp/Swampert is used in almost all of this run. Mudkip is Water-typed but its evolutions are Water/Ground. Water/Ground is not weak to anything but Grass, to which it is double-weak. Because of this, Grass Pokémon are often sent out second as a priority (the first is fixed). Since Mudkip and evolutions are better used as a physical attacker, I choose the Naughty nature (+Attack, -SpDef) and its IVs happen to be very good as well.
Mudkip has the Torrent ability, which allows a 1.5x boost for Water moves if its HP is at 1/3 or lower. Quick Claw is the item that gives a slower Pokémon a chance to attack first. It is the most valuable item in this run for good reason, and it comes very early. Mudkip is also the HM Strength user.
Zigzagoon is the HM Rock Smash slave. It also has the Pickup ability, which can "pick up a random item after a battle". Ultra Ball is obtained for Kyogre. How to use Pickup ability: Zigzagoon has a chance of magically gaining a held item if it does not already hold an item. This happens automatically.
Wingull is the HM Fly slave, which transports the player between towns already visited.
Castform is given after rescuing the Weather Institute. It serves only as a Solrock/Lunatone punching bag.
Kyogre is the legendary of this game, and the HM Waterfall user. I give it the Quiet nature (+SpAtk, -Speed) and its SpAtk IV must be very good, since its SpAtk is 168. Kyogre has the Drizzle ability, which causes it to rain. That's an automatic 1.5x boost on Water moves. Kyogre dominates almost everything in the game, but it needs Thunder to fight other Water types well. The rain effect also costs time on every turn.

Moves used in battle

A quick review of move and damage mechanics: Each Pokémon can only possess 4 moves. New moves must replace old ones. Each move has a limited number of PP. If PP runs out, it can't be used until PP is restored. Each use of a move costs 1 PP. Rollout is slightly different (see below). An attack has damage variation ranging from 217/255 times max damage to max damage (in other words, R/255 times max damage, where R is a random number between 217 and 255). Since the game uses integer division, max damage occurs rarely (only if R is 255). Any move that is the same type as a Pokémon's type gets a 1.5x bonus. Some held items give moves of a type a 1.1x bonus (I decided it's not worth it). Type matchups: super effective = 2x damage not very effective = 0.5x damage can't hit = 0 damage If defending Pokémon has two types, match up each one separately and multiply together. Critical hit is slightly less than 2x (it's not a multiplier) if stats are not modified. If stats are modified, the modifications are ignored if it does better damage! So if an opposing Pokémon drops attacker's Attack and/or raises its own Defense, and nothing else, it will be ignored in a critical hit. Physical-typed moves use Attack/Defense stats. Special-typed moves use SpAtk/SpDef stats.
Physical types: Normal, Fighting, Flying, Poison, Ground, Rock, Bug, Ghost, Steel Special types: Fire, Water, Grass, Electric, Psychic, Ice, Dragon, Dark.
Damage formula: { [ ( 0.4 * L + 2 ) * A * P / ( 50 * D ) ] + 2 } * X where L is Level, A is Attack/SpAtk, P is attack power, D is Defense/SpDef, and X is a combination of all relevant multipliers. In a critical hit, L is doubled. All division and fractional multiplication operate on integers (hence, truncation). The multipliers in X operate one-by-one on the number inside the brackets, not themselves first.
Note that ignored modifications are important because Mightyena's ability lowers Attack of the Pokémon I use in battle.
Here is a review of the moves used:
Tackle is Mudkip's first move. 35 power, Normal type.
Water Gun is Mudkip's second move, learned at L10. 40 power, Water type. Essential for the first gym.
Rock Tomb is Mudkip's third move, learned by TM. 50 power, Rock type, lowers opponent's Speed. It is useful as a physical move, since it is normal effective against Grovyle (unlike Water Gun and Mud Shot) and is not a contact move, so it can be used for Carvanha. Unfortunately, it has a side-effect that is detrimental to this run.
Mud Shot is Mudkip's (-> Marshtomp's) fourth move, learned by evolution at L16. 60 power, Ground type, lowers opponents' Speed. Like Rock Tomb, but even better because of Same Type Attack Bonus (STAB), since Marshtomp is Ground type.
Strength is Marshtomp's fifth move, learned by HM. 80 power, Normal type. Similar to Mud Shot, but is a contact move and has no side-effect.
Facade is Marshtomp's sixth move, learned by TM. 70 power, Normal type, power doubles with status effect. With the paralyze effect, Marshtomp can OHKO a lot of opponents with this, and the paralyze effect is not detrimental here, unlike poison and burn.
Surf is Marshtomp's seventh move, learned by HM. 95 power, Water type. It is the special-typed attack that goes well with Facade.
Dive is Marshtomp's eighth move, learned by HM. 80 power, Water type. I only use it once for very little damage because otherwise I can't get a OHKO with Facade.
Hydro Pump is one of Kyogre's first moves. 120 power, Water type. Only 5 PP though.
Ice Beam is also one of Kyogre's first moves. 95 power, Ice type. Useful for dragons.
Waterfall is Kyogre's third move, learned by HM. 80 power, Water type. Support for the above two attacks.
There are other moves but I don't use them. Actually, I did select Castform and Wingull moves in battle but they never used them and I don't care what they are.

Items used

  • Potion is used twice, once before Brawly and once before Flannery, both times to survive a hit.
  • Super Potion is used three times, all before or during the battle with Norman, to survive hits from Slaking.
  • X Special is used to power up Marshtomp's Special Attack enough to take down Norman's Pokémon.
  • Escape Rope is used to exit caves quickly.
  • Quick Claw is given to Mudkip, to give it a chance to attack first even when slower (possibly from being paralyzed). Also, Grass moves destroy Marshtomp/Swampert, so in some cases it must attack first.
  • Bike makes the player go twice as fast outside, but has a start-up acceleration delay. The select button can be set to ride the bike.
  • Ether is used to restore some Mud Shot PP.
  • Max Ether is used to restore Facade PP.

Overworld strategy

  • I avoid trainers if at all possible, except for a trainer near the beginning that I use to level up for Mudkip's Water Gun, which is essential for the first gym.
  • The ! pops up over a trainer's head if I walk in front, so I go off my path for up to two steps to engage a trainer from the side or from behind if possible (and only if I can't avoid the trainer). With the bike, the maximum number of steps off the path increases to four.
  • It is faster to go forward after entering a new area rather than turning.
  • Some trainers look around randomly; these ones can be luck-manipulated. Some trainers rotate clockwise steadily. Occasionally, I have to stop briefly until they look away just before I cross in front of them. Note that this only applies to biking or walking. Running nearby a trainer will cause the trainer to look in the general direction of where my character is. Before I get the bike, I cannot run by such trainers. Instead, I run nearby to get them to look away from where I want to go, then walk by them.
  • Because of the bike's strange acceleration/deceleration system, the best way to manipulate when riding the bike is to wait before going forward with the bike, or else bike over two extra tiles. Also, it is faster to run on 4 steps or less, but bike on more than 4 steps.

Run notes


  • I turn battle animation off, change battle style to set (so game doesn't ask whether to switch Pokémon after KOing opponent), change button mode to L=A, and change border. I do not set text to fast, because otherwise you lose some control of luck-manipulation. I can always scroll text at fast speed by autofiring A+L.
  • I choose the boy (even though May's dialogs are longer) and name the player " FF". That's 5 characters long, so as to be the same length as "KIRBY".

Start - Adventure (getting the Running Shoes)

  • There's no reason why I shouldn't use the default time.
  • I manipulate Mudkip to have a (+Attack, -anything but SpAtk) nature, which in this case is Naughty. I also manipulate for good Attack/SpAtk DVs (30 and 31, respectively).
  • It is not possible to get a critical hit in the first battle with Poochyena. Also, it is faster (in general) to take a hit than to make it miss. Such is the long dialog delay.
  • 2HKO on Rival's Treecko? Such is the power of an Attack-boosted nature.

Adventure - Rustboro (Roxanne's gym)

  • I buy 3 Potions and 3 Escape Ropes in Petalburg.
  • I fight an optional battle to help level-up Mudkip to get Water Gun before taking on Roxanne.
  • I catch Zigzagoon and pick up an Ether in Petalburg Forest.
  • Good, a Quick Claw this early. No more waiting second to attack.
  • Against Roxanne, I only need 3 Water Guns and the Torrent ability (1.5x Water damage at 1/3 HP or lower).

Rustboro - Dewford (Brawly's gym)

  • Somehow, I couldn't get the OHKO on Poochyena in Rusturf Tunnel.
  • I don't need HM Cut. It's not required in this game, unlike in the first two generations of games.
  • I chose to get the letter from Steven first. It doesn't save any time one way or another.
  • It is easy, relatively speaking, to find your way in the dark in this game. In Red/Blue, you can only see the faint outlines of walls, and in Gold/Silver, you're walking or biking in a glass maze.
  • I use Potion to survive Machop's Karate Chop, then Water Gun them all. Learning Rock Tomb was just as a menu convenience.

Dewford - Mauville (Wattson's gym)

  • First battles with Team Aqua with Carvanha. Fortunately, Rock Tomb is a non-contact move.
  • You thought I would delay evolution to avoid Marshtomp's double-weakness to Rival's Grovyle in the next battle? Mud Shot is too valuable to lose. I even replace Mud-Slap, an accuracy-lowering move.
  • I catch a L12 Wingull here. It has a spare slot for Fly.
  • So here's a problem: Marshtomp can't OHKO Grovyle (the second Pokémon sent out by Rival in all certainty) and I replaced the Mud-Slap that lowers accuracy, and Grovyle destroys Marshtomp with Absorb. How do I beat Rival? Well, here's how: Hit Wailmer with any attack that Grass Pokémon are resistant to (in this case Mud Shot), then have Rival switch in Grovyle and 2HKO it with Rock Tomb! I couldn't have planned it better. As a side note, I can't let Wailmer hit me with Water Gun because when health is low, Wailmer will always use Water Gun, ruining the plan. And I can't hit Wailmer with Tackle because Grass is not resistant to it.
  • The bike seems to come quite early in this game compared to previous games. Anyway, I use Mach Bike (also known as "bike"), because it's faster, and because that's what the published run does. I still don't know how fast the Acro Bike is.
  • Wattson's gym falls to Mud Shot.

Mauville - Lavaridge (Flannery's gym)

  • There is a rest house somewhere along the path to Fallarbor Town but I chose not to use it.
  • I take the path through Rusturf Tunnel to get to Mt. Chimney so I can get Strength.
  • After some Team Aqua grunts, I fight Archie. Mightyena drops Marshtomp's Attack but critical hits ignore the Attack drop anyway. Strength isn't enough for Golbat so I use Rock Tomb.
  • I use a Potion in Lavaridge gym. Marshtomp can't OHKO Flannery's Torkoal, but I let it use Body Slam and paralyze Marshtomp (this is for Facade, not for death as a shortcut).

Lavaridge - Petalburg (Norman's gym)

  • I do not use death as a shortcut. Back through Rusturf Tunnel I go.
  • I buy 3 Super Potions and 3 X Specials for the Norman battle. I also get a Max Ether in Rusturf Tunnel. I missed it the first time through.
  • The members in the gym elect to use items over KOing Marshtomp with Headbutt/Slash. AI sure is dumb, but I'm not complaining.
  • Super Potions support me while I use X Special, thanks to Slaking's ability that prevents it from attacking every second turn. Using 2 X Specials allows 2HKO on Slaking and OHKO on Vigoroth. The second Slaking always leads with Facade instead of Focus Punch for whatever reason, so I have to use a Super Potion there.

Petalburg - Fortree (Winona's gym)

  • Surfing east of Oldale is faster than going through Rusturf Tunnel yet again.
  • It's not possible to bike or run in tall grass. Too bad. It's possible to run into the tall grass, though.
  • Facade works so well against Rival that I don't need a critical hit on Grovyle.
  • What's better than beating up a wild Kecleon? Running away!
  • Against Winona, it's Surf for Skarmory and Facade for everything else.

Fortree - Mossdeep (Liza & Tate's gym)

  • I enter and exit Lilycove to enable a Fly point.
  • Team Aqua is really easy now. Strength for Zubat/Poochyena and Mud Shot for Carvanha. I ran out of Mud Shot for Sharpedo, so I must use Facade, which is a contact move.
  • I don't fight the optional Rival battle in front of the Lilycove mall. Blizzard and Thunder aren't worth it.
  • Notice how the player character looks weird when travelling the conveyor belts in the gym.
  • Against Liza & Tate, I use my last X Special on Marshtomp while Solrock and Lunatone pummel Castform (Solrock's Psychic first since it's weaker and Castform can survive it). Yes, they clearly don't know which one is more dangerous. Then I Surf them, getting a double critical hit in the process.

Mossdeep - Sootopolis (Wallace's gym)

  • Because of boulders I push around, I often get on and off the bike frequently in Seafloor Cavern.
  • The game won't let you use the bike in Kyogre's lair (both of them).
  • About Kyogre, it was very hard to catch this one. I needed an Ultra Ball that Zigzagoon picked up, and still had to delay over 60 frames for it to work. I managed to get a Special Attack of 168, of course with a (+SpAtk, -anything) nature.
  • Against Wallace's Milotic, I really had no option other than to Dive to deliver however little damage before a critical Facade. I couldn't OHKO it and it would KO me. I tried to use a Potion on Seaking's Horn Drill miss but after that, a critical hit didn't come for 80 frames. I also can't use a Potion before the battle because then Surf doesn't OHKO Whiscash, and Facade doesn't in any case.

Sootopolis - Elite 4

  • Surf and Facade take down Victory Road.

Elite 4

  • Sidney uses Dark Pokémon. I take them all down with Facade. The Cacturne has Needle Arm (a Grass attack), by the way.
  • Phoebe uses Ghost Pokémon, so I can't use Facade. I let Dusclops hit Swampert, then Surf four of them before running out (Dusclops has an ability that makes me use 2PP per move against it). The fifth one is handled by Kyogre.
  • Glacia uses Ice Pokémon. Three of them are Water/Ice, which is where Swampert helps. I barely OHKO the L52 Sealeo, and 2HKO Walrein. Walrein knows Surf and Body Slam, which are 100% accuracy and knock out Swampert, yet it uses Blizzard, which is only 70% accuracy. AI is really flawed. At this rate, I'm surprised that it didn't use Sheer Cold (30% accuracy).
  • Drake uses Dragon Pokémon. Since Swampert is out of just about everything, Kyogre takes over. Ice Beam rules, but Hydro Pump saves a couple SE messages against Flygon.
  • Steven uses a mixture of Steel, Rock, and Ground. Kyogre uses Hydro Pump on Skarmory, then uses Waterfall on the rest.
  • Final in-game time is 1:35.

Possible improvements

  • More strategy changes! I always hope that new strategies lead to better times.
  • Better item management.
  • Better methods of avoiding critical hits and SE messages.

Closing notes

The charm of luck manipulation in an RPG never seems to go away, even if action TASes are stealing the show. Or maybe because I like Pokémon. I wonder when I will make a run that obsoletes my own TAS.
Thanks to the following who helped:

adelikat: Accepting for publication as an improvement to the current run.
adelikat: Processing
Last Edited by CoolKirby on 1/21/2022 5:54 PM
Page History Latest diff List referrers