Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pc-wackywheels-doc

Reverse-engineering notes on Wacky Wheels (Beavis Soft / Apogee Software, 1994) — the DOS kart racer that is usually introduced as "the Super Mario Kart clone for the PC".

This repository documents the shipped game data: the WACKY.DAT archive, the track and sprite formats, the fixed-point look-up tables that drive the pseudo-3D floor renderer, and the save/config files. Everything here was derived from the retail files of the GOG.com release (the original 17 Oct 1994 build, v1.1 "registered and upgraded"), not from any fan source reconstruction.

Documentation only. No game assets, no extracted art, no executable code is committed here. The tools in tools/ reproduce every figure and table from your own legally obtained copy.

There is a fan-made source recreation of Wacky Wheels in circulation. It is deliberately not used as a reference anywhere in this repo: the point of the exercise is archaeological — what the 1994 build actually contains, and what that tells us about how it was made.

What is documented

Doc Contents
00-overview.md Release, build chain, credits, content layout (42 track slots)
01-wacky-dat.md The WACKY.DAT archive, including the two-byte offset bug baked into the shipped file
02-graphics.md PCX variant, .SP sprite banks, SPRITE.ATR, the WxH.INF pre-compiled scalers, fonts
03-tracks.md .GAM .M .POS .PAR .SIN .RD .SPW and the 2048×2048 tiled world
04-engine-tables.md TRIG.DAT, SLP, VIEW, NDIST, MAP.XY, VEL*.TAB — the renderer's LUTs
05-audio.md .MID, .KLM, .VOC, AUDIOT.FX, the Apogee Sound System
06-config-and-saves.md WACKY.CFG, WACKY.ING, .HI/.TIM/.HTT/.OTT, WACKY.DTT, MODEM.PCK, exit screens
07-vs-mario-kart.md What is genuinely Mario Kart, what is genuinely Wolfenstein, what is neither
08-open-questions.md Everything still unresolved, with the evidence gathered so far
09-skunny-kart.md Skunny Kart (Copysoft, 1994): the bit-rotated .LID container, eleven byte-identical files, and the seven-cycle rename of the track extensions
10-the-developers-account.md Andy Edwardson's first-hand history of the project, checked point by point against the shipped files
11-other-kart-racers.md Atari Karts (Jaguar, 1995) and Kart Race (DOS, 1996) run against the same fingerprints — both clear — and four independent answers to one rendering problem
notes/wacky-dat-inventory.md All 577 archive entries

Tools

Pure Python 3 (numpy + pillow only for the rendering helpers).

tools/wwdat.py      WACKY.DAT directory reader / extractor
tools/wwpcx.py      the PCX variant used by the game (2 stray bytes up front)
tools/wwsp.py       .SP column-major sprite banks
tools/wwtrack.py    .GAM/.M/.POS/.RD/.SPW/.SIN parsers + world-texture rebuild
tools/wwtables.py   TRIG.DAT / SLP / VIEW / NDIST / MAP.XY / VEL*.TAB
tools/wwsaves.py    .HI / .TIM / .DTT record readers
tools/wwexport.py   one-shot: extract the archive and render every asset to PNG
tools/lidlib.py     Skunny Kart .LID archives (bit-rotated container)
tools/wwcompare.py  content-hash cross-reference between two extracted dirs
python tools/wwdat.py  "<install>/WACKY.DAT" extract ./out
python tools/wwexport.py ./out ./png

python tools/lidlib.py "<skunny>/SKUNNYK.LID" extract ./sk
python tools/wwcompare.py ./out ./sk

Chapter 11 runs two more kart racers of the period against the same fingerprints — Atari Karts on the Jaguar and Mirinae's Kart Race on DOS — and clears both, which leaves Skunny Kart as the only relative Wacky Wheels has.

Chapter 10 checks Andy Edwardson's own history of the project — the only surviving first-hand account, given to the Apogee FAQ — point by point against the shipped files. It corroborates most of what the bytes already said, and resolves DOPE.SP: a 165 x 72 strip holding the Dopefish cameo, with BELCH.VOC supplied by Joe Siegler, a microphone and a two litre bottle of Diet Coke.

Also documented: Skunny Kart (Copysoft / Edisys, 1994). Its .LID archives are obfuscated with a per-byte rotate-left-by-one; underneath, eleven files are byte-identical to Wacky Wheels — including the incrementally generated TRIG.DAT sine table with its characteristic drift — and the seven per-track file extensions have been permuted by a single seven-cycle. Six of the seven Wacky Wheels parsers read Skunny Kart's data unmodified; the seventh needed one line, because Skunny Kart's descriptor inserts a sixth asset name. See 09-skunny-kart.md.

Status

First pass. The archive, the track data model, the sprite storage, the renderer look-up tables and the save formats are solved and round-trip cleanly. The WxH.INF scaler byte-code, WACKY.SDX, *.BMC and a handful of sprite banks with non-factorable sizes are partially understood — see 08-open-questions.md.

Wacky Wheels is © 1994 Apogee Software, Ltd. / Beavis Soft. Skunny Kart is © 1994 Copysoft / Edisys SCRL. This repository is independent documentation and ships neither.

About

File-format and engine documentation for Wacky Wheels (Beavis Soft / Apogee, 1994): the WACKY.DAT archive, the tiled 2048x2048 world, the sprite banks, and the fixed-point look-up tables behind its software pseudo-3D floor renderer. Documentation only, no game assets.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages