#1
September 14th, 2009 (12:58 AM). Edited April 15th, 2010 by Logan.
 mozzer0734 Join Date: Sep 2008 Location: England Gender: Male Posts: 11
First of all thank you to Poliwag, Darthatron and Jpan as their information and tutorials are the basis for this one.

This tutorial will show you how to add new overworld sprites to fire red without deleting old ones. This will also allow you to edit those sprites in AMAP and OWE.

I have written this tutorial as I had tried the other tutorials on this subject but could never get it work, so after much messing about I have found this the easiest way to do it.

Spoiler:

1) First we need to open are rom in a hex editor and go to offset 3A3BB0. From this location we need to copy 5544 bytes of data.

2) Now we need to work out how much space we need. Decide how many extra sprites you want and multiply that by 36 add 5544 and that’s how much space we need. I will add 5 sprites so that would be (5 x 36 = 180) + 5544 = 5724. Right so I’m searching for 5724 bytes of free space, when you find the offset you will use make a note of it as SPRITE DATA, I will use 71A8B8. Now go to this location and paste the data we copied. Now save.

3) At the end of this block of data we must enter the new sprite data. Go to offset 71BB24 and copy 36 bytes of data paste this at the end of the previous data. Make a note of the offset where this first bit of new data goes as NEW SPRITE. Mine is 71BE60.

image 1.png

4) We now need to change the pointer for the frame data to a space of at least 72 bytes per sprite. I will use 800000. So change the pointer B0233A08 to the one you are using.

image 2.png

5) Repeat steps 3 & 4 for each new sprite. Adding the data to the end of the previous sprite, now save.

6) Now that’s done we must enter the data for each frame. So go to the first of the pointers you just changed, mine is 800000.

7) We need to find even more free space, 1800 bytes per sprite in fact. When you have found your offset enter the data like so. I will be using 810000 so my data will be <00 00 81 08>< 00 02 00 00>. Repeat this 8 times adding C8 to the pointer each time using a hex calculator.

image 3.png

8) Repeat this for each sprite.

9) Once you have added all the sprites you want we need to get them working in AMAP and of course the rom.

10) Go to the offset 39FDB0 and copy 696 bytes, to find how much space you need multiply the amount of new sprites by 4 and add 696, mine is (5 x 4 = 20) + 696 = 716. So I am searching for 716 bytes.

11) When you find the offset you need make a note of it as SPRITE TABLE, I will use 840000.

12) Paste the data we copied to this new offset. At the end of the data we have to point to are new sprites, so starting with mine at 71BE60 I would use the pointer 60BE7108. Continue this until you have pointed to all of the new sprites in order.

image 4.png

14) For the last bit of hex editing all you have to do is go to the offset 05F2F4 and change that pointer to the one you used for the SPRITE TABLE so I will change mine to 00008408. Then finally go to 05F2E0 and change the number 9729 to EF29.

15) To edit the sprites in OWE you must open the .ini file locate the fire red info and alter the data. Where it asks for the sprite bank use your SPRITE DATA offset and for amount simply add how many new sprites you’ve inserted.

image 5.png

All that is left to do is edit your sprites in OWE and insert them in ADVANCE MAP.
You can use the older OWE to insert all the sprites so you can change frame.

To change the palette change the 4th byte of are sprite data, to change the dimensions of the sprite change the data at the 5th and 7th byte of data. Do not make them bigger than 32x32 or they won’t work.