wctools.zip. This contains a few tools that I've been tinkering on as I develop wcdx. The tools were originally written as I was figuring out the data formats used by the games and have been extremely useful for figuring out what the game is doing. They were originally just hastily thrown-together programs designed to verify my assumptions and make my life a little easier, so I wasn't planning to release them, but I think they may be of interest to the kind of people who still hang around a community-run game forum twenty-two years after Kilrathi Saga was released. I've been spending some time lately getting these ready for broader consumption, and here they are! As always, the source code is available on GitHub.
So what are they?
following commands from within the GAMEDAT directory. wcimg also has the ability to pack new images into a sprite resource, but I never got around to adding resource packing to wcres, so it's not very useful yet. I should probably work on that...
- wcres: A tool for extracting individual resources from the data files in the GAMEDAT directory. Others have written this tool, and probably better, but I was interested in working it out for myself, and WCToolbox didn't exist at the time.
- wcimg: A tool for converting sprite images to PNG format. You can use this with wcres to view any sprite in WC1 or WC2. These are the tools I used to extract the images for this post.
Last, but definitely not least:
wcjukebox plays back music from the STREAMS directory in exactly the same way that the games do. This includes support for looping playback and following transitions between tracks as indicated by the stream files. Tracks can be specified either by track number (which follows the numbering used internally by the game), or by providing "trigger" and "intensity" values to go with a specific stream file. These values are used by the game to control transitions between tracks without the game having to keep track of them too closely. (This is also the source of the infamous endlessly repeating victory music bug.) You can use the -show-tracks option to see how the games map track numbers to trigger and intensity values, or use the -show-triggers option for a complete list of triggers and intensities available for a given stream. With the -o option, you can save the music as a .wav file instead of listening to it.
- wcjukebox: A music player for Kilrathi Saga! This tool can play back any music track from WC1 and WC2. Detailed instructions are in the tool; just run it with no arguments to read all about it.
I've put together this list of track names based on my vague recollection of where they turned up in the game. Some of these names are definitely wrong, while others are simply vague (such as "Combat 1" or "Mission 3"). If there's a canonical list of names somewhere, I'd love to update this list; otherwise, I'll happily take your best efforts at coming up with reasonable names for these!
Here's the list. Wing Commander 2 reused the same track numbers for all of the music that it had in common with Wing Commander 1, so there's only one list, which makes things easier. Additionally, there are four tracks in WC2 that don't have track numbers in the game (meaning you never heard them). One of these tracks is just a repetition of the jump music, but the others appear to be alternate orchestrations that George Oldziey was trying out before settling on the versions that actually appear in the game! I have listed them below as bonus tracks.