I found the music data in the Jump-Jump ROM, but I didn't quite understand what it means. I just realized that bytes with large values are notes, but what does everything else mean...
Help me understand the sound engine from Nice Code Software
Moderator: Moderators
-
- Posts: 1318
- Joined: Thu Apr 23, 2009 11:21 pm
- Location: cypress, texas
Re: Help me understand the sound engine from Nice Code Software
hi Iancuster,
You’ve had an nesdev account since 2016... so maybe I’m totally misunderstanding you.
But, I’ll respond anyways...
Notes are big values? As in A3 B7 D2?
Those are hexadecimal values... since hexadecimal is a base16 number system, it requires 16 separate digits. So the people/person who invented it chose 0 through 9, and then they just needed 6 more, so A through F were chosen for the digits representing 10 through 15.
The musical notes A through G have nothing to do with those hexadecimal digits. An octave has 12, I believe, separate notes (C and C#/Db are two of these notes). It’s been a while since I’ve played with NES music; but if there were 10 octaves accessible on the NES, since 10 octaves * 12 notes per octave = 120 different notes, and 120 (in our base10 number system) == 78 (in base16); therefore, those 10 octaves could be represented in less than half of a byte. Thus, the big values shouldn’t make evident musical note values.
If this were a homebrew game using the famitone2 music engine, maybe it could be possible (extremely low possibility) for me to compare that song (is it an actual song?; it’s sitting around memory location $3540; I think $3540 is in the midst of RAM mirrors; a song should definitely not be stored in RAM ) with one of my famitone2 songs. But, it’s obviously a commercial game, so there’s no telling, by me at least, what music engine that song(?) was created with.
So, there’s my reply. I hope it was helpful. If I’m totally wrong about your thinking, then I’ll be sorry so please forgive me for not being intelligent enough to respond to your brilliance. And I hope someone else will correctly respond to you.
Blessings,
unregistered
You’ve had an nesdev account since 2016... so maybe I’m totally misunderstanding you.
But, I’ll respond anyways...
Notes are big values? As in A3 B7 D2?
Those are hexadecimal values... since hexadecimal is a base16 number system, it requires 16 separate digits. So the people/person who invented it chose 0 through 9, and then they just needed 6 more, so A through F were chosen for the digits representing 10 through 15.
The musical notes A through G have nothing to do with those hexadecimal digits. An octave has 12, I believe, separate notes (C and C#/Db are two of these notes). It’s been a while since I’ve played with NES music; but if there were 10 octaves accessible on the NES, since 10 octaves * 12 notes per octave = 120 different notes, and 120 (in our base10 number system) == 78 (in base16); therefore, those 10 octaves could be represented in less than half of a byte. Thus, the big values shouldn’t make evident musical note values.
If this were a homebrew game using the famitone2 music engine, maybe it could be possible (extremely low possibility) for me to compare that song (is it an actual song?; it’s sitting around memory location $3540; I think $3540 is in the midst of RAM mirrors; a song should definitely not be stored in RAM ) with one of my famitone2 songs. But, it’s obviously a commercial game, so there’s no telling, by me at least, what music engine that song(?) was created with.
So, there’s my reply. I hope it was helpful. If I’m totally wrong about your thinking, then I’ll be sorry so please forgive me for not being intelligent enough to respond to your brilliance. And I hope someone else will correctly respond to you.
Blessings,
unregistered
Last edited by unregistered on Sat Mar 13, 2021 12:00 am, edited 1 time in total.
-
- Posts: 1318
- Joined: Thu Apr 23, 2009 11:21 pm
- Location: cypress, texas
Re: Help me understand the sound engine from Nice Code Software
Ok, so after short research, it’s obviously NOT a commercial game. Nice Code is a Chinese company operating since 1999, a year way after the NES. Supposedly, they developed using software written by Dragon Co. Sorry, I bet no one knows about Dragon Co.’s music engine.
Re: Help me understand the sound engine from Nice Code Software
I'm sorry I didn't elaborate. I meant that the bytes that are on 3591-35bd, 3605-3634, 3679-36a5, 36ed-371c are definitely notes.
It remains to figure out what the bytes at 355f-358d, 35c3-35f2, 3647-3673, and 36ab-36da mean.
It remains to figure out what the bytes at 355f-358d, 35c3-35f2, 3647-3673, and 36ab-36da mean.
Re: Help me understand the sound engine from Nice Code Software
Are they the note lengths? Since it's 1 through 4, I would guess it may be 1/8th, 1/4, 1/2, whole notes. Or could be 1/16th through 1/2, I don't know.
If you change the first one, it should desync the timing between channels for that song, try it.
Or maybe it's the channel select for the note? There are four channels.
Just some possibilities.
If you change the first one, it should desync the timing between channels for that song, try it.
Or maybe it's the channel select for the note? There are four channels.
Just some possibilities.
Re: Help me understand the sound engine from Nice Code Software
I tried to find out. So, first thing is a note length. The second one has something to do with the channels (perhaps the timing of the channels or channel select). Or maybe this is settings for first two channels.Memblers wrote: ↑Sat Mar 13, 2021 10:42 pm Are they the note lengths? Since it's 1 through 4, I would guess it may be 1/8th, 1/4, 1/2, whole notes. Or could be 1/16th through 1/2, I don't know.
If you change the first one, it should desync the timing between channels for that song, try it.
Or maybe it's the channel select for the note? There are four channels.
Just some possibilities.
I dont know what the other two segments are responsible for. In any case, they dont affect the playback of music in any way.
Re: Help me understand the sound engine from Nice Code Software
I tried to transfer music from Forest Adventure to Jump-Jump, and here's what I found out (attention to the picture).
I understand that the instruments bytes are listed a little bit higher of the highlighted blue bytes, but I can't make them out.
After I transferred the bytes from Forest Adventure, the music became similar, but the instruments, alas, are different.
I understand that the instruments bytes are listed a little bit higher of the highlighted blue bytes, but I can't make them out.
-
- Posts: 1318
- Joined: Thu Apr 23, 2009 11:21 pm
- Location: cypress, texas
Re: Help me understand the sound engine from Nice Code Software
Note: Even though Forest Adventure was made by an alias of Nice Code, it seems to be obvious that it uses a completely different music engine. That, or maybe a new program (or different version of), a la FamiTracker, was used to create the hex code version of their song.
Though, you don’t care? And are attempting to transplant that incompatible song? That’s pretty cool; God bless your efforts!
Though, you don’t care? And are attempting to transplant that incompatible song? That’s pretty cool; God bless your efforts!