← All Atari Lynx projectsSuper Off-Road LX · Atari Lynx
Fan project · Atari Lynx · LX version

Super Off-Road LX

Super Off-Road (Lynx, 1993) at four times the frame rate

Same tracks, same trucks, same lap times – and, if you like, a new way to drive.

Super Off-Road on the Lynx draws four pictures per second. LX draws the same race at 15 to 22, with the trucks turning in 128 directions instead of 16, tilting smoothly on hills and bumps, seven earth tones instead of five, and the screen refreshed 75 times per second. The game logic stays bit for bit the original. Three modes in the pause menu: CLASSIC is the original game, LX (the default) is the smooth version, LX PLUS adds a new driving model in which the truck answers the stick within a sixteenth of a second.

Finished, tested in the emulator · no public download yet

Made by a human and an AI

The author

Chose the game and the rule – only the frame rate, the logic bit for bit – then, stage by stage, asked for more: in-between frames, smoother turning and tilting, 75 Hz, a new driving model, three modes to switch between, more earth tones, better truck pictures, a faster answer to the stick, and the name LX. Watched every lap and judged every change.

Claude, the AI

Disassembled the cartridge, measured where the time goes, rebuilt the tile drawing, the in-between frames and the 512 KB cartridge layout in 65C02 assembler, rendered all truck pictures from a 3D model fitted to the 16 original sprites, made the Lynx recompute the ground tiles with seven earth tones, split the driving into quarter steps, wrote the new physics, the tests, the autopilot, the videos and these texts.

Using AI is no secret here. The AI did the analysis and the code, the human set the course, judged every build and decided what to keep – and the game itself is still Super Off-Road, brought to the Lynx in 1993.

Why the original is so slow

960 tiles, twice per picture

The track is a field of 40 × 24 tiles. Every picture loops twice over all 960 of them, although only a part is on screen.

One sprite per tile

Each visible tile is drawn as its own sprite, and the CPU waits for the sprite engine every time. Almost half of the time goes into the loop itself. Result: 4.1 pictures per second.

The logic counts pictures

The race clock advances 0.18 seconds per logic step, and one step is one picture. Drawing faster alone would make the race faster – LX has to keep time.

What LX changes

  • Tiles only where they are seen: the loop runs over the visible part of the track, and the tile layers are drawn as sprite chains with one start of the sprite engine per line instead of one per tile.
  • Partial redraw: while the camera stands still only the cells under moving sprites are redrawn. Every partially drawn picture was checked pixel for pixel against a fully drawn one.
  • In-between frames: trucks, effects and the scrolling are interpolated between logic steps. The screen runs at 75 Hz in single-player races, and the buffer switch is planned in the refresh interrupt while the logic keeps running.
  • Smooth turning: 128 truck directions on the flat and 80 on slopes instead of 16, and three in-between poses whenever a truck tilts on a hill, crest or bump, also while it steers. The original truck sprites do not quite face where the truck drives (up to 35° off when driving up or down the screen). LX renders every truck picture – all directions, tilts and transitions – from one small 3D model of the pickup, fitted to the outlines of the 16 original sprites: the trucks face their direction of travel and turn without the jumps that came from mixing differently drawn originals. Everything lives in a 512 KB cartridge image with a compacted tile overlay per track.
  • Seven earth tones: the race palette had five shades of earth, so hills were dithered coarsely between them. LX frees two palette slots (shadow shades of the red and the blue truck) for in-between earth tones, and at the start of each race the Lynx itself recomputes the ground tiles with a finer dither – cracks and pebbles stay where they were. CLASSIC keeps the original colours.
  • No lost taps: the game reads the joystick only once per logic step, four times a second, so a short tap in between was simply lost. In LX and LX PLUS the screen interrupt remembers every press (75 times a second) and the next read picks it up; held buttons work exactly as before.
  • The original tempo: a tempo model keeps every logic step within ±0.4 % of the original's duration, on all 14 tracks.
  • Three modes: in the pause menu, left/right switches between CLASSIC, LX and LX PLUS. CLASSIC is the original game: 4 pictures per second, the 16 original truck sprites, original driving. LX (the default) is everything above with the original driving. LX PLUS adds a new driving model: curves as arcs instead of 22.5° kinks, the same speed in every direction, trucks turn parallel to a wall instead of sliding along it, softer collisions. CLASSIC and LX keep the original game logic bit for bit; with ComLynx players the driving is always the original one.
  • LX PLUS answers faster: the original turns the truck once per logic step and shows it at the end of that step, so a steering input becomes visible only after 0.27 to 0.37 seconds. LX PLUS keeps the logic step (computer trucks, speed, nitro, terrain, lap clock) but moves all four trucks in four quarter steps and lets the player steer in every quarter. Measured from pressing the stick to the first picture with the truck turned: CLASSIC 0.30 s on average (and 10 of 16 short taps lost), LX 0.26 s, LX PLUS 0.06 s.

Frames per second

Track (one lap)OriginalLXGain
Track 14.114.13.4×
Track 43.918.14.6×
Track 84.016.84.2×
Track 104.014.73.7×
All four laps4.015.94.0×

Average frames per second over one lap per track, driven by the same autopilot with the same inputs (the video shows the laps on tracks 8 and 10 in full). Over all 14 tracks LX averages about 18.4 frames per second (14 to 21 per track) against 4.1 for the original.

Checked, not guessed

  • Game state (RAM) compared with the original after every logic step: identical on all 14 tracks (300 steps each), plus 800 steps of demo, race 1, results, shop and race 2. Positions of all four trucks and the camera also match over two full laps on every track (about 3,000 steps). With the original truck sprites the main picture is identical as well.
  • Every partially drawn picture pixel-identical to a fully drawn one: all 14 tracks, about 8400 pictures.
  • Step duration within ±0.4 % of the original on every track. LX PLUS draws about as many pictures as LX, a little fewer on busy tracks, because its quarter steps move the trucks between the pictures.
  • LX PLUS driven three laps on all 14 tracks by the autopilot: all four trucks finish, lap times as with the original driving; its step duration matches the original as well.
  • Seven earth tones: the tiles and tables the Lynx computes at the start of a race are compared bit for bit with a PC twin of the calculation, on all 14 tracks.
  • Short taps: a 40 ms tap between two joystick reads turns the truck in LX and is lost in CLASSIC and in the original; a held button gives exactly the same race with and without the change.
  • CLASSIC: after switching in the pause menu every picture is pixel-identical to the original and no in-between frames are drawn; switching back brings them back.

In the video

Status

  • All stages are built and verified: visible tiles only, in-between frames, partial redraw, sprite chains with 75 Hz, 128 truck directions and smooth tilting, three modes, seven earth tones, truck pictures from a 3D model, no lost taps, quarter steps in LX PLUS.
  • Tested in the trace emulator on all 14 tracks; real hardware has not been tested yet.
  • No download yet. LX is a 512 KB cartridge image built from the original. A release would need a tool that builds it from your own cartridge image, like the ROM Builders on this site. That tool does not exist yet.

Controls

PausePause menu as in the original
Pause, then left / rightSwitch between CLASSIC (the original), LX and LX PLUS (new driving); the choice stays until the Lynx is switched off

Everything else is the original game.

Good to know

The video compares the original (left) with LX (right), driven by the same autopilot with the same inputs, so the game state is identical on every logic step: real time with the frame rate, slow motion in which every newly drawn picture makes the frame flash, close-ups of turning and tilting, the truck directions, two full laps and the three modes. Original sound in the real-time parts, the game's title music elsewhere.