Files
skids/README.md
T
andy f88ba23282 Add Rust revival engine for Super Skidmarks
Cross-platform (Windows/macOS/Linux) engine that plays the original
Amiga data straight from the ADF images:

- ADF (OFS/FFS), LHA and CrunchMania (CrM!/CrM2) readers
- Track decoding: 24 tracks of 1024x512 16-colour planar art, height
  maps and lap gates on an isometric ground plane
- Vehicle decoding: 8 cars, 32 headings x 25 tilt frames of 64x32
  AGA sprites
- Reconstructed handling, AI, race rules, menus and synthesised sound
  (disk 1 with the executable, palettes and audio is not in the set)
- info/extract/bench/trace/render tools, format notes, CI builds
2026-10-19 18:31:17 +00:00

3.9 KiB
Raw Blame History

Skids: a Super Skidmarks revival

A cross-platform (Windows, macOS, Linux) engine written in Rust that plays Super Skidmarks (Acid Software, 1995) on the original Amiga data.

It reads the game's ADF disk images directly: it unpacks the LHA archives on them, decrunches the CrunchMania-packed files, and decodes the planar track graphics and AGA sprite banks. No game assets are compiled into the program; you supply the disks.

What works

  • All 24 tracks across the four track files. Each has its isometric height map and lap gates.
  • All 8 vehicles (Mini, Beetle, Porsche, Formula 1, Midget, Truck, Police, Cow), with 32 headings and 25 body-tilt frames for hills.
  • 1 or 2 players (split screen) plus up to 7 computer drivers.
  • Power-slide handling, slopes, car-to-car bumping, and skid marks burnt into the track.
  • Lap and position tracking, lap times, and a results table.
  • Procedural engine, tyre and crash sound.

What's reconstructed

Disk 1 of the six-disk set is missing from this archive. It held the executable, palettes, sound and music. As a result:

  • Handling, AI and race rules are new code written to feel like the original, not a translation of the original 68000 code.
  • Colours come from a reconstructed palette, built around how the tracks use their 16 colour indices. If you have the real palettes, put them in a palettes/ folder next to the disks as .pal files (16 lines of RRGGBB):
    • track1-3.pal for one track
    • track1.pal for all six tracks in a file
    • default.pal for everything
  • Sound is synthesised.

If you find disk 1, drop it in with the others. Anything it contains under track/ or vehicles/ is picked up automatically. The format notes in docs/FORMATS.md cover everything reverse engineered so far.

Running

cargo run --release -- --data /path/to/adfs

Without --data, the game looks in the current directory and then next to the executable, so running it from this repository's root just works.

Action Player 1 Player 2
Accelerate ↑ (or W in one-player games) W
Brake / reverse ↓ (or S) S
Steer ← → (or A D) A D
Pause P
Leave race Esc

Options: --scale 1|2|4 (window size), --mute.

Tools

skids info    --data DIR                  # list tracks and vehicles found
skids extract --data DIR --out pngs/      # dump every track (with gates) and car sheet
skids bench   --data DIR --seconds 120    # race CPU cars on every track: laps and time on road
skids trace   --data DIR --track 11 --out t.png   # plot CPU racing lines
skids render  --data DIR --track 3 --out shot.png # headless screenshot

Building

You need a stable Rust toolchain.

  • Linux: install the ALSA and X11 development packages, e.g. sudo apt install libasound2-dev libx11-dev libxkbcommon-dev. To build without sound (no ALSA needed), use cargo build --release --no-default-features.
  • macOS / Windows: cargo build --release works as is.

GitHub Actions builds all three platforms on every push (.github/workflows/build.yml).

Layout

src/formats/   ADF (OFS/FFS), LHA and CrunchMania readers
src/data/      track, vehicle and palette decoding; locating the game files
src/game/      physics, AI and race rules
src/render/    software renderer at 320×256 (PAL low-res) and a bitmap font
src/audio.rs   synthesised sound (cpal)
src/app.rs     menus, race screens and results

Credits

Super Skidmarks is by Acid Software. This project is an unofficial revival for preservation. The CrunchMania bitstream layout follows Teemu Suutari's ancient (BSD-2-Clause).