jstout Posted May 9, 2008 Share Posted May 9, 2008 Here is the music data for the NES TSB. I'm not very musical so if anyone can give me proper terms for descriptions it would be appreciated.Music Pointer Table: x36EC0-x36F4FMusic:SONG 1: x37998 SONG 2: x3A5A7 SONG 3: x37C7D SONG 4: x3A155SONG 5: x392D9 SONG 6: x38AAC SONG 7: x38F53 SONG 8: x3969BSONG 9: x37D66 SONG 10: x399F7 SONG 11: x39CF7 SONG 12: x38010SONG 13: x38133 SONG 14: x3BF03 SONG 15: x3AAAF SONG 16: x3ABFBSONG 17: x3AA36 SONG 18: x3AC6A SONG 19: x3A665 SONG 20: x3A72ASONG 21: x3A7E3 SONG 22: x3A8D5 SONG 23: x3A9A8 SONG 24: x3ACE8SONG 25: x3AE83 SONG 26: x3BC00 SONG 27: x3B2CD SONG 28: x3AF2BSONG 29: x3B34E SONG 30: x3B8DA SONG 31: x3B4C6 SONG 32: x3B9E2SONG 33: x3BE15 SONG 34: x3BACA SONG 35: x3A010 SONG 36: x3A0B9Sound Effects:EFFECT 37: x37211 EFFECT 38: x3723A EFFECT 39: x3725D EFFECT 40: x3728CEFFECT 41: x372C1 EFFECT 42: x372E7 EFFECT 43: x37307 EFFECT 44: x37333EFFECT 45: x3735D EFFECT 46: x37374 EFFECT 47: x371EB EFFECT 48: x3718FEFFECT 49: x37143 EFFECT 50: x3716A EFFECT 51: x36FBB EFFECT 52: x37108EFFECT 53: x36FD1 EFFECT 54: x36FE0 EFFECT 55: x37043 EFFECT 56: x3708DEFFECT 57: x373CA EFFECT 58: x373D0 EFFECT 59: x373D6 EFFECT 60: x373DCThe locations go to the info for each track where it lists the sound channel and the pointer to the music data for that channel. For those that don't know: Square = Lead Instruments, Triangle = Bass, Noise = Drums and Misc. Sounds.Effects: 00 = Square 1, 01 = Square 2, 02 = Triangle, 03 = NoiseMusic: 04 = Square 1, 05 = Square 2, 06 = Triangle, 07 = NoiseExample:SONG 4: 04 75 A2 05 5C A4 06 52 A1 07 F2 A4 FFSONG 4: Square 1 at $A275, Square 2 at $A45C, Triangle at $A152, Noise at $A4F2, FFMusic Data Commands:81-C0 = Length for following Notes (81 = Very Quick to C0 = Very Long)E0 XX = Smoothness (00-43 lower values blend notes and higher values have choppier notes)E1 = ??E2 XX = Decay (20-2F = Note Dies and 30-3F = Note Carries)E3 XX = Volume (00 = High to 0F = Low)E4 XX = Shift (80-83)E5 XX = PitchE7 = ??E8 XXXX = Repeat at PointerE9 XXXX = Goto PointerEA = Return from xE9EB XX = Loop following (XX = Number of times to loop)EC = End of xEB SectionED XX = Wavering of following notes (XX = Waver value) NOTE: Pitch increase with certain test valuesEF = End of xED SectionF3 = Slur following notes NOTE: Tests had decay of notes with certain conditionsF4 = End of xF3 SectionFF = End Sound ChannelMusic Notes:Order of Notes:C C# D D# E F F# G G# A A# B for each OctaveSquare and Triangle Channels:LOW PITCH70-7B = Octave 100-0B = Octave 210-1B = Octave 320-2B = Octave 430-3B = Octave 540-4B = Octave 650-5B = Octave 760-6B = Octave 8HIGH PITCHNoise Channel:5F-6F = Drum NotesOther:0C = RestF0 = Drum SampleF1 = Drum SampleF2 = Drum SampleF7 = READY DPCMF8 = DOWN DPCMF9 = HUT DPCMFA = TOUCHDOWN DPCMFB = Drum SampleFC = Drum SampleFD = Drum SampleNOTE: Drums Samples are different Quote Link to comment Share on other sites More sharing options...
buck Posted May 10, 2008 Share Posted May 10, 2008 That's pretty cool. Quote Link to comment Share on other sites More sharing options...
Vanisher Posted May 10, 2008 Share Posted May 10, 2008 Nice find, jstout.Looks like it's possible now to recompose the in-game music. But the problem is the length. Quote Link to comment Share on other sites More sharing options...
buck Posted May 12, 2008 Share Posted May 12, 2008 jstout, how tough would it be to code 'random' notes and stuff like that for a song?Like random noise splashes and drum samples (the stuff that's already there)...just trigger random things?I think it would be cool to have a random type song (bleeps and drums) while on-field. Quote Link to comment Share on other sites More sharing options...
Knobbe Posted May 12, 2008 Share Posted May 12, 2008 Actually, that is what the pointer table is for. You just change the pointers based on the length.If you had music source code from other games, it'd be very easy to cut and paste into TSBNice find, jstout.Looks like it's possible now to recompose the in-game music. But the problem is the length. Quote Link to comment Share on other sites More sharing options...
buck Posted February 22, 2010 Share Posted February 22, 2010 I'm starting to mess with this stuff - I've got a nice hardcore-DEVO remix going on, just switching pointers around (like a pulse channel sequence driving the triangle wave).But I want to get in and program some sequences/loops myself. But, I'm kinda stuck.SONG 4: Square 1 at $A275, Square 2 at $A45C, Triangle at $A152, Noise at $A4F2, FFhow do I get to $a275 in the ROM (address) so I can change stuff, (the pointer value of Square 1, in the above quote)?and then, what is the Music Pointer Table and how do you use it? Quote Link to comment Share on other sites More sharing options...
buck Posted February 22, 2010 Share Posted February 22, 2010 I figured out you take the pointer, flip it, add x10, and put a 3 in front. so for 75a2, the location is x3a285.I've been able to go in and modify basslines and melodies...shit is tedious.Still don't know what the Music Pointer Table is.Been reading up on transferring NES music, looks like different games use different "sound engines" - so there would have to be some translation done, no thanks. Maybe other "Tecmo" games use the same type of music code? For now, I'm going to spend a little time trying to write some different songs (probably just one, because - like I said, it's a slow-process.)I'm starting to mess with this stuff - I've got a nice hardcore-DEVO remix going on, just switching pointers around (like a pulse channel sequence driving the triangle wave).But I want to get in and program some sequences/loops myself. But, I'm kinda stuck.SONG 4: Square 1 at $A275, Square 2 at $A45C, Triangle at $A152, Noise at $A4F2, FFhow do I get to $a275 in the ROM (address) so I can change stuff, (the pointer value of Square 1, in the above quote)?and then, what is the Music Pointer Table and how do you use it? Quote Link to comment Share on other sites More sharing options...
TomTupa Posted February 22, 2010 Share Posted February 22, 2010 Go Buck go! It would be cool just to have any new music in there. It would be something unique in any rom. Quote Link to comment Share on other sites More sharing options...
BO FB Offtackle Left Posted February 22, 2010 Share Posted February 22, 2010 Been reading up on transferring NES music, looks like different games use different "sound engines" - so there would have to be some translation done, no thanks. Maybe other "Tecmo" games use the same type of music code? For now, I'm going to spend a little time trying to write some different songs (probably just one, because - like I said, it's a slow-process.)I've noticed the Mega Man games sound a lot like Tecmo. Maybe they use the same engine? Quote Link to comment Share on other sites More sharing options...
GameplayLoop Posted February 22, 2010 Share Posted February 22, 2010 Been reading up on transferring NES music, looks like different games use different "sound engines" - so there would have to be some translation done, no thanks. Maybe other "Tecmo" games use the same type of music code? For now, I'm going to spend a little time trying to write some different songs (probably just one, because - like I said, it's a slow-process.) I've noticed the Mega Man games sound a lot like Tecmo. Maybe they use the same engine? Funny you mention that. Ever since Jstout posted this info I've wondered if Mega Man 2 tracks could be plugged into TSB somewhere. Quote Link to comment Share on other sites More sharing options...
buck Posted February 22, 2010 Share Posted February 22, 2010 I will look into the Mega Man idea. Quote Link to comment Share on other sites More sharing options...
BO FB Offtackle Left Posted February 22, 2010 Share Posted February 22, 2010 I also always thought it might be cool to make charatcers from other video games players in TSB. It probably wouldn't be too hard to change the player sprites into Mega Man or Mario, though I think it's beyond me. Someone has already put the graphics from different Mario games into Mega Man I. Check it out: I think there are also other hacks under the related videos. Quote Link to comment Share on other sites More sharing options...
GameplayLoop Posted February 22, 2010 Share Posted February 22, 2010 I could never spend so much time hacking a game that people, maybe, will play through once. Jeebus. Cool, though. But Jeebus. Quote Link to comment Share on other sites More sharing options...
buck Posted February 23, 2010 Share Posted February 23, 2010 dammit. I thought I had those pointers figured out, but some of them don't work the way I described above (flip, add x10, add the "3" in front)...any ideas?for example 59bc, when I go to x3bc69 - it's not what I'm expecting (the wrong place). Quote Link to comment Share on other sites More sharing options...
JobDodger Posted March 18, 2010 Share Posted March 18, 2010 I have no idea how to use this hex information. Can anyone point me to some Tecmo hex editing tutorials, I have looked on the forum, but I haven't found anything. Does anyone have any hex editor recommendations? I would REALLY love to swap some of the music around. Quote Link to comment Share on other sites More sharing options...
TomTupa Posted March 18, 2010 Share Posted March 18, 2010 This reminds me. Does any of this help us get the "hut hut hut" back into the 32 team rom? Quote Link to comment Share on other sites More sharing options...
GameplayLoop Posted March 18, 2010 Share Posted March 18, 2010 This reminds me. Does any of this help us get the "hut hut hut" back into the 32 team rom?I was under the impression that the 'hut hut hut' was squeezed out of the game by CX_ROM's changes. Or, at least, I recall that being said somewhere. Quote Link to comment Share on other sites More sharing options...
BO FB Offtackle Left Posted March 18, 2010 Share Posted March 18, 2010 I have no idea how to use this hex information. Can anyone point me to some Tecmo hex editing tutorials, I have looked on the forum, but I haven't found anything. Does anyone have any hex editor recommendations? I would REALLY love to swap some of the music around.There's a hex editor here. You should download all this stuff anyway, lots of good things here. I think the hex editor comes with a how-to:viewtopic.php?f=5&t=5320 Quote Link to comment Share on other sites More sharing options...
cxrom Posted March 18, 2010 Share Posted March 18, 2010 This reminds me. Does any of this help us get the "hut hut hut" back into the 32 team rom?Nope. Those qb soundfx are DMC samples, and not created by the sound driver (other then telling the hardware to play them). The starting address for DMC samples has to be located in the fixed bank ($C000- $FFFF). Quote Link to comment Share on other sites More sharing options...
Knobbe Posted March 19, 2010 Share Posted March 19, 2010 Can you further explain how the pointers relate to the music? I'm not really grasping this.Here is the music data for the NES TSB. I'm not very musical so if anyone can give me proper terms for descriptions it would be appreciated.Music Pointer Table: x36EC0-x36F4FMusic:SONG 1: x37998 SONG 2: x3A5A7 SONG 3: x37C7D SONG 4: x3A155SONG 5: x392D9 SONG 6: x38AAC SONG 7: x38F53 SONG 8: x3969BSONG 9: x37D66 SONG 10: x399F7 SONG 11: x39CF7 SONG 12: x38010SONG 13: x38133 SONG 14: x3BF03 SONG 15: x3AAAF SONG 16: x3ABFBSONG 17: x3AA36 SONG 18: x3AC6A SONG 19: x3A665 SONG 20: x3A72ASONG 21: x3A7E3 SONG 22: x3A8D5 SONG 23: x3A9A8 SONG 24: x3ACE8SONG 25: x3AE83 SONG 26: x3BC00 SONG 27: x3B2CD SONG 28: x3AF2BSONG 29: x3B34E SONG 30: x3B8DA SONG 31: x3B4C6 SONG 32: x3B9E2SONG 33: x3BE15 SONG 34: x3BACA SONG 35: x3A010 SONG 36: x3A0B9Sound Effects:EFFECT 37: x37211 EFFECT 38: x3723A EFFECT 39: x3725D EFFECT 40: x3728CEFFECT 41: x372C1 EFFECT 42: x372E7 EFFECT 43: x37307 EFFECT 44: x37333EFFECT 45: x3735D EFFECT 46: x37374 EFFECT 47: x371EB EFFECT 48: x3718FEFFECT 49: x37143 EFFECT 50: x3716A EFFECT 51: x36FBB EFFECT 52: x37108EFFECT 53: x36FD1 EFFECT 54: x36FE0 EFFECT 55: x37043 EFFECT 56: x3708DEFFECT 57: x373CA EFFECT 58: x373D0 EFFECT 59: x373D6 EFFECT 60: x373DCThe locations go to the info for each track where it lists the sound channel and the pointer to the music data for that channel. For those that don't know: Square = Lead Instruments, Triangle = Bass, Noise = Drums and Misc. Sounds.Effects: 00 = Square 1, 01 = Square 2, 02 = Triangle, 03 = NoiseMusic: 04 = Square 1, 05 = Square 2, 06 = Triangle, 07 = NoiseExample:SONG 4: 04 75 A2 05 5C A4 06 52 A1 07 F2 A4 FFSONG 4: Square 1 at $A275, Square 2 at $A45C, Triangle at $A152, Noise at $A4F2, FFMusic Data Commands:81-C0 = Length for following Notes (81 = Very Quick to C0 = Very Long)E0 XX = Smoothness (00-43 lower values blend notes and higher values have choppier notes)E1 = ??E2 XX = Decay (20-2F = Note Dies and 30-3F = Note Carries)E3 XX = Volume (00 = High to 0F = Low)E4 XX = Shift (80-83)E5 XX = PitchE7 = ??E8 XXXX = Repeat at PointerE9 XXXX = Goto PointerEA = Return from xE9EB XX = Loop following (XX = Number of times to loop)EC = End of xEB SectionED XX = Wavering of following notes (XX = Waver value) NOTE: Pitch increase with certain test valuesEF = End of xED SectionF3 = Slur following notes NOTE: Tests had decay of notes with certain conditionsF4 = End of xF3 SectionFF = End Sound ChannelMusic Notes:Order of Notes:C C# D D# E F F# G G# A A# B for each OctaveSquare and Triangle Channels:LOW PITCH70-7B = Octave 100-0B = Octave 210-1B = Octave 320-2B = Octave 430-3B = Octave 540-4B = Octave 650-5B = Octave 760-6B = Octave 8HIGH PITCHNoise Channel:5F-6F = Drum NotesOther:0C = RestF0 = Drum SampleF1 = Drum SampleF2 = Drum SampleF7 = READY DPCMF8 = DOWN DPCMF9 = HUT DPCMFA = TOUCHDOWN DPCMFB = Drum SampleFC = Drum SampleFD = Drum SampleNOTE: Drums Samples are different Quote Link to comment Share on other sites More sharing options...
jstout Posted April 30, 2010 Author Share Posted April 30, 2010 Here is a simple test song for those having problems (the commas in the hex below are just to help those see some breakup of the parts and notes). I'll find my notes and answer some of the questions in this thread soon.POP GOES THE WEASEL: (Put at x3A155 and play sound 4 on the sound test screen)$A145: (SET SONG DATA POINTERS)04 52A1, 05 90A1, 06 20A2, 07 20A2, FF$A152: (SET SQUARE 1 VARIABLES)E2 30, E3 01, E0 1E$A158: (SQUARE 1 MUSIC)E9 77A1, 8E 20, 88 20, 8E 22, 88 22, 92 24, 92 20, E9 77A1, 92 29, 8E 22, 88 25, 92 24, 92 20, E8 58A1$A177: (COMMON MELODY)8E 20, 88 20, 8E 22, 88 22, 88 24 27 24, 92 20, EA$A186: (FILLER)FF FF FF FF FF FF FF FF FF FF$A190: (SET SQUARE 2 VARIABLES)E2 30, E3 01, E0 1E$A196: (SQUARE 2 MUSIC)E9 F8A1, E9 FFA1, EB 03, E9 F8A1, EC, E9 FFA1, EB 03, E9 F8A1, EC, E9 FFA1, EB 02, E9 F8A1, EC, 88 F3 10 15 19, F4, E9 FFA1, EB 02, E9 F8A1, EC, E9 06A2, E9 12A2, EB 02, E9 06A2, EC, E9 12A2, EB 03, E9 06A2, EC, E9 12A2, EB 02, E9 06A2, EC, 88 10, 84 F3 15 19, F4, F3 15 19, F4, E9 12A2, EB 02, E9 06A2, EC, E8 96A1$A1F8: (COMMON MELODY)88 F3 10 14 17, F4, EA$A1FF: (COMMON MELODY)88 F3 0B 15 17, F4, EA$A206: (COMMON MELODY)88 10, 84 F3 14 17, F4, F3 14 17, F4, EA$A212: (COMMON MELODY)88 0B, 84 F3 15 17, F4, F3 15 17, F4, EA$A21E: (FILLER)FF FF$A220: (SET TRIANGLE AND NOISE VARIABLES)E2 30, E3 0F, E0 1E$A226: (TRIANGLE AND NOISE MUSIC)88 00, E8 26A2 Quote Link to comment Share on other sites More sharing options...
buck Posted April 30, 2010 Share Posted April 30, 2010 Jstout, how did you keep all the timing ("lengths" x81-C0) in order? My problem is keeping all the channels working together and staying in time (with length). I know how it works, but it's hard for me to "visualize". Quote Link to comment Share on other sites More sharing options...
GameplayLoop Posted April 30, 2010 Share Posted April 30, 2010 I'm glad you guys are refreshing your knowledge of this stuff. I haven't read up on any sound data yet. There are several sound effects that would benefit being changed in TSB, which also drive me crazy. Changed, in that they need to be altered so that either the sound itself is executed later, or to give it a 'pause' of some sort at the beginning of the sound string, so that the effect that follows is better synced with the action onscreen. I'll get to more specific examples when I arrive at that point in this season's ROM creation(s). Maybe the easiest way for some of them is to be removed altogether, but I have faith that the TSB Savants will have an idea or two up their sleeves.One of these sound effects, as a single example, is when the cut screen of the WR making the falling backwards grab (not diving) is played. That sound effect always fires up too early on the non-cinema screen, which totally gives away the result (complete or incomplete) when the cinema screen happens. There are a few of these sound errors. Quote Link to comment Share on other sites More sharing options...
jstout Posted April 30, 2010 Author Share Posted April 30, 2010 Jstout, how did you keep all the timing ("lengths" x81-C0) in order? My problem is keeping all the channels working together and staying in time (with length). I know how it works, but it's hard for me to "visualize".The sound lengths match to:A5 = Quadruple Whole Note9E = Double Whole Note96 = Whole Note8E = Half Note88 = Quarter Note84 = Eighth Note82 = Sixteenth Note81 = Thirty-second NoteI'm not musical so if there are inbetween notes then let me know and I can see if anything that will match up exactly. Quote Link to comment Share on other sites More sharing options...
buck Posted April 30, 2010 Share Posted April 30, 2010 Jstout, how did you keep all the timing ("lengths" x81-C0) in order? My problem is keeping all the channels working together and staying in time (with length). I know how it works, but it's hard for me to "visualize".The sound lengths match to:A5 = Quadruple Whole Note9E = Double Whole Note96 = Whole Note8E = Half Note88 = Quarter Note84 = Eighth Note82 = Sixteenth Note81 = Thirty-second NoteI'm not musical so if there are inbetween notes then let me know and I can see if anything that will match up exactly.awesome! thanks jstout! any "inbetween" timing intervals would be to add "shuffle" or "swing". Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.