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"
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.
The "sample" directory into which it unzips would be the root of
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
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
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.
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:
- "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
- "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
- "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
- "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:
Cygwin can be found here:
Cygwin is a very helpful tool for lots of things, as it provides a
Unix(tm) environment under Windows.
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 (firstname.lastname@example.org)
May 19, 2003