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 have no walls yet. The originals stop a car at their barriers; here the verges are grass 80 units wide and the game's own off-course rule puts the car back on the road after 40 frames with a wheel off the tarmac (the originals allow 128), so a car that runs wide spends a second or two on the grass or the water before it is put back. The autopilot does it at a few corners; the clips are cut around those moments. Walls are the next thing.
- 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, backdrops and music per course are not carried over; each converted course uses its host's.
- Difficulty is not yet tuned: the clock and the opponents are the host's tables, scaled by sector length.