The supplied media and named resources are characterized, the main viewers are working, and the C++26 reconstruction joins the shell, simulation, cockpit, recorded demos and mission audio. Forty controlled v1.1 mission runs now agree with the original process after every captured simulation tick. The three shipped demos now have full-process comparisons too, with two documented departures from an original pointer-derived rocket timer. Two hundred and twenty-three complete cockpit frames also match every pixel and palette entry, covering idle, walking, turning, reversal, turret motion, side glances, both heads-down pages, Razor flight, assault combat, later campaign environments, delayed lunar deployment, six consecutive campaign battles, sound-enabled combat and the death camera. Further missions can extend this coverage.
The definitive target is the English Win95 v1.1 installation from
cd_v1_1_1997_09. The older retail build, Win3.1 build and April demo remain
comparison oracles. Disc mastering dates do not determine executable age.
Analysis and implementation coverage
| Area | Inspectable result and evidence |
|---|---|
| Media | Sector/file hashes, audio correspondence, distinct variants, ten comparison installs and an original Wine launch path. Media |
| Resources | 2,841 distinct name/hash pairs audited; 2,754 structurally decoded, 86 retained partials, one truncated leftover and no unidentified type. Coverage |
| Models | 57 libraries, 540 roots, loadouts, LOD, animation, scenery and variant thumbnails. Original BSP, transform, polygon/sprite and equipped-model comparisons. Animation |
| Missions | 61 intact sources, original compiler output, explicit campaign inputs, terrain generation/flattening and a 3D mission browser. Missions |
| Campaign | Flags, grants, promotions, objectives, salvage, save round trips, consecutive shell/debrief histories and eight joined data-link missions. Campaign, actions |
| Simulation | Walking, contacts, flight, AI, navigation, ramming, armed structures, convoys, deployment and ending rules. Independent instruction fixtures and joined mission tests. Foundations |
| Combat | Sensors, target selection, weapon systems, bullet/rocket/beam flight, hit geometry, shields, component damage and destruction. Combat |
| Rendering | Indexed clipping/raster paths, ramps, sky, terrain, equipped models, LOD and scene filing. Eleven normal and eleven missile-view scene frames match original drawing code. Rendering, ground shapes |
| Interface | Interactive shell, MFD/HDD pages, targeting pod, preferences, input/joystick, status panels, startup/dropouts, external/developer cameras, freeze/single-step and diagnostic movement/damage, cockpit shake and impact palettes. Interface |
| Audio/video | Lossless samples, portraits, CD tracks, movies, captions and manuals. Original sound requests, speech-cache and CD-selection rules are connected; final host mixing is separate. Audio/video |
| Recorded demos | All 7,060 input packets, modal queue consumption, real-window launch/abort checks and 5,801 full-process snapshots. Three complete playback outcomes agree, with a labelled DEMO2 component guard and two documented pointer-derived timer departures in DEMO3. Replays |
| Complete original processes | 165,525 tick snapshots compare actor/AI/pose/combat/sensor/projectile state, squad firing lines, debris, explosion/fire pools, all four missile types, Razor flight, flags and RNG. The first four training missions reach success on the same ticks and write identical results. The long assault reaches death on tick 6,055, and a separate run using the original training invulnerability option reaches success on tick 7,317, both with identical result bytes; defence training reaches death on tick 7,917 with identical result bytes. Escort failure and reconnaissance death add further outcomes. The opening campaign patrol reaches success on tick 10,417 with all four squad members alive and a byte-exact debrief. The actual C1_01 result carries into C1_02, whose guarded run reaches failure on tick 11,533 with exact states, results and debrief. C1_03 then succeeds on tick 5,209 and the loaned Razor completes C1_04 on tick 3,969; their original weapon fits, complete results and debriefs also match. The same Razor completes the C1_05 rescue on tick 6,697; the pilot switches back to the owned Outlaw and returns from C1_06 with the objective unfinished on tick 6,000. Hard nighttime escort, an interrupted C1_08 data-link attempt and C5_10 through player death add three further outcomes. Nineteen actual battle results have matching original debrief saves and RNG. Lunar C5_04 matches through disabled-player ending on tick 3,349, followed by a byte-exact original campaign debrief. The v1.0 prefix ends at a verified terrain-visibility difference. Defence training and the long assault each retain an unmodified prefix and a separately labelled bounds-guarded original capture. Process traces |
The native comparison index links the retained reports. Each describes its boundaries. The complete-process traces run the original game under Wine, while most subsystem fixtures execute original instructions with explicit input/output boundaries. Neither kind of comparison alone covers every possible mission.
Remaining work
The gameplay coverage table separates exercised combinations from the next useful full-mission checks. The latest verification pass records the new scenarios and the three implementation errors they exposed.
- Extend complete original-process comparisons to additional missions, further deployment branches and mission outcomes. Continue campaign coverage from those verified live outcomes.
- Extend the 223 exact cockpit captures to further battles and tactical-map interactions. The death-camera sequence now matches. Assault frames include moving target brackets, weapon changes, contact reports and ground shadows.
- Extend presentation scheduling checks where separate RNG consumers interact. A sound-enabled patrol matches 5,612 positional calls and four complete frames with presentation RNG. The separate 68-event view-changing capture includes the documented repair for the original heads-down map camera leak. HMI device mixing is not emulated sample for sample. The original WAV loader's 44-byte truncation is verified and deliberately fixed; see audio analysis.
- Retain and investigate low-priority unknowns: BND words without an established reader, the ES2 STYLES consumer, the unused-looking MAT0 material/coordinate trailer and the unclassified artwork fragments. The terrain loader's disregard for the MAT0 trailer is now verified; its authoring purpose remains unknown. The recovered artwork is now in the leftovers gallery; a 16-byte gap and the fragments' authoring history remain unexplained. None blocks inspection of the shipped game content. The SKIMMER.DAT audit now separates its three live fields from fifteen numeric words with no found consumer; four original builds agree under field mutations.
The model and mission browsers use modern display conveniences. Pixel evidence comes from independent software-renderer comparisons. Discoveries during C++ work are reflected in the analysis tools and exports.
Repository policy
The analysis tree stays uncommitted for manual inspection. The reconstruction
lives in ../earthsiege2-cpp, targets C++26 and is committed and pushed in working
increments. Linux CI now builds with GCC 16 and runs the complete original-fixture and
integration suite on pushes and pull requests. All 177 local checks pass; the CI report retains
the last completed run links, complete logs and source revision. The local full-suite report retains the tested revision, XML and log hashes. The redundant original source containers
have now been removed after rechecking every retained member and sector
representation. Working media and resource contents retain their provenance.