| |||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 Nah, one hack is enough. lol. Posted by Synthetekh I was planning to not do any more. We'll see. Posted by insectduel 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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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:
The line you commented out in common.cpp is never used, (most functions in common.cpp aren't). |
Synthetekh |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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. 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 |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 117, rows: 153/154, time: 0.018 seconds. |