BlackShark Posted December 25, 2014 Posted December 25, 2014 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! 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) 1
suloku Posted December 26, 2014 Posted December 26, 2014 Wow, this is great, I used some AR codes because it seemed easier than looking at the saves/memory, but this is awesome, thank you very much!
ShadowMario3 Posted December 27, 2014 Posted December 27, 2014 This is truly awesome. Tried it on my rom copy of Emerald. Will make a backup of my actual R/S/E games and will try it on those.
BlackShark Posted December 31, 2014 Author Posted December 31, 2014 I added a new feature! The programm now detects Pokemon with the needed PID in your party,your boxes and the Day Care!
XJ55 Posted February 7, 2015 Posted February 7, 2015 That's amazing, BlackShark! Thanks a lot for your work!
suloku Posted March 9, 2016 Posted March 9, 2016 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.
suloku Posted April 25, 2016 Posted April 25, 2016 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 1
BlackShark Posted August 10, 2018 Author Posted August 10, 2018 My previous tool is finally obsolete now! 2
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now