Use the original computer drivers, car collisions and towing

Decoded from SKIDMARKS_CD32:

- Computer drivers: the path of nodes laid 2 game units apart along
  the middle of the road, with side points 1 unit in from each wall.
  Drivers aim four nodes past where they'll be in four frames, or cut
  to the other side two nodes on at 70% throttle when running wide.
  Replaces the pure-pursuit AI; laps are quicker on every track.
- Collisions: six points on the player's car (corners and sides, from
  .set words 6 and 7, now known to be half-length and half-width) are
  tested against the other car's box. Hits push the cars apart with a
  strength that grows with their speed difference, and spin the car.
  As in the original, only human players' cars collide; cars at
  different heights don't.
- Towing: the hitch is at the car's back, the caravan sits 0.656 units
  behind it, and past 90 degrees both car and caravan bend back.

The reconstructed collision weight (`mass`) is gone; old asset files
with it still load.
This commit is contained in:
2026-10-20 10:15:33 +00:00
parent 54e146ce36
commit a4445d521f
18 changed files with 511 additions and 253 deletions
+8 -5
View File
@@ -44,7 +44,8 @@ give either to also gets the game data.
- The original title picture.
- 1 or 2 players (split screen) plus up to 7 computer drivers.
- Power-slides, jumps, hills that slow you going up and speed you up coming
down, car-to-car bumping, and skid marks burnt into the track.
down, spinning bumps against other cars, and skid marks burnt into the
track.
- Lap and position tracking, lap times, and a results table.
- Engine note pitched with revs, tyre screech, crashes, backfires, a horn
and start beeps, all from the original samples.
@@ -57,12 +58,14 @@ were decoded from its machine code and work the same way here:
- the meaning of every `.set` value, and the handling presets
- the walls along the road edges
- how the world is projected onto the screen, including height
- the computer drivers' path and how they choose their target and throttle
- collisions between cars. As in the original, only human players' cars
collide: computer cars pass through each other and through caravans.
- towing, including caravans jack-knifing
The rest is new code written to feel like the original:
- how computer drivers choose their line (they steer and drive as the
original's do)
- car-to-car collisions
- lap counting and the rescue of stuck cars
- lap counting
- the rescue of stuck cars (the original warps them back instead)
[docs/FORMATS.md](docs/FORMATS.md) covers everything reverse engineered so
far.