FractalFusion's Pokémon Sapphire in 1:35:08. It is 96 seconds faster than the published run, due to strategy changes and better precision. The new strategy involves using Machop for over half the game, instead of using Mudkip for most of the game and Kyogre at the end.
This run uses VBA rerecording 19.2 (should work in v20), with real-time clock and Flash 128K. It has been reported (at least for the published run) to work on the following ROMs:
  • Pokemon - Sapphire Version (U) (V1.0) [!].gba
  • Pokemon Sapphire (U) [hIRff]
  • Pokemon Sapphire (U) [h1] (Clock)
If you feel like, put it on 200% speed.

Aims

  • 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

Pokémon Sapphire is a turn-based move game where... blah blah blah, I think you know by now. If you want to know little details, go to #1517: FractalFusion's GBA Pokémon Sapphire in 1:36:44.28.
  • Held items are really important, at least one of them. A TAS of this game lives by one held item: the Quick Claw. It gives you a chance to strike first even if slower. It doesn't sound like it, but it really is the most important thing in any TAS of this game.
  • Pokémon abilities are also important. For example, the starter has a 1.5x boost on Water/Fire/Grass moves when at 1/3 of max HP or lower. Machop has a 1.5x boost on Attack stat if it receives a status condition (this ability is the reason that this run exists).
  • Pokémon now have Pokémon natures which are fixed from first encounter just like DVs or IVs. A nature either has no effect, or raises one stat by 10% while lowering another by 10%. The probability of getting a raise in the desired stat is 16%. The RNG is also not friendly to manipulation (only frame delay will manipulate it). So manipulating for even one optimal stat is much harder than in previous games.
  • Do not ask about PokéRUS.
  • The Sapphire version has the bad guys with the weaker Carvanha/Sharpedo which unfortunately have an ability that makes an extra message if you hit it with a contact move. Ruby has the bad guys with Numel/Camerupt which don't have this ability and fall to Water easily but are otherwise harder to take down.
  • Luck manipulation is so important in this game, as it is in any RPG.
See Pokémon Tricks for more information.

About the run

As usual for this game, this run (v4) did not take me more than two weeks to make. Luck-manipulation was merely from scrolling text at different times, made easier using frame search. Note that unlike in previous games, the RNG depends (usually) on the frame count only, not on anything else (e.g. when the delays occurred). So it does lose me time in the run, although it makes my job easier.
After doing a practice run and finishing the Splinter Cell run, I took a crack at the Machop run again. All my runs start with the same Mudkip because its nature and IVs were just too lucky. The practice run had a L15 Machop with +Atk and 13 Atk IV. The run after that, which I had intended to submit before I gave up near the end, had a L14 Machop without +Atk and 30 Atk IV. I took a gamble with that Machop and ultimately it backfired (though I could have figured out earlier). By changing the order of Pokémon catching, I tried one last time to catch a good Machop. I came across a L15 Machop with +Atk and 28 Atk IV, and as a result, you are reading that run's submission text right now.
By the way, there is a way to check IVs in memory, detailed somewhere in the Pokémon Sapphire thread. Of course, I didn't check every Machop; it's far easier to check its Attack directly instead. I don't know where or how nature is held in memory, but I don't care since it shows up in Pokémon summary anyway.
Improvements have evolved over the runs. First, it's using a different Pokémon; next, it's using X Attack; then, it's minimizing fadeout time between overworld areas.
I had considered using other Pokémon; however, I think Machop is best because of its ability as well as its high Attack and awesome moveset.

Luck manipulation during battle

As a general summary, anything with chance (Quick Claw, critical hit, accuracy) can be luck-manipulated. This applies even to opponent move choices, but not always.
First, many moves normally have 100% accuracy. In order for it to miss, you first need to lower the opponent's accuracy or raise own evasion somehow (some moves such as Swift and Aerial Ace are not affected by any accuracy/evade modifiers and thus never miss).
Second, most opponents play for the immediate OHKO (a.k.a. killer instinct). This means that if a move will OHKO your Pokémon, you can never get the opponent to make a move that won't. Detailed below:
  • If an opponent's reserve Pokémon has such a move, it will come out as soon as possible. That explains why the second Pokémon sent out has a tendency to destroy the player's Pokémon.
  • If your Pokémon is low on health, the opponent will even showboat and try to KO you with a weak weapon, and it may even be possible to survive as a result, but such events are uncommon and not worth playing for.
  • There is a fine line between the opponent playing for the OHKO and not. If the opponent plays for the OHKO and has 100% accuracy moves, only a Quick Claw activation (first attack) and an immediate OHKO blow yourself separates victory and defeat (although in uncommon cases you can survive with almost no health) or else an accuracy drop/evasion raise.
  • If the opponent does not play for the OHKO, it is bound to have a move that does no damage, and you can use items such as X Attack and loaf around while the opponent plays the no-damage move. If the opponent does not even have 100% accuracy moves, ignore the above and make moves miss.
  • It really is a big difference. That's why it's important to keep health up, even if it is faster to take damage.
There are some loopholes in the AI, such as trainers bent on using items first, double battles where the trainer(s) pick a random opponent to attack rather than the most logical choice, and some trainers switching to a Pokémon you are weak against just because it resists your last attack (not bad in itself though the extra hit against a feared Pokémon may come in handy). Generally, though, opponents are smart when it comes to killer instinct and there is not much you can do about it.
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.
For example, if I have to manipulate an Overheat miss followed by a Low Kick critical, mid speed allows me to manipulate for the miss (1/10), then manipulate for the critical (1/16), rather than manipulating for both at once (1/160) as on fast speed.

Pokémon used

Mudkip/Marshtomp is used in part 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. 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 (30 Atk IV, 31 SpAtk IV). This is actually from the previous run, since its IVs were that good.
Mudkip has the Torrent ability, which allows a 1.5x boost for Water moves if its HP is at 1/3 or lower. Mudkip also serves as a total HM slave after Machop is used, learning Rock Smash, Surf, Dive, and Waterfall.
Machop/Machoke is used from where it is found to the end. Machop/Machoke is Fighting-typed. Its weaknesses are Flying and Psychic, so attacks like Aerial Ace, Wing Attack and Psychic will OHKO it, and Pokémon with these will be sent out second. Machop is entirely a physical attacker, and I came across an Attack IV of 28 (out of 31) with the Naughty nature (+Attack, -SpDef). Along with 0 SpDef IV, it has the worst Special Defense possible, but that turns out to be irrelevant.
Machop has the Guts ability, which allows a 1.5x Attack boost when afflicted with a status condition. There are five status conditions: freeze, sleep, paralyze, poison, burn. Only paralyze is feasible, since the speed drop is dealt with by Quick Claw, and the full paralysis effect is a chance thing. Paralyze also works to double Facade's power. The 1.5x Attack boost turns Machop into a OHKO machine, although it is slow to start because of the initial uphill climb to gain levels and experience. Machop is also the HM Strength user.
Taillow is the HM Fly slave, which transports the player between towns already visited.
Castform is given after rescuing the Weather Institute. At L25, it serves only to take a Psychic hit from L42 Solrock, and somehow survive. It must not have bad Special Defense.
I don't catch the legendary Kyogre in this run.

Moves used

Every attack listed here is a physical attack except for Water Gun which is a special attack.
  • Tackle: 35 power, Normal type.
  • Mud-Slap: 20 power, Ground type, lowers opponents' accuracy. The side effect is useful against Grovyle but detrimental otherwise.
  • Water Gun: 40 power, Water type. Mudkip learns this at L10. Essential for the first gym.
  • Mud Shot: 60 power, Ground type, lowers opponent's Speed. Mudkip learns this on evolution at L16. Unfortunately, it has a side-effect that is detrimental to this run. Useful for the third gym.
  • Low Kick: Variable power, Fighting type, power depends on opponent's weight. The more the opponent Pokémon weighs, the more powerful. Against reasonably big Pokémon, it is around 90 power. The attack has changed drastically over the transition. I used to bash this attack (figuratively speaking) for dropping the flinching effect.
  • Karate Chop: 50 power, Fighting type, high critical hit rate (1/4 instead of 1/16).
  • Rock Tomb: 50 power, Rock type, lowers opponent's Speed. Similar to Mud Shot. Can be used against Carvanha/Sharpedo since it is not a contact move.
  • Strength: 80 power, Normal type.
  • Facade: 70 power, Normal type, power doubles with status effect. Combine with Machop and Guts ability and paralyze effect.
  • Earthquake: 100 power, Ground type. For Ghosts, and Sharpedo.
  • Cross Chop: 100 power, Fighting type, high critical hit rate.
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.
Critical hit is around twice the normal damage. The first X Attack allows 1.5x more damage to be inflicted.
One thing to notice is that even if Machop's Attack is lowered (by Intimidate ability or otherwise), in a critical hit, that lowering of Attack is ignored. However, it cancels with an X Attack such that after one X Attack the player does not do more damage on a critical hit.

Items used

  • Potion is used once to take a hit from Machop (Brawly's, not mine).
  • X Attack is used to power up attack 1.5x for that battle. When a Pokémon in the opposing line-up cannot be OHKOed normally, it usually pays to use X Attack.
  • Escape Rope is used to exit caves quickly.
  • Quick Claw is given to Mudkip and later Machop, to give it a chance to attack first even when slower (possibly from being paralyzed).
  • 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 Rock Tomb PP.
  • Max Ether is used to restore Facade PP.

Overworld strategy

  • I avoid trainers if at all possible, except for a trainer in Roxanne's gym that I use to level up for Mudkip's Water Gun, which is essential for Roxanne in 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 running or biking, it is almost always faster to do it if possible.
  • It is faster to go forward after entering a new area rather than turning. If such is not possible but it is allowed to use the bike, it saves time to turn and then use the bike right away to cancel turning delay.
  • 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 (or bike) by them. I do this once even with the bike, because the trainer's sight blocks the way.
  • Because of the bike's strange acceleration/deceleration system, the best way to manipulate when riding the bike is to wait before accelerating the bike, or else bike over two extra tiles or slow down briefly. Also, it is faster to run on 4 steps or less, but bike on more than 4 steps.
  • 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.

Run notes

Pre-game

  • 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, by the reasoning above. 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". It's really the beginning part of the previous run.

Start - Adventure (getting the Running Shoes)

  • There's no reason why I shouldn't use the default time.
  • 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 catch a L5 Taillow here. It has a spare slot for Fly.
  • I pick up an Ether in Petalburg Forest.
  • Good, a Quick Claw this early. No more waiting second to attack.
  • I fight an optional battle to help level up Mudkip to get Water Gun before taking on Roxanne. The optional battle is no longer the one on the beach before Petalburg Woods but a trainer in the first gym. The trainer only has one Pokémon (Geodude) and it allows Mudkip to gain enough experience to learn Water Gun.
  • 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)

  • Unlike last time, I now got the OHKO on Poochyena in Rusturf Tunnel.
  • I pick up 2 Potions, 2 Escape Ropes, and 7 X Attacks.
  • I don't need HM Cut. It's not required in this game, unlike in the first two generations of games.
  • I use Potion to survive Machop's Karate Chop, then Water Gun them all.

Dewford - Mauville (Wattson's gym)

  • This time, I chose to get the letter from Steven later. It doesn't save any time one way or another.
  • It is a bit easier, 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.
  • First battles with Team Aqua with Carvanha. I Tackle and Mud-Slap the first because I have nothing better, but the damage from Rough Skin ability puts Mudkip in Torrent ability range.
  • I tricked Rival into a switch last time. This time, I just use Mud-Slap for the Grovyle. Tackle still works, but doesn't do as much as Rock Tomb. At least I use X Attack this time around.
  • 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. Mach bike goes at 4 frames per step, Acro Bike at 6 frames per step.
  • Wattson's gym falls to Mud Shot.

Mauville - Lavaridge (Flannery's gym)

  • Here's where I catch Machop. I teach it Rock Tomb and give it Quick Claw right away.
  • Against the first trainer that Machop fights, I have Roselia paralyze Machop to activate the Guts ability, which remains for the rest of the run.
  • 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 Machop's Attack which means that one X Attack does not increase critical hit damage. So I use two. I found it to be faster than tricking Archie into a switch.
  • I beat Flannery's Torkoal with two Low Kicks and an Overheat miss.

Lavaridge - Petalburg (Norman's gym)

  • I do not use death as a shortcut. Back through Rusturf Tunnel I go.
  • Everybody here gets OHKO treatment from Machop and its Karate Chop/Low Kick, even Norman. I took this route because it includes the only trainer (other than Norman) which does not use an item right away. OHKO is important against Norman's Pokémon because Slaking destroys anything with a low Defense and not typed Rock, Steel, or Ghost. Never mind it loafing between turns.

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. It just does. By the way, it's listed as 70 power (less than Strength) but if you read Norman's description, you know it gets double from paralyze, which Machop already has.
    Machop + paralyze + Guts + Facade = ???
  • Machop evolves somewhere around here.
  • If Machop started at L14, Kecleon must be defeated for experience later but Machop started at L15 so I just run away.
  • Against Winona, it's X Attack, Low Kick for Skarmory and Facade for everything else. Fortunately, Machoke would survive Swellow's Aerial Ace, and thus it doesn't even use it.

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 Rock Tomb for Carvanha/Sharpedo.
  • I don't fight the optional Rival battle in front of the Lilycove mall. Blizzard and Thunder aren't worth it, as well as everything in there.
  • Notice how the player character turns in a strange way when travelling the conveyor belts in the gym.
  • Against Liza & Tate, I OHKO Lunatone with Low Kick, then OHKO Solrock with the same move after I trick it into using Psychic on the wrong Pokémon.

Mossdeep - Sootopolis (Wallace's gym)

  • Because of boulders I push around, I often get on and off the bike frequently in Seafloor Cavern. Also, there is an issue with music fadeout, so I sometimes get off the bike before entering a new area.
  • The game won't let you use the bike in Kyogre's lair (both of them).
  • I run from Kyogre. Not something a real Pokémon master would do, but I'm not just playing this game.
  • I dominate Wallace with Machoke.

Sootopolis - Elite 4

  • Machoke takes down Victory Road.

Elite 4

  • Sidney uses Dark Pokémon. I try to mix up attacks so I don't use the same attack over and over. I use Earthquake on Sharpedo because of its ability that I already mentioned.
  • Phoebe uses Ghost Pokémon, so I can't use anything but Earthquake. Glad there's no Pokémon with Levitate ability. I need at least 6 Earthquake PP since Dusclops has an ability that makes me use 2 PP per move against it (but the last one only sucks 1 PP because then there's only 1 PP left). X Attack is required to OHKO Dusclops, and I let it use Future Sight. Curse and Shadow Punch result in failure, while Confuse Ray does produce at least a couple extra confusion messages but I was somehow unable to prevent a third. As for Future Sight, most unexpected miss ever.
  • Glacia uses Ice Pokémon. I could have just used Low Kick on them all, but I couldn't resist fitting in Facade. I get Cross Chop after this battle.
  • Drake uses Dragon Pokémon. Facade and Cross Chop take them all down, Salamence barely. As an aside, 4 of these 5 dragons are double-weak to Ice but Machoke is too good to use Hidden Power Ice (and it wouldn't actually do more damage). I don't know Machoke's Hidden Power type and I don't care.
  • Steven uses a mixture of Steel, Rock, and Ground.
    • Skarmory: I thought initially that being able to survive Aerial Ace was the absolute key to avoiding certain defeat. Although that's not quite the case, it still is important. X Attack is used for various reasons. Skarmory isn't guaranteed even 7% chance of OHKOing with Aerial Ace so it uses Spikes. Then I OHKO it with critical Cross Chop.
    • Armaldo: Who knows why this came out even though it doesn't have the guaranteed OHKO but Metagross does. It has Aerial Ace, something you wouldn't expect from a Rock/Bug Pokémon. Anyway, the reason why I kept thinking about this Pokémon for days was because in the practice run, I couldn't OHKO it thanks to its ability that makes it immune to critical hits. So I sought a better Machop/Machoke, and now that I have it, I OHKO it out of my mind with a Cross Chop.
    • Metagross: It will OHKO with Psychic. But Machoke is quick on the draw with Quick Claw and uses critical Cross Chop to OHKO it.
    • Claydol: It resists fighting and Levitate ability makes it immune to Earthquake if I still had it. However, it is the only one not typed Steel or Rock so it does not resist Facade. Critical Facade for the OHKO.
    • Aggron: It's Steel/Rock so it's double-resistant to Normal moves like Facade. However, it's double-weak to Fighting. Low Kick.
    • Cradily: It's weak to Fighting. Low Kick.
  • Machop/Machoke takes no damage throughout the whole run.
  • Final in-game time is 1:33.

Closing notes

Not much to say, other than this submission being the first of mine intended to obsolete a published run of mine.
Thanks to the following who helped:

adelikat: Accepting for publication as an improvement to the current run, and also I am encoding it.