Wacky Wheels

From ModdingWiki
Jump to navigation Jump to search
Wacky Wheels
Wacky Wheels.png
Mod-Wacky Wheels.png
Levels?Tick.png Editable
Tiles?Tick.png Editable
Sprites?Tick.png Editable
Fullscreen?Tick.png Editable
Sound?Emblem-important.png Partially editable
Music?Emblem-important.png Partially editable
Text?X mark.svg Not editable
Story/cutscenes?X mark.svg Not editable
UI/menus?X mark.svg Not editable
Demos?X mark.svg Not editable

Wacky Wheels is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.


The following tools are able to work with this game.

Name PlatformGroup/archives Levels Graphics Music Sounds Text Saves .exe patch Notes
Camoto Linux/WindowsEditEditEditEditNoNoNoNo
Camoto/gamearchive.js AnyEditNoNoNoNoNoNoNo
Wombat Windows GUIEditReadReadReadReadNoNoNo
wwsave Win/Linux/Mac consoleNoNoNoNoNoNoEditNo
Wextract DOSReadNoNoNoNoNoNoNo

File formats

Most of the data files for Wacky Wheels are stored in wacky.dat, which is an archive file containing a number of other files. For the file format of wacky.dat itself, see DAT Format.

Note also that the file audiot.fx in wacky.dat is itself an archive file, containing 54 unnamed files. See the entry for *.fx in the table below.

Files in wacky.dat

File name Description
ndist A table of integers that influence where objects are drawn on the screen at different viewing angles. See Tabulated data for drawing the screen.
slp A table of integers that influence when objects are considered to be in your field of view. See Tabulated data for drawing the screen.
view A table of integers that influence the apparent distance of objects and other drivers. See Tabulated data for drawing the screen.
sprite.atr Contains file names and properties for sprites used at objects on the track. See sprite.atr.
*.bin B800 Text. Registered version (wwreg.bin) and shareware (wwsw.bin) exit screens.
*.bmc Controls the computer player during demo mode. See BMC Format.
trig.dat Series of (x, y) pairs that describe a circle. See Tabulated data for drawing the screen.
*.fx Uncompressed AudioT Format sound effects for PC speaker and AdLib. The archive file audiot.fx contains 26 files of each format. audiohed.fx is the header file for audiot.fx. See Wacky Wheels Music and Sound Effects.
*.gam Track data. See Wacky Wheels Track Format.
*.htt Default high score files for single player races. See Files not in wacky.dat for the file format.
*.inf Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See Klas Arvidsson’s notes.
wacky.ing Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See wacky.ing.
*.klm Game music in AdLib KLM Format. See Wacky Wheels Music and Sound Effects.
*.m Track maps. See Wacky Wheels Track Format.
*.mid Game music in MIDI Format. See Wacky Wheels Music and Sound Effects.
gig.mov Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See Devil motion.
*.ott Default time trial high score files. See Files not in wacky.dat for the file format.
*.par Background images for the races (buildings, etc. on the horizon). See Horizon graphics – *.par.
*.pcx Game graphics in PCX Format. See Wacky Wheels Graphics Formats.
*.pos Determines which direction is the wrong way in a race. See Wacky Wheels Track Format.
*.rd The course followed by the computer players in each race. See Wacky Wheels Track Format.
wacky.sdx Starts with an UINT16LE of 30, followed by 30 structs of 302 bytes each.

Changing the first 256 bytes will screw particles for player wheels.

Changing lots of its content makes DOSBox print DYNX86: Can't run code in this page !.

*.sin Sets the properties of each type of tile. See Wacky Wheels Track Format.
*.sp Sprites. See *.sp.
*.spw Where objects are placed on the map. See Wacky Wheels Track Format.
*.tab Sets the top speed and acceleration curve for the human players. See Changing go kart/lawnmower speed.
*.voc Sound effects in VOC Format. See Wacky Wheels Music and Sound Effects.
map.xy Related to mini-map view (4096 bytes = 64*64 tiles), when not present, displays garbage at middle of screen.

These are offsets to coordinates X = 0, Y = 60 on screen, when values are incremented, the players drawn in mini map are all offset by the same amount of pixels.

When all set to zero, all players are all drawn at X = 0, Y = 60 position on screen, which confirms the previous theory.

Its content is best described as a sawtooth wave pattern where values starts at 0x00 and increments (possibly) up to 0x4D, over and over until EOF.

It's hard to tell why exactly it's content is like that but certainly it's a pre-computed table of some sort to save some CPU cycles.

Files not in wacky.dat

File name Description
wacky.cfg Generated by setup.exe. Contains settings selected in setup.exe. Also contains saved games for one- and two-player races. See Wacky Wheels Configuration Format.
wacky.dtt High scores for the Wacky Duck Shoot. See editing duck shoot high scores.
wacky*.hi High scores for single-player races. See editing single-player race high scores.
wacky*.tim High scores for time trials. See editing time trial scores.


  • Wacky Wheels does not read files from the current directory first, before falling back to WACKY.DAT. This means any modified files must be packaged up into the DAT file before they can be tested.
  • As an addition to the previous note, since files aren't compressed, you can also directly edit WACKY.DAT content in a hex-editor for a quick roundtrip when trying to understand its secrets.


There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:

003ED60D: F7 77
0040D60D: F9 79
005FD60D: C1 41
0005D60D: E8 68

See also