Shipped binaries¶
Every file listed here comes from the two discs, most of it by way of LANCER.CAB. make game reproduces that layout under game/install/. The analysis reads the game executable, with its code readable, from game/decrypted/LANCER.EXE, which the repository does not provide.
All binaries are 32-bit x86 PE images (machine = 0x14C).
The game¶
| File | Size | Linker | Image base | Notes |
|---|---|---|---|---|
LANCER.EXE (loader) |
249,119 | 5.0 | 0x400000 |
SafeDisc 1 loader, not the game. |
LANCER.ICD |
1,151,021 | 6.0 | 0x400000 |
The game, encrypted. Entry point 0x004D1210. |
LANGUAGE.DLL |
122,951 | 6.0 | 0x10000000 |
Localised strings, as a .rsrc string table the game reads by ID. |
ITACLANG.DLL |
692,282 | - | - | In-flight communication system language resources. |
LANCER.ICD carries no symbols, so Ghidra names its functions FUN_<address>. It is built with Visual C++ 6.0 and links the C runtime statically; see runtime.md.
Middleware¶
The game is a thin layer over several late-1990s SDKs. Source paths in the payload's .rdata show the original tree as lancer\game\*.cpp, lancer\interface\loadout and lancer\surrender\surrenderlib.
| Library | Files | Role |
|---|---|---|
| Surrender | srddraw.dll, srd3d.dll, srfastmath.dll, srmemory.dll |
3D renderer, with DirectDraw and Direct3D 7 back ends, its own math library and allocator. srmemory.dll is the payload's only statically imported middleware. Build paths name srAPI.cpp. |
| WinVFX | winvfx8.dll, winvfx16.dll, vfx.dll, w32sal.dll |
2D sprite and overlay drawing, in 8-bit and 16-bit variants, plus a system abstraction layer. |
| Miles Sound System | mss32.dll, MSS*.M3D, MP3DEC.ASI |
Audio. The .m3d files are selectable 3D providers: EAX, Aureal A3D, RSX, Dolby Surround, DirectSound3D. |
| Bink | binkw32.dll |
Video playback for briefings, cutscenes and interface transitions. |
DirectDraw, Direct3D, DirectInput and DirectPlay are reached through those libraries or loaded dynamically; only DINPUT.dll is imported statically, for DirectInputCreateEx.
Data files¶
| Path | Contents |
|---|---|
CD1.HOG, CD2.HOG, resource.hog, ms_speech/msspeech.hog, pilots/pilots.hog |
Asset archives: see hog.md. |
shipstats.bin, gunstats.bin, missilestats.bin, pilotstats.bin |
Stat tables: see stats.md. |
missions/*.dte |
Missions 18 and 25, installed loose; resource.hog holds all 44. See dte.md. |
*.ccb |
Colour lookup tables for Surrender (palette, power, softpal). |
Forces/*.FRC |
Force-feedback effects: see frc.md. |
interface/*.bik, inter/, *.bik |
Bink video: menu transitions, branding, cutscenes. |
music/*.wav |
Music, one file per mission and state. |
Protection dependencies¶
SECDRV.SYS is the SafeDisc kernel driver. Windows Vista and later disabled it, and Windows 10 removed it, so the shipped LANCER.EXE cannot start on a current system.