Jump to content

Recommended Posts

Posted

 

Mirage Island Seed Offsets
Section 2
RS 0x408
E  0x464

Old post (obsolete):

Spoiler
 
BlackShark said:
Mirage Island Appearance (Ruby, Sapphire & Emerald)

Mirage Island will appear on Route 130 if the 2 bytes from the Mirage Island value in reversed order match the last

2 bytes of the PID from one of the Pokemon in the players party.

The value changes everytime a day passes by. This means if the battery had run dry the value won't change anymore.

It is even possible to visit the island when you already started your game with dry battery. In that case the value will

always be 00 00 (Thanks to XJ55 for letting me know that!).

Mirage Island value location in save file

The save file is splitted into 2 save blocks (and a third unimportant/unknown block).

Each save block is again splitted into 14 sections (IDs 00 - 0D) with 1000 bytes each.

The section ID is located at the end of each section at offset 0xYFF4. Y can be any value from 0 to D.

To find the right section just replace Y with any of those values and look for the byte 02.

The Mirage Island Value are 2 bytes that are located in the section 02 at the following offsets:

[table=width: 250][tr][td]Ruby & Sapphire[/td][td]0xY408 - 0xY409[/td][/tr]

[tr][td]Emerald[/td][td]0xY464 - 0xY465[/td][/tr][/table]

Example (Ruby/Sapphire):

At 0x2FF4 I have found the section ID 02, so I had to look at 0x2408 for my value.

The 2 bytes at 0x2408 in my save are 86 B0.

That means the PID from one of the Pokemon in my party converted to hex should match XX XX B0 86.

Knowing this it is also possible to create a Pokemon with the required PID.

I took that two bytes from 0x2408 in reversed order, added two random bytes at the beginning (e.g. D5 62 B0 86)

and converted it to decimal to get 3580014726.

Then I used A-Save to change the PID from one of my Pokemon to 3580014726 and Mirage Island appeared!

How it looks in the Hexeditor

Note: This example is from Emerald!

tAIH2dn.png

Since there have been several people asking me for help to find the Mirage Island value in their save files I wrote a little programm (in C) that searches for it!

Well, this is my first programm and unfortunately and don't know how to make a GUI. So you have to use the command prompt (cmd.exe) to use it....

I might make a more comfortable one in the future.

How to use

Only raw save files (size 128kBytes) and uncompressed No$GBA save files (since v1.5) are supported!

No$GBA saves are compressed by default, in order to get them uncompressed

"SAV/SNA File Format" has to be changed from "Compressed (good/lz)" to "Uncompressed" in NO$GBA.ini manually.

1. Search and open cmd.exe

2. Open MirageIslandValue.exe in cmd.exe, you can use drag and drop for that

3. Enter one of these commands -r or -s for Ruby/Sapphire, -e for Emerald

4. Open your save file in cmd.exe, you can use drag and drop again

5. Press Enter and the output should look like the example

Example:


C:\Users\USERNAME>C:\PATH\MirageIslandValue.exe -r C:\PATH\Ruby.sav

Mirage Island Value: 716D
 

The value is already in the right order, you don't have to reverse it!

In my example the PID should be XXXX716D. XXXX can be any bytes from 0000 to FFFF.

For easier usage of the Windows version there are 2 optional batch files in this package

RuSaEm.bat.zip

. All you willl need to do is drag and drop your save onto the respective file. The batch has to be in the same directory as the exe.

Changelog:

 

v1.1

- fixed save index offset

v1.2

- fixed hex numbers that were interpreted as characters

v1.3

- the bug that should have been fixed in v1.2 is now correctly fixed

v1.4

- added a new feature that now detects Pokemon with the needed PID in your party,your boxes and the Day Care

v1.5

- added support for uncompressed No$GBA save files

- added a proper license (GNU GPL)

- fixed some issues

- other small improvements

- added a compiled version for Linux

MirageIslandValue v1.5.zip

MirageIslandValue (Linux) v1.5.zip

MirageIslandValue v1.7.zip (by suloku)

 

  • Thanks 1
  • 1 month later...
  • 1 year later...
Posted

I've modified the source so it will now ask to set Mirage Island Seed so it matches the first pokemon in the party, if you select yes a new save with the new seed is created.

Sorry, no linux binary.

  • 1 month later...
Posted

Since I was looking at how to auto-detect R/S, Emerald and FR/LG saves, I've added auto detection to the program.

It is still text based, but now you can just drag and drop a savefile to the .exe, so no real need to input anything in the command line. The game can still be specified, in which case auto-detection is skipped.

MirageIslandValue v1.7.zip

  • Like 1
  • 1 year later...
  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...