Engine changes vs the vendored upstream (full ledger in docs/upstream-patches.md): - Assets: replace the encrypted FILE000N.GLB archives with a catalog of pre-decrypted loose files (data/INDEX); GLB_SlotItems() drives mission-pack / registered-version detection; payloads never run the GLB cipher at runtime. - Platform: Linux/SDL2/ALSA only; Android, MSVC/MinGW, macOS packaging, bundled Windows SDL2 SDKs and the ENDOOM exit screen are gone; EXIT_Error now prints before exiting. - Rendering: decouple presentation from simulation -- sim stays at the original 70/3 Hz, frames render interpolated at display rate (player, map scroll, enemies, shots, bonuses, anims, shadows); menus keep 70 Hz pacing; vsync with a delay-guard fallback. - QoL: borderless window mode (Video/borderless), no menu cursor snapping onto default buttons. Fix four regressions from the render split: - Shield bars never redrew: RAP_ThinkStats latches g_oldshield each sim step before RAP_DisplayStats' dirty check could fire. Bars now draw unconditionally per rendered frame; g_oldsuper deleted, g_oldshield kept as sim-side damage-detection state only. - Dying ships despawned without exploding: the render loop never called ANIMS_DisplayHigh(); most air-death explosions register HIGH_AIR. Restored between the player and enemy shots, as upstream orders it. - Laser turret broke: reusing doneflag as a draw marker (it is hit/retire game state, and the turret retire path never frees its shot) hid the beam on hitting ticks and leaked one SHOTS pool slot per fire until no weapon could shoot. S_LINE tracers now carry an age counter: one Think pass, every render of their birth step, purged at the top of the next Think. - Muzzle flash was cleared per rendered frame, making it invisible at display refresh rates; now cleared once per simulation step.
RaptorReplica
A faithful, playable replica of Raptor: Call of the Shadows (Cygnus Studios, 1994) running the reconstructed original engine on Linux, with the original game data extracted into a modern, editable asset tree.
Quick start
./play.sh
Builds the engine on first run, then launches fullscreen. Saves and
SETUP.INI live in ~/.local/share/Raptor/ — nothing in the repo is
written to.
Repository layout
| Path | What it is |
|---|---|
raptor/ |
Vendored engine source (GPLv2+), trimmed to a Linux-only build. Patches against upstream are listed in upstream-patches.md. |
data/ |
The asset tree the engine loads: one INDEX catalog plus category directories (music/, sprites/, ...). Derived from the copyrighted originals — gitignored, never commit. See asset-pipeline.md. |
tools/glbextract.py |
Cracks the original .GLB archives into data/. See glb-format.md. |
docs/ |
This documentation. |
play.sh |
One-command launcher (build if needed, run from data/). |
PLAN.md |
Project status and roadmap. |
Documentation index
- architecture.md — how the engine starts up and loads assets
- glb-format.md — the original archive format and its cipher
- asset-pipeline.md — extraction, categories, the INDEX catalog
- building.md — dependencies, building, config and save paths
- upstream-patches.md — every local diff against the vendored engine
Status
Playable end to end: title/menu, hangar, store, ship computer, all mission phases, original OPL2 soundtrack and Sound Blaster SFX through PipeWire/ALSA. Verified on this machine at 1920x1080.
Legal
raptor/is GPLv2+; this project inherits GPL for everything built on it.- Game data is copyrighted.
data/is derived from the user's own purchased copy and is never committed.