Muting Channels Banjo Kazooie/tooie/dk64 by blackhand1001 at 12:27 PM EDT on May 6, 2013
I am trying to mute channels in these games. I don't care about using it in the game. I just want to do it to play in winamp. In particular I want to mute the background wind noise in cauldron keep, and in Dk64 mute the laugh in Frantic Factory boss theme. I tried just screwing around in a hex editor and made some weird things happen but a point in the right direction would be helpful.
This would also be useful to me, so I can mute the ambient sounds (e.g. wind noises) in these games, as at the moment it makes making a BRSTM of most of the songs in those games, pretty much impossible, especially songs like Freezeezy Peak.
Muting channels in a USF is as easy as muting samples from an MP3. At least that's what people seem to lead us to believe. I mean I've asked loads of times.
IT! IS! FUCKING! POSSIBLE!
Because someone from VGMusic.com called PL-7764, actually made a topic years ago, about muting channels with a hex editor for Banjo-Kazooie.
Yet no matter how many FUCKING TIMES I've asked about it, NO ONE!!! HAS ANSWERED WITH ANYTHING POSITIVE!!! DESPITE ME BEING SOMEHOW ABLE TO DO IT BEFORE!!!
But.... that's the point! I'm ... Bowser, and stuff. What, you expect me to say "Welcome to the Muhsroom Kingdom, Mario. Here, have some cake. No, really. Oh and here's your Princess. Take her. I won't stop you"
Its definitely possible. You can extract the midi sequencing data right out of the rom. That clearly means its not pre-encoded and that it is synthesized.
For all we know the guy probably just messed around with a hex editor until he found values that worked for specific songs. Or did the program support all songs from all games?
What hex editor did you use? Does it matter which one you use? I tried looking for midis in the sm64 rom with hxd but couldn't find anything, same thing with the old n64 version of vgmtrans. :(
Actually...I care, too. Not only would it be nice to turn off the background noise like Ultimate Koopa suggests, but I'd also like it as a way to listen to individual instruments for easier sequencing (as an alternative to waiting for the specific ROM to be supported in the USF to MIDI tool).
From memory, you need to put the "USFLib" file (Not the USF file) in a hex editor. Which hex editor, doesn't matter. If it's a hex editor it's a hex editor, AFAIK.
If you've had an accident at work, you may be entitled to compensation. Call HCS, the Honorable Compensation Society, now.
Well at least I make more sense than most spambots.
Anyway, I'm not trying to be annoying, but, looking at the MIDIs, for example, Ticker's Tower from Mumbo's Mountain, it's called "Banjo-Kazooie (U) (V1.0) 0000001A 00D38B20.mid" Now, I'm assuming the 0000001A is just some kind of ID, but is 00D38B20 the address?
So if I was looking for Freezeezy Peak, would I be looking from address 00D2A4E0? And how do I know what/where the track pointer is? Or am I not making sense?
Wait, the USFLib only goes up to 000ECEBB.
What the fuck am I doing. All you say it change this to that... I'm not a fucking nerd. Try not just treating me like I know even a single thing about hex editing?
Then once rip midi as raw, you'll see the first 0x40 bytes, each 0x4 bytes contains an offset. Null (00000000) them one by one, and inject, and then at some point should find which one is the track want to null. Start over and change that track to null and inject and it will be gone...
This is why I hardly try myself--I'm never certain if I can wrap my own head around any of this stuff. So I just hang back and see if the pros can work it out--on their own time, of course.
"Yes, export it raw, edit in hex editor, and import it back."
But how do I then listen to it? E.g. how do I then listen to, let's say, Bubblegloop Swamp, without the deep "woop" sounds? And for tracks like Freezeezy Peak, would i also have to mute the channels for the Underwater versions, and other versions as well as the wind sounds?
Looks like we'd have to test our edits in an emulator. I'm not sure who would have the patience or free time for this, but someone could null out all the wind, burps, farts, etc. from the Banjo games, and maybe ask hcs or Josh W if they'd be willing to create a USF set with the nulled SFX hack. It'd take a lot of free time, patience, and possibly wall punching to get it completely done.
Well yeah, you'd have to test it ingame, or you could I guess play midi using soundfont. I believe a BK soundfont exists, that'll tell you the track #. If you use midi tool to export to midi. Then can null out that track if you count as you go numbers.
Knowing which track in terms of "channel number" on the MIDI is easy. If I'm using the standard GS soundfont, or any other soundfont, all I do is just pick one that isn't actually a tune, or one that's just a long note that pitch-bends slowly, like wind or something.
OK, then when you find midi track, export to midi, play it and identify the track # to delete, you count 32-bits, starting at 0x0, skipping a 00000000. So if was track 2 want to null, and bytes were 00000044 00000000 000000300 00000400
change first line to 00000044 00000000 000000300 00000000
It's not always the 4th. Every non-null 32-bits is a track in the exported midi from N64 Midi tool.So you find right track, and null out corresponding raw bin track offset.
If I recall correctly VGMTrans can find midi sequences in some roms (Chameleon Twist 2, Super Smash Bros, Mischief Makers, to name a few) and if you expand the selection it can identify different instruments.
Edit: It's half an idea. I really should learn to piece together what I'm saying before I post it.
Since I begged for it last time, I'll say the one thing I know about this (although I'm not sure if you're beyond that point); apparently, in order to do what you're asking, as far as muting certain channels, you have to figure out which call string it has in the hex code, and zero it out in that particular USF file.
I got about as far as you did, but Josh W managed to do it properly for me, which is why we have versions of Tooty's Theme without the lava bubbling and furnace blasting, and inside the Rusty Bucket without the gears squeaking.