PDA

View Full Version : Development: Japanese Rom Music Hacking


xGal
May 26th, 2013, 09:36 AM
Hello.

I am galooloo and I wanna talk with you about Japanese ROM music hacking.

Have you wondered how all the Japanese roms have the music hacked like Golden Sun and Vega.
When you tried to open a Japanese rom is sappy, it said that it couldn't find the songtable.

...Um, okay!

What we need:

- Sappy 2006 Mod 15 (17.1 WON'T WORK). Download from here: http://205.196.120.95/hd8v09sithyg/a2nai9zhoovg8f8/Sappy+mod+15.zip

- A Japanese ROM (Don't ask me where to get the ROMs from)

Step 1:

Extract the files in the Sappy folder to anywhere you want. After that, open up Sappy.

A popup will appear. "Cannot find sapppy.xml. Create a new, blank version now?". Click "YES".

Now, open up your Japanese ROM. Let's say I use FireRed Japanese. A popup will appear. "The game you loaded (gamecode BPRJ) is not known. Would you like to scan for the song table now?". Click "YES". Another popup will appear: "Found the songtable at 0xOFFSET. Saving bare bones entry to XML file for quick reloading...". Click OK. Now, you should see only "Main". That's good...

Step 2:

Create a backup of your ROM and open it on AdvanceMap. Click on any map you want. Then, go to "Header" tab and click on the song list. Let's say I wanna hack "Battle 5 (+2)". It's number is 155. Open up caculator and convert 115 HEX to DEC. You should get the number 341. Rememmber that number.

Step 3:

Open up with Sappy the original rom (not the backup). Left to "Main" you should see the number "1". Erase it, and copy 341 [the DEC number of "Battle 5 (+2)"]. Click on the "Play" button. You should hear the "Battle 5 (+2)" Theme. Now assemble the song as normal, and here you go!

Final result:

cmvOxf0gHxk

***I do not own the original song, It's from Pokémon Vega, so all the credit goes to the original creator!!!

Now, If you are lazy, here are the song tables:

FireRed/LeafGreen:

0x463708Ruby/Sapphire:

0x416EE4
Emerald:

0x63C2AC


**UPDATE***

ipatix gave me a software that finds the songtables of any rom (if its extented or not)!

Link: https://dl.dropboxusercontent.com/u/28573353/Community%20Zeug/PokeCom/stos_raki.zip

Thank you, ipatix again!

ipatix
June 2nd, 2013, 02:21 AM
If you have trouble finding the songtable and don't want to switch to the older version: Here's the method I used:

Create a new entry in the XML file for your game using Wordpad or Editor. It could look like this (this is no Japanese ROM but Sappy failed):
<rom code="AGFD" name="Golden Sun 2" songtable="0x1C4530" creator="Camelot" tagger="ipatix">
</rom>
Of course, we don't know the offset yet cause Sappy won't find the Songtable.
But there is a tool for that I found a long time ago on the internet. I have no clue who is the maker of it (so no credits here) but I can give you a download link:
https://dl.dropboxusercontent.com/u/28573353/Community%20Zeug/PokeCom/stos_raki.zip

You can scan any ROM you want for it but it will usually always output an offset; even if the game does not use the MP2K engine (that's how the music engine of Nintendo is called like). Always pick the offset of the first line. I don't know what the offset of the other lines are used for.

So finally you got the offset and you can paste it in to your XML entry and run Sappy and everything should work. Of course you should type in the correct Gamecode and other information and not just copy my XML entry.

So if you are crazy and don't want to do it by the mainstream way, this is the way to go ;-)

xGal
June 2nd, 2013, 11:00 AM
If you have trouble finding the songtable and don't want to switch to the older version: Here's the method I used:

Create a new entry in the XML file for your game using Wordpad or Editor. It could look like this (this is no Japanese ROM but Sappy failed):

Of course, we don't know the offset yet cause Sappy won't find the Songtable.
But there is a tool for that I found a long time ago on the internet. I have no clue who is the maker of it (so no credits here) but I can give you a download link:
https://dl.dropboxusercontent.com/u/28573353/Community%20Zeug/PokeCom/stos_raki.zip

You can scan any ROM you want for it but it will usually always output an offset; even if the game does not use the MP2K engine (that's how the music engine of Nintendo is called like). Always pick the offset of the first line. I don't know what the offset of the other lines are used for.

So finally you got the offset and you can paste it in to your XML entry and run Sappy and everything should work. Of course you should type in the correct Gamecode and other information and not just copy my XML entry.

So if you are crazy and don't want to do it by the mainstream way, this is the way to go ;-)

Wow I never heard that about that before o_O
I will insert the link when I will have power ^_^
Thanks!