• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[ASM & Hex] Mirage Island always spawned?

41
Posts
10
Years
From my search on the internet, I see no one has really dabbled with the dreaded Mirage Island. I haven't found any obvious file for it in github/pret/pokeemerald/ which is how I'm dev'ing my personal hack. How hard could it be to skip the personality value checks and always spawn it? I'll be having a more thorough look through the source later. I can only find these in source - I don't know how to find through hex. I could find where it is after finding the source location and using diff cleverly.
 
Last edited:

Squeetz

ROM Hacker
191
Posts
10
Years
From my search on the internet, I see no one has really dabbled with the dreaded Mirage Island. I haven't found any obvious file for it in github/pret/pokeemerald/ which is how I'm dev'ing my personal hack. How hard could it be to skip the personality value checks and always spawn it? I'll be having a more thorough look through the source later. I can only find these in source - I don't know how to find through hex. I could find where it is after finding the source location and using diff cleverly.

You could check it out in Advance map (map 0.45).
Look at the Level script, it does the checks and sets the mapfooter.
 
794
Posts
10
Years
From my search on the internet, I see no one has really dabbled with the dreaded Mirage Island. I haven't found any obvious file for it in github/pret/pokeemerald/ which is how I'm dev'ing my personal hack. How hard could it be to skip the personality value checks and always spawn it? I'll be having a more thorough look through the source later. I can only find these in source - I don't know how to find through hex. I could find where it is after finding the source location and using diff cleverly.

Don't use the dissasembly, because it's incomplete and lots of stuff is not labeled. Get yourself a program called IDA and an Emerald database. As for the Mirage Island check out special 0xD4.
 
647
Posts
6
Years
From my search on the internet, I see no one has really dabbled with the dreaded Mirage Island. I haven't found any obvious file for it in github/pret/pokeemerald/ which is how I'm dev'ing my personal hack. How hard could it be to skip the personality value checks and always spawn it? I'll be having a more thorough look through the source later. I can only find these in source - I don't know how to find through hex. I could find where it is after finding the source location and using diff cleverly.

Found a way to make Mirage Island always spawn using AdvanceMap, open up Route 130, go to the Header tab, under "Map script" click "Open script" and replace the script with this:
Spoiler:


Tried it just now and it worked out for me just perfectly!
 
476
Posts
6
Years
  • Age 23
  • Seen Feb 26, 2020
Found a way to make Mirage Island always spawn using AdvanceMap, open up Route 130, go to the Header tab, under "Map script" click "Open script" and replace the script with this:
Spoiler:


Tried it just now and it worked out for me just perfectly!

Question - How would you use this to make it as simple as a higher likelihood? AFAIK it's like 1/32768 or smth, maybe 1/65536, so what would you do to make it higher, like 1/32 (to be reasonable for a hack where you'd *want* the player to be able to access it as potential end-game content if they were a little lucky. I'm not hacking Emerald but I feel it'd be useful to know for someone that wants to do this.)
 
647
Posts
6
Years
Question - How would you use this to make it as simple as a higher likelihood? AFAIK it's like 1/32768 or smth, maybe 1/65536, so what would you do to make it higher, like 1/32 (to be reasonable for a hack where you'd *want* the player to be able to access it as potential end-game content if they were a little lucky. I'm not hacking Emerald but I feel it'd be useful to know for someone that wants to do this.)

No clue mate, I'm a noob at all this, I'm interested to see how that would be done as well
 
15
Posts
6
Years
  • Age 27
  • Seen Feb 27, 2020
Found a way to make Mirage Island always spawn using AdvanceMap, open up Route 130, go to the Header tab, under "Map script" click "Open script" and replace the script with this:
Spoiler:


Tried it just now and it worked out for me just perfectly!

This is wonderful experimentation! I'm currently looking to make this island always visible AFTER a specific flag is set. Let's say, beating wally in Victory Road. That way the player has a place to train their Pokemon against high level Pokemon. Your work has helped me a ton. I think I may be able to adjust this script just enough to do so. I will let you know what I find out! Thanks
 
15
Posts
6
Years
  • Age 27
  • Seen Feb 27, 2020
This is wonderful experimentation! I'm currently looking to make this island always visible AFTER a specific flag is set. Let's say, beating wally in Victory Road. That way the player has a place to train their Pokemon against high level Pokemon. Your work has helped me a ton. I think I may be able to adjust this script just enough to do so. I will let you know what I find out! Thanks

I figured it out. So i just messed with the map script of route 130 for a bit until I got something that worked. A more experienced person would have done this easily lol but here is the script I made:

Code:
#org 0x81F7365
'-----------------------------------
compare 0x405E 0x4
if >= call 0x81F73B5 ' Larger Than or Equal To
checkflag 0x7E
if true jump 0x81F73B1 ' Flag is set
setflag 0x11
setflag 0x12
setflag 0x13
setflag 0x14
setflag 0x15
setflag 0x16
setflag 0x17
setflag 0x18
setflag 0x19
setflag 0x1A
setflag 0x1B
setflag 0x1C
setflag 0x1D
setflag 0x1E
setflag 0x1F
setmapfooter 0x107
end

#org 0x81F73B5
'-----------------------------------
checkflag 0x88A
if true call 0x827207A ' Flag is set
return

#org 0x827207A
'-----------------------------------
setweather 0xF
return

#org 0x81F73B1
'-----------------------------------
setmapfooter 0x2E
end

I just barely changed enough to load mirage island permanently after defeating Wally in victory road. I then added a bunch of high level blissey's and chansey's to train on. But that is completely just for an example. You could change that defeating wally flag to anything. You could change it to only appear after you rayquaza sends groudon and kyogre back to their caves. There's a lot you could do with Mirage Island actually. If you wanted to get more complicated, you could even make it disappear and reappear after specific events. It's pretty cool.
 
Back
Top