Seen September 26th, 2019
Posted April 12th, 2019
18 posts
2.4 Years
As this is not that known at this point I have decided to make a tutorial on how to change the protagonist's spawn location and coordinates after the Oak Intro as seeing this is an important thing for a ROM Hack.

Tools Needed:

- Spiky's DS Map Editor (SDSME)
- CrystalTile2
- A hex editor of your choice (You can use CrystalTile2 for this aswell if you prefer)

Extracting the ARM9:

First of all, Open the HeartGold or SoulSilver ROM of your choice with "CrystalTile2", click on the "DS icon" in the top bar and click on "FSI.CT / arm9.bin" and select "Extract (U)" to save the file to your PC.
It is important to choose "Extract (U)" and not "Export", because the ARM9 will not be decompressed and can't be used as we need an uncompressed ARM9.bin for this Tutorial.

Changing the Spawn Location and Co-Ordinates:

Once we have the ARM9 saved, we will open it with a hex editor or CrystalTile2 and go to this offset depending on your version of ROM:

Heart Gold:

Soul Silver:

PS: These offsets are from the US ROMs of HG/SS
We have to find the value of "40 00", which in decimal corresponds the Map ID "64" which is the protagonist's room in New Bark Town. This is the Map ID of the map where the game want's the protagonist to be after the intro so we can open the ROM with SDSME and look for the Map ID in the list of Headers that appear.

It is important to note that the numbers in the ARM9 follow the Little Endian order, so if we want to start the game in Red's Room in Kanto, we need the Map ID which is 506 in Decimal and 1FA in hex, we have to replace 40 00 with FA 01.

Once the Map ID is changed, we can also change the coordinates of the place where the protagonist will spawn after the intro. To do this, we look for "06 00 00 00 06 00 00 00 01"

Heart Gold:

Soul Silver:

PS: These offsets are from the US ROMs of HG/SS
These bytes are structured in this way:

"XX XX ZZ ZZ YY YY 00 00 PP"
XX is the coordinate of the X axis.
ZZ is the coordinate of the Z axis.
YY is the coordinate of the Y axis.
PP is the way the protagonist is standing.

(So "00" make the character look up and "01" will make them look down etc..)

When changing these numbers, remember to order them in Little Endian as I said above.

Reinserting the ARM9:

Once changes have been made to the ARM9, save a backup of the ROM and re-open the ROM with CrystalTile2.

Then click the DS icon again, click on the "FSI.CT / arm9.bin" and select "Compression" then select the edited arm9.bin and then boom you have officially changed the Spawn Location and Co-Ordinates!

Enjoy, your freshly edited spawn location!