USF Channel Muting by newsplcington at 9:12 PM EDT on April 18, 2014
Hello, I am coming here to ask how I would mute USF channels through way of hex editing.

Many threads I come across here are either
"Yes it is doable" with a vague or unhelpful reply

or

"No it is not doable"

I know it is doable.


Is there anyone here who still has any recollection of how to do this? Greatly appreciated!

edited 9:19 PM EDT April 18, 2014

edited 9:19 PM EDT April 18, 2014

edited 12:22 AM EDT April 19, 2014
by Josh W at 5:16 AM EDT on April 19, 2014
It's not that it's not doable. It just can be very difficult.

The problem is that the N64 has no "channels". All sounds are queued up on the N64 cpu via some sort of midi-esque sequencer (usually) and then are mixed together and resampled on the RSP coprocessor.

The issue here is to find out how the music player works, find out where the function calls which sets the channel volume (usually some variant of alSeqpSetChlVol - if it exists at all), and patch in where it reads those values with your own.


Method two, is if the standard smashy driver is used, this is even easier.
Find out the pointer to "ALSeqPlayer" structure, then go 0x60 bytes past this. At that point there is the "ALChanState" array, which is an array of 16 channels, each of size 16 bytes, with the 9th byte being the volume for that particular channel.
However, this data will be overwritten when the instrument banks are loaded in, so it must be rigged to patch this in after.

Either way, no simple task :(


by TheUltimateKoopa at 9:31 AM EDT on April 20, 2014
Well there's a lot of proof it's doable:

https://www.youtube.com/watch?v=9m4JUcubFGM

https://www.youtube.com/watch?v=oz8TPexiAJ8
by Soulis at 12:32 PM EDT on April 28, 2014
I just remembered how in Goldeneye and Mystical Ninja i got missing sound channels (instruments) when using a particular emulator/plugin combo.

Anyway, it would be cool if there was a USF player where you had this kind of control over the music.

edited 12:33 PM EDT April 28, 2014
by newsplcington at 12:32 PM EDT on July 16, 2014
I've done it with a song from Mario Kart 64 as seen here, this is just the bass track playing.

Essentially what I did was open the .usflib in a hex editor and look for what I thought was channel data, and nulled it. http://puu.sh/aeqxS.wav

I've had no luck with any other games however. Since I can't properly identify channel data.

edited 5:45 PM EDT July 16, 2014
by bxaimc at 6:51 PM EDT on July 16, 2014
I find it intriguing that USF is still a big mystery even to the legendary rippers themselves.
by bobbyK at 3:57 PM EDT on July 17, 2014
Might be a mystery, but with some magic tools you can isolate anything these days :P

I did a small test on Goldeneye 007 Egyptian level sample:

original sample:
original

beat extracted (still some artifacts of melody):
beat

melody extracted (the synth choir is kinda mixed, hard to dissociate from the flute/strings):
melody

:P


edited 9:02 PM EDT July 17, 2014

edited 1:54 AM EDT July 18, 2014


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source