Pokémon Pearl in 53:01.39 by MKDasher
- Emulator used: DeSmuME 0.9.9 with Advanced Bus-Level Timing OFF and Dynamic Recompiler OFF
- Aims for fastest time
- Abuses programming errors
- Heavy Luck Manipulation
- Takes Damage to save time
The run uses a really well known tweak for generation 4 Pokemon games called tweaking. This glitch allows me to complete the game with only 2 badges and a single Pokémon.
I pick Chimchar for this run. He's definitely faster than Turtwig, and it's better than Piplup because Chimchar can learn the 2 HMs I need for this run, which is Cut and Rock Smash. Therefore, I can go through the run without catching any extra Pokémon.
The IVs of my starter are 5 HP, 31 Attack, 8 Defense, 30 Sp.Atk, 3 Sp.Def and 31 speed, with a hasty nature (boosts speed and decreases defense). I need maximun speed to outspeed Onix, Cranidos and Roserade (which is actually a speed-tie), so I can save a few turns. Special attack boost wouldn't save as much as a speed boost.
Attack IV and Special Attack IV are perfect (30 IV is just as good as 31 IV for early levels).
I need low defenses and HP so I can manipulate Blaze as soon as possible. Blaze is Chimchar's ability. This ability boosts fire type moves by a 50% if the user's HP is 1/3 of its total or below. By having bad defenses I can get to a low HP faster to use this ability and save a few turns as well.
General RNG Manipulation
It's possible to manipulate starter's IVs, encounters and battle luck on this game.
The RNG on this game is 4-byte hexadecimal value. The seed is set after the introduction cutscene is cleared (just before you gain control of the character). The seed is calculated as follows:
- AA = Day * Month + Minutes + Seconds
- BB = Hour
- CCCC = Frames + 2 last digits of the year.
After that, the RNG advances everytime the game does an encounter check (when doing a grass step or walking in a cave), everytime a NPC moves, and everytime you do 128 steps. The latest makes the RNG advance once for each Pokemon you have on your team.
This means, in order to manipulate for encounters, you have to wait for an NPC to move, which is sometimes really slow. In particular, there are no NPC that moves in Eterna Forest, so a Repel is needed there to get through the forest without getting encounters.
Finally, battle RNG is different from overworld RNG. The RNG is seeded the same way as the overworld RNG, and it's seeded just before a battle starts. Then the RNG cycles once each frame. Since this RNG runs at 30fps, it's a bit slow to completely manipulate the RNG to get perfect battles, and in some cases big delays are needed.
Tweaking glitch explanation
Tweaking is done by performing fast movements over load lines, usually with the Bicycle, Running Shoes or Surfing in order to make the game load the overworld incorrectly.
The overworld map is built up of 32 x 32 tile grids separated into 4 smaller 16x16 grids. Where these grids intersect in the center is where tweaking can occur. Using this tweak map, some basic tweaks can be done.
-Void tweaking: This involves creating a void, in which the collision is from the tile grid behind you. This does not load the objects or NPCs from that grid, only the collision. This is the only tweak used for this run.
-Load Tweaking: Similar to Void Tweaking, Load Tweaking is the same except it allows you to see the models. Usually this is useful when you want to do another tweak in that area, as you can usually tell where the collision is by the models, and the Z axis changes. Unfortunately, this method doesn't work correctly on Pokemon Pearl because it causes the game to freeze most of the time.
-Object Unloading: this tweak is perform with either the bike or running shoes. This is useful in certain areas where an NPC is blocking a doorway and using the bicycle for tweaking would be inconvenient. Unfortunately, this doesn't always occur. In Pokemon Pearl, most of the cases the only thing that would unload is the NPCs sprite, but the NPCs would still be there, so this tweaking doesn't allow any skip on this run.
The void glitch is a specific application of the tweaking glitch only possible in Pokémon Diamond and Pearl. First, the player must tweak a black area onto a section that would normally contain buildings, making it possible to walk through their improperly loaded walls. Then, by standing exactly one tile above the entrance to a building, reloading the area, and walking south, the player can end up on the interior map of the building, but in the black void area around the normally accessible portion.
The void glitch isn't fully understood yet, but by going through an specific path, it's possible to get to the Hall of Fame. The path requires saving 3 times during that section. Before the first save, it's neccesary to save on Jubilife City after crossing Turnback Cave once. Saving in any other place would cause freezing or changing the map in a way that I wouldn't be able to get to Hall of Fame as fast.
After the first save, I need to get to the first Hall of Fame trigger and save the game. After the second save, I need to get to the second and third trigger, then saving again, and after reloading the game I'll appear in the "Beating Cynthia cutscene", which will warp me to the Hall of Fame.
The path taking on this run saves 69 steps on what it was thought to be the fastest Hall of Fame strategy.
Tweaking spots in this run
As explained previously, none of the running tweaks are useful for this run because the only thing that I am able to unload is the NPCs sprites, but they would still be there, so I can only use the tweaking glitch when I get the bike.
There are a few void glitches you can perform in Eterna City, unfortunately none of them let you enter on a building, so the fastest strat is going to Oreburgh Town.
For the bike path, 3 consecutive tweaks are used. These tweaks are helpful to skip Lucas's cutscene where he would be giving you the VS Seeker. Finally, I can do a void tweak in Oreburgh to enter in a house from inside. This is an improvement on the previous fastest known strat which consisted in going to Jubilife City.
: Another excellent Pokémon TAS by MKDasher. Accepting for Moons.