Reconstruction evidence and remaining work
Historical pre-implementation inventory. The remaining-work tables below describe that investigation checkpoint, not the current playable engine. The native C++ reconstruction now connects campaign progression, both cities, tunnels, Nightmare, software rendering and FM audio. Current implementation coverage and limits are maintained in the separate engine repository's campaign status and release readiness.
This is a working index for the two separately planned engine stages, not a claim of full decompilation. Extracted assets and native differential fixtures should remain distinct from runtime approximations in the viewers.
| Area | Recovered evidence / useful entry points | Remaining integration |
|---|---|---|
| Resource loading and assets | Resource/city layout, models, geometry variants, gameplay definitions | Complete consumer coverage; original ownership/lifetimes and loader reset contracts |
| Audio | Hardware variants, effects, combined recipes | Live voice allocation, music/effect competition, Doppler/spatial mixing and pause clocks |
| Interface and text | HUD, procedural graphics, formatted text | Full radar traversal/visibility, stereo rendering and integration with real game state |
| Mission setup | Native setup, callbacks, reserve queues | Runtime mutations after setup and real callback interleaving |
| Mission execution | Scheduler, update ordering, completion | Native exit/commit branching now checked; combat-to-expiry causes and complete progression/save/load in one real scenario remain |
| Supply pads | Locations, re-entry, combined trace | Attitude/collision/live controls and other actors; existing native script, weapons and shield effects are checked |
| Lighting/blackouts | Charge arithmetic, blackout replay | Conditional triggering, prior persisted darkness, Nightmare challenge objective-driven phases and charging-buffer explanation of low meter readings |
| Building state | State variants, persistent fields | Eligible-type census, full variant regeneration and high-bit templates now checked; repair/reset policy and tunnel-specific persistence remain |
| Flight and impacts | Player collision/damage, angular and impact arithmetic, linear motion/charging | Full craft callbacks, input smoothing and continuous trajectories; isolated native geometry-to-crash and shield/damage paths now checked |
| Ground routes | Executed routes | Convoy discrepancy: isolated motion vs stable full-game capture remains unresolved |
| Rendering/presentation | Components, effects, presentations | Complete world visibility/sorting, clipping/raster contracts, camera/stereo and complete cutscene sequencing |
Native fixtures added in this pass
trace_blackouts.py: actual supplementary blackout script, messages and fades against Delphi map; visual replay and JSON.verify_blackout_queues.py: nine mission queues, 118 coordinate consumptions, native setup binding and exit application.verify_object_completion.py: six two-object lifecycle/counter-to-player-wait cases.verify_light_source_types.py: all 256 type bytes through the charging source routine; only type 1 accepted.verify_persistent_cell_state.py: packed state bits 20h/40h and ordinary restoration, excluding later variant rebuilding.
Corrections to preserve in future work
initial_beacon_sequenceis a historical export name. Setup binds the queue; individual script commands consume it, and the exit path applies the whole list. Do not initialize all queued towers as dark solely from that field.- Supply context-swap continuations are executable restart jumps. Decoding must include their deferred paths, not stop permanently at the swap.
- A shared blackout leaves (72,126) untouched from a full map. Special selection 4 starts the Nightmare challenge at 04_015/0, with different staged dimming/restoration operations; it is not the final campaign mission.
- A viewer's whole-command coverage is not a runtime state snapshot, and a native fixture with supplied conditions is not a recorded playthrough.
Recommended next investigation order
- Run one partial-power mission with explicit, source-justified object completion inputs through messages, partial failures and completion. Extend it into the exit/save path.
- Persistent-state eligibility and native restore/retry transitions are now checked; extend to outer-menu save/load integration.
- Expand the Nightmare challenge into objective-separated beacon phases; preserve direction reversals and actor dependencies.
- Establish full clock/pause contracts and camera/visibility ordering before treating isolated flight/render routines as an engine specification.
- Revisit the convoy through a stable full-game execution capture. Do not alter its route decoder merely to make the plotted paths look plausible.
The faithful C++ implementation remains a separately planned stage using original assets and arithmetic. The later browser engine with modernized assets remains separate as requested; neither has been started by these analysis changes.
Save-file viewer/editor
Offline viewer/editor and verified normal save format are now available. Native file read/write and checksum tests pass. The editor preserves unknown fields and exports a separate copy; normal-size files only. Complete menu-driven save/load, record creation/name editing and the alternate executable-loading path remain outside scope.
Current next steps
- Extend the combined flight/collision traces from controlled airborne starts to live input production, craft startup/landing and real mission setup.
- Connect projectile/object damage, expiry, objectives and exit into one complete scenario trace.
- Resolve the remaining Nightmare phases, full renderer visibility/raster contracts, spatial audio/voice allocation, and the parked convoy discrepancy.
- Keep unknown save-record fields explicit; do not infer their meaning from zero-filled examples.
Neither C++ engine stage has been started.