• 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.

Dive in FR, LG/BG

35
Posts
16
Years
  • Seen Jun 17, 2013
Dive in FR, LG/BG​


At first I have to explain following....
FR is Firered and Feuerrot (Firered German)
LG is Leafgreen
BG is Blattgrün (Leafgreen German)

1. Content

- Foreword
- Knowledge and Tools
- Preparation
- Guide
- Offset for other Roms
- Result
- Conclusion

2. Forword
Hi, today I show you how you can dive in Pokémon Feuerrot/Firered and Blattgrün/Leafgreen.
A big special thanks goes to sonic1 and BattleChan. Without there help it couldn´t be possible for me to write this tutorial.

3. Knowledge and Tools
We need:
- XSE
- AM
- a Rom
- a Hex Editor
- VBA
- .... (a new Underwater Tileset and Map)

4. Preparation
The Script can only work when you have the 5. Badge which allows to surf and to dive. So you have to make a script or fix this, or a battle where you can win this badge, ....

5. Guide
I use a Firered Rom. The offset for the other roms you can find later.

At first we open Advance Map and change the map connections. We go to Tools-->Connections (in German Anbindungen) or press Ctrl+A and do the following.
dive1.png

Abtauchen means dive and Auftauchen means Emerge. Sorry for that but I am from Germany.


(Of course the connection to the map we will dive.)

Now we go to the map in which we want dive and make the same things with the emerge connection.
dive2.png

(Of course the conection to the map we will emerge.)

Now we have to change the mapsettings that a map can called overworld map and the other map can called underwater map. This step is important. Not only that you can call the maps overworld and underwater map. Also you need it that the script can work. We go into the Map Header. Header-->Map-Options. There we have to change it.
We change the Map-Typ to 06 at a overworld map. And 05 to a underwater map. This should look like this.
dive3.png

dive4.png

(Unterwasser is German for Underwater)

After we have done thiis we save all.

THen we open our Rom in a HexEditor. There we navigate to this to Offsets:0x06DF82 and 0x06DF9C and write to Bytes of 00 in it (0000) and save it.

The next thing we have to do are the scripts.
We open XSE and navigate to this offset: 0x1BE38B.
This is our basic-script. This should look like this. If not your rom must be wrong, crashed or ....
Spoiler:



From this basic script we can make our dive and emerge scripts.
Our dive script:
Spoiler:


Our emerge script:
Spoiler:


If we have import both script we go back into AM. We make a tile with the behavior byte 19 which we need to dive.
This tile we put into our map. On this tile we put a signopost on which we have our script (the offset to our script).
Then it should work.

Our Test shows following. (okay, I have changed the dive connection. Forget my connection on my first picture. It´s the water labyrinth and not Eiland One)
dive5.png
dive6.png
dive7.png

dive8.png
dive9.png
dive10.png


Warning (xD): You don´t have a sprite for underwater. But you can maybe tricks like the gender change script where you can use an other sprite which you make to the underwater sprite or you have to use the surf sprite.
This is not in my tutorial.

6. Offset for other Roms
Offsets where you have to put the 0000´s.
Feuerrot: 0x06DEE6 und 0x06DF00
Blattgrün: 0x06DEE6 und 0x06DF00
Leafgreen: 0x06DF82 und 0x06DF9C

7. Result
dive5.png
dive6.png
dive7.png

dive8.png
dive9.png
dive10.png


8. Conclusion
This tutorial is Copyright by Hackrex and shouldn´t copied without my permission. Link to it is ok.
Again thank you sonic1 and BattleChan.

(DIG UP and DIG DOWN Scripts are possible, too):
There you have to change the text and copy the scripts. Then you need the 5. Badge, too. And you have the behavior 19 on a tile which you have on land and not on water.

Sorry for Bad English
 
Last edited:
5,854
Posts
17
Years
  • Age 34
  • Seen Dec 8, 2023
Thanks for the script, I found it pretty helpful indeed. However, I have a couple of problems with it, and it just seems strange that you haven't had the same.

Firstly, I cannot set the location for where the player goes after diving or emerging. I have found that when I dive, I go to the center of the target map, away from my intended starting point. That's fine, I can deal with that.

However, when I emerge to the previous map, I wind up outside of the maps border, trapped and unable to move.

There seems to be no way in the connections to manage this at all, so yeah, I don't know where to go with this. I think what might be more helpful for everyone though is to have a buoy to indicate where to dive and emerge, rather than imitate RSE's tiles.

edit: okay, I experimented a bit with it. Diving places you in the center of the target map, while emerging places you directly above on the target map. Weird aye, but I think it's manageable.

2nd edit: I wasn't bothered to do any mapping tonight, but I thought I'd try my hand at getting the surf sprite to work.

BDJAA.png

huzzah! (as you can tell the sprites I imported from RSE aren't too compatible with the underwater mist "weather". Don't know what I'll do about that).

I'm using JPAN's hacked engine, so it might make it easier, but I just made a level script (using this superb tutorial - why isn't it archived in any stickied thread?). Only problem with this solution is that because it's a surf sprite, half of the Pokemon is still "submerged".

The script I compiled was the following simple lines:
Code:
#dynamic 0x800000

#org @start
special 0x161
setvar 0x4033 0x1
release
end

btw the seaweed "grass" works as well. Behaviour byte 22 for the diving animation bubbles when you float over them, and background byte 19 for random battles.

Edit: Since posting here I have found that the above script I shared does not completely work, but also found, using JPAN's hacked fire red engine, another method of changing the sprite, using the runtime trainer customisation he included in the hack.

z7Xz0.png

BECOME THE LITTLE GIRL

All it requires is a level script on the undersea maps, and one on the normal maps for when you come back up, to change the sprite back to how it was. Don't mind the little girl or the messed up sprite, they're just placeholders.
 
Last edited:
36
Posts
10
Years
  • Age 32
  • Seen Jan 2, 2014
Thanks for the script, I found it pretty helpful indeed. However, I have a couple of problems with it, and it just seems strange that you haven't had the same.

Firstly, I cannot set the location for where the player goes after diving or emerging. I have found that when I dive, I go to the center of the target map, away from my intended starting point. That's fine, I can deal with that.

However, when I emerge to the previous map, I wind up outside of the maps border, trapped and unable to move.

There seems to be no way in the connections to manage this at all, so yeah, I don't know where to go with this. I think what might be more helpful for everyone though is to have a buoy to indicate where to dive and emerge, rather than imitate RSE's tiles.

edit: okay, I experimented a bit with it. Diving places you in the center of the target map, while emerging places you directly above on the target map. Weird aye, but I think it's manageable.

2nd edit: I wasn't bothered to do any mapping tonight, but I thought I'd try my hand at getting the surf sprite to work.

BDJAA.png

huzzah! (as you can tell the sprites I imported from RSE aren't too compatible with the underwater mist "weather". Don't know what I'll do about that).

I'm using JPAN's hacked engine, so it might make it easier, but I just made a level script (using this superb tutorial - why isn't it archived in any stickied thread?). Only problem with this solution is that because it's a surf sprite, half of the Pokemon is still "submerged".

The script I compiled was the following simple lines:
Code:
#dynamic 0x800000

#org @start
special 0x161
setvar 0x4033 0x1
release
end

btw the seaweed "grass" works as well. Behaviour byte 22 for the diving animation bubbles when you float over them, and background byte 19 for random battles.

Edit: Since posting here I have found that the above script I shared does not completely work, but also found, using JPAN's hacked fire red engine, another method of changing the sprite, using the runtime trainer customisation he included in the hack.

z7Xz0.png

BECOME THE LITTLE GIRL

All it requires is a level script on the undersea maps, and one on the normal maps for when you come back up, to change the sprite back to how it was. Don't mind the little girl or the messed up sprite, they're just placeholders.

I followed RSEs Logic of Dive. The maps have to be identical in size. For example, Pallet Town is 24x20. I used Route 1 as the underwater map and resized it to 24x20. When you Dive or Emerge you will go to the SAME position in the other map. That's it. Works like a charm. The rest is just tileset and changing the player sprite.
 
Back
Top