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.
by TheUltimateKoopa at 12:57 PM EDT on May 6, 2013
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.
by TheUltimateKoopa at 2:28 PM EDT on May 7, 2013
But it's not possible. At all...

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!!!
by dj4uk6cjm at 4:10 PM EDT on May 7, 2013
I wish we had PL-7764's guide. :/
by Yoshinkeru at 7:49 PM EDT on May 7, 2013
Galloping Goombas! Bowser, calm down! You're scaring the Yoshis & Toadstools!
by TheUltimateKoopa at 11:26 PM EDT on May 7, 2013
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"
by Lunar at 9:22 AM EDT on May 8, 2013
TUK it's because no-one knows and no-one cares except you. You need to stop expecting everyone else to fix all your problems for you.
by TheUltimateKoopa at 2:08 PM EDT on May 8, 2013
No one except me? So, blackhand1001 doesn't count?
by blackhand1001 at 2:48 PM EDT on May 8, 2013
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.

edited 2:48 PM EDT May 8, 2013
by Franpa at 2:49 PM EDT on May 8, 2013
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?
by blackhand1001 at 2:57 PM EDT on May 8, 2013
It might not work for all games but it clearly worked for banjo kazooie and banjo tooie.
by dj4uk6cjm at 4:35 PM EDT on May 8, 2013
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. :(
by Yoshinkeru at 8:25 PM EDT on May 8, 2013
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).
by TheUltimateKoopa at 7:07 PM EDT on May 9, 2013
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.
by SubDrag at 8:55 PM EDT on May 9, 2013
If the background noise is made from midis, use the n64 midi tool. Set the midis to just one track that just ends. Replace, and then USF it.
by TheUltimateKoopa at 3:00 PM EDT on May 10, 2013
Two questions...
What do you mean by "one track that just ends"?
How do you "replace" and "USF" it?
by SubDrag at 6:25 PM EDT on May 10, 2013
Find the right midi, then null out one of the midi tracks (replace a command with FF2F)
by TheUltimateKoopa at 8:37 PM EDT on May 10, 2013
So, you mean in N64MIDITool, find, for example, the MIDI for Freezeezy Peak, and null out the track that contains the wind sounds?
by SubDrag at 1:10 AM EDT on May 11, 2013
Yeah, you can just change the track pointer to 00000000 I realized once you identify it in the midi, then reinject.
by TheUltimateKoopa at 2:22 PM EDT on May 11, 2013
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?

edited 2:51 PM EDT May 11, 2013
by SubDrag at 12:45 AM EDT on May 12, 2013
From BK Rom map by CBM:
1516 - D25578 - [10748] - 00 Nothing
1517 - D255C0 - [10750] - 01 Final Battle with Grunty
1518 - D28170 - [10758] - 02 Mumbo's Mountain - 00D174A0 00010003
1519 - D2A4E0 - [10760] - 03 Freezeezy Peak
151A - D2C338 - [10768] - 04 MMM - Church
151B - D2C3E0 - [10770] - 05 Treasure Trove Cove
151C - D2E378 - [10778] - 06 BGS - Main
151D - D2F1D8 - [10780] - 07 CC - Fighting Crabs
151E - D2FD30 - [10788] - 08 Main Conect Intro
151F - D30A80 - [10790] - 09 Note
1520 - D30AD0 - [10798] - 0A Jinjo
1521 - D30C60 - [107A0] - 0B Red Feather
1522 - D30CA8 - [107A8] - 0C Egg
1523 - D30CF0 - [107B0] - 0D Jiggy dance
1524 - D30F58 - [107B8] - 0E Wind Blowing - Start Rare Logo
1525 - D31368 - [107C0] - 0F MMM
1526 - D33AF8 - [107C8] - 10 Spiral Mountain
1527 - D36228 - [107D0] - 11 TTC - Water, Seagulls
1528 - D37160 - [107D8] - 12 TTC - Fighting Big Crab
1529 - D37CE8 - [107E0] - 13 TTC - Inside Crab
152A - D38450 - [107E8] - 14 Gold Feather
152B - D384B0 - [107F0] - 15 Extra Life
152C - D38608 - [107F8] - 16 Honeycom
152D - D38650 - [10800] - 17 Hollow Honeycomb
152E - D38708 - [10808] - 18 Completed Honeycomb
152F - D388A8 - [10810] - 19 ???? Beta ????
1530 - D38910 - [10818] - 1A Dead Banjo
1531 - D38B20 - [10820] - 1B MM - Inside Termite's hill
1532 - D394E8 - [10828] - 1C Clanker Cavern
1533 - D3B1B0 - [10830] - 1D Mumbo's Spell
1534 - D3B4A8 - [10838] - 1E Grunty's Lair
1535 - D3C300 - [10840] - 1F CC - In Clanker
1536 - D3DAC0 - [10848] - 20 Gobi's Valley
1537 - D403B8 - [10850] - 21 MMM - In the main house
1538 - D41A10 - [10858] - 22 MMM - In chruch yard
1539 - D42C38 - [10860] - 23 MMM - In church
153A - D43248 - [10868] - 24 GV - In tomb
153B - D43E80 - [10870] - 25 Invunerability
153C - D44528 - [10878] - 26 GV - Sandybutts Maze
153D - D45328 - [10880] - 27 GV - Ruppe
153E - D456B8 - [10888] - 28 TTC - Sandcastle
153F - D45D78 - [10890] - 29 CCW - Summer
1540 - D47590 - [10898] - 2A CCW - Winter
1541 - D48498 - [108A0] - 2B Right
1542 - D484E0 - [108A8] - 2C Wrong
1543 - D48528 - [108B0] - 2D Fanfare before Jiggy
1544 - D48620 - [108B8] - 2E CCW - Autumn
1545 - D4A3D8 - [108C0] - 2F CCW - Main Huv
1546 - D4B7C0 - [108C8] - 30 All Jinjos Collected
1547 - D4BA18 - [108D0] - 31 Game Over
1548 - D4BD08 - [108D8] - 32 Intro screen
1549 - D4BEC0 - [108E0] - 33 RBB - Main
154A - D4D918 - [108E8] - 34 Snacker tune
154B - D4D998 - [108F0] - 35 RBB - In machine room
154C - D4EE20 - [108F8] - 36 All 100 Note
154D - D4EE88 - [10900] - 37 Door opening??
154E - D4EF78 - [10908] - 38 MMM - Church door closing
154F - D4F0C8 - [10910] - 39 Beta Song DK-esque
1550 - D4F520 - [10918] - 3A FP - Race
1551 - D507D0 - [10920] - 3B FP - Race Winner
1552 - D508C0 - [10928] - 3C FP - Race Loser
1553 - D50A48 - [10930] - 3D Jiggy Appearance
1554 - D50C00 - [10938] - 3E Beta Sound
1555 - D50CB0 - [10940] - 3F Cauldron
1556 - D50E30 - [10948] - 40 Witch Falling
1557 - D50FB0 - [10950] - 41 Mumbo's Hut
1558 - D513B0 - [10958] - 42 Open Note Door
1559 - D515B8 - [10960] - 43 Warp in to level sound
155A - D51680 - [10968] - 44 CCW - Nabnut
155B - D53020 - [10970] - 45 CCW - In bee Nest
155C - D53FC0 - [10978] - 46 CCW - Top of tree
155D - D55280 - [10980] - 47 BGS - Tip tup choir
155E - D556BB - [10988] - 48 CCW - Summer house
155F - D55C68 - [10990] - 49 CCW - Autumn house
1560 - D566B8 - [10998] - 4A RBB - Warehouse by Snacker
1561 - D57038 - [109A0] - 4B CCW - Fighting Zubbas
1562 - D57FA0 - [109A8] - 4C RBB - Quarters
1563 - D58518 - [109B0] - 4D Beta MM - Beta Mumbo's Mountain tune.
1564 - D588F0 - [109B8] - 4E Start - whistle pitch bend up
1565 - D58C78 - [109C0] - 4F Whistle Pitch bend down
1566 - D58D60 - [109C8] - 50 Grunty's Lair - Normal
1567 - D5A6F8 - [109D0] - 51 Grunty's Lair - TTC
1568 - D5CA58 - [109D8] - 52 Grunty's Lair - CC
1569 - D5E1E8 - [109E0] - 53 Grunty's Lair - GSC
156A - D602B8 - [109E8] - 54 Grunty's Lair - GV
156B - D61B48 - [109F0] - 55 BGS - Mr Vile - eating Yumblies
156C - D62570 - [109F8] - 56 Bridge to Grunty's Lair
156D - D63230 - [10A00] - 57 Turbo Talon Trot
156E - D637A0 - [10A08] - 58 Wellies move
156F - D63B20 - [10A10] - 59 Grunty's Lair - FP
1570 - D650F8 - [10A18] - 5A Boggy's Igloo sad kids
1571 - D65390 - [10A20] - 5B Boggy's Igloo All's ok again.
1572 - D656B0 - [10A28] - 5C Beta Game Over
1573 - D65820 - [10A30] - 5D Grunty's Lair
1574 - D679C0 - [10A38] - 5E Grunty's Lair MMM
1575 - D6A280 - [10A40] - 5F CCW - Spring
1576 - D6BCF8 - [10A48] - 60 CCW - Nabnut's spare room
1577 - D6CB20 - [10A50] - 61 FP - Light the tree
1578 - D6CC70 - [10A58] - 62 RBB - Fighting the Kabooms
1579 - D6D6E8 - [10A60] - 63 Grunty's Lair - into Jazzy Game show disc.
157A - D6F1F8 - [10A68] - 64 World Opening
157B - D6F358 - [10A70] - 65 Filling a jigsaw picture
157C - D6F548 - [10A78] - 66 FP - Christmas Tree
157D - D6F7E0 - [10A80] - 67 Start - Rare Logo
157E - D6F870 - [10A88] - 68 FP - We are the Twinklies
157F - D70688 - [10A90] - 69 Cauldron
1580 - D70920 - [10A98] - 6A MMM - Puzzle board
1581 - D71418 - [10AA0] - 6B FP - Wozza's Cave
1582 - D71968 - [10AA8] - 6C Grunty's Intro - including Tooty's theme & Banjo Snoozing.
1583 - D74100 - [10AB0] - 6D CCW - Gnawty's house
1584 - D748B8 - [10AB8] - 6E Start Select screen - sleepy
1585 - D75500 - [10AC0] - 6F Pause Scree
1586 - D75810 - [10AC8] - 70 MMM - In loggo
1587 - D75FC8 - [10AD0] - 71 Grunty's Furnace Fun
1588 - D770D0 - [10AD8] - 72 BGS - Beat the frogs
1589 - D77BE8 - [10AE0] - 73 Start Selection screen - gameboy
158A - D77FE8 - [10AE8] - 74 Grunty's Main Room - cackles
158B - D79070 - [10AF0] - 75 Red Feather Pillow
158C - D790C8 - [10AF8] - 76 Gold Feather Pillow
158D - D79150 - [10B00] - 77 Blue Egg Pillow
158E - D791A8 - [10B08] - 78 Open a Note doo
158F - D79308 - [10B10] - 79 Cheato
1590 - D795A0 - [10B18] - 7A Brentilda
1591 - D79A80 - [10B20] - 7B Skull Square
1592 - D79B50 - [10B28] - 7C Grunty square
1593 - D79BE8 - [10B30] - 7D Banjo square
1594 - D79CA0 - [10B38] - 7E Joker square
1595 - D79D78 - [10B40] - 7F Music square
1596 - D79DE8 - [10B48] - 80 Machine Room
1597 - D7A958 - [10B50] - 81 Brentilda -strum -
1598 - D7A9A8 - [10B58] - 82 Puzzle out
1599 - D7AA38 - [10B60] - 83 Gobi Valley - SNS
159A - D7AEC0 - [10B68] - 84 Treasure Trove Cove - SNS
159B - D7B488 - [10B70] - 85 Freezeezy Peak - SNS
159C - D7B868 - [10B78] - 86 Mad Monster Mansion - SNS
159D - D7BD20 - [10B80] - 87 Click Clock Wood - SNS
159E - D7C130 - [10B88] - 88 Collection of SNS Item
159F - D7C2B0 - [10B90] - 89 Jinjo charge
15A0 - D7C390 - [10B98] - 8A Turbo Talon Trot short
15A1 - D7C480 - [10BA0] - 8B Strum
15A2 - D7C4D0 - [10BA8] - 8C Jinjonator
15A3 - D7D058 - [10BB0] - 8D Jinjonator appearing
15A4 - D7D228 - [10BB8] - 8E Cast List
15A5 - D7E938 - [10BC0] - 8F Jinjonator charging
15A6 - D7F6B0 - [10BC8] - 90 Grunty's Big Door opening
15A7 - D7F888 - [10BD0] - 91 Grunty falling
15A8 - D7FBB0 - [10BD8] - 92 Grunty's spell
15A9 - D7FD40 - [10BE0] - 93 Bottles game piece
15AA - D7FD80 - [10BE8] - 94 Bottles game music
15AB - D80708 - [10BF0] - 95 Start of bottles game
15AC - D80848 - [10BF8] - 96 Pick a piece up
15AD - D80888 - [10C00] - 97 Put a piece down
15AE - D808C8 - [10C08] - 98 Start of Bottles game
15AF - D80970 - [10C10] - 99 Barbeque tune
15B0 - D81538 - [10C18] - 9A Jinjonator hitting Grunty
15B1 - D815D8 - [10C20] - 9B Jinjonator hitting Grunty 2
15B2 - D81678 - [10C28] - 9C Jinjonator hitting Grunty 3
15B3 - D81718 - [10C30] - 9D Jinjonator hitting Grunty 4
15B4 - D817B8 - [10C38] - 9E Jinjonator hitting Grunty 5
15B5 - D81858 - [10C40] - 9F Jinjonator hitting Grunty 6
15B6 - D818F8 - [10C48] - A0 Jinjonator hitting Grunty 7
15B7 - D81998 - [10C50] - A1 Jinjonator hitting Grunty 8
15B8 - D81A38 - [10C58] - A2 Jinjonator hitting Grunty 9
15B9 - D81AD8 - [10C60] - A3 Jinjonator hitting Grunty 10
15BA - D81B70 - [10C68] - A4 Barbeque Shock 1
15BB - D81D20 - [10C70] - A5 Barbeque Shock 2
15BC - D81ED0 - [10C78] - A6 Barbeque Shock 3
15BD - D82080 - [10C80] - A7 Barbeque Shock 4
15BE - D82230 - [10C88] - A8 Grunty's Lament
15BF - D82898 - [10C90] - A9 Tooty's theme
15C0 - D83298 - [10C98] - AA Beach theme
15C1 - D842B8 - [10CA0] - AB Grunty's Lament
15C2 - D84440 - [10CA8] - AC Final Game Over
15C3 - D846B8 - [10CB0] - AD X
15C4 - D846B8 - [10CB8] - AE X
15C5 - D846B8 - [10CC0] - AF X
15C6 - D846B8 - [10CC8] - B0 X

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...
by TheUltimateKoopa at 12:14 PM EDT on May 12, 2013
Do I "export all to raw bin"? And do I open that in a hex editor?

And how do you "inject"?
by TheUltimateKoopa at 6:22 PM EDT on May 13, 2013
Hey, SubDrag? Build a copy of the Statue of Liberty which contains missiles which only target people over the age of 20 but under the age of 40.

Come on, it's not that complicated!
by SubDrag at 6:51 PM EDT on May 13, 2013
Yes, export it raw, edit in hex editor, and import it back.

You are attempting a slightly complicated maneuver here, so if you didn't want a technical answer, here it is: you can't do it.
by Yoshinkeru at 7:05 PM EDT on May 13, 2013
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.
by TheUltimateKoopa at 7:42 PM EDT on May 13, 2013
"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?

edited 7:43 PM EDT May 13, 2013
by soneek at 8:03 PM EDT on May 13, 2013
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.
by SubDrag at 8:15 PM EDT on May 13, 2013
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.
by TheUltimateKoopa at 9:42 PM EDT on May 13, 2013
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.
by SubDrag at 11:50 PM EDT on May 13, 2013
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

then inject as raw bin and save rom
by TheUltimateKoopa at 6:53 PM EDT on May 14, 2013
Every 4 group of 8 bits is a track?
And I just null out the 4th group?
by SubDrag at 7:43 PM EDT on May 14, 2013
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.
by wolupgm6 at 10:58 PM EDT on May 30, 2013
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.

edited 5:34 AM EDT May 31, 2013
by holyice7 at 6:38 PM EDT on June 23, 2013
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.


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