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

0 users currently in ROM Hacking | 4 guests

Main - ROM Hacking - Any music hackers around? New thread | New reply


Naulahauta
Posted on 03-04-11 05:47 PM Link | Quote | ID: 139985


Red Paragoomba
Level: 19

Posts: 46/56
EXP: 30492
Next: 5285

Since: 10-27-09

Last post: 3704 days
Last view: 485 days
I've tried this before but lost all my notes with a hard drive accident.
I'm not too good with music hacking when it comes to identifying notes. What I do know however is how to edit Super Mario Land music.

These are snippets of bytes that correspond to the sequences in the SML GBS file. I've pasted them in ASCII for easier visualization.


DD\\DD\\DD\\DD\\
::RR::RR::RR::RR
RRRRPPPPNNNNLLLLDDDDBBBB>>>>HHHH

Compare those bytes to this sound channel's bleeps.
The connection is obvious.
Here's a deeper explanation, this time in actual bytes instead of the ASCII values. I've added a few line breaks and semicolons here and there to help visualize.


A2: 44 44 5C 5C 44 44 5C 5C 44 44 5C 5C 44 44 5C 5C 00 3A 3A 52 52 3A 3A 52 52 3A 3A 52 52 3A 3A 52 52 00
A3: 52 52 52 52 50 50 50 50 4E 4E 4E 4E 4C 4C 4C 4C 44 44 44 44 42 42 42 42 3E 3E 3E 3E 48 48 48 48 00


The first byte, A2 sets the length of the forecoming notes. A2 means 'short'. Then begins the first sequence part. Once a 00 is read, the sequence part is looped once more. Then begins the other part, also made completely from the 'short' A2-defined notes. Once a 00 is read, the sequence part is looped again.
But then, the A3 is read. That defines a new length for the forecoming notes again. A3 means 'long'. A 00 is read after them again and the sequence part loops. This isn't the whole sequence though, but enough for you to get the point.

Another channel is the drums:

A1: 06 06
A2: 0B
A1: 06 06
A2: 0B
A1: 06 06
A2: 0B
A1: 06 06
A2: 0B
A1: 06 06
A2: 0B
A1: 06 06
A2: 0B
A1: 06 06
A2: 0B
A1: 06 06
A2: 0B 00

A2: 06 06 10 06 06 06 10 06 06 06 10 06 06 06 10 06


The first sequence part is built from two A1-long 06's, then a A2-long 0B. That is the fast drum beat in the beginning. Then begins a boom-boom-psh-boom loop, all notes being A2 long.

I was going to explain more but I have to go now. I'll come back to this as soon as I come home again.
Also, Here's the GBS.
Stay tuned, and hope this makes any sense

____________________
oh

messiaen
Posted on 03-04-11 09:55 PM Link | Quote | ID: 139989


Cheep-cheep
Level: 32

Posts: 190/193
EXP: 204444
Next: 1998

Since: 05-26-08
From: Porto Alegre, Brazil

Last post: 4442 days
Last view: 4770 days
It uses some sort of running status, probably bitwise to set the note lenght. From the example you posted:

0x44 = A3.

Each semitone = 0x2 bytes (which is sort of bizarre to me). 0x18 is an octave for instance (ie, 0xC * 2).

Main - ROM Hacking - Any music hackers around? New thread | New reply

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

Page rendered in 0.018 seconds. (339KB of memory used)
MySQL - queries: 42, rows: 63/64, time: 0.015 seconds.