Privateer 2

Privateer 2: The Darkening (Origin Systems, 1996) is a DOS game by the developers who went on to make StarLancer. This page compares the two games: what StarLancer carried over from it, and what is new. sltool reads the formats they share. OpenReliant doesn't play Privateer 2.

sltool hog ls DANI.BIG                 # an archive's files: the .BIG files and some .IFF files
sltool hog extract SPEECH.BIG <dir>    # copy them out
sltool spr ls INSERT.SHP               # a picture set's shapes and palettes
sltool spr extract INSERT.SHP <dir>    # its pictures, as PNG files
sltool fat ls C10A.fat                 # a sound bank of the format's first version
sltool fat extract C10A.fat <dir>      # its sound, as stored

The page covers the files of the installed game, the DARK folder. The CDs' files aren't covered.

The files

File Contents
DARK.EXE The game, a 32-bit DOS program built with Watcom C/C++, which runs under the DOS/4GW extender, DOS4GW.EXE
DANI.BIG, SPEECH.BIG Archives of sound banks: 31 and 406 banks of one sound each
PILOTS.BIG An archive of 112 pictures named for the game's characters and ships, such as jaren.shp and CARGO0.shp
SPACEGEO.IFF, SPACETEX.IFF, ISETS.IFF Archives despite their extension: the space objects' models, their textures, and five more IFF files
INSERT.SHP A picture set: the screen that asks for a CD, with its palette
GAMEFLOW.IFF, MISSION*.IFF, UNIV.IFF, SPACE.IFF, BOOTH.IFF, PAD.IFF, MUSIC.IFF Origin's IFF files: the game's flow, the missions, the universe, space, the scenes and the music
GAME00.IFF to GAME09.IFF The saved games, IFF files too
*.MDI, *.DIG, AILDRVR.LST The sound drivers of Miles' Audio Interface Library for DOS

Carried over

Archives

Privateer 2's archives are the BIGF container of StarLancer's .HOG files, with the same big-endian header and directory (.HOG archives). No member is compressed: StarLancer added RefPack compression (RefPack). Three of the .IFF files are archives too, of IFF files.

Sprites

Privateer 2's .SHP pictures are StarLancer's .SPR sprite sets, version 1.40, block for block (.SPR sprites). INSERT.SHP carries its palette. The pictures in PILOTS.BIG carry none, so sltool spr extract writes them in greyscale. Unknown: which palette the game draws them with.

Despite the extension, they aren't StarLancer's .SHP files. StarLancer kept this format for its sprites under the name .SPR, and used .SHP for its 3D models, a format of its own (.SHP models). Privateer 2's models are BRender's, in IFF files (New in StarLancer). So a Privateer 2 picture renamed to .SPR reads as a StarLancer sprite, as sltool spr shows, and a mod could use one. A picture without a palette is drawn with whichever palette StarLancer has loaded, so its colours come out wrong unless it's given one.

Sound banks

Privateer 2's .FAT sound banks are the format's first version, 1.00, where StarLancer's are 2.00 (Version 1.00). The header is the same. The entries are longer and give each sound's size decoded rather than stored, and the sounds are raw 4-bit samples rather than WAVE files. Unknown: their codec, so sltool fat extract writes them as stored (#1074).

The game's code

DARK.EXE reads its archives through a "BigFile", and keeps the game's flow and the missions' flags in GAMEFLOW.IFF. StarLancer has a bigfile.cpp and a gameflow.cpp, which keeps the campaign's flags. The archives of pilots and speech, PILOTS.BIG and SPEECH.BIG, have StarLancer counterparts in pilots.hog and its speech archive. Both games play their sound through Miles: the Audio Interface Library for DOS here, the Miles Sound System for Windows in StarLancer.

New in StarLancer

Privateer 2 StarLancer
DOS, Watcom C/C++, DOS/4GW Windows, Visual C++ 6.0 (Executables)
Argonaut's BRender 1.x, whose source files' tags the executable carries, such as zbmesh.c Surrender, with a Direct3D 7 driver (Rendering)
Models and textures as IFF files of BRender's structures, in archives .SHP models and texture caches (Models, Texture caches)
Missions, the game's flow and the universe in Origin's IFF files .DTE missions, with a script that a virtual machine runs (.DTE missions)
Movies in EA's TGV format, such as movies\origin.tgv Bink movies (Bink)
Characters' pictures, 90 by 90 pixels Animated face films (Face films)
Uncompressed archives RefPack compression
Raw 4-bit sounds WAVE files, mostly IMA ADPCM

Edit this page on GitHub. The documentation is under CC BY-SA 4.0.