• 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?".
  • Forum moderator applications are now open! Click here for details.
  • 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.

Adding New Overworlds into FireRed for Dummies

metapod23

Hardened Trainer
673
Posts
15
Years
  • Seen Aug 18, 2016
I wanted to write an as-simple-as-possible tutorial on inserting new sprites into the Fire Red rom because, well, I was having trouble with it and finally got it to work. :)

Special thanks to JPAN for helping me understand how to set up everything properly with his hacked engine, which is needed for this tutorial.

Thanks to the following threads:

http://www.pokecommunity.com/showthread.php?t=152021 - by *Poliwag*

http://www.pokecommunity.com/showthread.php?t=142067 - by Darthatron

http://www.pokecommunity.com/showthread.php?t=194695 - by mozzer0734

For which I wouldn't have been able to learn how to do this without.

Also thanks to JPAN's Fire Red Hacked Engine.

Hopefully this will help people who are not yet adept in Hex Editing. You will need:

Fire Red Hacked Engine
Hex Workshop (or any Hex Editor)
Free Space Finder
Overworld Editor - Rebirth Edition
A-Map

Firstly - back up your rom! Do not start this without having a backup of your Rom available.

[A ID]step1[/A ID]Step 1 - Applying the Fire Red Hacked Engine

Spoiler:


[A ID]step2[/A ID]Step 2 - Finding the Free Space Needed

Spoiler:


[A ID]step3[/A ID]Step 3 - Adding a New Table Pointer to the Existing OW Pointer Table

Spoiler:


[A ID]step4[/A ID]Step 4 - Adding New OW Pointer to the New OW Pointer Table

Spoiler:


[A ID]step5[/A ID]Step 5 - Adding New OW Data

Spoiler:


[A ID]step6[/A ID]Step 6 - Adding New OW's Frame Data

Spoiler:


[A ID]step7[/A ID]Step 7 - Editing your new OW in Overworld Editor

Spoiler:


[A ID]step8[/A ID]Step 8 - Adding the Sprite in A-Map

Spoiler:


Lastly, about adding new additional OWs after you've added the first. Just make sure you search from your new offsets when looking for free space so you make sure you don't copy over any of your previous work. The sprite table is done, you just keep adding offsets after it, no biggie. Just do the same for everything else. When adding the data for your next OW, make sure it goes directly after the previous one's data and make sure you write down and remember that offset.

I hope this tutorial has simplified this a bit. Criticism or suggestions for how to make it simpler and easier to understand are welcome. :)
 
Last edited:
387
Posts
14
Years
It is not very hard for the hacker who are hacking about a years or more but it is hard for the beginer hacker like me. By the way it is a good tutorial. I will try my best to learn it from your tutorial. Thank you for a nice Tutorial.
 

BlitŻ1

guahh my dog is so cute
472
Posts
15
Years
I've been wondering so much on how to do this :D. Now I have a reason to use his engine! xD

Screen shots would significantly raise the quality of your tutorial.
 

metapod23

Hardened Trainer
673
Posts
15
Years
  • Seen Aug 18, 2016
It is not very hard for the hacker who are hacking about a years or more but it is hard for the beginer hacker like me. By the way it is a good tutorial. I will try my best to learn it from your tutorial. Thank you for a nice Tutorial.

Thanks! :)

An error I spotted:
The offset 0x1A200 is wrong, that should be 0x1A2000.
Otherwise, I see a very good tutorial here. :D

Fixed, thanks! :)

I've been wondering so much on how to do this :D. Now I have a reason to use his engine! xD

Screen shots would significantly raise the quality of your tutorial.

I'll see about adding some screenshots sometime, thanks. :)
 

Mr

Just call me Mister
58
Posts
14
Years
Well I inserted a sprite, but broke the game completely. I'm not sure what happened exactly, but I'll try it again after some sleep. I used the first sprite as a template. That means that the number increases by one each time instead of two, right?

EDIT: Nope... I did it again. Did everything the same except for using the first sprite and not the second. The game still doens't get past the intro. If anyone knows what may cause this, please help.
 
Last edited:

metapod23

Hardened Trainer
673
Posts
15
Years
  • Seen Aug 18, 2016
Well I inserted a sprite, but broke the game completely. I'm not sure what happened exactly, but I'll try it again after some sleep. I used the first sprite as a template. That means that the number increases by one each time instead of two, right?

EDIT: Nope... I did it again. Did everything the same except for using the first sprite and not the second. The game still doens't get past the intro. If anyone knows what may cause this, please help.

I'm not sure what the problem is. What offsets did you use for each table?
If you're using a 16x32 sprite, then the data for the first frame pointer should look like:

Code:
00 00 93 08 00 01 00 00

if 930000 is the offset for the first frame. The next line of code would be:

Code:
00 01 93 08 00 01 00 00

And then:

Code:
00 02 93 08 00 01 00 00

If you want, you can send me a copy of the patch you have and I'll try to take a look when I can. I've inserted over 40 sprites with this method, so it's almost second nature to me at this point.

Just tell me which offsets you used for all the tables.
 

Mr

Just call me Mister
58
Posts
14
Years
I'm not sure what the problem is. What offsets did you use for each table?
If you're using a 16x32 sprite, then the data for the first frame pointer should look like:

Code:
00 00 93 08 00 01 00 00
if 930000 is the offset for the first frame. The next line of code would be:

Code:
00 01 93 08 00 01 00 00
And then:

Code:
00 02 93 08 00 01 00 00
If you want, you can send me a copy of the patch you have and I'll try to take a look when I can. I've inserted over 40 sprites with this method, so it's almost second nature to me at this point.

Just tell me which offsets you used for all the tables.

I can't remember specifically, but I think I did this:
Code:
00 00 93 08 00 01 00 00 00 [I][U][B]02[/B][/U][/I] 93 08 00 01 00 00 00 [U][I][B]04[/B][/I][/U] 93 08 00 01 00 00
I increased by two each time. Just like in the picture with the: 00,02,04,06,08,0A,...etc.

Since I did all of that on a fresh ROM, I deleted it when it broke. There was nothing there to save. I've recently started editing Pokemon data on my new ROM, so I'll just try once more. If it doesn't work this time, I'll send it to you. I really appreciate the help. :)


I'll increase by one this time, not two.

EDIT: You probably won't hear from me again until tomorrow. I've been up for over twelve hours now, so I'm getting sleepy. I don't do things like Hex Editing while sleepy.
 
Last edited:

metapod23

Hardened Trainer
673
Posts
15
Years
  • Seen Aug 18, 2016
I can't remember specifically, but I think I did this:
Code:
00 00 93 08 00 01 00 00 00 [I][U][B]02[/B][/U][/I] 93 08 00 01 00 00 00 [U][I][B]04[/B][/I][/U] 93 08 00 01 00 00
I increased by two each time. Just like in the picture with the: 00,02,04,06,08,0A,...etc.

Since I did all of that on a fresh ROM, I deleted it when it broke. There was nothing there to save. I've recently started editing Pokemon data on my new ROM, so I'll just try once more. If it doesn't work this time, I'll send it to you. I really appreciate the help. :)


I'll increase by one this time, not two.

EDIT: You probably won't hear from me again until tomorrow. I've been up for over twelve hours now, so I'm getting sleepy. I don't do things like Hex Editing while sleepy.

The number you use depends on the size of the sprite. I was using a 32x32 sprite in the example.

16x16 sprite = 80 00 00 00

16x32 sprite = 00 01 00 00

32x32 sprite = 00 02 00 00

if I'm not mistaken.
 

Tower Tycoon Palmer

Frontier Brain
9
Posts
13
Years
  • Seen May 19, 2012
I'm having some trouble in hex workshop.
I patched the file without any problems, but when i go into hex workshop and search 1A2000 with the hex button clicked, it doesn't show up. it goes from 001A1FF3 and then jumps to 001A2002. I tried getting a completely new ROM and then patching that, but the same results came up. Can you help?
 

metapod23

Hardened Trainer
673
Posts
15
Years
  • Seen Aug 18, 2016
I'm having some trouble in hex workshop.
I patched the file without any problems, but when i go into hex workshop and search 1A2000 with the hex button clicked, it doesn't show up. it goes from 001A1FF3 and then jumps to 001A2002. I tried getting a completely new ROM and then patching that, but the same results came up. Can you help?

Are you searching or clicking "Go to"?

You have to "go to" that offset, not search for that number. That offset will be in any rom, patches or unpatched.
 

Tower Tycoon Palmer

Frontier Brain
9
Posts
13
Years
  • Seen May 19, 2012
I clicked on "Go to" and then entered the offset and it always gives me the same results, in both patched and unpatched ROMS :S
I'm having a retard moment here...
 

metapod23

Hardened Trainer
673
Posts
15
Years
  • Seen Aug 18, 2016
I clicked on "Go to" and then entered the offset and it always gives me the same results, in both patched and unpatched ROMS :S
I'm having a retard moment here...

Just to make sure everything's clear:

1a20001.png


In this picture, where the B0 is is offset 1A2000. Where the FD is, that is offset 1A2001, and where the 39 is, that's offset 1A2002, etc.

What I'm guessing is that when you go to offset 1A2000, it is not lined up directly to the left, it's more in the middle. Do you see this data on the screen when you get there somewhere?

Code:
B0 FD 39 08 B0 FF 39 08 B0 FE 39 08

If so, B0 is where the offset for 1A2000 begins. There should be something closer to the bottom of the screen (I think, I use HxD instead of Hex Workshop now because my trial expired) that tells you which offset you're at. The numbers to the left in the column indicate what the offset for the first byte # at the beginning of that line is (in the picture I posted, that happens to be 1A2000).

If you're still having trouble, take a screen capture and post it here.
 
126
Posts
14
Years
  • Seen Aug 5, 2013
This is an EXCELLENT tutorial, metapod! I am using Jpan's hacked engine in my hack as well, and I was confused about how to utilize this feature. Not anymore! haha

Next, I have to figure out how to get the custom wild pokemon feature to work.
 

Tower Tycoon Palmer

Frontier Brain
9
Posts
13
Years
  • Seen May 19, 2012
Thanks a bunch, Metapod!
I realised that the B0 FD 39 08 etc. started near the end of 001A1FF3 and ended half way through 001A2002. It's all there so I can get on with it again. Thanks a million.
 

helmy96

Now planning a hack, nid help
23
Posts
14
Years
just a question, do the offsets get affected once i try to enter my own scripts? meaning like it will alter itself somehow due to incompatibility? sry, can't explain myself well as i'm bad in understanding scripting :p
 

metapod23

Hardened Trainer
673
Posts
15
Years
  • Seen Aug 18, 2016
just a question, do the offsets get affected once i try to enter my own scripts? meaning like it will alter itself somehow due to incompatibility? sry, can't explain myself well as i'm bad in understanding scripting :p

When you make a script, you should only be overwriting free space (FF bytes) - if you're using XSE, it searches for free space for you with the #dynamic command. So it should not affect any future scripts you write and insert, and any scripts you insert will not affect the data of the new sprites you insert.

The only way you could do this is if you choose the offsets for your scripts yourself, and you pick an offset that is near the offset of the data you inserted, and your script would be long enough to overwrite the data that is already there - but that's not a good way to do it.

That's also why I suggest starting the offsets at 0x900000 so that it's far away from where you might be inserting your new scripts at 0x800000.

^ Hope that answers your question, if I'm understanding it correctly.
 

Fezao4

Hi
73
Posts
13
Years
Wow thanks for the Tutorial metapod! Is not very hard..........anyways thanks for the excellent Tutorial,good luck if your making another tutorial and good luck with ashgray too.
 
Back
Top