![]() |
| Register | Login | |||||
|
Main
| Memberlist
| Active users
| Calendar
| Chat
| Online users Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album |
|
| | |||
| 0 users currently in ROM Hacking. |
| Acmlm's Board - I3 Archive - ROM Hacking - How To Find, Edit, & Create Your Own Megaman 2 Music |
New poll | | ![]() |
| Add to favorites | Next newer thread | Next older thread |
| User | Post | ||
|
infidelity Paragoomba Since: 11-19-05 Last post: 5908 days Last view: 5907 days |
| ||
| NOTICE - Reposting this for newcomers to this site, and for others that may have been looking for this, and have come up empty. Enjoy!
I'd first like to thank Matrixz, for helping me understand the original Japanesse thread, that deals with editing the music in Megaman 2. http://klikechange.free.fr/Rockman2.htm If it wasn't for his expertise, I wouldn't have been able to create this turtorial. I'd also like to thank Matrixz, for helping me find the value in Megaman 2, which tells you which song is playing. Tools used in finding/creating music ------------------------------------------------------------ FCEUXD's 6502 Debugger & Hex Editor Windows Calculator Your Own Creativity How To Find Out Which Song Is Playing ------------------------------------------------------------------- I'm going to give you an example, of finding the pre-intro song to Megaman 2. "REMEMBER, THIS EXAMPLE WILL APPLY TO ALL SONGS" First, open Megaman 2, and pause it, "F2" at the copyright screen. Second, open the "6502 Debugger," and add an "Execute Breakpoint" to "8003," then click "Run" Second, just as the pre-intro screen fades in, the debugger sould snap. Look at the Debugger's "A" value now, and it should say "0E." This tells you, that the pre-intro song is, "0E" How To Find The Songs Pointer ------------------------------------------------------ We're continuing on with the pre-intro song example. First, open up your Windows Calculator, and make sure it's set to "Scientific," and also, make sure it's set to "Hex" NOT "Dec" Second, enter the value "0E" and multiply it by "2" You should end up with the value, "1C" then add, "30A60." (30A60 is the Song Pointer Table), then, click equals, and you should get this value "30A7C" Third, open up the "Hex Editor" in FCEUXD, and make it view in "ROM File," then, goto the address, "30A7C" You should see these values, "B4,B1" Your now at the Song Pointer, for song "0E," "The Pre-Intro Song." How To Find The Song ----------------------------------------- We're continuing on with the pre-intro song example. In order for us to find the song correctly, Megaman 2 has it's song pointers, in High Byte, to, Low Byte format. What that means is, "B4,B1" is actually read as, "B1,B4" This goes for all song pointers in this ROM. So, First, goto your Windows Calculator, and type in the value, "B1B4" then add the value, "28010" You should now end up with the value, "331C4" This tells you now exactly where the "pre-intro song" is in the ROM. How To Figure Out What This Mess Is ---------------------------------------------------------------- We're continuing on with the pre-intro song example. I'm still unsure on some aspects, as to how to correctly understand some things here. I'm hoping that with this information I'm releasing, others will be able to figure out, and add to this list, the things I'm unable to understand. Anyways, First, goto the address "331C4" in FCEUXD's Hex Editor. You'll notice that you end up at "0F" (So far, from what I've noticed, "0F" is always the beginning of the songs.) You should see these values "0F,BF,B1,3D,B2,B9,B2,1D,B3,53,B3,00" I'm going to explain these values to you. 0F - The beginning of the song (By beginning, I do not mean the tones and stuff, this value basicly tells the rom, this is where to begin to find all the pointers.) "Remember earlier, how I said Megaman 2 searches High Byte, to Low Byte, for it's pointers? Well, what I'm about to show you, are the pointers, to the sound channels" B1,BF - This points to the Square 1 channel (usually the main beat) B2,3D - This points to the Square 2 channel (usually the back beat) B2,B9 - This points to the Square 3 channel (usually the bass) B3,1D - This points to the Square 4 channel (usually the drums) B3,53 - ?? Matrixz and I, have no idea what these are. 00 - ?? This, I believe, seperates things. So, let's goto the first channel. "B1,BF" (The example I'm about to give, will work for the other channel pointers as well) First, enter "B1BF" in your Windows Calculator, then add "28010" you should end up with, "331CF" This tells you exactly where Square 1 begins. This tells you exactly where B1,BF is pointing to. You'll notice that it starts at "00" This is the beginning of Square Channel 1. You'll notice this set of values, "00,08,05,20,02,80,03,3E,07,DF,40,08,00,21" These sets of values, basicly sets up how the sound will sound. I'll try to explain these as best I can. EDIT - Check the original Japanesse thread to understand more on what I'm talking about. http://klikechange.free.fr/Rockman2.htm 00 - Pointer for Square Channel 1 08 - Speed for Square Channel 1, the higher the value, the slower the sound, the lower the value, the faster the sound 05 - ?? Different tones, sometimes it screwes up. I'm not sure on how to use this correctly 20 - Different Pitch's 02 - ?? Not sure. I usually leave it as is. 80 - ?? Different Tones?? 03 - ?? Different Tones?? 3E - Volume for sound, anything below "30" and it glitches. 07 - ?? Different Tones? If it's set to "0A" it resets the entire rom DF - ?? Different Tone effects?? 40 - ?? Not sure. 08 - * This seems to give the notes that vibrato feeling to it, this value is usually followed by 00,01,02, etc, I'm not sure as to what those values due to the sound. Also, anytime you see "08" there will usually be "21" right after it, or a few after it. Im not sure if this tells "08" when to stop the vibrato effect to the sound. 00 - * Look at "08" 21 - * Look at "08" So, all that there, is the beginning's on making the sounds sound. You'll notice in your Hex Editor, that after "21" you'll notice "AE" This is the very beginning note for the sound channel. How To Understand The Sounds ------------------------------------------------------- We're continuing on with the pre-intro song example. From what I've come across. anything that is "40, 60, 80, A0, B0, C0, D0, E0, F0" are pauses until the next note kicks in. The lower the value, the shorter the pause, the higher the value, the longer the pause. Pauses all end with the value "0" For notes, it appears that "61" makes the note, sound the quickest, and, "FF" makes the note sound the longest. So, 61-6F, 71-7F, 81-8F, 91-9F, A1-AF, B1-BF, C1-CF, D1-DF, E1-EF, F1-FF, deal with notes. How To Understand Loops ----------------------------------------------- We're continuing on with the pre-intro song example. You'll notice, how sounds loop in certain places throughout all songs. Loops always look like this. "04,xx,xx,xx" If you goto value "331E5" in your Hex Editor, you'll notice a loop. You should see this set of values. "04,01,C1,B1" 04 - Loop command 01 - How many times to loop. "If this value is set to 00, it will loop infinite" C1 & B1 - These are pointers. These point to where to begin the loop. So, it says, "C1,B1" Remember how I said Megaman 2 deals with High Byte, then Low Byte? Open your Windows Calculator, and type in the value, "B1C1" then add, "28010" to it, you should end up with the value "331D1" This value is where the loop begins at. How To Create A Demo Sound ----------------------------------------------------- We're continuing on with the pre-intro song example. OK, so now your like, I want to make my own song, how do I do it? Well, I'll do my best in helping. First, it gets kind of annoying trying to create a sound for one channel, when you got all the others going on in the backround right? Well, what you should do, is turn them off, or, just give them extremely long pauses, so you can understand what your doing. So first, we're going to temporarely shut off the 2nd 3rd and 4th channels. Do you remember how I spoke about the pointers to those channels? We need to find out where those channels begin. So, instead of telling you straight out where they are, I'll give you examples for the 2nd 3rd and 4th channel pointers. Remember the section "How To Figure Out What This Mess Is" This section tells you where the actuall song begins. This song begins at value" 331C4" so, here it is again, 0F,BF,B1,3D,B2,B9,B2,1D,B3,53,B3,00 We already know that B1,BF is sound channel 1. So, B2,3D is sound channel 2. In your Calculator, enter B23D, and add 28010 to it. You'll get 3324D, this is the beginning of sound channel 2. Enter B2B9 into your Calculator, and add 28010 to it. You'll get 332C9, this is the beginning of sound channel 3. Enter B31D into your Calculator, and add 28010 to it. You'll get 3332D, this is the beginning of sound channel 4. So, in the Hex Editor, goto address 3324D, and type "E0" a shit load of times. I usually do it about 10 times for every sound channel. Do the same for 332C9, and 3332D. Now, listen to the song, and you will only hear channel 1 playing in the backround. Now, lets edit channel 1. For starters, keep everything the same from 331C4 to 331DC. You'll notice that at, 331DD, the value is AE, this is the first note. Starting at AE change it to E0, and change the other values to E0, just before the first loop begins. Remember what a loop looks like? "04,xx,xx,xx" So, type E0 from 331DD to 331E4. When you listen to the song again, theres no sound, nothing until the building moves up, but that's ok. Now, let's try this, starting at 331DA, type in these values, "61,62,63,64,65,66,67,68,69,6A,6B,6C" When you play the song again, you'll hear what you just typed in there, and it will loop, 1 time through. Let's edit how many times that loops, I say, let's let it loop infinite. So, we see the loop command, 04,01,C1,B1, let's change the "01" to "00" Once that's done, Listen to the song again, it will not stop until the Main Title Song kicks in. Now, let's try changing the tone. Goto the address 331D2, the value should say "20" let's change it to "30" When you start the song again, you'll notice it sounds higher now. Now, let's change it's speed. Goto the address 331d0, the value should say "08" let's change it to "02" When you start the song again, it sounds like an alert going off! Well, I hope this sheds some light on editing the songs for Megaman 2. I apologize if this sounds so scrambled, I never typed a tutorial this big before. But If you follow the examples I gave you, you'll be able to find, edit, and create your own songs for Megaman 2. Trust me, the information I gave does work, and I can prove it. Here's an ips of Megaman Ultra, with some edited songs. Try playing Woodman, Wily 1 and Wily 3, to hear my edited songs. "I'm still working on Crashman, it's not finished, but you'll be able to tell what song I'm going to put there " I created these songs all by ear, and had a tiny bit of help, by listening to nsf's, to be close to perfection as possible with 2 of the songs! http://rapidshare.de/files/6978409/megamanultramusic.ips.html Is this sticky worthy anybody? (edited by infidelity on 11-23-05 07:07 PM) |
| Add to favorites | Next newer thread | Next older thread |
| Acmlm's Board - I3 Archive - ROM Hacking - How To Find, Edit, & Create Your Own Megaman 2 Music |
| ![]() |