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

0 users currently in ROM Hacking | 2 guests

Main - ROM Hacking - MM1 Music Hacking New thread | New reply


Jimmy52905
Posted on 05-28-08 06:07 AM Link | Quote | ID: 84313


Paratroopa
Level: 29

Posts: 69/152
EXP: 144378
Next: 3507

Since: 01-25-08

Last post: 5103 days
Last view: 4159 days
(Sorry about all of these noobish questions, but...) Does anyone here know of a way I can hack the music in MM1 without all that fancy ASM stuff? I really want to change the music in my hack.

____________________
Come join my IRC channel, #Megahax for Mega Man hacking related discussions.

Sliver X
Posted on 05-28-08 09:48 AM (rev. 2 of 05-28-08 10:12 AM) Link | Quote | ID: 84320


Paragoomba
Level: 21

Posts: 41/66
EXP: 42452
Next: 7491

Since: 02-26-07
From: WV

Last post: 5487 days
Last view: 5343 days
Yeah, I hacked MM1's music around 2001 or so, which was before I taught myself 6502. Two things helped me, though:

1: I was good at ROM hacking (For my level).

2: I've played music most of my life.

Number 2 is probably the most important, as even if you do locate the music data you're left with the whole prospect of what you're going to do with it. Don't know music? Prepare for a slow and painful process that will make locating the data seem like a cakewalk.

Actually, now that I think of it, locating the data would be ass easy these days if you use the Code/Data logger in FCEUXD. Log some crap, and start looking for blue sections (Data) and start corrupting/undoing until you locate it via the realtime hex editor. Then crack the format (Music knowledge basically essential).

*edit* I followed your signature link and see that you do MIDI work. Well, realize that you're going to be sequencing by hand... in hexadecimal when you hack an NES game's music. Unless you code a custom editor for it or something.

____________________
Arc-Nova.org: More Chiptunes Than Your Mother Can Handle

Insectduel
Posted on 05-28-08 08:45 PM Link | Quote | ID: 84335


Hammer Brother
Level: 68

Posts: 68/1069
EXP: 2687648
Next: 41152

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

Last post: 1256 days
Last view: 1255 days
Wow, Silver X. You really know how to disassemble music for games. Anyway I got a better answer. Since MM1 music data is already disassembled by someone, use this.

And if you're plan to rip music from other games, I bet the Code/Data logger in FCEUXD might be the the source before inserting them to MM1.

I haven't got to music editing yet, plus my desktop computer do not have sound/sound card/directsound. It may be hard for me to install it or to hack music. Only my laptop has it but it is also Win98SE so my flash drive isn't gonna do it without USB Mass storage device.


infidelity
Posted on 05-29-08 12:49 PM (rev. 3 of 06-02-08 01:08 PM) Link | Quote | ID: 84368


Fuzz Ball
Level: 66

Posts: 35/968
EXP: 2367952
Next: 93899

Since: 05-24-07

Last post: 958 days
Last view: 814 days
Code/Data Logger is the #1 best way to do this work. I used it for Megaman Ultra, *MM2* And I'm currently using it with Megaman Ultra 2 *MM4*

Also, this is about the MM2 sound engine, but MM1 & 2 share the same engine, so these notes will apply to your rom. This was taken from a japanesse website, and translated, I'm sure you can make sense of it.

$00 XX: Speed (the extent whose XX is large it becomes
slow)

$02 XX: Timbre change (inserting $00, $40, $80, C0 in XX,
please try)

$03 XX: Way volume change (only $FF you do not
insert in the non darkness, note)

$04 YY XX XX: The address
which is shown with XX XX (the $28000 is not forgotten) to jump, the
YY time it does that, (in case of 00 it is unlimited)

$05 XX:
It rises 1 sound each height of the key (concerning 1) the

$06:
Length of diacritic of one rear is designated as 1.5 times.

$07 XX XX: But attenuation... because address it is not
chased, don't you think? it is good and the わ can (someone to be
possible) as for other things with 1byte Y length of diacritic (60 2
times that 40) plus does XX in the key which with XX is decided with
height $05 XX of sound presently while collecting is (the ぉ ぃ
diacritic data (rectangular group and triangular group) Y0 (40,60,80,
A0, C0, E0) + XX (00 - 1F) concerning diacritic one. XX in case
of the $00 it becomes the 休 sign. When we assume that $4F is
16 diacritical markses of ド, the $50 becomes 16 diacritical markses
of the ド #, 6F becomes 8 diacritical markses of ド. It is in
the midst of collecting concerning noise and effective sound.

Hope that helps, and good luck

Jimmy52905
Posted on 06-01-08 12:21 AM Link | Quote | ID: 84499


Paratroopa
Level: 29

Posts: 75/152
EXP: 144378
Next: 3507

Since: 01-25-08

Last post: 5103 days
Last view: 4159 days
Posted by Insectduel
And if you're plan to rip music from other games, I bet the Code/Data logger in FCEUXD might be the the source before inserting them to MM1.


Thanks. I just now downloaded FCEUXD. But I can't figure out how I'm supposed to use the Code/Data logger to find music data. Can anyone tell me where the offsets for the music is located in both Mega Man 1 and Mega Man 2 (or atleast tell me how to use the Code/Data Logger properly)?

____________________
Come join my IRC channel, #Megahax for Mega Man hacking related discussions.

Gil-Galad
Posted on 06-02-08 05:34 PM Link | Quote | ID: 84566


Goomba
Level: 13

Posts: 14/26
EXP: 10254
Next: 13

Since: 12-08-07

Last post: 5034 days
Last view: 5032 days
All of the music data and code is located in a 16K sized bank. You can use the current NSF rip, take a few bytes and search in the ROM. Or, if you don't want to deal with the current NSF, dump the bank on your own using FCEU MOD or Nesten, by setting a write breakpoint to the address range $4000 - $4004, once you get a snap, dump $8000 - $FFFF. Trim off $C000 - $FFFF, you don't need it as it's the hardwired section of the ROM. Now you will have a nice isolated chunk of the sound driver. Doing this here could even be your introduction to very basic ASM.

You can also use Unofficial Nintendulator's debugger. Set a write breakpoint to the sound register range stated above, once you get a snap, look at the Offsets for the banks loaded.

You can find the sequence data the hardway, without ASM by corrupting small chunks of data within the offset range where the sound driver is located at. I recommend using GNSF, as you can turn off and on the sound channels. This will help you track down the data a little better. Sliver-X has written a document explaining the process.

What I do, takes less than one minute. Load the NSF up and set a PC address break for the init address entry point. Find out where the pointers are loaded at and then track them down in the ROM. Once you find the pointers, I bet that they are in a table as usual. The pointers will of course point directly to the data.

Once you find the data, now the true hard part comes in modifying the data to make decent music.


Main - ROM Hacking - MM1 Music Hacking New thread | New reply

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

Page rendered in 0.020 seconds. (339KB of memory used)
MySQL - queries: 62, rows: 87/88, time: 0.016 seconds.