From the Saturn disc
Each Saturn course is a file of road slices (four planes, a normal and tilt angles each), a 16×16 grid of ground tiles, placed scenery objects with their meshes, and a backdrop. The slices are ordered into a lap by adjacency, the lap's height profile is read from the ground mesh, and the whole course is rotated and shifted so that its start lands on the arcade's absolute start grid, which is where the game spawns the player and the field.
The arcade's data
The Model 1 keeps a course as several tables. The road: a centreline and seven AI lines of road points with headings, and a segment array that maps every collision quad to a road point; the opponents' line-following rule, read from the boot ROM, decides how those must be laid out. Collision: quads for the TGP coprocessor, tarmac and verges, which answers the car's height and surface; the verges are built from the road's measured edge so that they never overlap the tarmac, and a band across the start line credits the last road point before the lap wraps. Scenery: the Saturn's tiles and objects become polygon-ROM cell objects in the arcade's own format, in the free space of the existing images, with the colour table shared by all ten courses.
Around the race
A course directory in free program ROM, reached through nine small patches of the V60 code, lets the game load any of ten entries; the select panels are generated tile maps; each course carries a race blob (time records, checkpoints, car table, lap count) and a spawn list of the host's race furniture re-placed road-relatively. All of it fits the stock images, so MAME 0.289 runs the set as it runs the original.
Checked in MAME
Every build is driven headless in MAME by a Lua autopilot. The gates: the render rate stays at the arcade's 28 to 29 display-list switches per 57 frames on every entry; the player's checkpoints fire and the clock extends on every course; in 150-second races with the full field no opponent parks, every one of the fifteen keeps moving, and the field runs at 85 to 100 % of the original courses' speed in units per second. The originals' tables are re-encoded byte for byte as a check on the decoders.
Found on the way
- The TGP reports, of all the quads under the car, the one whose height is nearest the car's own, and breaks ties by rounding: a verge that overlaps tarmac holds a car that has once touched it. The originals' quads never overlap; now neither do these.
- An opponent's line cursor advances only while the road point of the segment its line names is at or behind the car's own: generated lines and segments that ignored this stalled the whole field.
- The arcade's start grid is an absolute place in the world; the player spawns relative to the host course's road, so every course is placed to put its own start there.
Speed, and the limits
- Tested in MAME 0.289 only. Nothing has been tried on a real Model 1 board.
- The course edges end in walls, as the originals' do: at the drawn rock faces, fences, curbs and shorelines of the Saturn scenery, and about 30 units of grass out where nothing is drawn. A wall is a step in the collision surface that the game's own wheel test turns into a scrape, a spin or a crash; the walls themselves are invisible, so a car meets the drawn scenery, not a coloured strip. A few spots still meet a wall a unit or two before the drawn face.
- The cars follow the road's shape: the opponents pitch on climbs and lean on banked bends, from targets the game reads for each point of their racing line, and the player's car banks with the road's camber and climbs without steps, from the collision surface. Pitch and lean are the Saturn road's own geometry, not the arcade's exaggerated values.
- Fixed since the first captures: the player's car was not drawn for stretches at a time, because the converted ground tiles sorted in front of it (the arcade sorts whole objects by depth; the originals' ground sorts at its farthest point and ours now does too). The clips and stills here are no longer cut around it.
- Fixed since the first captures: the HUD's course map is drawn around the player's car with the heading up, so an anticlockwise course (Alpine, Pacific Coast) hung its outline into the middle of the screen; those two courses now draw their map and the car's cross 11 cells further right, in the originals' corner.
- Built from the European Saturn release only; other regions' discs are not tested.
- The AI lines are offsets of the centreline, not hand-made racing lines; on the Bay Bridge and Acropolis hosts the game lines the field up single file ahead of the player, as the original Bay Bridge does.
- The Saturn's banking and backdrops are carried over; its music is not: each converted course plays its host's.
- Difficulty is not yet tuned: the clock and the opponents are the host's tables, scaled by sector length.