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

0 users currently in ROM Hacking | 3 guests

Main - ROM Hacking - Looking into porting music through a diferent system. New thread | New reply


MiniCompute
Posted on 04-30-10 08:42 PM Link | Quote | ID: 130764


Bubble
Level: 66

Posts: 85/981
EXP: 2420199
Next: 41652

Since: 04-25-07

Last post: 483 days
Last view: 691 days
Well it's been a long time since I've been here and thought I might start off here.
I've been doing custom music with SMW music engine and working with addmusic.
I think I am very well familiar with addmusic and that is not only limited to one game and system,
Is it possible that I could port music through a different type system say like the nes and what game would be a very good choice to port through it.
Keep in mind I never hacked with a nes game so it might be confusing for me if I can't understand how the nes coding and hacking works.

Thanks in advance.

zkip
Posted on 05-01-10 04:54 AM Link | Quote | ID: 130776


Level: 15

Posts: 12/34
EXP: 14268
Next: 2116

Since: 02-13-10

Last post: 4172 days
Last view: 3046 days


~zkip:
Well, for starters I suggest reading the music document for SMB1. (Too lazy to link it, but it's on ROMhacking.net)

And if your thinking that it's as easy as custom music for SMW, I'm terribly sorry. Most NES games ALL use a different type of music system. I've looked into it myself. You'd think it'd be easy. Just looking for the music pointers and inserting a NSF file and the repointing the pointers. () But, I have yet to get a full length song into a ROM in a listenable format. (Maybe thats just me though)

Also, check out JaSp's tool for SMB3 as it would also be a good place to check for music system modifications.

____________________



MiniCompute
Posted on 05-01-10 06:08 AM Link | Quote | ID: 130777


Bubble
Level: 66

Posts: 86/981
EXP: 2420199
Next: 41652

Since: 04-25-07

Last post: 483 days
Last view: 691 days
Good grief, well then I'll start looking into it and decide if I need to leave porting to the nes alone for abit until I can familiarize myself with nes hacking.

Thanks again.

Kawa
Posted on 05-01-10 08:26 AM Link | Quote | ID: 130783


CHIKKN NI A BAAZZKIT!!!
80's Cheerilee is best pony
Level: 138

Posts: 3630/5344
EXP: 30928898
Next: 734083

Since: 02-20-07
From: The Netherlands

Last post: 4491 days
Last view: 2627 days
GBA on the other hand has one music engine that's used by most anything originally made in Japan. I can infodump you on that if you want.

____________________
Wife make lunch - Shampoo
Opera - give it a spin
Spare some of your free time?
<GreyMaria> I walked around the Lake so many goddamn times that my sex drive was brutally murdered
Kawa rocks — byuu

MiniCompute
Posted on 05-01-10 07:30 PM Link | Quote | ID: 130795


Bubble
Level: 66

Posts: 88/981
EXP: 2420199
Next: 41652

Since: 04-25-07

Last post: 483 days
Last view: 691 days
If you don't mind that would be fine, also if you have any more extra info on music porting and creation let me know.
I got a invitation from OCremix.org to join up with them, he said he found my work at smwcentral and me post music video ports on youtube.com.
Gotta go for now on my black berry posting this and shopping in a store with my mother on her birthday, I'll be back on monday to check for replys.

Mike.

Kawa
Posted on 05-01-10 07:51 PM Link | Quote | ID: 130796


CHIKKN NI A BAAZZKIT!!!
80's Cheerilee is best pony
Level: 138

Posts: 3631/5344
EXP: 30928898
Next: 734083

Since: 02-20-07
From: The Netherlands

Last post: 4491 days
Last view: 2627 days
~ INFODUMP COMMENCING ~

M4A basic structure
Songs cover background music, jingles and sound effects, all in the same format. Each song has a pointer in a global song table that points to that song's header. The header format is as follows.

Song header
Number of tracks (byte)
Number of blocks (byte, I'm not sure what this does)
Priority (byte, determines how important the song is; usually, sfx > jingles > bgm)
Reverb (byte)
Pointer to voice group (think soundfont)
A number of pointers to each track in the song, obviously equal to the first byte.

Track data
Each track is a series of byte-sized commands. Certain commands take parameters, which may be pointers or 16-bit integers:

The 0x00-0x7F range (inclusive) are Pitch commands. At least one Nxx command (see below) must precede them. If a Pitch command is not preceded by an Nxx command, the last used length is reused. If another byte in the 0x00-0x7F range directly follows a Pitch command, that byte is the Velocity for that note. If no Velocity is given, the last one is reused (again), defaulting to 0x7F (100%).
The 0x80-0xB0 range (also inclusive) are Wait commands, which cause the track to pause for a given number of ticks. For example, 0xB0 - W96 delays playback for a whole measure, given 96 ticks to the measure.
The 0xB1-0xCF range (still inclusive) are Control commands. For example, 0xB1 - FINE stops playback for the given track, no parameters needed, while 0xB2 - PATT takes one pointer as a parameter and basically jumps to that point in the song like a subroutine call. 0xBD - VOICE is one of the first things done in each track and sets the track's instrument to the given byte value.
The 0xD0-0xFF range (guess what?) sets a playback length for the next note. Thereby, 0xFF - N96 is a full note. If no Pitch command follows, the last one is used again.

The full command set can be delivered by email on request.

____________________
Wife make lunch - Shampoo
Opera - give it a spin
Spare some of your free time?
<GreyMaria> I walked around the Lake so many goddamn times that my sex drive was brutally murdered
Kawa rocks — byuu

Main - ROM Hacking - Looking into porting music through a diferent system. 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: 48, rows: 73/75, time: 0.015 seconds.