Skip to content

The track editor on POD Gold ​

2026-10-24, second session.

Beltane in Un-POD, Gold's own track on the left, the edited one on the right: the car crests the raised road and the road falls away ahead

Un-POD on POD Gold's BELTANE.BL3, the file as on the disc (left) and edited (right), 8.0 s into the race at 118 mph. On the right the car has crested the raised road: the road ahead falls away below the camera.

Since this morning the project works on POD Gold 2.8 only: the last version released, with 32 tracks and 16 cars. The first edition, where the editor was built, is history. And the place to try a change is now Un-POD, our own game, rather than the original in the emulated PC: only one session drives the emulated PC now.

Gold's tracks ​

Gold has 66 track files: the 18 of the first edition (the test track among them) and 15 new ones, each in .BL3 and .BL4. The first test was the plainest one: open each in the editor, save with no edits, compare. All 66 came back byte for byte, with no change to the editor or the reader (measured). The readers had already been brought to Gold by the other sessions.

The editor's tests now read Gold's files, and so does the viewer by default. Two facts the editor relies on were measured again on Gold:

  • Sector bounds. The six words after every sector are its vertices' bounds on all 66 files.
  • Face normals. Newell's method over the corners matches the stored normal on 97.3 % (Mine) to 100 % (West) of each file's faces. The first edition's lowest was 97.9 % (Beltane), so the test's floor moved to 97 %.

Racing an edited track in Un-POD ​

The original reads a mod from its install folder before the CD (docs/modding.md). Un-POD now does the same: the extras session added unpod --content DIR, which reads the install folder's Data over Gold's files (game_source::Layered). We agreed the layout with them: an edited track goes where their installer puts extra tracks, Data\Binary\Circuits\STEM.BL3, upper case.

So the editor got one more option. --install GAME_DIR writes the edited track there. Under its own name it replaces Gold's track. With --as NEW it becomes a new track: the editor takes the source track's row from CIRCUITS.BIN, renames it, and the extras installer's add_circuit appends it to the install folder's copy of the list.

sh
pod-viewer edit BELTANE.BL3 --sector-page 35 1 --sector-page 36 1 --raise 601.5 48.2 35 6 \
  --install derived/editor/game
pod-viewer edit MAGNETIC.BL3 --sector-page 72 6 \
  --install derived/editor/game --as MAGVOLT --title "Magnetic Volt"
unpod --live --track BELTANE --content derived/editor/game/Data
unpod --live --track MAGVOLT --content derived/editor/game/Data

Before the content folder landed, the first runs used a folder of links to Gold's files with the edited track in place of one (--data). Both ways give the same race, byte for byte, over four runs of the probe (measured): Un-POD's live race repeats exactly.

One mistake on the way: a second --as MAGVOLT was refused as a duplicate, but only after it had written the track file, so it overwrote the edited copy with an unedited one. The editor now builds and checks the row first, and a test checks that a refused name leaves the folder as it was.

The edits are the ones loaded in the original this morning, so the two can be compared. Un-POD ran without a window, driven by its probe: hold accelerate, run 10 passes of 16 ms, read the player's car, and again, 150 times. The same commands ran on Gold's own Beltane.

Beltane after the grid in Un-POD: Gold's road on the left, page 1 on the right

The changed texture in Un-POD (measured, frames at 5.6 s). The two sectors after the grid show page 1, as they did in the original.

Beltane at the crest in Un-POD: level road on the left, the raised road on the right

The crest (7.5 s). On the right the road rises under the car and the cars ahead.

The player car's height along the straight in Un-POD: Gold's track in grey, the edited one in orange

The player car's height in Un-POD (measured, the probe's car 0; Un-POD as on main at d4fa3b4). The car leaves Gold's line at x ≈ 570, rides the bump, and stays above the old road until x ≈ 650, past the bump's end at 636: it leaves the road at the crest and lands.

xGold's trackEditedDifference
58054.1754.98+0.81
60051.4654.97+3.51
62048.4253.19+4.77
64045.3347.01+1.68
66042.1442.04−0.10

Un-POD's physics changed during the day. The first runs, at noon, gave +5.16 at x 620 and landed at x ≈ 655; the rise up to the crest was the same.

In the original this morning the player's car was +2.9 at x 596 and +5.3 at x 613, and it jumped past the bump's end too (first edition, racerec.py; the car and the speed were not the same, so only the shape compares). Un-POD's physics takes the road from the same faces, normals and bounds the editor writes, and does what the original did.

A new track ​

Magnetic in Un-POD: Gold's grid on the left, the grid's sector retextured on the right

Magnetic, one of Gold's 15 new tracks, 1.2 s into the race in Un-POD: Gold's own (left) and the copy installed as the new track MAGVOLT, "Magnetic Volt" (right). The probe gave the player's position after the grid; --list sectors gave the sector around it (72); --sector-page 72 6 gives it page 6, the lightning pictures. Un-POD loads MAGVOLT by name from the content folder; its row (group 1, number 38, Magnetic's laps, sectors and pictures) is in the folder's CIRCUITS.BIN.

Decisions ​

  • No first-edition support kept. The tests and the viewer's default moved to Gold rather than testing both, as the rules ask. The first edition's results stay in docs/modding.md as history.
  • No change to Un-POD from here. The content folder belongs with the extras installer, which added it; the editor only writes into the folder.
  • A new track's number. Added tracks in Gold's list are in group 1 with numbers of their own (the extras use 33 to 37). A renamed copy takes the next number above every number in the list (38 here). What the game does with the number beyond finding the row is not traced, so the code marks it as a deviation.

Not done ​

  • The new track's name in Un-POD's menus: Un-POD's track screen (pod-ui) is still being built, so MAGVOLT was raced by name.
  • A .BL4 is installed only when the editor is run on the .BL4 too.
  • An edited track was not raced in the original Gold in the emulated PC: the race-loop session owns it now, and Un-POD was the target.
  • Adding and removing props; the race paths as fields.

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