Muting USF channels by TheUltimateKoopa at 2:25 PM EST on January 15, 2009
I read an old thread here from 2005 where someone said they managed to use the sm64.usflib to mute channels. How is this done? And can you mute channels on any song so that, for example, just the drums play, or just, say the slap bass in "Super Mario 64 Main Theme"? I know with Banjo-Kazooie, you can use a hex editor for each song and edit certain values to mute certain channels.
Rule of thumb: You can use a hex editor to do *anything*. Essentially that's what you're going to have to do to mute channels. There's a few people here with deep Mario 64 knowledge, maybe one of them can let you know exactly what needs to be changed.
Muting USF channels by TheUltimateKoopa at 4:53 PM EST on January 15, 2009
All I really need to know is where to go in the hex editor and what to change values to. All I want is to be able to listen to each channel seperately (I believe there's something like 16 channels or something)
Here's some posts that ugetab made when he worked out the variations in Dire Dire Docks and Hazy Maze Cave back in June 2004. I think the offsets he mentions here are PJ64 savestate offsets. I'm sure that the offsets are different for the track you want, but this is the closest I can come to being helpful.
------
This should finish up all of the SM64 song renditions that are currently possible, so that I can go on to Zelda 64. It's definately possible for me to run the game, so I just need to toss a few codes in for the music modifier, and I'll be off an running.
-(Decimal value that makes it on)(Song Option) Decimal Address
(On) - Always on (Option A) - Standing/swimming in the water (Option B) - Inside an underwater cavern
-63(Option A) 149175 -63(Option A) 149183 -63(Option A) 149191 -63(Option A) 149207 -63(Option A) 149215 -63(Option A) 149223 -63(Option A) 149247 -64(Option B) 149271 -64(Option B) 149279 -63(Option B) 149303 -63(Option B) 149311 -63(Option B) 149319 -63(On) 149343 -63(On) 149375 -63(Option B) 149635 -63(Option B) 149667
Song Usage:
For the first rendition, all (On) values must be on, and all other values in the list set to 0.
For the next rendition, turn on all (Option A) values and set all (Option B) values to 0.
For the final rendition, turn on all (Option A) and (Option B) values.
------
I spent a good number of hours debugging Hazy Maze Cave variations, because the default song is a mix of both themes. The easy part was matching the music in the game with the instruments. The hard part was looking through 77 potential instrument playing values, only 15 of which were used in the song.
Here's a cumbersome version of the document, for anyone who may wish to extract any individual samples or unusual renditions from the songs. I'll be rechecking Dire Dire Docks addresses using the same method I used to test the times and instrument for these addresses.
Anyone with a little knowledge about file editing, and an ISP patch generator could easily make a way to switch the song style on a whim.
'Decimal value for on(0 is off for all of them)' - 'Letter representation' 'Decimal Address'
63 - A 153331 62 - B 153371 63 - C 153395 63 - D 153427 63 - E 153459 63 - F 153491 63 - G 153523 62 - H 153555 62 - I 153587 63 - J 154231 63 - K 154375 63 - L 154407 63 - M 154423 63 - N 154599 63 - O 154615
Song Usage:
Both:
-Intro- A C E G H
-End Intro-
-Other- B J K L M N O
-End Other-
Normal Cavern Differences:
+D -F -I
Hazy Maze Differences:
-D +F +I
Letter Reference - Instrument sound, First Heard at Time
A - Drums, 0:00 B - Sand paper, 0:08 C - Early Chords, 0:04 D - Chords, 0:37 E - Intro Chord, 0:03(3 notes played) F - High Pitch Chords, 1:03 G - Drums, 0:00 H - Humming, 0:00 I - Humming, 0:37 J - Unknown,0:15 K - Drums, 0:44 L - High Pitch Drums, 0:40 M - Med-High Pitch Drums, 0:34 N - Higher Pitch Drums, 0:34 O - Hollow Wooden Sticks, 0:34
I don't understand this at all. What file am I supposed to be opening? sm64.usflib or the actual miniusf file for Hazy Maze Cave? And when you say "decimal address", if the address is say, 32, should I be searching for "20" (the hex equivalent of 32)? I don't get where to change what.
I've not gotten anywhere so far. I've tried editing where I think you're supposed to edit, but nothing happens. I don't know what file I'm supposed to open in the Hex Editor, what value(s) I'm supposed to change, and what to. Basically, what I want to do is to be able to play only single channels (or instruments), so I can sequence good MIDIs of the songs without having to cause my ear to bleed from trying to listen to say, the drumline of "Super Mario 64 Main Theme".
My suggestions would be to either use the 2SF files (since vio2sf has channel muting) or use VGMtrans and use its output MIDI files as references. The renditions of the songs are exactly the same as far as the end result MIDI sequence would be concerned.