PDA

View Full Version : I'm Fixin' It: The Roaming Legendaries IV Glitch


HackMew
April 12th, 2010, 08:02 AM
Brief Intro
Almost all 3rd generation games have a glitch which will result in extremely low IVs for all roaming legendaries: Latios in Ruby, Latias in Sapphire and Entei/Raikou/Suicune in FR/LG. If you paid attention, I said almost all games; that's because the glitch got indeed fixed in Emerald.

Description
The glitched IVs are the result of a buggy code: only 8 out of 30 bits will be saved into the wild data upon meeting the Pokémon. This means only the HP IV will be stored correctly along with the first 3 bits of the Attack IV. Everything else will be set to 0.

While the IVs are stored the wrong way, the IVs are still stored correctly into a special, reserved RAM area. So, with a bit of effort and patience, one could theoretically recover the proper IVs and manually fix his/her roaming Pokémon.

I'm not even going to post the original routine because it's pretty long and... useless, anyway. I'll just show you the fixed one directly (using FR US v1.0 as example):

[css-div="font-family:consolas, courier new,monospace"]08040a92 6821 ldr r1, [r4, #0x0]
08040a94 6069 str r1, [r5, #0x4]
08040a96 e020 b $08040ada[/css-div]

Using a hex editor, simply replace 21 78 1F 24 0A 1C with 21 68 69 60 20 E0. The offsets are below.

The Offsets



FireRed/LeafGreen US v1.0

[css-div="font-family:consolas,courier new,monospace"]0x40A92[/css-div]

Ruby/Sapphire US v1.0

[css-div="font-family:consolas,courier new,monospace"]0x3D89A[/css-div]



This research document is Copyright © 2010 by HackMew.
You are not allowed to copy, modify or distribute it without permission.

giradialkia
April 12th, 2010, 09:04 AM
Although it's a bit random, that's an impressive find- good job, HackMew :)

HackMew
April 12th, 2010, 09:24 AM
Although it's a bit random, that's an impressive find- good job, HackMew :)

Well, thanks but I wasn't the first to discover the glitch. However, I was the first to find a fix, apparently :)

Tropical Sunlight
April 13th, 2010, 04:17 AM
It's epic.

EDIT: Ah I'm so dumb! :D

hashtag
April 13th, 2010, 04:20 AM
Um, what? IV = Individual Value. :<

tinix
April 13th, 2010, 04:22 AM
IV in Roman numbers would mean 4, when the glitch fix you posted in for Generation 3...

It's still epic.
He doesnt meant IV as generation 4 but as Individual Values or IV's

Salamencite
January 9th, 2013, 10:02 PM
Could you make a video/walkthrough demonstrating how to do this? Your tech level is far superior to mine...

Shiny Quagsire
January 10th, 2013, 02:29 PM
Could you make a video/walkthrough demonstrating how to do this? Your tech level is far superior to mine...

I swear, if people would just read it through a few times instead of giving up after not reading the whole thing, you'd find your answers:


Using a hex editor, simply replace 21 78 1F 24 0A 1C with 21 68 69 60 20 E0. The offsets are below.

...


FireRed/LeafGreen US v1.0


0x40A92


Ruby/Sapphire US v1.0


0x3D89A

Jim Boob
January 27th, 2013, 02:27 PM
This is a nice find, good job!