TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #3186: FractalFusion & GoddessMaria's GBA Pokémon Ruby in 1:31:45.43

Console: Game Boy Advance
Game name: Pokémon Ruby
Game version: USA
ROM filename: 0907 - Pokemon - Ruby Version (U) (v1.0).gba
Branch:
Emulator: (unknown)
Movie length: 1:31:45.43
FrameCount: 330326
Re-record count: 36017
Author's real name: Justin Chan & 満
Author's nickname: FractalFusion & GoddessMaria
Submitter: FractalFusion
Submitted at: 2011-06-20 00:32:55
Text last edited at: 2012-07-11 03:02:35
Text last edited by: FractalFusion
Download: Download (14375 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

FractalFusion and GoddessMaria's Pokemon Ruby in 1:31:45. This improves the published Pokemon Sapphire run by 3 minutes and 22 seconds.

Emulator used: VBA v22 with real-time clock enabled (Options -> Emulation -> Real Time Clock) and Save Type Flash 128K (Options -> Emulation -> Save Type -> Flash 128K). Works on any recent VBA version.

日本語の注釈: http://pastebin.com/HF90zGGJ nicovideo.jp: http://www.nicovideo.jp/watch/sm14802114

Encodes

Aims

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

There are no real programming errors, only game mechanic exploits.

About the run

I initially had no intention of doing this run at all. Anything which I thought about that could possibly make Pokemon Sapphire/Ruby faster was useless daydreaming that would never come to fruition.

Even after I discovered that Game Saisoku hosted a very fast Taillow/Swellow run on the J version by the author named cstrakm, seeing that the point in the previous paragraph hasn't changed, I dismissed it as U/J text differences, and assumed that Machop was still faster.

At about the same time, a person named GoddessMaria was interested in all things Fire Emblem and Pokemon. When she wanted to work on improving the Sapphire TAS, it was at this point where I just had to do something about it.

I had originally planned to be an advisor of sorts, collecting information that would be useful to the run. However, my role became far more involved and in no time I was essentially working on the run. Again.

Information collecting

I started by analyzing the RNG. The formula which cycles the RNG (obtained from smogon.com) is clear, but how the game uses it to determine stuff is not. Unfortunately, there is almost no information about how the RNG determines things like critical hits and stuff. Most information is concentrated on shiny/IV hunting, or are results like probability.

I figured out most of the stuff on the Pokemon RSE RNG page just by using a whole bunch of Lua scripts along with analysis and trial. Some tricky ones (notably those related to Pokemon generation, which have strange generation algorithms) were found using both analysis and disassembly.

The only one which I tried to find and failed is Pokerus. As is typical of viral outbreaks of any kind whatsoever, once something spreads out of control, no one gives a **** about its inner workings, including place of origin and exact spread mechanic. As a result, there is a frightening lack of information regarding Pokerus, and of any existing information, a possibly large amount of it is misinformation. Due to severe information denial, extreme rarity, and inability to find it via disassembly, I gave up trying to find it.

Once I had enough mechanics settled, I did a test run to see if using Taillow/Swellow was feasible. I had it started on Sapphire, but then switched to Ruby about 10 minutes in the run due to Taillow/Swellow not having any decent non-contact moves to hit Carvanha/Sharpedo with. The test run, with major errors in it, came out to be almost 1:30 faster than the published run.

Heavy luck manipulation

RNG Mechanics

Stuff that convinced me that I had control over Pokemon Ruby/Sapphire.

First of all, I figured out that the initial seed (which is set on frame 5) can be controlled just by setting the date, as explained in this post. The fact that there are 65536 different starting seeds means that I can do stuff like manipulate 31-IV stats in three categories while controlling nature, or get a shiny, or stuff like that. In fact the test run has a Mudkip with three 31-IV stats (Atk, Spd, SpAtk) and a nature with Atk+ and SpDef-. Unfortunately, I ended up not being able to control much other stuff, notably an optimal Lv 8 Taillow, which I sought to change in the final run.

(For those wondering: I obviously do not find things like "Mudkip with three 31-IV stats" by hand but I use things I call "simulation search programs" written in C++. I did it with Monopoly years ago.)

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.

Another thing I wanted to find is how Zigzagoon's Pickup worked in order to get free Rare Candies. Easy enough, I figured that a pair of RNG values had to work out to get Rare Candies (same for other items). The top half of the first RNG value (this is integer part of the value divided by 65536) has to be 0 mod 10 to get any item, and the next RNG value determines the item. The probability of Rare Candy Pickup (including when no item is obtained) is 1/100, and for King's Rock, 1/1000. (Thanks kirbymuncher for "accidentally" obtaining a King's Rock in the first published run).

Finally, the Taillow. Or, more generally speaking, wild encounters. It took me a very, very long time to figure out how it worked, only finding out when I used disassembly. It isn't intuitive at all, and one has to wonder why the wild encounter mechanic is more inefficient then one should expect. (Is it Gameshark foiling? Synchronize ability (in Emerald)? A glitch? Just because?). I also figured out something similar for the Ralts tutorial (the part where Wally catches a Ralts) which is very important. If you think that only insane people think that the Ralts tutorial is very important, go watch the run *points*.

Oh, and getting the best Taillow is the rarest event manipulated by this run. Per step in grass, probability of generating a Lv 8 Taillow with max Attack (31-IV Atk and nature with Atk+) is 1/36000.

There are other mechanics but the ones above are the most important.

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.

Table of sample probabilities

Event Effective Probability
First on speed tie 1/2
50% attack miss 1/2
Wild encounter 1/9
90% attack miss 1/10
Max damage variation 1/16
Critical hit 1/16
95% attack miss 1/20
Rare Candy pickup 1/100
Lv8 Taillow encounter 1/180
Max crit 1/256
King's Rock pickup 1/1000
Lv8 Taillow encounter w/ max attack 1/36000

Pre-run (search program comment)

Because I was able to, I ran a simulation search program to look for the best Taillow with as little delay as possible. I placed extra search points on Mudkip, first two Rare Candies, and the Ralts event, since they were rare enough that it was important to place searches on them to make sure it was possible to do everything up to Taillow. I ran the search a few times, and after a few adjustments, the last one I ran turned up the following results (suboptimal near-duplicates removed):

  [format]
  initseed
  fd5 fd1 fd2 fd3 fd4
  ri5 ri1 ri2 ri3 ri4
  mnat mhp matk mdef mspe mspa mspd
  tnat thp tatk tdef tspe tspa tspd
  [/format]

  23B6
  296 70 58 43 26
  59916 9309 32168 35442 45946
  1 18 27 28 31 20 22
  4 19 31 10 18 31 4

  4FEC
  476 23 140 29 119
  60096 9262 32203 35463 46060
  4 27 29 15 31 25 23
  3 3 31 27 25 18 22

  83ED
  397 6 13 12 77
  60017 9245 32059 35302 45857
  4 25 29 10 31 21 9
  2 25 31 12 5 21 18

  89E7
  727 70 53 15 43
  60347 9309 32163 35409 45930
  4 20 29 16 30 24 7
  2 10 31 25 19 5 31

  E716
  134 68 69 65 132
  59754 9307 32177 35473 46083
  4 15 23 16 31 28 5
  1 21 31 14 26 27 16

  EC10
  144 33 60 60 123
  59764 9272 32133 35424 46025
  1 15 28 1 31 20 31
  2 3 31 26 19 3 19

  FC0F
  197 6 43 48 132
  59817 9245 32089 35368 45978
  4 23 23 8 30 23 18
  4 22 31 29 1 3 13

  Done
I chose the best-looking one:

  83ED
  397 6 13 12 77
  60017 9245 32059 35302 45857
  4 25 29 10 31 21 9
  2 25 31 12 5 21 18
That means
  • The initial seed is 83ED (uid 388A3094, or 2000 Jan 22, 22:35:00).
  • The total frame delay (all delays estimated) for Taillow is 397 on RNG index 60017 (this is the number of cycles iterated from the initial seed)
  • The delay to Mudkip is 6 on index 9245
  • The delay from Mudkip to Rare Candy 1 is 13 on index 32059
  • The delay from Rare Candy 1 to Ralts is 12 on index 35302
  • The delay from Ralts to Rare Candy 2 is 77 on index 45857
  • Mudkip has IVs 25/29/10/31/21/9 and nature 4 (Atk+, Spdef-)
  • Taillow has IVs 25/31/12/5/21/18 and nature 2 (Atk+, Spd-)

The delays are in fact a bit off, because there is all this other stuff in between (battles, critical hits) that was unaccounted for. Only after trying and succeeding (albeit barely) was this result verified.

Lots of scripts

I could flood the submission text with all the scripts that I used. Instead, I will just link you the ZIP file containing all of them:

http://www.mediafire.com/download.php?o0g3wb22xk4r05q

The most important ones are:

  • The CPP file for the search program above.
  • The "rngstatsanal" file for analyzing RNG values, used to analyze the RNG.
  • The "rngstats-crit-max" file for judging when critical hits can occur.
  • The "rngstats-pickup" file for when Rare Candy or King's Rock pickup can occur.

Version differences

Differences between U and J version

Aside from the text, there are actual differences:

  • The sight distance of some trainers have changed.
  • The natures of trainer Pokemon are different.

The sight distance is significant in a couple cases:

  • One of the female grunts in the Magma/Aqua base, which can be skipped on U version but not on J.
  • Magma/Aqua admin in Seafloor Cavern, which saves a bit of time.

The natures of all the trainers' Pokemon are different. The PIDs are all different and the "trainer IDs" are all filler. There is no correlation of any kind. Because of this, a Pokemon may have slightly different stats that makes it easier or harder to luck-manipulate.

Version change: Sapphire -> Ruby

The differences from Sapphire to Ruby:

  • Team Aqua is replaced by Team Magma
  • Carvanha is replaced by Numel and Sharpedo by Camerupt
  • Aqua Hideout is replaced by Magma Hideout, which is different

The main reason for switching over is that Taillow/Swellow does not have any decent non-contact move, which would cause wasted time and lost HP when an attack is used against Carvanha or Sharpedo in Sapphire. There are 15 of them by Team Aqua, so about 30 seconds is saved by switching, minus the one extra critical hit against a Numel, and the 6 seconds (since Magma Hideout takes longer).

The other thing to note is that since Numel and Camerupt give one less Atk EV than Carvanha and Sharpedo respectively, Taillow/Swellow ends up with slightly less attack than what it would have on Sapphire, especially near the end.

Other

Route planning

Well, cstrakm's route pretty much sets the tone for this run. One major thing different, apart from the version change, is that I do not use any more Rare Candies after Wattson. It takes at least 4 seconds to take a Rare Candy from Zigzagoon and use it (even among using other stuff). I only use Rare Candies to learn useful moves or evolve before an important battle. I also have a different strategy for Wattson that saves X Attacks, since I only have 8 of them.

Thanks to GoddessMaria for helping me with the route discussion.

Appearance

Obviously, slow scrolling text and waiting don't look so good. I did my best to hide small delays in text, though sometimes I play around in the menu. If the delay is too large and I can't play around in the menu (typical of Rare Candy drops), I just let the text scroll slowly.

GoddessMaria's role

GoddessMaria's role was mostly as an informer, although she worked on the TAS a bit. The parts that she did were mostly overworld stuff, as well as one battle.

The story (Run info)

Beginning

The story starts off with Professor Birch blabbing away again, saying how the world revolves around Pokemon.

[If you've noticed carefully, I didn't even set the options. In fact this is intentional to make luck manipulation work. I tried it options first and the search program didn't come up with anything good. Options will only be set after the first tutorial battle.]

Anyway, Prof. Birch is ready to introduce this girl. Except ... he doesn't even know whether this girl is a boy or a girl! Figures. Anyway, we find out that this girl's name is I. Wait, what? Her parents are dumb, so it's surprising that they're in the game. To avoid confusion, I'll call her I-chan.

Anyway, I-chan is riding along in the back of a moving truck (?) and arrives at her new home. Time to set the clock. Apparently, specifying the "correct time" sets all the clocks in the Pokemon world to be that time. Then again, Pokemon games have had stuff like this forever.

With the clock set to its rightful time (10:00am), I-chan heads downstairs just to be interrupted by Mom, whose language becomes very confusing. Apparently Dad (Norman) was on TV. Time to head over to the boy's house to meet I-kun Brendan, who leaves after 5 seconds. Oh well. Maybe now is a good time to head out of Littleroot Town. Of course, what do you find? Prof. Birch being chased by a Poochyena! What a useless professor.

[Talk to the child first; otherwise the child stops you to talk anyway. Saves some frames.]

Time to save the prof. Just walk up to the basket, and select a Pokeball at random. Which one does I-chan choose? Well, Mudkip! I think you knew that already.

[Note: You can't get critical hits in tutorial battles.]

After disposing of Poochyena in two hits, Prof. Birch congratulates I-chan on a job not-so-well-done and takes her back to the lab so she can keep the Mudkip and name it ... U. What else? >_>

[I only set the options after the first battle (see the first note at the very beginning). It cost some time, and nearly made it unable to make the above search result work, but fortunately things turned out quite lucky.]

Battle with Brendan

One day, I-chan decides to go far out of Littleroot Town, past Oldale Town. Who does she find? Brendan, standing there staring at an uninteresting tree. Time for battle. "Go! U!"

For a good start I-chan doesn't even bother using Growl. Just do damage, right? Let's use Tackle.

Treecko used Pound. Mudkip used Tackle. Critical hit!

Nice, let's try Tackle again.

Treecko used Pound. Mudkip used Tackle. Critical hit! Treecko fainted!

Either I-chan is using Gameshark codes, or the Mudkip has serious hax. Brendan runs away crying.

[Note: If you are playing as the boy, you meet May here. May's Treecko has a different nature than that of Brendan. In particular, it has a Def- nature, so that you can knock it out with a critical Tackle followed by a non-critical Tackle. I'd like to think this is a special case, but in fact, the nature for Treecko is all messed up depending not only on boy/girl, but on starter choice and U/J version too! In fact U/J messes up all the natures of trainer Pokemon. Better not to think about it.]

...

Back in Prof. Birch's hideout, I-chan receives a Pokedex and 5 Pokeballs. Now wait. Isn't it the job of professors to be recording Pokedex information? Why give it to a bunch of little kids? Silly world.

Now that it's done, head towards Petalburg now. Oh, an encounter.

Wild Zigzagoon appeared!

Since I-chan doesn't know what she's doing, she throws the Pokeball that was obtained 2 minutes ago.

Gotcha! Zigzagoon was caught!

Also, this happened to be the first wild encounter. Maybe I-chan has hax innate. Maybe I-chan *is* hax. Oh well, time to name it ... O. >_>

A few more steps later, and a Youngster wants to fight. Again, I-chan uses Tackle. Yet another critical hit. This time, try out the new attack, the thing labelled "Mud-Slap". Another critical hit. Zigzagoon fainted. Maybe the game's broken.

[It is possible to take out Ziggy with a crit-max Tackle and a max Tackle. However, due to the 1/256 chance of a crit-max making it too hard on the search, I decided not to include it in the search.]

Petalburg City

I-chan decides to check out the Pokecenter, but quickly changes her mind and leaves.

[This is to set Teleport point.]

Since there is a jerk in Petalburg who won't let anyone go further without checking out the gym, maybe check it out? Hey, Dad's there! Not only that, but some mysterious boy named Wally wants to have a go at catching Pokemon. Doesn't hurt to let him try. Anyway I-chan takes Wally out for a walk, and within 5 seconds of entering the grass, a Ralts appears.

Wally: "I can catch it! Tackle!" Tackle does slightly over half Ralts's health. Ralts uses Growl to lower Ziggy's attack.

Wally: "Hm, Growl lowered attack so Tackle should be safe. Tackle!" Tackle KOs Ralts.

Wally: "WHAT!!?!? NOOOOOOOOOOOOOOO... wait, it somehow caught itself! I'll take it, yippee!!!!1!!1!"

Apparently in this world, extremely weak Pokemon are so weak they have been known to catch themselves while fainted. ROFL

[In actual fact, this is an exploit. Ziggy had 11 Atk. This can be manipulated right before leaving the gym. Ralts was manipulated to have 17 HP and 6 Def. This rare event only occurs if Ralts has at most 3 IV for HP, 5 IV for Def, and a Def- nature. In this case, max damage for the two Tackles are 10 and 7 respectively, just enough to KO Ralts. The game was exploited and yet it continued as if Wally caught Ralts.]

Back at the gym. While Wally runs away with his Pokemon having done nothing, Dad refuses to battle I-chan until she has 4 badges. Apparently Dad is a strong guy. Will have to wait then.

Hm, let's check Zigzagoon... wait, where did this Rare Candy come from? More hax. Oh well, might as well use it. With that out of the way, head to Petalburg Forest.

[There are trainers that look around, either randomly, or spinning. Their direction is influenced if you run near them. That's why you have to walk by them to avoid them.]

Petalburg Forest is rather dark. There's a guy with 6 Wurmple but he has severe tunnel vision and sound ADD, so just be quiet passing him and he won't know. There another guy here looking for a Shroomish. Haven't seen one yet... oh wait, we're being jumped. Time for battle.

This dude from so-called Team Magma threatens people with a Poochyena. Well, start off with Tackle. Critical hit. Try another Tackle. Another critical hit. Poochyena fainted. This is going to be good.

Once both the crook and the simple guy run away, it's time for Rustboro City. Oh, and Ziggy picked up another Rare Candy. Let's use it. Along the way, there are more of these trainers who have visual problems and extreme auditory focus. One of them even spins around like there's nothing better to do. Doesn't spinning make you dizzy?

Rustboro City

Once in Rustboro, I-chan visits the local teacher, who gives away a free Quick Claw, a nice hax item that gives a slower Pokemon a chance to go first. No time to sightsee now; go battle Roxanne!

First up for Roxanne is Geodude. Hm, there's this new move called "Water Gun". Let's try it.

Mudkip used Water Gun! It's super effective! Geodude fainted!

How about that? It was so awesome it temporarily turned off hax! Next for Roxanne is Nosepass. Since Water Gun worked the first time, let's try it again.

Nosepass used Rock Throw! (O_o) Mudkip used Water Gun! It's super effective!

Hm, no sign of hax. Maybe third time's the charm.

Mudkip used Water Gun! Critical hit! It's super effective! Nosepass fainted!

I-chan gets her first badge. At about this point she realizes that she didn't even put Quick Claw on Mudkip.

[Because Mudkip's very high speed ties it with Nosepass, it allows Nosepass to use Rock Throw first to send Mudkip into Torrent range (current HP is 1/3 max HP or less) to multiply Water attacks by 1.5x, as well as use Water Gun first on the second round of attacks.]

Towards Rusturf Tunnel

After leaving the gym, we see that the crook is running yet again having stolen something, with the simple guy trying to give chase but failing. Is security at Devon Corp. seriously that bad? Obviously, since we have to care about this guy who couldn't even secure a package, we have to get it back.

Run through grassy fields and dumb trainers and... oh, another wild encounter.

Wild Taillow appeared!

Try throwing a Pokeball again. It worked last time.

Gotcha! Taillow was caught!

Hm, Taillow looks rather impressive. Let's use it from now on. And name it ... I. >_> Apparently, inability to give good names runs through the family.

Just outside the cave is an old man who claims his "Peeko" (it's a Wingull by the way) was stolen from him. Well, head in and see... it's the crook! I-chan remembers to switch Taillow into lead position but still forgets to use Quick Claw. Time to battle. Use Peck, a critical hit. Use Peck again, this time no critical hit, Poochyena just faints. Oh well. Old man gets his Peeko back and I-chan returns the package to that guy.

As thanks, the president of Devon Corp. gives I-chan a letter for Steven, and a Pokenav.

While leaving Rustboro, I-chan picks up 2 Escape Ropes and 8 X-Attack. Back in Petalburg Forest, maybe it's a good idea to look around. While stepping into a single patch of grass, a Shroomish appears. Maybe that's the Shroomish the guy wanted. But of course, a Quick Attack goes critical and Shroomish faints. Taillow is now paralyzed. Hax cheater.

[The point of this encounter is to gain Exp., and to make Taillow paralyzed to use Guts ability, which multiplies attacks by 1.5x.]

As thanks to I-chan, the old man sails her to Dewford Town.

Dewford Town

Which do you want first? Granite Cave or Dewford Gym? Looks like I-chan wants the cave first.

Anyway, some guy who has no life is standing just inside the entrance to the cave. He gives away HM Flash. Since I-chan pretends not to be afraid of the dark, she continues, but ten steps later an Abra appears.

Let's throw a ball again shall we? Otherwise Abra will teleport away. And sure enough the Pokeball catches Abra. Now I wonder what all those Great Balls are doing collecting dust. Oh well, name Abra as ... Abra. The only thing better than I-chan giving out nicknames is keeping the species name.

The cave is really dark. Yet I-chan goes through it like there's no problem. At least it's not the glass wall that is Gold/Silver caves. For some reason, that loner Steven is waiting at the end, just to receive some top secret message (I wonder why Devon Corp. trusted a kid to deliver it). In return, I-chan gets Steel Wing. Time to use the Escape Rope. Might as well put Quick Claw on and take a Rare Candy from Ziggy for later. Now head to the gym.

Apparently, the gym is as dark as the cave! I guess the people living here want to pretend it is Granite Cave or something. First up, I-chan is confronted by a Battle Girl. What a weird title. Couldn't they have thought of something better? Of course one would expect Meditite to go first since Taillow is paralyzed, but Taillow goes first anyway and knocks it out with a critical Peck. Ziggy digs up yet another Rare Candy.

Since an important battle is coming up, it would be a good idea to use the Rare Candies. And there's a new attack, "Wing Attack". Now for Brawly. Let's see, Machop has Karate Chop. It would not be good to get hit by that. So let's use Wing Attack. Not only does Taillow go first, but Wing Attack gets a critical hit!. Then Makuhita comes out. Peck, and critical hit. Brawly is defeated.

Slateport City

With the second badge in hand, I-chan heads back to the old man, who takes her to Slateport. In a warehouse that I-chan has no business entering, a guy wants her to deliver some goods. Are kids really such important messengers nowadays? I-chan notices a Rare Candy on Zigzagoon and takes it. At the museum, something seems wrong here, because a whole bunch of Team Magma guys just poured in. But they appear to be just looking around. They're not going to do anything... right?

Well, as soon as I-chan tries to deliver the goods to the captain, a couple of grunts run in and threaten them. Time for battle. The grunts do not understand now the Pokemon of destruction that is about to ravage their team. One, two, three, down they go. Numel and Zubat have no chance.

[The first Numel needs a critical hit. This is the only time that the switch from Sapphire to Ruby requires an extra critical hit against Numel/Camerupt compared to Carvanha/Sharpedo. Not a bad tradeoff. The text delay here at the end of the second battle is luck manipulation for a King's Rock.]

The grunts start screaming hax, and then Maxie comes in. He says that Team Magma is about expanding the landmass. Sounds good. Not. After making threats, everyone runs off. The captain receives his goods and happily dances away. Meanwhile, one grunt apparently missed the memo and is still in the museum, wondering where everyone else went.

Time to head towards Mauville. But Brendan is waiting along the way, for his revenge. Battle time. First Brendan sends out Numel, but like the previous ones Wing Attack knocks it out. Then comes Wailmer. It has tons of HP and yet a critical Wing Attack leaves it with nothing. Grovyle tries to do something, but being weak to Wing Attack, nothing saves it. As a reward, Brendan leaves an Itemfinder (Dowsing Machine, if you want to call it that) and leaves so he can cry alone.

[Even though Wailmer has 75HP, it is just barely knocked out with a high critical hit (critical hit with damage variation in the high 25%) which really doesn't come around often. So I was lucky. Also of note is that if playing as the boy, May here starts with Wailmer, not Numel. Inconsistent game. But since when is the game consistent anyway? If you've been checking memory to see what trainers' Pokemon are like, you'll notice that all of them have different trainer IDs! Apparently trainers engage in some mass trading. In particular, Brendan's Grovyle doesn't even have the same PID and trainer ID from the Treecko back then. The sad thing is that this isn't even surprising. The game never claimed otherwise. :p]

Mauville City

Now in Mauville, some Rock Smash guy gives out free HM Rock Smash. Whatever suits him. Some guy running a bike shop is fooled by people's lies and gives you a free Mach Bike. He has an Acro Bike as well, but you can't have both at the same time. Anyway, Ziggy has a King's Rock. Amazing hax, don't you think? I-chan, being a bike fanatic, decides to give the Mach Bike a spin. Only 3 seconds in, she runs into Wally.

Wally wants to battle real bad. I guess we'll let him. In one hit, the battle is over. His uncle drags Wally away.

[Nope. This Ralts doesn't have the same PID or trainer ID as the one in the Ralts event long ago. Did you expect otherwise? I mean, Pokemon who are weak enough to catch themselves deserve to be released. LOL]

Now for the gym. Another Battle Girl (lol) wants to fight, with the same old Meditite. One hit puts it away. Now Ziggy has managed to accumulate another Rare Candy. That makes 6 Rare Candies and a King's Rock. Rare Candies certainly aren't rare these days. Since another important battle is coming up soon, Taillow is force-fed the two Rare Candies. Also, to try something new, Taillow has its Quick Claw switched for King's Rock. The next opponent is a Guitarist (??) who has three essentially identical Voltorb which go down to essentially idential critical Quick Attacks. Now to f... what? Taillow is evolving! ... Meh, we'll leave out the details of how it managed to transform. But while we're at it ... Taillow isn't Taillow anymore, but is now a Swellow.

Time to fight Wattson. First, Magnemite. Since nothing that Swellow has is normal effective or better, I-chan starts by using two X Attacks. Meanwhile, Magnemite misses Supersonic, twice. Now which attack to use? Well, of course, Quick Attack (if you haven't noticed, Swellow doesn't have Quick Claw, so must use Quick Attack which makes it go first anyway). A critical hit does in Magnemite. Then Voltorb, which doesn't even need a critical hit.

Then Magneton. Those people who hated Magneton remember that it has Shock Wave, an attack that "never misses". It even says so on its attack description when you get the chance to learn it, that is, from the TM after finally beating this guy. Shock Wave has been calculated to do massive damage against anything with wings. In particular, Swellow. No way Swellow can survive even one hit at full health.

So Swellow starts with Quick Attack, and a critical hit doesn't even do 2/3 damage. Uh oh. Looks like Swellow is done for...

Magneton flinched!

Count on hax to save the day! King's Rock worked after all, even if it was for this one and only use. Another critical Quick Attack ends the battle. "It's not very effective...", LOL.

For the hard work, I-chan receives a third badge.

[I tried various strategies, like trying to get Wattson to switch in Magneton so it can be hit twice (which I wasn't able to do), among other stuff. This one looks the best in my opinion. On the other hand, I could have done what cstrakm did (5 X Attacks) but that just uses up too many X Attacks that I would need later. I also considered having Voltorb Selfdestruct while using an X Attack, but that leaves Swellow with too little health for later.]

With that done, it's time to head north.

North of Mauville

Obviously Rock Smash is needed now, so Ziggy gets it. Also, Swellow gets Quick Claw back. Meanwhile I-chan is having too much fun with the bike, and starts zigzagging with it, and even bumping into stuff at high speed. She also decides to bump the bike shortly before entering new areas.

[Bumping the bike before new areas is to manipulate the music so that the fadeout takes as short as possible.]

After a wild ride, we come across a Cooltrainer who has nothing better to do. Her team is Wingull, Numel, and Roselia, but they all fall, even to Peck. No critical hax necessary, just Quick Claw hax will do.

[Because "Peck" is much shorter than "Quick Attack", I try to get Quick Claw to work soon enough so I can use Peck instead.]

Now for more biking through what appears to be snow (it's actually ash). I-chan gets the Max Ether on this route. Who knows when it would be useful? Anyway, I-chan zooms through Fallarbor, and in no time, she is at Meteor Falls. Bad stuff is going on.

Team Magma has just stolen a meteorite which they plan to use at Mt. Chimney. Suddenly, some other team comes and scares them away. It turns out the other team is Team Aqua. And why should we trust Team Aqua? Hm? Oh well, now that everyone's gone, time to leave this dreadful place.

Heading on superspeed mode, I-chan goes through Rustboro, Rusturf Tunnel, Verdanturf Town, and Mauville, on the way to the Mt. Chimney lift. Along the way, she picks up another Max Ether. Also, she breaks the rock barrier that allows two people to be together, and gets Strength. What? If only breaking rock was so easy.

Once arriving at Mt. Chimney, a massive fight breaks out between the two teams. Time to stop Team Magma from using the Meteorite. Some grunt is waiting, but his two Pokemon are disposed of in two attacks. Then comes Magma Admin "Tabitha", who is a guy despite having the name Tabitha. I could laugh at the game for giving such bad names. But that would be hypocritical. Anyway, his three Pokemon are grunt-level and they go down in three attacks.

Now for Maxie. As you've been seeing grunt-level Pokemon all this time, it should come as a shock that all his Pokemon are evolved forms! Mightyena starts out by lowering Swellow's Atk. That doesn't help matters. Fortunately critical hits ignore stat changes if it is beneficial to do so. So critical Wing Attack destroys them all anyway!

Now for Lavaridge Town and Flannery. After heading down the Jagged Pass, you'll notice that Lavaridge is very close to the base of the lift, yet the only way to Lavaridge is up the lift, then down Jagged Pass! Some weird transportation system going on here. Anyway, at Flannery's gym, it's quiet. Too quiet...

And what do we know, we're at Flannery already. Time for battle.

The first two Slugma go down with non-crit Wing Attack. The Torkoal on the other hand has a lot of HP. Fortunately, its Overheat, which would cook Swellow, misses, so Wing Attack takes it down in two hits. With that, I-chan receives her fourth badge, and can now go fight Dad. Note that after defeating Flannery, a whole bunch of lurkers mysteriously pop up from the holes. I wonder where they were at the beginning.

Upon leaving, Brendan pops up yet again. Coincidence? Fortunately, no battle today. Just the Go-Go Goggles, a useless item. Once he leaves, head back to Petalburg City. How? Well, I-chan didn't catch the Abra for nothing. Just use Teleport!

Petalburg City

Head to the gym right away. Anyway, the first trainer likes to use an item right away. Using items always takes precedence over any move, so there's no way to stop them. Of course, the items aren't very useful, if the opponent can't even make a move! Anyway, the first trainer uses X Accuracy, which is useless as crit Wing Attack wins. The second trainer doesn't even start out with an item, so that's that. And the third trainer? Well, he tells I-chan that he'll show how bad it is to take a critical hit. Dude, it's the other way around. Also, I-chan never used Dire Hit. Hax rules.

Finally, Dad, or Norman. Good thing he won't let new trainers fight him, because his team can destroy any unprepared team easily. Case in point, Slaking. Obviously, Swellow can't do much to it, and yet it does massive damage to whatever doesn't resist its Facade. Oh well, try using X Attack. Facade takes away 80% of Swellow's total HP. How about another X Attack? Isn't that bad? No, because Slaking is now loafing off! What a dumb Pokemon. Smart Pokemon don't have "abilities" like Truant which costs you a turn every second round. Now that Swellow's set up, critical hax attacks doom all of Norman's team.

[Although the HP hit isn't too good, the one good thing about it is, instead of Norman's last Slaking using Focus Punch, which wastes time, it tries to use Facade instead.]

Apparently, Dad takes the loss very personally. I-chan gets a fifth badge, as well as Facade. Also, Wally's uncle is suddenly in a good mood. Head over there, and I-chan gets Surf. Well, thanks.

With Surf in hand, it's time to head east.

Eastern lands

I-chan could go through Rusturf Tunnel again, but instead, we'll take the secret Surf passage from just north of Oldale Town, after teaching Surf and Facade of course. After some artful trainer dodging, surfing, Steven appears. This guy keeps coming after I-chan; maybe she should just get out of there. Then after walking through super-thick jungle grass, and biking up a mud slope (???), I-chan reaches the weather institute. Uh oh, Team Magma is at it again! Well, anyway, the first grunt is no problem. Why do grunts have such weak Pokemon?

[Taking on the upper grunt is longer due to that grunt having two Pokemon instead of one.]

The second grunt is also no problem. In a moment of brilliance, I-chan notices that if the grunt takes one step forward, he no longer blocks the central route! Anyway, time to go verse Magma Admin Courtney. The Numel is no problem. The Mightyena, on the other hand, drops Swellow's Atk. Now, if I-chan remembers, Dad had the manual for how to use Facade. If a Pokemon using Facade is poisoned, burned, or paralyzed, Facade counts double. Let's try using Facade. Wow, it works! Well, I-chan did use Facade earlier, but it wasn't an issue because the Pokemon were all so weak.

[And because "Facade" is shorter than other attacks, except "Peck".]

Anyway, Courtney runs off, but not before laughing at I-chan. Ahahahahahahahahaha, both Magma Admins are insane. Anyway, the scientists at the Weather Institute reward I-chan with a Castform. Can't be named, but that's good, since I-chan would probably have given it the name "E" or something.

Anyway, time to hit the road. Only 3 seconds after leaving the institute, Brendan ambushes I-chan from behind. Looks like a time for battle! Not much of a battle though, as Facade wipes all of Brendan's Pokemon.

[Note: The weather is supposed to be raining here. Due to an emulation error, it doesn't whenever you record a movie. It works perfectly fine when not recording. Whatever, no big deal. Weather would just add three rain messages, and that's about it.]

Now to head to Fortree. You might notice the fake trees; those are Ninja Boy trainers. Anyway, I-chan goes in and out of the Pokecenter, to set the Teleport point. Now, the gym isn't available yet, so continue into the next route. Steven is just standing there. Some kind of stalker. Anyway, Steven asks I-chan if she is ready for the challenge (what challenge, pointing a Devon Scope at an invisible Pokemon?) and of course I-chan says yes. Note that you can see the Kecleon in the water reflection, just the game's way of telling you that you rule and in-game characters suck.

Of course, I-chan just runs away from Kecleon. What an easy task. Now to continue. More biking, and it seems Team Magma is headed to Mt. Pyre. I-chan also heads to Lilycove but then changes her mind and comes back to the Surf point, and heads to the Mt. Pyre entrance.

[The biking to Lilycove is to put Lilycove on the Fly map.]

Chasing Team Magma

Mt. Pyre is spooky, because of people standing over a mass of graves. Time to head upward, and... Team Magma is all over this area; what a surprise. All three grunts here have sucky Pokemon; mixing up the attacks is preferable. Of course, Maxie steals the Blue Orb and leaves. Since the remaining orb is now useless if it stays, I-chan receives the Red Orb.

[Note: Switching Zigzagoon and Castform is for a later battle. As in, a double battle.]

I-chan teleports back to Fortree City. After using the Devon Scope to chase away a Kecleon (does it need a Devon Scope, seriously?), it's time to take on Winona. The two trainers here are easy to beat. Winona on the other hand... well, three of the four Pokemon fall to Facade, but of course Skarmory, being Steel/Flying type, doesn't even fall from crit Facade. So it takes two hits. And of course Skarmory misses Steel Wing. That's the sixth badge.

Now that Fly can be used out of battle, I-chan flies to Slateport City, where the captain is proud of having discovered a special underground area using his submarine. Of course, Team Magma stealths into the submarine dock and makes off with the sub, not before taunting just about everyone. Apparently, they're headed to Lilycove. I-chan now flies to Lilycove City and infiltrates their hideout.

You might start to notice how much of a hypocrite this Team Magma is. Their hideout is in the water. The grunt outside is training Wailmer, a water Pokemon. They use a submarine to get to an underwater base. And so on. But of course no one would have cared if it was Team Aqua. So anyway.

You thought the trainers are all blind? In this hideout, the grunts here are beyond that. I-chan evades the first grunt just by adept cornering. The grunt simply cannot see between the lines. Either that or he simply doesn't care. Then I-chan walks right in front of another grunt. Nope, no alarm bells, nothing. I-chan evades another couple grunts, walking right beside one of them. Then, right in front of another grunt. Then the worst... I-chan lets a grunt bump into her; yet that grunt doesn't notice! You'd think that running into someone is the biggest giveway, but no. Seriously, with security like this, I-chan could just wipe this place clean of items, and it's like nothing ever happened. Right?

[On the Japanese version, the second grunt has a longer line of sight, such that evading that grunt is not possible. This is also on the J Sapphire version as compared to the U Sapphire version.]

Oh, and of course, there is "Tabitha". He is surprised that I-chan made it through undetected, even though all the grunts are as blind as a Zubat. Anyway, all his Pokemon are owned by Facade, even when Mightyena lowers attack. But of course he gloats that he delayed you enough so the submarine can now leave. Hehehehehehe. I-chan leaves and surfs for Mossdeep City. The swimmers here are exceptionally strong, having been swimming in the water without rest.

Mossdeep Town

Once at Mossdeep, I-chan decides to give Steven a visit. Wait, are you crazy????? Oh, but luckily Steven is a nice guy, even if he wants to follow I-chan around. For paying Steven a visit, I-chan receives Dive. Now for the gym.

There are a whole lot of switches here. Also a lot of psychics. Weird people, to be quite honest. Anyway, partway through the gym puzzle there is this psychic who claims to know the I-chan's future. Whatever (her name in the Japanese version is "Mirai", or future; go figure). Anyway, Facade makes short work of Xatu, and I-chan doesn't have time to hear her future, so she keeps puzzling away. I-chan also decides to teach Steel Wing, Strength, and Dive. Also, since Facade has 0 PP, a Max Ether is necessary here. After messing around with enough switches, we come to Tate&Liza. Or rather, Liza and Tate, if you want to write it that way.

I-chan expects a normal battle. But she is wrong, because Liza and Tate use the double battle formula. Yes, that's two Pokemon each side, battling at the same time. Anyway, Liza and Tate use Lunatone and Solrock, in no particular order. I-chan uses Swellow and Castform, in that particular order (does it matter? lol). Now Rock is weak to Steel, so Swellow's critical Steel Wing gets rid of Lunatone. Now obviously Swellow is the big danger here, yet Solrock uses Psychic on Castform! Bad move, I say. To add insult to injury, Castform doesn't even faint. So now Swellow uses crit Steel Wing on Solrock. Hax wins again. There's your seventh gym badge.

[One nice thing is that the game hasn't quite figured out the AI even after you can select the menu. So it is possible to manipulate by when you access the menu.]

Seafloor Cavern

Time to head south. With Dive able to be used, I-chan now goes underwater at this particular point. So I-chan can breathe underwater now? Anyway, after entering a sea cavern, we spot a submarine underwater. Time to surface. This looks like Team Magma's hiding spot.

The Seafloor Cavern isn't too descript. Just a whole bunch of rock puzzles. As usual, there is a blind grunt right there. After pushing a bunch of boulders, I-chan comes across Courtney again. Again, Facade is enough to take down both Camerupt and Mightyena. What a bunch of losers. Anyway, after a lot of boulder pushing, we fight Maxie once and for all. Of course, critical Facade takes down Mightyena, then Camerupt, then Crobat. So much for that.

Of course, Maxie gets better. He reveals the Blue Orb, which wakes up Groudon. Of course, Groudon leaves at light speed and starts raging, causing the entire eastern Hoenn to have drought condition. Archie and Maxie have a useless debate, and then leave. Meanwhile, Steven comes in, says the most obvious thing, and then leaves just as fast.

I-chan decides to head over to Sootopolis. It is a city that is notably walled off by mountain, leaving it isolated (except for air and underwater travel). Of course, there is a secret underwater passage in. Near the Cave of Origin, Steven and Wallace are discussing some stuff, and they notice that I-chan has the Red Orb, the key to calming Groudon. Upon entering the Cave of Origin, picking up Waterfall, and reaching Groudon, we come to an epic showdown. Except no one said running away was illegal. And that's what I-chan does. Strangely enough Groudon decides that I-chan is to be respected and goes away in peace.

After using Escape Rope, we now see that everything is back to normal. Time to hit the gym. Steven of course is standing in front of the gym to thank you. Why did he even bother. Anyway, the gym consists of breakable ice patches. You can only walk over each patch once; walking on it twice causes it to break. Not hard, and it's time to battle Wallace. Except that Facade destroys them all. So much for that. I-chan obtains the eighth gym badge.

Towards Pokemon League

Anyway, time to fly out to Mossdeep, then surf south and east to Victory Road. The place is rather creepy, infested with powerful wild Pokemon as well as powerful trainers. Anyway, all the Cooltrainers here are beaten easily with Facade. Near the end, Wally appears. He used to be this very weak trainer. And now, he has a great team! Unfortunately for him, Facade takes him out easily. Even Magneton can't withstand critical Facade.

Now for the Pokemon League. But first, I-chan dumps all the useless, I mean, all other Pokemon into the PC. Thanks for nothing. Of course since Swellow is the only real battler here. Also, a second Ether would be good to use now, especially since Facade has 0 PP. Time for the Pokemon League.

Elite Four

First up is Sidney. I-chan decides to use a X-Attack to counter Mightyena's lowering Swellow's Atk. Very fortunate that Mightyena uses Take Down and misses. This is a good thing, since now Facade takes out Mightyena without any problem. Then Cacturne. Then Sharpedo. Although it hurts. Then Absol. Then Shiftry. No crits needed. Sidney is defeated, and he even calls himself a loser afterward.

[Using X Attack saves very little time compared to doing 4 extra critical hits, but it happened to manipulate the RNG better than otherwise. Also, Sharpedo is OHKO even with the Attack down; that's how defensively weak it is.]

Now I-chan faces Phoebe. Of course Facade is useless, right? Well, after an X-Attack, crit Wing Attack does wonders. The first Dusclops (yes, there is more than one) uses Future Sight, which of course doesn't help its cause. Both the first and second Dusclops go down to Wing Attack. Of course, Future Sight comes back to hit Swellow... except it doesn't. Because "it failed!". No clue how, but I-chan isn't complaining. The rest of them (Banette, Sableye, and Banette) can go down to crit Wing Attack, but are taken down with crit Steel Wing instead.

[The second Dusclops needs a high crit Wing Attack. I had planned to use two X-Attacks here before I figured one was enough.]

Now for Glacia. Facade takes down the first four Pokemon without critical hits (two Glalie and two Sealeo). The last one is a Walrein, which of course does not go down to a non-critical Facade. Solution? Critical Facade.

Now I-chan reaches the last Elite Four, that is Drake. No points for guessing which type Pokemon he uses. It turns out that all his Pokemon go down to a crit Facade. Shelgon, Flygon, Altaria, and Flygon are all rendered useless by sheer hax that is typical throughout this entire run. Then Salamence comes out, lowering Atk. What to do? Well, how about critical Facade.

[Drake's first four Pokemon all barely survive non-crit Facade. That's just how it is.]

With the Elite Four out of the way, I-chan now wonders who the champion is. Of course, up to this point Swellow had been running hax levels that exceed the number of atomic particles in the entire universe. Unknown what the level is, but whatever it is, it is definitely over 9000. Anyway, the champion is... Steven. The guy who was following I-chan throughout the game. Time for the last battle.

Battle with Steven

Steven sends out a Skarmory. I-chan sends out Swellow (who else?). Now you may think Swellow has no chance because Steven has lots of Steel and Rock, but of course I-chan notices that there are two X-Attack left. Just enough to win this one.

First, I-chan uses X-Attack. Skarmory uses Steel Wing and misses. LOL. I-chan uses another X-Attack. Skarmory uses Steel Wing and misses again. LOLx2. Well, let's try Facade, shall we.

Swellow used Facade. Critical hit! It's not very effective... Skarmory fainted!

How about that?

Steven's next Pokemon in Claydol. Oh wait, Claydol is neither Steel nor Rock! Facade. Claydol fail.

What's the next Pokemon? Cradily. Let's see, of course I-chan could use Steel Wing on it. That would be too easy, wouldn't it? In fact, I-chan's pocket calculator says that Steel Wing barely won't knock it out unless critical. Why not just use Wing Attack instead? Indeed, crit Wing Attack works just as well, and Cradily falls.

Now for Armaldo. I-chan remembers that Armaldo has Battle Armor, which prevents critical hits on it. Where did I-chan get this information anyway? A secret guy? Whatever, let's use the attack that does most damage, and that is Steel Wing. Guess what? OHKO.

Here comes Aggron. Of course either Steel or Rock isn't good for Swellow, so how about Steel/Rock? Steel Wing is the only option here. But with some luck, Thunder misses Swellow, and then two critical Steel Wings take down Aggron. Swellow taking down Aggron? Now that is just wrong.

Finally the last Pokemon, a Metagross. Surely luck would run out?

Swellow use Facade. Critical hit! It's not very effective... Metagross fainted!

And with that, I-chan is the champion! Of course Brendan has to spoil the fun by coming in to give advice. Wait, how did he manage to get in anyway? Dr. Birch is there as well. Maybe they pushed over a whole bunch of people to force their way in. Anyway, after an awkward discussion, Steven takes I-chan into the hall. And that's about it. Swellow claims credit at the expense of all the other Pokemon that I-chan discarded in a PC. And, of course, I-chan is in the Hall of Fame.

Screenshots

GoddessMaria's comments

I must say Thank you to FractalFusion for working alongside me on this run. His knowledge and familiarity with Ruby/Sapphire is unparallel and has helped this run be as great as it could be.

As for the run, I feel proud that it is finished and it actually has given me more things to know about in regards to the games themselves. Anyway, I hope you all enjoy the run!

Thanks

Thanks especially to cstrakm whose TAS on the Japanese version of Pokemon Sapphire helped us very much with the planning of this run.

Thanks to everyone who supported us in the Pokemon Sapphire thread. Thanks to BrandonE for his many encodes on Pokemon Ruby and Sapphire.


Mukki: Judging...

Mukki: Great run, great improvement, great response, great submission text. Accepting as an improvement to the currently published run.


Brandon: Publication underway.


Similar submissions (by title and categories where applicable):