Add the contents of disk 1

- LHA -lh5/-lh6/-lh7 decoding with CRC checks (disk 1 is mostly lh5)
- Real track palettes and set names, read from each track file's header
- Camaro, plus the caravan as a towable trailer (Caravans option)
- Drivers' names, menu pictures and the original .set values per car
- Original sound effects (IFF 8SVX) through a new sample mixer: engine
  pitched with revs, tyre screech, crashes, backfire, horn, start beeps
- The original tune (OctaMED MMD1) through a new player; loudness tracks
  OpenMPT's render through the whole song. Music option in the menu
- Title picture (IFF ILBM) at the top of the menu
- skids unpack and skids music commands
- Gate crossings now judged on each car's whole movement per frame,
  including collision knocks; stalled computer cars are put back on the
  line after 8 seconds

The executable's game logic (handling, AI) is still not decoded.
This commit is contained in:
2026-10-19 20:24:33 +00:00
committed by Claude
parent f27bd2e993
commit 9d82d99c15
106 changed files with 2706 additions and 287 deletions
+45 -2
View File
@@ -42,6 +42,8 @@ Plain text; lines starting with `#` are comments.
- **`height`:** 64 rows of 64 numbers giving ground height × 256. Each
number covers a 16 × 8 pixel cell of the picture. Slopes push cars
downhill and tilt the car sprites.
- **`set`:** the name of the set of tracks this one belongs to, shown under
the menu thumbnail.
- **`start`, `flags`:** values from the original data that the game
doesn't use.
@@ -68,12 +70,21 @@ A 2048 × 800 sprite sheet: 32 headings across by 25 tilts down, each cell
- **Tilts:** row = roll × 5 + pitch (each 0–4), so row 12 is the car on
flat ground.
### `<id>-menu.png` (optional)
The car's 64 × 32 picture from the original select screen, in the same
four colours as the sprite sheet.
### `<id>.txt`
The display name and handling:
The display name, driver and handling:
| Setting | Meaning |
|-----------|---------|
| `name` | name shown in the menu |
| `driver` | driver's name, shown next to it |
| `trailer` | `yes` for something towed behind cars (the caravan) rather than driven |
| `original`| the 16 values from the original `.set` file, kept for reference; the game doesn't use them yet |
| `top` | top speed on tarmac |
| `accel` | acceleration |
| `brake` | braking |
@@ -82,7 +93,39 @@ The display name and handling:
| `mass` | weight in collisions |
| `offroad` | speed and grip multiplier on scenery |
To add a car, add a new `<id>.png` / `<id>.txt` pair.
The handling values are a reconstruction, so tune them freely. To add a
car, add a new `<id>.png` / `<id>.txt` pair.
## Sounds: `sounds/*.wav`
8-bit mono WAV files at the original Amiga sample rates. A loop point,
stored in the WAV's `smpl` chunk, makes a sound repeat from there; most
sample editors keep it. The game uses these names:
| Sound | Use |
|-------|-----|
| `motor3` | engine, pitched up and down with revs (falls back to `motor`, then `engine`) |
| `screech2` | tyres sliding (falls back to `screech3`, then `screech`) |
| `crash1`, `crash2`, `crash3` | collisions, picked at random |
| `backfire` | lifting off at high revs |
| `horn` | Right Shift (player 1) or Left Shift (player 2) |
| `beep`, `beep2` | countdown, then lights out |
Missing sounds fall back to synthesised ones. Any other WAV files are kept
but not used.
## Music: `music/*.med`
The tune, an OctaMED module. Edit it in a tracker that reads MED files,
such as OpenMPT. The game's player supports plain sample instruments (no
synth sounds) and the commands listed in `docs/FORMATS.md`. Preview it
with `skids music --data assets --out tune.wav`. If there are several
files, the first in name order plays.
## Pictures: `gfx/*.png`
Indexed PNGs. `skidtoon.png` is the title picture at the top of the menu,
shown at half size. The others aren't used.
## Palettes: `palettes/*.pal` (optional)
Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB

+3
View File
@@ -27,6 +27,9 @@ gate 600.6875 768.8125 488.4375 696.3125
gate 599.25 904.75 487.75 759.25
gate 456.75 935 408.5 776.75
# Name of the set of tracks this one belongs to, shown in the menu.
set Racing In The Name Of
# As stored in the original data; not used by the game.
start 458 107
flags 1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 138 KiB

+3
View File
@@ -36,6 +36,9 @@ gate 253.125 618.375 144.34375 626.03125
gate 311.4375 676.8125 239.25 719.28125
gate 357.25 723.75 333.1875 815.5625
# Name of the set of tracks this one belongs to, shown in the menu.
set Racing In The Name Of
# As stored in the original data; not used by the game.
start 461 295
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

+3
View File
@@ -31,6 +31,9 @@ gate 487.75 549.25 491.5 648.5
gate 708 556 686.5 649.5
gate 766.5 529.5 861 616.5
# Name of the set of tracks this one belongs to, shown in the menu.
set Racing In The Name Of
# As stored in the original data; not used by the game.
start 608 305
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 KiB

+3
View File
@@ -31,6 +31,9 @@ gate 761 667 688.5 575.5
gate 645 675 623 573
gate 550.4375 729.8125 495.75 655.25
# Name of the set of tracks this one belongs to, shown in the menu.
set Racing In The Name Of
# As stored in the original data; not used by the game.
start 608 305
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

+3
View File
@@ -32,6 +32,9 @@ gate 381.40625 687.25 449.78125 749.875
gate 472.28125 690.78125 551.53125 741.53125
gate 468.5625 611.34375 549.5625 610.34375
# Name of the set of tracks this one belongs to, shown in the menu.
set Racing In The Name Of
# As stored in the original data; not used by the game.
start 301 79
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 138 KiB

+3
View File
@@ -48,6 +48,9 @@ gate 535.65625 389.6875 437.78125 406.5625
gate 576.625 424.75 529.125 502.25
gate 646.96875 425.4375 648.46875 504.4375
# Name of the set of tracks this one belongs to, shown in the menu.
set Racing In The Name Of
# As stored in the original data; not used by the game.
start 434 354
flags 1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

+3
View File
@@ -28,6 +28,9 @@ gate 360.5 837.5 380 756
gate 222.9375 708.375 281.25 659.65625
gate 80.25 559.03125 229.5625 610.21875
# Name of the set of tracks this one belongs to, shown in the menu.
set Even Flow
# As stored in the original data; not used by the game.
start 474 167
flags 1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

+3
View File
@@ -33,6 +33,9 @@ gate 622.375 910.5 544.6875 822.6875
gate 508.6875 934.5 481.71875 820.71875
gate 418 903.5 421.75 805.75
# Name of the set of tracks this one belongs to, shown in the menu.
set Even Flow
# As stored in the original data; not used by the game.
start 339 117
flags 1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 128 KiB

+3
View File
@@ -40,6 +40,9 @@ gate 610 280 715.5 340.5
gate 627.25 212.75 703.5 208.5
gate 565.5 156.5 587 89
# Name of the set of tracks this one belongs to, shown in the menu.
set Even Flow
# As stored in the original data; not used by the game.
start 420 97
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

+3
View File
@@ -47,6 +47,9 @@ gate 551.3125 264.84375 488.125 183.375
gate 504.84375 311.25 424.9375 247.21875
gate 465.90625 350.15625 376.78125 298.09375
# Name of the set of tracks this one belongs to, shown in the menu.
set Even Flow
# As stored in the original data; not used by the game.
start 689 201
flags 1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 128 KiB

+3
View File
@@ -51,6 +51,9 @@ gate 598.9375 295.90625 581.4375 233.40625
gate 486.375 293.34375 450.375 235.34375
gate 350.8125 298.75 320.0625 235.5
# Name of the set of tracks this one belongs to, shown in the menu.
set Even Flow
# As stored in the original data; not used by the game.
start 353 47
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

+3
View File
@@ -54,6 +54,9 @@ gate 722.125 791.0625 640.125 753.0625
gate 659.5 864.25 598.5 787.25
gate 556.375 884.4375 560.75 793.5625
# Name of the set of tracks this one belongs to, shown in the menu.
set Even Flow
# As stored in the original data; not used by the game.
start 353 47
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

+3
View File
@@ -44,6 +44,9 @@ gate 307.5 604.875 307.6875 694.3125
gate 358.5 603.5 386 696
gate 437.34375 599.28125 412.75 695.25
# Name of the set of tracks this one belongs to, shown in the menu.
set Surf 'n' Slam
# As stored in the original data; not used by the game.
start 641 315
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB

+3
View File
@@ -30,6 +30,9 @@ gate 498.8125 807.25 578.75 940.28125
gate 566.5 820.5 690.75 890.25
gate 597.75 790.3125 707.8125 768.96875
# Name of the set of tracks this one belongs to, shown in the menu.
set Surf 'n' Slam
# As stored in the original data; not used by the game.
start 475 288
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

+3
View File
@@ -38,6 +38,9 @@ gate 635 363 636.75 487.25
gate 689.25 419.75 707.625 558.375
gate 741.4375 471.8125 785.84375 638.65625
# Name of the set of tracks this one belongs to, shown in the menu.
set Surf 'n' Slam
# As stored in the original data; not used by the game.
start 809 244
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

+3
View File
@@ -39,6 +39,9 @@ gate 573.59375 394.84375 716.59375 427.84375
gate 483.625 301.96875 614.125 331.46875
gate 450.3125 217.03125 589.3125 298.03125
# Name of the set of tracks this one belongs to, shown in the menu.
set Surf 'n' Slam
# As stored in the original data; not used by the game.
start 796 294
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

+3
View File
@@ -36,6 +36,9 @@ gate 304.5 269.5 405 337
gate 335.75 207.5 415.75 287.5
gate 386.125 161.5 465.375 240.25
# Name of the set of tracks this one belongs to, shown in the menu.
set Surf 'n' Slam
# As stored in the original data; not used by the game.
start 744 137
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

+3
View File
@@ -47,6 +47,9 @@ gate 796.78125 544.59375 896.84375 523.4375
gate 760.125 503.53125 816.78125 446.34375
gate 658.5 417.5 705.75 366.25
# Name of the set of tracks this one belongs to, shown in the menu.
set Surf 'n' Slam
# As stored in the original data; not used by the game.
start 356 188
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

+3
View File
@@ -37,6 +37,9 @@ gate 402 504 402 378
gate 342.53125 501.71875 264 374.5
gate 316.5625 513.03125 192.25 387
# Name of the set of tracks this one belongs to, shown in the menu.
set Sounf Of Speed
# As stored in the original data; not used by the game.
start 213 275
flags 1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

+3
View File
@@ -47,6 +47,9 @@ gate 715.375 842.65625 586.40625 755
gate 701.84375 891.1875 585.65625 814.03125
gate 663.3125 939.1875 581.0625 837.78125
# Name of the set of tracks this one belongs to, shown in the menu.
set Sounf Of Speed
# As stored in the original data; not used by the game.
start 122 216
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

+3
View File
@@ -40,6 +40,9 @@ gate 372.1875 581.84375 301.1875 652.34375
gate 402.625 626.75 392.625 759.25
gate 435.0625 628.59375 502.1875 772.34375
# Name of the set of tracks this one belongs to, shown in the menu.
set Sounf Of Speed
# As stored in the original data; not used by the game.
start 672 360
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 163 KiB

+3
View File
@@ -43,6 +43,9 @@ gate 293.90625 281.8125 414.1875 352
gate 347.40625 233.625 448.21875 353.125
gate 423.4375 212.9375 488.71875 377.71875
# Name of the set of tracks this one belongs to, shown in the menu.
set Sounf Of Speed
# As stored in the original data; not used by the game.
start 800 350
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

+3
View File
@@ -47,6 +47,9 @@ gate 265.75 441.875 165.75 375.875
gate 247.84375 489.21875 133.09375 438.96875
gate 259.9375 536.59375 154.9375 525.59375
# Name of the set of tracks this one belongs to, shown in the menu.
set Sounf Of Speed
# As stored in the original data; not used by the game.
start 362 264
flags 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 153 KiB

+3
View File
@@ -42,6 +42,9 @@ gate 506.1875 355.09375 607.4375 450.84375
gate 628.3125 300 668.3125 426
gate 841.875 457.5 766.875 502.5
# Name of the set of tracks this one belongs to, shown in the menu.
set Sounf Of Speed
# As stored in the original data; not used by the game.
start 501 153
flags 0
Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

+23
View File
@@ -0,0 +1,23 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is camaro.png: 32 headings across, 25 tilts down.
name CAMARO
driver ROD
# yes = towed behind cars (Caravans option) instead of driven
trailer no
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 54 35 32 8 7 22 22 16 49 14 53 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 200
# acceleration and braking, world pixels per second squared
accel 170
brake 320
# sideways grip (higher = less sliding)
grip 5
# steering rate, radians per second
turn 3.6
# weight in collisions
mass 1
# speed and grip multiplier off the road
offroad 0.55
Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

+23
View File
@@ -0,0 +1,23 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is caravan.png: 32 headings across, 25 tilts down.
name CARAVAN
driver SIMON
# yes = towed behind cars (Caravans option) instead of driven
trailer yes
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 2 65532 65532 1 12 10 16 14 0 0 0 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 200
# acceleration and braking, world pixels per second squared
accel 170
brake 320
# sideways grip (higher = less sliding)
grip 5
# steering rate, radians per second
turn 3.6
# weight in collisions
mass 1
# speed and grip multiplier off the road
offroad 0.55
Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

+7
View File
@@ -1,6 +1,13 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is cow.png: 32 headings across, 25 tilts down.
name COW
driver ROB
# yes = towed behind cars (Caravans option) instead of driven
trailer no
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 15 14 34 8 4 598 15 12 13 4 2003 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 170
# acceleration and braking, world pixels per second squared
Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

+7
View File
@@ -1,6 +1,13 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is f1.png: 32 headings across, 25 tilts down.
name FORMULA 1
driver SIMON
# yes = towed behind cars (Caravans option) instead of driven
trailer no
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 60 71 30 0 6 16 24 12 58 42 29 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 240
# acceleration and braking, world pixels per second squared
Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

+7
View File
@@ -1,6 +1,13 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is midget.png: 32 headings across, 25 tilts down.
name MIDGET
driver ROB
# yes = towed behind cars (Caravans option) instead of driven
trailer no
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 51 21 30 16 3 45 16 13 44 13 93 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 205
# acceleration and braking, world pixels per second squared
Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

+7
View File
@@ -1,6 +1,13 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is mini.png: 32 headings across, 25 tilts down.
name MINI
driver ROB
# yes = towed behind cars (Caravans option) instead of driven
trailer no
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 56 24 30 12 3 24 20 12 46 10 100 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 190
# acceleration and braking, world pixels per second squared
Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

+7
View File
@@ -1,6 +1,13 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is police.png: 32 headings across, 25 tilts down.
name POLICE
driver SIMON
# yes = towed behind cars (Caravans option) instead of driven
trailer no
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 56 34 22 6 2 15 19 11 49 14 44 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 215
# acceleration and braking, world pixels per second squared
Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

+7
View File
@@ -1,6 +1,13 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is porsche.png: 32 headings across, 25 tilts down.
name PORSCHE
driver IMAGINE
# yes = towed behind cars (Caravans option) instead of driven
trailer no
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 56 34 22 6 2 15 21 12 49 14 44 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 225
# acceleration and braking, world pixels per second squared
Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

+7
View File
@@ -1,6 +1,13 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is truck.png: 32 headings across, 25 tilts down.
name TRUCK
driver ROD
# yes = towed behind cars (Caravans option) instead of driven
trailer no
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 55 26 28 18 2 29 20 17 54 19 35 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 195
# acceleration and braking, world pixels per second squared
Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

+7
View File
@@ -1,6 +1,13 @@
# Skids vehicle settings. Lines starting with # are comments.
# The sprite sheet is vw.png: 32 headings across, 25 tilts down.
name BEETLE
driver ROB
# yes = towed behind cars (Caravans option) instead of driven
trailer no
# The 16 values from the original .set file. Their meaning is not
# decoded yet, so the game does not use them; the handling below is
# a reconstruction.
original 57 28 32 12 3 29 20 14 51 15 63 0 0 0 0 0
# top speed on tarmac, world pixels per second
top 185
# acceleration and braking, world pixels per second squared