Skip to content

The garage and its saved set-ups ​

2026-10-24, the front end's session.

pod-ui's garage after one point of acceleration given up and a set-up saved as FAST

What was already there ​

Before starting, the other sessions' work was checked for anything of the garage. The race side was done: pod-world ports how Gold turns the five garage settings into the race car's set-up (setup_from_car, car_from_setup, the torque curve). The .prb reader was labelled but nobody had ported it, and no session was on the screen. The mod-layer, Un-POD app and car parameter sessions were asked.

The screen ​

The garage shows the car's five settings: acceleration, brakes, grip, steering and speed. Each runs 0 to 100, and together they share 300 points. Every car on the disc uses all 300. A + button only adds a point while some are left. A − button frees one. A typed value takes back whatever would go over 300. Gold keeps the result as the car's set-up (0x4ffd68[car]). The next visit starts from it, and the race uses it, so pod-ui now passes the five values on with the race it starts. The car swap screen drops a slot's set-up when that slot's car changes. Both were read in Gold's code.

The saved set-ups were encoded ​

The project's notes on Params\<car>.prb came from the first edition, where the values were stored as plain differences. Gold's reader (0x472138) and writer (0x472668) are different. Each name byte is XORed with the byte before it and a per-row key. Each value is chained to the one before through five 32-bit keys. A check word closes the file. The format is now in docs/formats/lists.md and has a reader and writer in pod_formats::prb. Its tests check the writer against the reader. A file written by the game itself has been asked of the race-loop session, to compare byte for byte.

Typing ​

Saving a set-up asks for its name, and the options' volume and player-name fields need typing too. Gold types in a field with a loop of its own (0x42eb80). In pod-ui that loop is a state of the front end: the host passes the typed characters with each frame, and the action finishes when Enter or Esc arrives. The rules are the original's. The cursor starts at the front and the old text stays, so a name typed over an empty slot's ... keeps the dots, as in the game. There are two character maps, the hex and digit filters, and the editing keys.

Checked against Gold ​

POD Gold's garage (left) and pod-ui's (right)

The race-loop session then captured the car swap, the garage and the options after two presses. The car swap matched at once, opened and with a slot picked. The options matched as well, showing normal difficulty with sector damage, as the ported rules predicted. The garage differed in its star chart. What looked like a 3D view is a chart of the five settings: 0x435e54 clears the star's ten triangles in dark red, then fills ten triangles that grow with the settings in green. The fill (0x43567c) only touches odd screen rows, which gives the hatching. With it ported from Gold's code, the garage matches pixel for pixel but for one small field, which the original shows empty and pod-ui shows as "100". What empties it is still open, and the test leaves that box out. Fourteen Gold captures are now checked.

Not yet ​

The test drive button and the second player's garage are not ported. Next are the options' controls and graphics screens, whose captures exist, and the race ends.

Prose CC0 1.0, code Apache 2.0. POD: Planet of Death is © Ubi Soft; none of its files are on this site.