Hey guys, I've been putting together as much of a complete collection of Megaman/Rockman rom hacks as I can find, and a number of them use custom soundtracks. Some of these custom soundtracks are rather good, and I would like to look into the possibility of creating or if its simple enough, having someone create .nsf versions of the various soundtracks with plans to eventually convert them into mp3s so I can listen to them anywhere.
These hacks apply to Megaman/Rockman 1-6 only, but most custom soundtracks are clustered around Megaman/Rockman 2. All custom soundtracks use only the 2A03, if that makes things easier at all.
Is there a simple method of extracting only the background music data from these various rom hacks and creating nsfs? I've never done anything NES hacking. I'm a total beginner, annd also a mac user.
Thanks for any guidance.
If the NSF file is about 16K in size, it's usually easy enough to do. That means that the NSF file is probably mostly identical to one bank from the ROM file. Find the bank in the original ROM file.
So you have the original, unaltered ROM bank, and the altered (edited for NSF) ROM bank. You can compare the two files. If you then have a hacked ROM, you can see what changed between the original and the hacked rom, and also see what changed between the original and the NSF version.
Example: megaman 2
The music bank of Megaman 2 is found in the NES ROM at 0x30010, and 0x80 in the NSF file. The first 3FE4 out of 4000 bytes are identical. So if you want the music from a hacked Megaman 2 ROM, copy 3FE4 bytes from 0x30010 to 0x80 in the NSF file.
Another example: Megaman 3
The music bank of Megaman 3 is found in the NES ROM at 0x2C010, and 0x80 in the NSF file. Bytes 3E-41 and A20-A40 (within that rom bank) were altered for the NSF file. So apply those alterations to the music bank from a hacked rom, and it will make a working NSF.
Thanks, that's good information to stat with. Can you give me the music bank address for Megaman 1, 4, 5 and 6 as well please?
Megaman 1: It's not a complete ROM bank here, but...
ROM 11010 is at 80 in the NSF file, but bytes 03-07 (within that bank) are altered. Length 2E70.
Megaman 4:
ROM 3C010 is at 80 in the NSF file, but bytes 3E-41 (within that bank) are changed to the value EA. Length 4000
ROM 3A010 is at 4080 in the NSF file, unchanged. Length 2000
Megaman 5:
ROM 30010 is at 80 in the NSF file, bytes 3E-41 (within that bank) are changed to the value EA. Length 6000
Megaman 6:
ROM 68010 is at 80 in the NSF file, bytes 3E-41 (within that bank) are changed to the value EA. Length 6000
Dwedit wrote:
Megaman 6:
ROM 68010 is at 80 in the NSF file, bytes 3E-41 (within that bank) are changed to the value EA. Length 6000
I saw that and thought of a Motorola CPU. In the days before iNES, it would have been offset 0x68000 within the raw PRG data, which is an even better known Motorola CPU. I wonder if someone else thought of this.