Disc images and the disc filesystem¶
The game ships on two CDs. This project reads disc images directly: sltool cd parses the sector
framing and the ISO 9660 filesystem itself, so extraction needs no mounting, no conversion to
.iso, and no third-party tool.
Image layout¶
Redump-style images store complete 2352-byte sectors (MODE1/2352 in the accompanying cue
sheet), not the 2048-byte user data that an .iso holds. A Mode 1 sector is:
| Offset | Size | Field |
|---|---|---|
| 0 | 12 | Sync pattern: 00 FF FF FF FF FF FF FF FF FF FF 00 |
| 12 | 3 | Address, as minutes / seconds / frames in BCD |
| 15 | 1 | Mode |
| 16 | 2048 | User data: one logical block |
| 2064 | 288 | EDC and ECC |
Addresses count 75 frames to the second and start after a two-second pregap, so logical block 0 is
at 00:02:00 and the ISO 9660 primary volume descriptor, at block 16, is at 00:02:16.
sltool detects the layout from the first twelve bytes: an image that starts with the sync pattern
is raw, anything else is treated as 2048-byte logical blocks. Mode 2 Form 1 sectors are also
understood, with their user data at offset 24; Mode 2 Form 2 and Mode 0 sectors carry no logical
block and are rejected. EDC and ECC are not checked.
Filesystem¶
Both discs carry a plain ISO 9660 filesystem with no Joliet supplementary descriptor, so all names
are 8.3 and upper case, with the ;1 version suffix that sltool strips. sltool reads Joliet
names where a disc has them.
| Disc | Label | Blocks | Size |
|---|---|---|---|
| 1 | SL_CD1 |
331,659 | 648 MiB |
| 2 | SL_CD2 |
279,922 | 547 MiB |
Disc 1¶
| Path | Size | Contents |
|---|---|---|
LANCER.CAB |
226,746,308 | Installer cabinet: the game as installed. |
GAME/CD1.HOG |
406,051,549 | Asset archive. |
GAME/CAB/LANCER.EXE |
249,119 | SafeDisc loader. |
GAME/CAB/LANCER.ICD |
1,151,021 | The game, encrypted. |
GAME/CAB/LANGUAGE.DLL, ITACLANG.DLL |
Language resources. | |
SETUP.EXE, SETUPENU.DLL, SETUPAPI.DLL |
Installer. | |
DPLAYERX.DLL, CLCD16.DLL, CLCD32.DLL, CLOKSPL.EXE, DRVMGT.DLL, SECDRV.SYS |
SafeDisc support files. | |
DIRECTX/, GOODIES/ |
DirectX 7 redistributable, MSN Gaming Zone client, diagnostics. |
Disc 2¶
| Path | Size | Contents |
|---|---|---|
GAME/CD2.HOG |
535,385,670 | Asset archive: later missions and video. |
DOCS/MAUNAL.PDF, DOCS/QRC.PDF |
Manual and reference card. The manual's filename is misspelled on the disc. | |
GOODIES/ |
Acrobat Reader, MSN Gaming Zone client. |
GAME/CD1.BIN and GAME/CD2.BIN are zero-length disc-identification markers.
Using it¶
sltool cd info <image> # layout, block count, volume label
sltool cd ls <image> # every file, with size and timestamp
sltool cd extract <image> <dir> # copy everything off
make game runs the extraction for both discs, then installs game/install/ from them with
openreliant install, which unpacks disc 1's LANCER.CAB, an LZX-compressed Microsoft cabinet, and
copies both discs' archives (Platform).