Feet of Fury Cryptic Allusion Games The GOAT Store Feet of Fury

General Info
Swap CDs
Preview Download
Press Material
Cryptic Allusion
GOAT Store



Beyond a few minor changes, this section of the site hasn't been updated for a little while. We are planning to release a full set of step editing and Swap CD compilation tools on the web site for free. At that time we'll update this for the new tools. Until then, though, we'll leave this old version of the guide up here.

In this document we may talk about an "alpha channel" in graphics. Images are composed of Red, Green, and Blue "channels", each of which contribute towards the color of a pixel. When transparency is desired, a fourth channel is added, called "Alpha", that determines how transparent that pixel is. We'll use the terms "alpha channel" and "transparency" interchangably.

Also note that DWI here refers to the dance game simulator for PCs, Dance With Intensity.


So you've got this game, the built-in songs are cool, but you're jonesing to try it out with your DWI songs. Have no fear, this guide will show you how to create a Swap CD!

But first off, I need to give you the bad news: FoF's GAP values are not necessarily compatible with DWI's gap values, probably due to differences in the way DWI and FoF are written. No source or coding info is available about DWI, so we can't mimic its behavior. However, we've observed that newer versions of DWI (2.0 and above) seem to be considerably closer to FoF's timings. Still, any step files you pull from DWI will probably have to have their GAP value adjusted by a little bit.

To solve this problem in the future, we're actually planning to release a step editor that can show you the timing of your arrows with the music in a preview mode, and build the whole Swap CD image for you. This editor has been started (and in fact was used for over half the songs in the game), but isn't of a quality for public consumption yet. So for the moment, if you are brave enough to try this, we recommend you work with CD-RWs (if your DC works with them), use multi-session CDs for multiple retries, or download adjusted step files from others.

A Sample Swap CD

Before you dive into the explanations below, it might be helpful if you grab the sample Swap CD image I put together. This includes two sets, each with one song from FoF itself. It's about 2.5MB. As we have limited bandwidth, please only grab it if you are planning to try making a Swap CD.

ZIP Archive

The "sample" directory into which it unzips would be the root of the CD.

Anyway, without further ado...

The Basic Layout

Swap CDs in Feet of Fury are designed to simply replace whatever we have on the CD with what you have on your CD at runtime. Due to limitations of the hardware, our user interface was designed for a practical maximum of about 50 songs at once, but that's really not very much if you're going to blow a whole CD on it.

So Feet of Fury allows you to build a Swap CD with up to 12 "sets" of up to 50 songs each. These are selectable somewhat like DDR 4thMix's genres: you can choose one set at Swap CD menu itself, and then you're using that set until you exit back to the Swap CD menu and select a new set.

The root directory of a Swap CD consists of an arbitrary number of directories starting with an underscore (these are completely ignored and can be used for anything you want), one directory named "SwapCD", and up to 12 normally named directories. As you have probably guessed, each normally named directory is a set.

The SwapCD directory contains a version file and a thumbnail for the full CD. This thumbnail will be shown rotating in the background of the Swap CD menu just like the FoF CD's image is shown by default.

The "SwapCD" Directory

As of the current version of FoF, you'll need two files in here.

The first is a file called "Version.1". This file can be completely empty, but it needs to be there for future versions of FoF to recognize that this is a version 1 Swap CD. We may add more features later (such as a skinning ability) but they aren't in place yet.

The second file is "thumb.png". This is just a basic PNG graphic file that has a thumbnail for the background of the Swap CD menu. Preferably you'll want to make the image contained in this file circular and use PNG's transparency to chop off the edges (i.e., 32-bit RGBA). The texture in the background is scaled up (or down) to 256x256 no matter what size the thumb.png file is on the CD, but we'd recommend sticking with 128x128 or 256x256 for best results. In any event this file and all other graphics in the Swap CD must be a power of two in size (8, 16, 32, 64, 128, 256, 512) on both width and height! Additionally, all images should be in "true color" mode -- 24-bit or 32-bit (for transparency).

Here is a sample thumb.png file. Note that in some cases, IE will not display the transparency properly, so you may have to download the image and view it in something like Photoshop to see what it really looks like.

[thumb example]

That's actually the texture we use for "The Higher You Get" in the song menu, so it will also work in the song thumbnails below.

This file is optional -- if you don't include one, there will simply be no image in the background of the Swap CD menu.

Set Directories

Also in the root of the CD are up to 12 "Set" directories. These will appear in the Swap CD menu in alphabetical order (assuming your CD image creation program puts them in that order).

Before I go any further, I should explain the concept of a "song ID". This is basically a short, machine-readable string which represents the song. In the FoF built-in songs, we use strings like "djg_bhedu". The only requirement is that your CD burning program can burn it to the CD in such a way that FoF recognizes it. (See the section below on CD burning instructions.) This concept of a song ID is important because you'll use it in creating several parallel directory structures later.

Anyhow, the root of each set directory contains four files/directories depending on the method you use to make the Swap CD:

  1. "info.txt" -- this file contains a brief description of what is contained in this set. You should keep each line in this file under about 30 columns of text, and make sure to end each line with a newline (i.e., make sure the file doesn't end at the end of the last line).
  2. "thumb.png" -- same exact thing as the thumb.png in the Swap CD directory. but this one is for the individual set on the Swap CD menu. This file should be 64x64. Transparency will be honored but is not required since each option in the Swap CD menu has a background built in. This file is optional -- if you don't include one, there will simply be no image for the selector for that set.
  3. "songs" -- this is a directory which contains all of the actual OGG files. Under "songs", you'll have one directory for each song ID, and under each of those directories, you'll have two files: sample.ogg and song.ogg. The first is a ~10 second sample of the song which will be looped in the song menu as long as the user is hovering on it. The second is the actual song itself. Feet of Fury standard is to use a VBR 96kbps Ogg Vorbis encoded file, but you can probably get away with raising or lowering the bit-rate somewhat. Don't go too high, though, or the game my have trouble keeping up with decoding it. Also make sure you are using a fairly recent Ogg Vorbis encoder version -- we have had reports of earlier versions causing game failures.
  4. "song_meta.pak" -- this is a packed version of the directories containing your song graphics and step files. The structure of the contents will exactly parallel that of "songs" -- a directory named after each song ID. Under each of those dirs, you will have two files: steps.dwi, and thumb.png. The step file is a standard format DWI file, with the exception of the weird GAP issue I mentioned at the top. The other is -- you guessed it -- a thumbnail texture. This is what will be shown in the song selection menu, and so it should be circular like the Swap CD thumbnail, and sized 128x128. If the thumbnail is not included, a stock image will be used.

You can include up to 50 songs (and thus you'll have up to 50 song IDs) for each set. Note that due to an oversight in the Swap CD code, the release version cannot use a custom background image like the in-game songs.

I mentioned PAK files above. As you can guess, it's going to take a while to load the steps.dwi and thumb.png for 50 songs straight from the CD. That's why we use a PAK file. This is somewhat like a ZIP file, but without compression. (For those in the know, it's an uncompressed Linux romfs filesystem.) It's created using the "genromfs" utility. Let's say you're sitting in your set directory at a command shell. You'd issue a command something like this:

genromfs -f song_meta.pak -d song_meta -v

This will read the contents of the "song_meta" directory recursively and write the contents into a PAK file called "song_meta.pak". You can then remove the song_meta directory or move it elsewhere before making the CD image if you like. You can also leave it there if you want, it will be ignored in the game during load time.

As I said above, we'll eventually automate this whole process with a pretty GUI app, but this isn't done yet. So if you want to make these things, you'll have to go through a bit of pain. :)

You can obtain genromfs as part of KallistiOS, as part of Linux, or for Cygwin/Windows right here:

genromfs for Cygwin

That is a raw compile of the KOS version of genromfs under a recent version of Cygwin. You can find the sources for it (per the GPL) by looking in the KOS tree on SourceForge, among other places. Here is a link to the location on the SF tree:

genromfs sources

Cygwin can be found here:


Cygwin is a very helpful tool for lots of things, as it provides a Unix(tm) environment under Windows.

Burning it

Now that you've got a Swap CD tree created, how do you get it to your DC? This is somewhat platform specific, but I'll try to give a basic overview of the concepts.

You've got a number of options here, since this doesn't need to be any sort of specially formatted CD like most DC "self-boot" games. It just needs to be a standard, single-session ISO image. Multi-session images will work fine as well; FoF will just use the last session.

The important thing is to make sure your filenames are compatible. With the final release version of the game (unlike the preview/beta), it is possible to simply turn on Joliet extensions. You may also use "Rock Ridge" extensions, or if you are sure you're ok, plain ISO filenames.

Because it may take you a few tries to get the Swap CD right (especially with issues with the GAP value between FoF and DWI), you may also use multi-session CD burns. To do this, you basically just tell your CD burning program not to "fixate" the CD (this is also called "leaving the CD open" and other such terms). You can then come back later and add new sessions with changed data, new songs, etc. FoF will automatically use the last session on the CD.


I hope this guide has been helpful to get Swap CDs up and running for you. If you have any experiences (both good and bad) with this info, please drop me an email and let me know! I'm always happy to hear suggestions on how we could improve the directions.

Also, if you create Swap CDs with legally redistributable songs (either you are the copyright owner, or you have permission from the copyright owner) then please let me know and I can start a link section to Swap CD images! If you make legally redistributable step files and/or thumbnails for a Swap CD (i.e., you created them yourself from scratch, or the author of the original image gave you permission) then we can also link to them.

Dan Potter (dpotter@cagames.com)
May 19, 2003

All content Copyright ©2002,2003 Cryptic Allusion(tm), LLC or others as noted. Link anywhere you like, but don't take anything for your own site without permission (unless otherwise stated). All trademarks denoted with "(tm)" (or otherwise) are owned by their respective companies.