Skip to content

The extra cars and tracks ​

The download "POD (1997) (CD ROM) + Extras" has POD - Extra Cars (51 zips) and POD - Extra Tracks (50 zips) beside the POD disc. This page lists every one: what it is, whether our readers and the game load it, and whether the installer puts it in the original and in Un-POD. The files stay in derived/extras/ (unpacked: data files only) and never enter git. How the game finds its files is in modding.md. The formats are in formats/.

What is in the download ​

  • POD's own content in 3dfx zips (*_3dfx.zip that name a POD car or track: Azthec, Lake, Shane, Truck and others). POD already has these. Some zips hold the same files as POD (measured, MD5). Others hold different .BL3/.BL4 files, probably older (inferred). The installer leaves them out, because POD, the reference, already lists them.
  • OEM forms of POD's tracks: AlderOEM, CanyOEM, CityOEM, GalOEM, PlantOEM, PompOEM and SewerOEM. Each has a .BL4 only. Six are in group 2 with numbers 110 to 115 (Circuits.bin); AlderOEM is in group 1 with number 212.
  • Fan and web content. The rest. Readmes name QBall (Banana, the Stinger beta, Night), Leadbest (Newsance, November 2003) and the Witnessteam (the Down reskin of Slimepit). Some zips name a _3dfx version but hold a car or track that POD does not have (Adeo, Akura, Iceberg and others). POD's VOITURE2.BIN already names fifteen web cars past its count (formats/cars.md): Breton, IRX, Akir7, Nocte, Kaizer, Pirate, Razor, Xira, DarkSmil, Bat and Witch are here. Eagle is not in the download.
  • lagoon_stock holds three zips. Two are Lagoon and Stock "converted by Nico". The third is a copy of an installed game from May 1997. That copy is in an older car layout, with parameters 4 bytes longer and older picture headers, and its lists replace two of the race cars. The installer takes only the converted cars.

Each package is a folder with its list file and data files: Circuits.bin with one row (formats/lists.md) and <name>.bl3, .bl4, .img, .meg for a track; voitures.bin with one record (formats/cars.md) and .bv3, .bv4, .img, .meg for a car. Everest and Natura also carry a .ght file, and Enneade a chrome.ch4. The installer does not copy them: CD Patcher copies only the extensions above (below).

How Ubi Soft's CD Patcher installed them ​

Observed in CDPatcher.exe 2.0 (POD - Patch/cdpatcher2.zip, 1997), decompiled with Ghidra; the program was never run.

  • It reads Directory from UbiSoft\Ubi.ini and builds the game's folders from a table of six names: Data\Binary\Circuits\, Voitures\, Scripts\, Mimg\, Resson\ and Data\Records\ (FUN_00405040, the table at 0x42b258, 0x18 bytes per name). Source folders are \circuits\<name>\ and \voitures\<name>\ under its own folder.
  • A track: the .bl3 or the .bl4 to Circuits (the choice is below), the .img to Mimg, the .meg to Resson, and <name>.brt and -<name>.brt (the reverse best times) to Records when the package has them (CopyFileA in the install loop; none of the download's zips has them). A car is handled the same way: the .bv3 or .bv4 to Voitures.
  • BL3 or BL4. At start-up it looks for five programs in the install folder (FindFirstFileA). If one exists, DAT_0043569c is 1 and it copies the .bl4/.bv4; otherwise it copies the .bl3/.bv3. Inferred: the five are the 3D-card builds, whose names are in its strings. Only the 3dfx builds read .BL4 (FINDINGS.md).
  • The lists: it copies circuits.bin and voiture2.bin before changing them, then adds the new row or record. Rows after the sixteenth count as added ones.

The installer: pod-extras ​

crates/pod-extras does the same job (crates/pod-extras/README.md):

build/release/pod-extras install derived/extras GAME_DIR --build software

--build software installs for WINPOD.EXE, --build 3dfx for WPOD3DFX.EXE, and --build all both model files for Un-POD. It appends the rows to the install folder's CIRCUITS.BIN and the records to its VOITURE2.BIN, starting from the disc's lists. The rows POD's lists keep past their count stay after the new ones, where the game never reads them. Two limits come from the original's buffers:

ListLimitEvidence
CIRCUITS.BIN96 rowsPOD's load_circuit_list (0x471f24) keeps at most 0x60 rows (observed)
VOITURE2.BIN32 records, so 24 cars after POD's 8POD reads the list into 0x1000 bytes at 0x4fc8a4 and copies 0x1000 bytes of it at 0x430f5a (observed); more would overrun the buffer

With every zip: the software build gets 5 tracks and 24 cars. Every other new track has no .BL3, and the car list is full. The 3dfx build gets 34 tracks and 24 cars. Un-POD gets 34 tracks and 41 cars; its content folder has no limits (Deviation: in install.rs). --only ZIP,ZIP picks which ones go in. Where two zips hold the same car (Lagoon, Stock, Stinger), the one with both model files is installed, and the first one in name order when both have them.

In the original (measured) ​

Run in the emulated PC by the race-loop session (2026-10-24), with derived/extras-install/software copied into C:\POD\ and POD's WINPOD.EXE:

  • The track screen pages past POD's 32 circuits to a third page with Beach, Fallen, Hellway, Iceberg and Night, each with its picture, length and laps.
  • "Load new car" pages through the VOITURE2.BIN cars. LORIS, the last counted car, was swapped into slot 1, and the car screen showed its picture and its figures (86, 37, 61, 55, 61).
  • A race on Beach with LORIS started and ran with the opponents, lap 1 of 6, with no crash, to a race clock of 29 s.

The 3dfx build (Tron, CanyOEM) is still to be run, with the wrapper's POD 3dfx run. The installed VOITURE2.BIN names Breton twice: once counted (installed) and once among POD's own records past the count, which the game never reads.

In Un-POD ​

unpod --content GAME_DIR/Data reads the installed folder over the disc (game_source::Layered, case-blind), as the game reads its install folder first. A track with no .BL3 is read from its .BL4, and a car whose .BV3 does not load (ED, Homard) from its .BV4. Both are marked deviations in apps/unpod/src/load.rs. The track screen pages through the longer CIRCUITS.BIN: with every extra installed, 66 circuits on 5 pages of 16 (measured: pod-ui's track_pages_extras; the car swap offers all 49 VOITURE2.BIN cars, car_swap_extras, both run with POD_EXTRAS set to the content folder). POD's car screen pages only VOITURES.BIN's eight cars. Its "Load new car" item opens the car swap (menu 25, handler 0x4308ac), which trades a race slot for a VOITURE2.BIN car and writes both lists, so an installed car is raced by swapping it in (traced by the front-end session, docs/systems/front-end.md; pod-ui's car_swap.rs). Un-POD writes the two lists into the content folder, where the original writes them into its install folder, and the next race reads them from there. Live races on Hellway, Arcade and Tron, and with the car ED, were driven headless on 2026-10-24. What looked wrong on three of them came from one port bug and two things in the files (the app session's dive, 2026-10-24):

  • The port. pod-world read the wrong word of the .BL4 sector faces, so every .BL4-only track lost its ground and wall bits. Tron's cars fell through the floor, and Arcade's ran into a zero vector in the physics, where the original stops with a fatal error. Both come right with the fix: on Tron the cars settle 0.7 below their start records, on the ground (measured, headless).
  • Arcade's grid lies flat over a sloped road. Start records 5 and 6 are 3.5 and 1.4 units below the ground (measured: the faces under each record). The settling pushes those cars up onto the road, as the original's would, since the grid code (FUN_004236f0) places a car at its record raised by 1 and does not look for the ground.
  • Beach's grid is on the lower floor (sector 17, z −9.58), where the race paths run. The out-of-play sector above it (63, z 30.4) is scenery. The player's car stands at the back of the grid, near the sector's back edge, and Un-POD's chase camera (a stand-in: the game's FUN_0042b6c0 is not traced) sits inside the wall behind it until the car moves off. The cars are where the file puts them.
  • No opponents on EASY or MEDIUM. Ecocoon, Forest and Tron name "NEANT" for those two lists. POD's reader (FUN_0046774c) then leaves the computer count at 0, so the player races alone, as Un-POD shows (observed). Tron's HARD list is Forest's (forest_H.lev); its computer cars still find their lanes and race (measured, headless, 52 s).

Files the game cannot load ​

Our readers now read every file the game reads, and write each back byte for byte (crates/pod-formats/tests/extras.rs, 482 files). The test lists these eight as broken:

FileWhyHow it is known
aztec/.../AZTEC.BL3, hive/.../Hive.bl3Empty (0 bytes) in the zip: the software build cannot load the trackmeasured (zip listing)
ed/.../ED.BV3, homard/.../homard.bv3Byte copies of the .BV4: 16-bit 128 × 128 pages that the 8-bit build reads as 256 × 256 8-bit pages, past the end of the filemeasured (MD5 equal; the block passes the end)
lagoon_stock/.../lagoon.bv3, stock.bv3The 1997 snapshot's older car layout: the torque curve count sits 4 bytes later than in POD's 0x558-byte parameter blockmeasured
lagoon_stock/.../lagoon.img, stock.imgAn older picture header: 16 bytes shorter than the converted copiesmeasured

These load, with a caveat (formats/tracks.md, "What the game tolerates"):

  • CanyOEM and PompOEM declare fewer animated faces than they hold (15 against 77, 17 against 27). POD's 0x463c8c writes one 0x18-byte record per face into an allocation sized by the declared count, so the original writes past its buffer (inferred: heap corruption; not yet run). CityOEM declares more than it holds, which is harmless.
  • Forest's reverse track does not read, because entry 3 lacks its 0x38-byte head. Race it forward.

Readers changed for these files, each following the game (observed in POD's code): texture blocks are read where the file puts them, without checking the names; "NEANT" is compared case-blind in load_track_file; zero bytes between entries are allowed; and bytes after a picture's pixels are kept (formats/textures.md, formats/images.md).

Every extra ​

"Kind": POD's own (with the same or other files than POD's), an OEM form, or fan or web content. ".BL3"/".BL4": reads (our readers, as the game reads it), none (not in the zip), broken (above). "Installed": by pod-extras for each build. In POD means POD already lists it, list full means the original's car list has no room, and duplicate means another zip holds the same car.

Tracks ​

ZipFileKindAuthor.BL3.BL4Installed: software, 3dfx, Un-POD
AlderOEMAlderoemOEM formnonereadsno, yes, yes
AntipodAntipodfan or webnonereadsno, yes, yes
arcadeArcadefan or webnonereadsno, yes, yes
arcaneArcanefan or webnonereadsno, yes, yes
aztecAztecfan or webbrokenreadsno, yes, yes
azthec_3dfxAzthecPOD's own, other filesreadsreadsin POD, in POD, in POD
babelweb_3dfxBabelwebPOD's own, other filesreadsreadsin POD, in POD, in POD
bank_discoverDiscoverfan or webnonereadsno, yes, yes
BEACHBeachfan or webreadsreadsyes, yes, yes
BenderBenderfan or webnonereadsno, yes, yes
canyoemCanyoemOEM formnonereadsno, yes, yes
cityoemCityoemOEM formnonereadsno, yes, yes
ecocoonECocoonfan or webnonereadsno, yes, yes
EnneadeEnneadefan or webnonereadsno, yes, yes
escapeEscapefan or webnonereadsno, yes, yes
everestEverestfan or webnonereadsno, yes, yes
factory_3dfxFactoryPOD's own, other filesreadsreadsin POD, in POD, in POD
fallenFallenfan or webreadsreadsyes, yes, yes
forestForestfan or webnonereadsno, yes, yes
ForgetitForgetitfan or webnonereadsno, yes, yes
galoemGaloemOEM formnonereadsno, yes, yes
HellwayHellwayfan or webreadsreadsyes, yes, yes
hiveHivefan or webbrokenreadsno, yes, yes
iceberg_3dfxIcebergfan or webreadsreadsyes, yes, yes
lake_3dfxLakePOD's own, other filesreadsreadsin POD, in POD, in POD
loon_3dfxLoonPOD's own, other filesreadsreadsin POD, in POD, in POD
magnetic_3DFXMagneticPOD's own, other filesreadsreadsin POD, in POD, in POD
megapol_3dfxmegapolPOD's own, other filesreadsreadsin POD, in POD, in POD
mine_3dfxMinePOD's own, other filesreadsreadsin POD, in POD, in POD
nadirNadirfan or webnonereadsno, yes, yes
naturaNaturafan or webnonereadsno, yes, yes
NewsanceNewsancefan or webLeadbest (2003)nonereadsno, yes, yes
NIGHTNightfan or webQBallreadsreadsyes, yes, yes
parking_3dfxParkingPOD's own, other filesreadsreadsin POD, in POD, in POD
pipeline_3DFXPipelinePOD's own, other filesreadsreadsin POD, in POD, in POD
pipeline_heavenHeavenfan or webnonereadsno, yes, yes
plantoemPlantoemOEM formnonereadsno, yes, yes
pompeii_raywayRaywayfan or webnonereadsno, yes, yes
pompoemPompoemOEM formnonereadsno, yes, yes
road70_3dfxRoad70POD's own, other filesreadsreadsin POD, in POD, in POD
seweroemSeweroemOEM formnonereadsno, yes, yes
skyrace_3dfxSkyracePOD's own, the same filesreadsreadsin POD, in POD, in POD
slimepit_downDownfan or webWitnessteam (reskin)nonereadsno, yes, yes
slimepit_parcParcfan or webnonereadsno, yes, yes
special_3dfxSpecialPOD's own, the same filesreadsreadsin POD, in POD, in POD
spin_3dfxSpinPOD's own, other filesreadsreadsin POD, in POD, in POD
tronTronfan or webnonereadsno, yes, yes
veitland_colonyColonyfan or webnonereadsno, yes, yes
west_3DFXWestPOD's own, other filesreadsreadsin POD, in POD, in POD
Zed_3DFXZedPOD's own, other filesreadsreadsin POD, in POD, in POD

Cars ​

ZipFileKindAuthor.BV3.BV4Installed: software, 3dfx, Un-POD
adeo_3dfxAdeofan or webreadsreadsyes, yes, yes
akir6Akir6fan or webreadsreadsyes, yes, yes
Akir7Akir7fan or webreadsreadsyes, yes, yes
akura_3dfxAkurafan or webreadsreadsyes, yes, yes
alien_3dfxALIENPOD's own, other filesreadsreadsin POD, in POD, in POD
arakn_3dfxAraknPOD's own, the same filesreadsreadsin POD, in POD, in POD
atlas_3dfxAtlasfan or webreadsreadsyes, yes, yes
BabossBabossfan or webreadsreadsyes, yes, yes
bananaBananafan or webQBallreadsreadsyes, yes, yes
batBatfan or webreadsreadsyes, yes, yes
BretonBretonfan or webreadsreadsyes, yes, yes
buffo_3dfxBuffoPOD's own, the same filesreadsreadsin POD, in POD, in POD
catamax_3dfxCatamaxfan or webreadsreadsyes, yes, yes
crow_3dfxCrowfan or webreadsreadsyes, yes, yes
dalton_3dfxDaltonfan or webreadsreadsyes, yes, yes
DarksmilDarkSmilfan or webreadsreadsyes, yes, yes
deuch_3dfxDeuchfan or webreadsreadsyes, yes, yes
eclypseEclypsefan or webreadsreadsyes, yes, yes
edEDfan or webbrokenreadsno, yes, yes
f1F1fan or webreadsreadsyes, yes, yes
f2F2fan or webreadsreadsyes, yes, yes
f3F3fan or webreadsreadsyes, yes, yes
frazer_3dfxFrazerPOD's own, the same filesreadsreadsin POD, in POD, in POD
fuego_3dfxFuegofan or webreadsreadsyes, yes, yes
HLRazor_3dfxHLRazorPOD's own, the same filesreadsreadsin POD, in POD, in POD
homardHomardfan or webbrokenreadsno, yes, yes
IRXIRXfan or webreadsreadsyes, yes, yes
jaero_3dfxJaeroPOD's own, the same filesreadsreadsin POD, in POD, in POD
KaizerKaizerfan or webreadsreadsyes, yes, yes
lagoon_3dfxLagoonfan or webreadsreadsyes, yes, yes
lagoon_stockLagoonfan or webreadsnoneduplicate, duplicate, duplicate
lagoon_stockStockfan or webreadsnoneduplicate, duplicate, duplicate
locust_3dfxLocustfan or webreadsreadsyes, list full, yes
loris_3dfxLORISfan or webreadsreadsyes, list full, yes
mirage_3dfxMiragefan or webreadsreadslist full, list full, yes
NocteNoctefan or webreadsreadslist full, list full, yes
OnyxOnyxfan or webreadsreadslist full, list full, yes
pantherPantherfan or webreadsreadslist full, list full, yes
PiratePiratefan or webreadsreadslist full, list full, yes
razorRazorfan or webreadsreadslist full, list full, yes
RM667RM667fan or webreadsreadslist full, list full, yes
shane_3dfxShanePOD's own, the same filesreadsreadsin POD, in POD, in POD
shark_3dfxSharkfan or webreadsreadslist full, list full, yes
stealth_3dfxStealthfan or webreadsreadslist full, list full, yes
stinger-betaStingerfan or webQBallreadsreadslist full, list full, yes
stinger_3dfxStingerfan or webreadsreadsduplicate, duplicate, duplicate
stock_3dfxStockfan or webreadsreadslist full, list full, yes
truck_3dfxTruckPOD's own, the same filesreadsreadsin POD, in POD, in POD
turdTurdfan or webreadsreadslist full, list full, yes
twin_3dfxTwinfan or webreadsreadslist full, list full, yes
WitchWitchfan or webreadsreadslist full, list full, yes
XiraXirafan or webreadsreadslist full, list full, yes

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