|Notes on Activating Unused Sound Slots|
|Roseanne Roseanna Danna: What is all
this fuss I've been hearing about Unused Sound Sluts?
Why is being a healthy horny virgin a problem? Have we become
so jaded by sex in Hollywood that virgins are now something that
needs to be "remedied"? No, fight back I say
with spackling compound, pool patch and joint putty. Shore up
those cracks I say!
Jane Curtain: Roseanne SHUT UP! In the first place you are a complete IDIOT and in the second place the subject is Unused Sound Slots! SLOTS!!
Roseanne Roseanna Danna: Oh... n e v e r mind.
Jane Curtain: For you folks at home, just read the tutorial. Thank you and good night. - gls
Well Funsters, here we are once again. Today's lesson is in the fine art of (re)activating the unused sound slots in the M2/Marathon Infinity sounds file. Actually, this is a really easy process, but a lot of folk don't seem to be aware of this, and no-one's ever bothered to set it down in print, AFAIK, so I guess someone's gotta do it and it might as well be me... : )
The problem with trying to use the unused sound slots in the sounds file (as anyone who has attempted to paste in new sounds and hook 'em in the physics/shapes) is that this trick doesn't actually work. At least, not without making a few further changes. From the documentation to Bo Lindbergh's "Marathon Noise" (an M2/Marathon Infinity sound editing application that works by splitting the sounds file into raw resources that you can then edit via ResEdit and SimpleText) (Editor's Note: I recently contacted Bo Lindbergh in reguard to releasing his program "Marathon Noise" for download. Bo's response was, "Nope. It's a batch export/import tool; it's user hostile and too ugly to release." I am leaving all references to Noise in these documents for the purpose of historical accuracy however, be advised Noise is not available for download unless you have a copy, including README, you want to send me. However even with that program available, your best bet would be to make sound changes using Wail or Chisel - gls 10/8/2000)
Changing the number of slots requires patching the Marathon application too.
In this lesson, this isn't really an issue - the Marathon Infinity engine is set to "see" and use 215 sounds (this includes any slots that are left unused). That value is editable via Fux, however, and Noise (AFAIK) does not place limits on the number of slots you add/remove from a Noise-edited sounds file. I just thought I should leave mention of this in for the benefit of anyone who might be interested. With the release of Mike Trinder's Ambience effect for Chisel (it allows you to expand the number of ambient sounds you can use in a scenario), there is probably going to be demand for a few more sound slots here and there at some point...
Unused slots must have resource ID -1. Used slots must have IDs divisible by 5 in the range 8192-32767.
This one is important. Any slot that is empty must have ID = -1. Having an empty slot with a valid ID will cause the engine to crash when it tries to reference that slot (I believe). The range of slot IDs is also important. As for IDs being multiples of 5, this is to accommodate the up-to-5-sounds-per-slot feature of the M-sounds file. That lot's all simple enough to understand, I think.
Bear in mind too that all IDs must be unique - an 8-bit slot and a 16-bit slot will share the same ID, but nothing else should. I've no idea exactly what happens if they did, and I've no intention of finding out. So when allocating new IDs, be careful to check they are unique. To help here, I've included a modified copy of the Sounds.txt file (4K) that comes with Noise, with my suggested values for IDs to allocate to the unused slots. I simply picked the first lot of unused numbers and marked them in red highlight, but they could be anything (within the limits defined above). Or just pick numbers that end in 5 (with the exception of 14545, which is the only ID in the original sounds file that doesn't already end in 0 - I guess it's just the exception to prove the rule or something. : )
The following is extracted from a mail I sent in reply to someone who was trying to add a new sound to the (unused) hunter activation slot. Because Charles Lechasseur's Sound Editor, or preferably Wail, is easier and more convenient to use than Noise, this is what I've recommended using here. Needless to say, Anvil is totally useless for this job and, more importantly, must not then be used on a SE-modified (or Noise-modified, I'd wager) Sounds file unless you want to end up with a messily corrupted and unrepairable mess of a Sounds file. So if you use SE once, you should stick with it thereafter. It's a much better editor anyway...
So, on with the show. Extracted mail; here goes:
>Well, this is what I have done:
As far as those unused slots go, you need to do some additional stuff to be able to use them, and for that you need some info [which is what I'm supplying in this package - ie. the modified Sounds.txt doc] and a copy of Charles Lechasseur's Sound Editor.
Y'see, all slots in the sounds file have to have a unique ID for M-thon to see them (these IDs lie in a particular range too, although I don't recall the numbers offhand). Unused slots have ID -1 though, which means unused, so M-thon ignores them. To activate them, you have to assign them an ID yourself.
This is where SE comes in. It's also where the additional info is terribly useful, as it saves you having to make your own list of all the existing slot IDs to work out which unused values are available. : ) Work out some unique new IDs that you're going to add to the unused slots to enable the M-engine to "see" them.
Now, take Sound Editor, bearing in mind that once you've used SE, you should not use Anvil on your modified Sounds file ever again, as Anvil is stupid and trips over on some of the changes that SE can make (for the full info read the EditNotes). Go to the Editor Prefs and check the 'allow empty classes' and 'allow ID modification' check boxes. This removes some of the "safeties" that prevent you from doing Foolish Things™, so make sure you know what you're doing at this stage (ie. RTFM - SE has a good one). Whilst there, you'll probably want to go to the Sound Clipboard prefs and check the options there too (it makes life much easier). Open your sounds file and go to the unused slot you wish to activate, click on the ID number at bottom left, and type the new ID into the field box that appears. Do the same for the 16-bit sound slot. Then paste your sounds into both (if you haven't already done so). Bear in mind that an active slot with nothing in it will crash the M-engine if it tries to call it, so make sure you don't forget and only do one of them [ie. 8- or 16-bit - Ed.] or anything.
Once this is done, all you gotta do is set your PM/Shapes up to use this sound slot for whatever it is you want it to do. Test it, of course, to make sure all is well. : ) And you're done.
BTW, how are you distributing the changes? I do _not_ recommend Anvil patches (nobody does), of course - the usual methods are Shapes Juggler and Sound Editor (Wail) for shapes and sounds respectively, or ResCompare or similar (which can do those, and images, etc. too). BTW, Mindvision's Installer VISE is pretty cool too as it can patch multiple files simultaneously, although it isn't available for free (unlike the other aforementioned tools).
Yeah, anyway, let's leave the oul' windbag there then, shall we? I suppose I coulda rewritten the above from scratch a bit better, but it's getting to be some obscene hour in the morning. I hope that lot's sufficiently clear. However, as always, this stuff is for your info only; you try it at your own risk and if anything goes wrong then it's your own problem. If you wish to see the (one) example of this technique that I've done so far, then check out the Marathon 1 > Marathon Infinity Hunter conversion patch. (562K)
Thanks are due to Bo Lindbergh and Charles Lechasseur, of course (big thanks, even) - it's their good work that lays the path that the rest of us can then follow. These guys are amongst the great unsung (well, perhaps not entirely unsung, (Editor's note: At least unwashed - gls 10/08/2000) but not entirely sung- about- every- day- as- they- ought- to- be either) heroes of the Marathon-editing crowd [can I still say 'fraternity', or is that too un-PC these days? : ]. I'd probably have had to slay a Bungie employee or two by now had it not been for the release of 3rd-party Marathon Infinity-editing tools that saved me from the darker recesses of Hell (aka. all the bits of Anvil that don't work right). (Editor's Note, Hamish Sandersons own Personal Hell is a 3 by 3 foot cubicle in the sweet by and by of the Dantian inferno he shares with Shaman and Pirate, where he will spend an eternity gnashing his teeth and pasting the sounds of his torment into an unused sound slot with Anvil. - gls 10/08/2000))
Check out the Marathon Archives at Bungie.org for copies of Bo and Charles cool utilities. Or try their own home pages:
Hope you find this stuff useful. And even if you don't find this stuff useful, go play with the Hunter patch instead. It's cool. : )
P.S. If you haven't read my EditNotes or Sounds page, do so ASAP. They really are required reading if you're doing shapes/sounds/other customization work. Could save you a lot of headaches (or solve any you might currently have. : )