Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,483,756
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-25-24 10:55 PM
Guest: Register | Login

0 users currently in ROM Hacking | 3 guests

Main - ROM Hacking - music conversions to Mega Man X and MM7 (SPC downloads) New thread | New reply


Matrixz
Posted on 07-25-11 10:45 PM Link | Quote | ID: 145499


Ninji
Level: 35

Posts: 183/225
EXP: 266364
Next: 13572

Since: 04-07-07
From: Norway

Last post: 3105 days
Last view: 1783 days
Some months ago i experimented with the Mega Man X sound enginge, and it lead to writing a program to convert music between SNES games that used the same engine, and even from NES to SNES. The results has been lying on my HD without much exposure, so i am making the effort to release it all together.

Technical info background: Mega Man X' BGM format is based on a NES format used in much of NES games made by Capcom, like Mega Man 3 and later. The SNES format has more commands and some values are different, but not a lot. Based on this, i created conversions from NES to Mega Man X, with the help of a program that i coded. Also. The Mega Man X format is shared by other SNES games, some of them are Mega Man 7, X2 and X3.. i successfully made conversions between those games also.

None of the files i made is recomposed, notes and their length are the same. Most of the extra work (besides converting the data) involves to patch each instrument/sample to a instrument/sample in the destination game. For the NES to SNES conversions, the noise channel is enhanced so that each Noise frequency is converted to a specific drum sample and frequency. Also, one or more of the four NES channels are duplicated into delay effects and so on.

I will explain more if there are actually questions..

NES Conversions to Mega Man 7:

Brightman [link to mock video with MM4 gameplay]
Stoneman
Proto Man Castle Stage
Magnet Man (half-done)

Mega Man 10 - Robot Master Battle to Mega Man X sound engine

Note: ^^^ This one is credits to xxBaiixx for re-composing to Mega Man 4, and MartsINY (aka ColdIced) for providing the bgm data.

Mega Man 7 to Mega Man X (half soundtrack converted)

Opening 2 (used in Mega Man X music hack)
Intro Stage
Junkman (used in Mega Man X music hack)
Turboman
Slashman
Cloudman
Shademan
Springman warning: turn down volume. its not perfect.
Shop
Battle with Museum Boss
Battle with Bass
Wily Stage 3
Battle with Wily
Staff

Various conversions to Mega Man X, made into an entire music hack.

The stage that had the music replaced, is in parenthesis.

Street Fighter 2010 Stage Theme 1 (Intro Stage)
Blizzardman (Chill Penguin)
Toadman (Launch Octopus)
Snakeman (Sting Chameleon)
Magma Centipede (Spark Mandrill)
Gravity Beetle (Storm Eagle)
Knightman (Boomer Kuwanger)
Mighty Final Fight Stage 3 (Armored Armadillo)
Mr.X Stage (Sigma Stage 1)
Dr.Cossack Stages 3-4 (Sigma Stage 2)
Mega Man 3 - Dr. Wily Stages 5-6 (Sigma Stage 3)
Mega Man 3 Title (Title)
Mighty Final Fight - Stage Select (Stage Select)
Rockman & Forte (Megaman & Bass) Boss battle (Boss)
Mega Man 4 Boss battle (Reploid Battle)

Flame Mammoth was replaced with Junkman and Sigma Stage 4 with Opening 2 from MM7, which is above..

Download the IPS for the Mega Man X hack! - Patch to a headerless ROM (the one used was "Mega Man X (U) (V1.1) [!].smc")

[Here is a video for a taste..]

Extra conversions to Mega Man X:

Final Fight 2 Round 1
Neon Tiger
Street Fighter 2010 Theme 2
Ground Man (Rockman & Forte)

I might post the source code to the tools i coded to do all these conversions.
Unfortunately it is completely useless to use the programs without hard-coding things in C++ (there is no interface, not even DOS). I have no clue if people can use it for anything, either way i might do that once i clean up the code a little.

amarcum81
Posted on 07-25-11 11:42 PM Link | Quote | ID: 145501


Rope
Level: 25

Posts: 60/110
EXP: 84527
Next: 5093

Since: 08-14-09
From: Cincinnati, OH

Last post: 3291 days
Last view: 2068 days
Great stuff. Now If i the Mega Man X,X2,X3 level editor would just get some tweaks, I'd be a happy camper!

Matrixz, will you be releasing a Mega Man 7 music hack like you did with MM X? I'd be interested in having that, and maybe others would as well.

Insectduel
Posted on 07-28-11 02:58 PM Link | Quote | ID: 145556


Hammer Brother
Level: 68

Posts: 640/1069
EXP: 2687654
Next: 41146

Since: 02-16-08
From: Insectduel's office

Last post: 1256 days
Last view: 1256 days
Cool! Mega Man 10 Robot Master theme seems awesome!

Synthetekh
Posted on 07-29-11 04:02 AM (rev. 4 of 07-29-11 06:12 AM) Link | Quote | ID: 145561


Ninji
Level: 35

Posts: 35/239
EXP: 261331
Next: 18605

Since: 08-15-10
From: New Mexico, USA

Last post: 94 days
Last view: 5 days
I have a few suggestions. Megaman 3 Wily Castle stage 3 / 4 and Spark Man's stage in Megaman X. Also I see that you have a MM10 song, so maybe MM9 Tornado Man's stage as well.

Insectduel
Posted on 07-29-11 05:55 PM Link | Quote | ID: 145563


Hammer Brother
Level: 68

Posts: 643/1069
EXP: 2687654
Next: 41146

Since: 02-16-08
From: Insectduel's office

Last post: 1256 days
Last view: 1256 days
Question! You mentioned that Mega Man 10 must be converted to MM4 also known as MMC3 sound engine before converted to SNES Mega Man X format. Are the Wii sound channels ara lot more different than the NES or it's the entirly different sound engine between the two.

Matrixz
Posted on 07-29-11 10:00 PM Link | Quote | ID: 145565


Ninji
Level: 35

Posts: 185/225
EXP: 266364
Next: 13572

Since: 04-07-07
From: Norway

Last post: 3105 days
Last view: 1783 days
Posted by amarcum81
Matrixz, will you be releasing a Mega Man 7 music hack like you did with MM X? I'd be interested in having that, and maybe others would as well.

Nah, one hack is enough. lol.

Posted by Synthetekh
I have a few suggestions. Megaman 3 Wily Castle stage 3 / 4 and Spark Man's stage in Megaman X. Also I see that you have a MM10 song, so maybe MM9 Tornado Man's stage as well.

I was planning to not do any more. We'll see.

Posted by insectduel
Question! You mentioned that Mega Man 10 must be converted to MM4 also known as MMC3 sound engine before converted to SNES Mega Man X format. Are the Wii sound channels ara lot more different than the NES or it's the entirly different sound engine between the two.

It wasn't converted, it was re-composed into a Mega Man 4 rom, but im not the one who did it. I just happened to be given it to do the conversion to MMX. Im not familar with the sound stuff for the Wii games, but i expect that it works entirely differently.

Matrixz
Posted on 08-03-11 01:44 PM Link | Quote | ID: 145647


Ninji
Level: 35

Posts: 187/225
EXP: 266364
Next: 13572

Since: 04-07-07
From: Norway

Last post: 3105 days
Last view: 1783 days
http://matrixz127.comoj.com/share/capcom_bgm_nes2snes.zip

This is the program i wrote in order to do the conversions from NES to SNES. C++ knowledge and compiler is required to use it.

Synthetekh
Posted on 08-04-11 12:30 AM (rev. 2 of 08-04-11 12:45 AM) Link | Quote | ID: 145655


Ninji
Level: 35

Posts: 37/239
EXP: 261331
Next: 18605

Since: 08-15-10
From: New Mexico, USA

Last post: 94 days
Last view: 5 days
Oh cool thanks, I just happen to know C++ =). However I've never done anything at all with music hacking, I'll take a look at it.

Synthetekh
Posted on 08-05-11 02:24 AM (rev. 2 of 08-05-11 02:25 AM) Link | Quote | ID: 145693


Ninji
Level: 35

Posts: 40/239
EXP: 261331
Next: 18605

Since: 08-15-10
From: New Mexico, USA

Last post: 94 days
Last view: 5 days
I had to comment the line with ' *cpa = tolower(*str); ' out in common.cpp to get it to build, because the 'tolower' function doesn't seem to exist. Is this function important (doesn't seem to be)? I got it to work with MM7, but not MMX. I changed all of the commented out lines for MMX that I saw and changed ' *dstMemPtr = 0xDB4; ' to 0xDB0, am I missing something (and I tried it with Mega Man X (U) (V1.1) [!])?

Matrixz
Posted on 08-05-11 10:21 AM Link | Quote | ID: 145700


Ninji
Level: 35

Posts: 188/225
EXP: 266364
Next: 13572

Since: 04-07-07
From: Norway

Last post: 3105 days
Last view: 1783 days
Do you know if the MMX rom you used is header-less? It should be, otherwise it will write 0x200 bytes too early. To test that, you could try change the "writeToFile" call in the "handleOutput" function, and add 200 to the output address (which is the 2nd argument).. like this:

writeToFile([rom filename], 0x59A0D, bufWithLoadInfoSize, bufWithLoadInfo);


The line you commented out in common.cpp is never used, (most functions in common.cpp aren't).

Synthetekh
Posted on 08-05-11 08:37 PM (rev. 3 of 08-06-11 01:21 AM) Link | Quote | ID: 145709


Ninji
Level: 35

Posts: 41/239
EXP: 261331
Next: 18605

Since: 08-15-10
From: New Mexico, USA

Last post: 94 days
Last view: 5 days
Ahh still not working. Oh well, at least it's working for MM7, that's good enough. I also tried different versions of the game to be sure.
Oh btw, how do I go about getting dumps of NES music files that work with this program? I can't seem to find an emulator that does that, and there's so many NES emulators to download and try.... I found one program that'll dump all of a game's music as one file, but that doesn't help. Would I just have to know how to extract them with a hex editor?

Matrixz
Posted on 08-06-11 08:52 PM Link | Quote | ID: 145719


Ninji
Level: 35

Posts: 189/225
EXP: 266364
Next: 13572

Since: 04-07-07
From: Norway

Last post: 3105 days
Last view: 1783 days
Yeah, you would have to manually extract songs using a hex editor. It is easier to do though if you use a NSF file of the game.

For the NES games that use the engine, for example Mega Man 3, the songs begin almost always around the same offset in a NSF file. In the MM3 NSF i got, the song pointer table starts at hex offset AC3 and the songs begin not long after that. Each song data starts with a 00, and after that comes four 16-bit pointers, which might in hex look something like 8C 12 8E 56 90 78 92 AB.. that is a random example.

There is another method to finding BGM data though, which is what i usually do, i might as well mention it.
The FCEUX emulator can be used to debug a NSF file (at least with newer versions). With FCEUX' built-in debug features you can find the data of a specific BGM very easily. You would use the Code Data Logger found in the Debug menu. Once you tune the NSF player to the BGM you want to find, you hit Start in that Code Data Logger window, and it will log what is read from the NSF. Wait until the song has looped. Then, you go in the Hex Editor (found under the Debug menu), change it to view Rom File, and whatever has been logged as data read will be shown as blue. If you then scroll and find a huge segment of data in blue, that might be the whole BGM.

Synthetekh
Posted on 08-07-11 03:18 AM (rev. 10 of 08-07-11 12:57 PM) Link | Quote | ID: 145734


Ninji
Level: 35

Posts: 42/239
EXP: 261331
Next: 18605

Since: 08-15-10
From: New Mexico, USA

Last post: 94 days
Last view: 5 days
Worked great thanks. It was too hard to find the end of the song using just a hex editor, but the debugging features in FCEUX worked great.

Megaman 7 - MM3 Wily Castle 3 spc
Megaman 7 - Spark Man spc
Megaman 7 - MM3 Intro Theme spc I found the beginning sounds quite a bit better (less noisy) in Snes9x (I dumped it with ZSNES).
Megaman 7 - MM3 Intro Theme(2) spc I think I like the intro in this version more, but having it so degrades a later part a little.

Matrixz
Posted on 08-07-11 09:03 PM Link | Quote | ID: 145743


Ninji
Level: 35

Posts: 190/225
EXP: 266364
Next: 13572

Since: 04-07-07
From: Norway

Last post: 3105 days
Last view: 1783 days
You actually created some conversions with it, that is really nice

Synthetekh
Posted on 08-07-11 10:53 PM (rev. 3 of 08-07-11 11:19 PM) Link | Quote | ID: 145745


Ninji
Level: 35

Posts: 43/239
EXP: 261331
Next: 18605

Since: 08-15-10
From: New Mexico, USA

Last post: 94 days
Last view: 5 days
Yeah =). Thanks for the program. I've never done any music editing at all before, so this was pretty fun. Unfortunately MM7 doesn't seem to have a wide variety of useful instruments for these kinds of songs, so it was difficult trying to find ones that would work well, but they turned out pretty good.

Edit: Interesting, I just tried putting a song into Junk man's stage and one of the bass instruments sounds different. Any idea why that is?

Matrixz
Posted on 08-08-11 02:04 PM Link | Quote | ID: 145764


Ninji
Level: 35

Posts: 191/225
EXP: 266364
Next: 13572

Since: 04-07-07
From: Norway

Last post: 3105 days
Last view: 1783 days
For different songs, it loads different sound samples into the SPC700 memory so that some instrument Id's actually become different. I noticed that with Mega Man X. In that rom, the information that changes samples was some totally other place than the BGM pointer table and BGM data.

Synthetekh
Posted on 03-02-12 12:14 PM (rev. 6 of 03-03-12 09:56 AM) Link | Quote | ID: 150326


Ninji
Level: 35

Posts: 90/239
EXP: 261331
Next: 18605

Since: 08-15-10
From: New Mexico, USA

Last post: 94 days
Last view: 5 days
I know this thread was a few pages back, but I felt like messing around with this program again and ported the song from Dr. Cossack's 3rd/4th stage into MM7 (using Junk Man's stage for its samples), and I didn't see the point in making a new thread.

Megaman 7 - MM4 Dr. Cossack Stage 3
Enjoy.
Maybe I'll do MM2 Wily's Castle 1st/2nd stage next. Nvm, just remembered I can't do MM1 or MM2 music since the sounds engines are different ... AWRRRG D:

Edit: Alternate instrument in the beginning, take your pick.
Megaman 7 - MM4 Dr. Cossack Stage 3 (2)
Edit 2: Or maybe a 3rd... lol. I can't decide on this one. I kinda like them all.
Megaman 7 - MM4 Dr. Cossack Stage 3 (3)

Edit 3: Hey I got it working for MMX. I don't know what version of the game you have Matrixz, because I tried all that I could find (I think I tried offsetting the address for the Title Screen song incase the games had headers too... can't quite remember) with no luck, but the reason is because the address for the song was wrong for my copy of MMX. I decided to look at how the start of the songs look in MM7 and was able to find the correct starting address for me.

Main - ROM Hacking - music conversions to Mega Man X and MM7 (SPC downloads) New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.029 seconds. (349KB of memory used)
MySQL - queries: 117, rows: 153/154, time: 0.018 seconds.