# Analysis completion audit

The analysis-first pass is complete to a practical, documented boundary for the
supplied Earthsiege 1.0 release. The native implementation now covers the original
game loop and has completed its automated comparison pass. This does not mean
every historical intention has been identified or every campaign branch manually
played. Nothing in this analysis tree has been committed; implementation findings
have been added back to the analysis.

Extraction coverage alone is not completion of analysis. The closures below
combine file inspection, original consumer addresses, independent comparisons,
live original execution and explicitly bounded unresolved endpoints. Older work
log entries retain their historical limitations; this page supersedes their
outdated lists of pending research.

## Expansion scope correction

The earlier completion boundary covered only the October 1994 version 1.0 CD.
The other supplied archives had been omitted. They are now expanded and compared
in [INSTALL_MEDIA.md](INSTALL_MEDIA.md). The 1996 base reissue is identical, but
the expansion introduces campaigns, career transfer, units, weapons and new
simulator builds. Its resources have structural decoding and separate DOSBox
installs. [The simulator comparison](SIMULATOR_VERSIONS.md) now covers the scanner and
April-patch fixes, weapon/lifetime changes, archive precedence and optional tall
graphics modes. It includes byte-complete revision checks and original-code
probes. Assembled expansion browser integration, full expansion campaign
comparisons and native expansion support remain outstanding.

Earthsiege 2 has forked. Earthsiege 1 work has resumed after the audio checkpoint.

## Completed foundations

| Area | Established boundary and useful outputs |
|---|---|
| Models and scenery | All 401 roots, hierarchy, poses, equipment and damage variants; corrected mapping/decals, thumbnails and stable cameras. All 24 environment lighting presets and the original texture/distance distinction. Original painter/span comparisons are separate from WebGL inspection. See MODEL_BROWSER.md and RENDERING.md. |
| Resource/executable audit | All 2,484 VOL members accounted for. Typed HERC/mount consumers, 80 runtime profile-read sites, shell dialog ownership, cockpit layout blocks, BND loaders and legacy endpoints joined to the inspectors. Build/language/library clues and verified keys/arguments documented. See PROFILE_FIELDS.md, RESOURCE_AUDIT.md, BUILD_EVIDENCE.md and COMMAND_LINE.md. |
| Input and cockpit | Held keys, mouse/joystick routing, preferences, all six MFD pages, radio/SNC, failure/flicker, modal and side-view transitions have original captures. Dormant scanner history has a no-observed-producer endpoint, including the complete replay traces. See INPUT.md and the cockpit runtime browser. |
| Mission and campaign | Compiler/branching, 674 coherent contextual launch states, campaign graph, grades, salvage, repairs, construction, unlocks and complete return/save transactions checked. Mission labels, choices, original counters and assembled actors can be inspected without manually playing a campaign. See CAMPAIGN.md and MISSION_LAUNCH.md. |
| Shell presentation | 42 states, 39 DLG layouts and all 41 original dispatch keys; 294 original region resolutions. Ordinary DOSBox registration, briefing, launch, abort, debrief, crew/armament, repair, construction and persistence captures. A further 56 original startup/return selection cases cover death and terminal campaigns with explicit presentation sinks. See SHELL.md and analysis/shell/index.html. |
| Environment and effects | All 24 worlds, 240 original background frames, panoramas/clouds/palette consumers; explosions, persistent smoke, debris, detached weapons and dynamic-light creation, motion, lifetime and drawing. Combined original scene captures retained. See ENVIRONMENT.md and EFFECTS.md. |
| Audio | Original HMI scheduler, FM/PCM drivers, banks, song selection/fades, positional effects and auditions. Consumer audit records registered-but-unselected songs, callback-track endpoints and unreferenced DONS banks. Complete original replays include MIDI commands, PCM completions and speech animation. See MUSIC.md and analysis/music/usage-audit.json. |
| End-to-end original execution | All four original TAPs run to their return path with unchanged executable and normal DOS/HMI/VGA execution. All 9,300 inputs and queued mouse events match source records. The later camera-playback-v3 captures supply all 7,032 native-compared simulation/exit states, complete gameplay and visual RNG, and camera state. See REFERENCE_CAPTURE.md and analysis/tapes/replays/index.html. |

Updated music, interface, definitions, tables, inventory, shell and replay pages
pass direct-file Chromium checks. Original images decode correctly, every replay
loads, and the pages produce no JavaScript exceptions. All UI readers consume
195 resources without exceptions; the data-table inspector consumes 155 entries.

## Deliberately retained uncertainties

These endpoints are not a hidden implementation backlog. Each retains its bytes,
consumer evidence and limits, rather than assigning speculative meaning:

- `shell0/CFG/TEST.DAT`: the sole wholly unclassified member, 58 bytes. No literal
  filename reference in either application or any supplied resource; not a valid
  current diagram/dialog record set. Intended historical schema remains unknown.
- Two legacy mission layouts and HOVTANK.DMG are rejected/overread by the original
  current readers. Their incompatibility is preserved. Old WORLD*.DAT,
  CAREER1.MEC and CONFIG.DAT have documented predecessor/workspace boundaries.
- HERC words 78/80, GL words 8/10/12/14/24, extra sound-threshold slots and some
  nested cockpit template words remain neutral where no semantic consumer was
  established. Known profile, flyer and widget fields are joined to their
  consumers. A bounded absence of reads is not universal proof of disuse.
- The 63 simulator BNDs have no demonstrated live file consumer; eight shell BNDs
  do. Timestamp-like first dwords have no verified release-date meaning.
- SHELLC and WIN2 are registered but unselected by the established shell paths;
  DONS banks have no identified reference. The supported HMI callback driver is
  not installed by the normal game sound owner. No callback consumer appeared
  in the four complete replays. Retain these resources without inventing uses.
- Original retained weapon root 6, scanner history, VCR sidecar machinery and
  parser-only command options have their specific no-established-producer/use
  boundaries in the corresponding topic documents.

The inventory now reports 2,346 decoded entries, 134 with partially named fields,
three layout exceptions and one unclassified file. The partial category includes
71 module-specific BNDs, fixed data tables, eight packed GAU templates, profile/
mount records and retained predecessor tables. It does not mean 134 unknown
formats. Classification measures how thoroughly the bytes are named, not whether
an original consumer or exact output reference exists.

## Native implementation and comparison

The native game now connects shell, career, mission, cockpit and audio components
and is ready for comparison playtesting. All 271 standard C++ tests pass, plus the optional local-ROM/SoundFont test (272 total). The current
[native validation report](../../earthsiege-cpp/docs/VALIDATION.md) separates
verified coverage from the remaining fidelity limits; older work-log statements
about disconnected components are historical.

All four supplied recordings agree on 7,032 captured simulation/exit states and
consume all 9,300 inputs, including preferences and terminal dialogs. Their final
RESULTS.DAT and MISSION.VAR files match byte for byte. The comparisons include
complete gameplay and visual RNG, all camera fields, independent radio timer
reads and observed speech-driver outcomes, including frozen options previews.
See RUNTIME.md for the compared fields, external-input boundary and partial-frame
exit ordering. Expected simulation states and pixels are never native inputs.

The current clock-pages captures supply 120 sampled complete-frame comparisons.
After isolating the independently timed presentation layers and their page-copy
schedule, 114 images are pixel identical. All 230 remaining pixels in six
images come from the documented malformed distant-radar references. Applying
only the native loader's existing bounded repair to the original renderer
makes those six scenes agree too, with no additional pixel changes.

[The pixel fidelity investigation](PIXEL_FIDELITY.md) records individual original
instructions, new component fixtures, untouched and modified reference
boundaries, all raw/timing-controlled counts, and reproduction commands. No
identified sampled-image difference remains unexplained. The new fixtures
include 432 collapsed texture cases, 192 retained weapon/message overlaps and
1,024 retained clock-page cases. The result covers those sampled frames; other
mission states can still reveal differences.

Replay regressions separately assert twelve complete frames, six scene regions,
584 weapon-label rasters and 579 gauge regions/colour samples. Corrections include
external clipping and texture traversal, retained views, palette upload timing,
ground attachments, original transform-cache lighting, gauge paint order, map
refresh and missile-camera ground drawing. The original ground-matrix transpose
and clip-region line algorithm together account for the final scene differences
in DEMO3 frame 1320; that complete frame now matches.

All 7,073 ordered non-engine sound starts and all sound stops agree. Engine start
retries retain the PCM-completion and finite voice-allocation timing boundary
documented in the native report. Driver/synthesizer comparisons do not imply
identical whole-game audio waveforms or a particular card's analogue output.

Live SDL dialogs suspend at the verified player/outcome call sites. Private-window
checks cover pause, options, cancellation and mission return, using isolated
saves. The later [mission fidelity pass](MISSION_FIDELITY.md) adds 75 authored
sources and ten later-career launches, all matching 256 consecutive world frames
(21,760 total). Six terminal campaign journeys match 121 return/repair/save/next
transactions across victory and defeat in all three battle sets. Native fixes
cover starting damage/controller order, waiting ground updates, objective mapping
and random-mission-list selection. Original negative formation reads and effect
queue overflows have explicitly recorded bounded repairs. These checks do not
constitute a manually completed playthrough of every campaign branch.

Browser triangles use a depth buffer; original software pixels have separate
comparisons. The live original screenshots use DOSBox's aspect-correct display,
while native VGA pixel captures are 320x200. Invariance across every emulator
configuration is outside this software-analysis boundary. The two shell capture
revisions and their metadata limitations are documented in SHELL.md. New findings
remain in this analysis tree, uncommitted as requested.


The [extended autonomous validation](AUTONOMOUS_VALIDATION.md) adds all 75 mission
sources with 512 player-controlled frames each, three longer 2,048-frame runs,
and sanitizer checks. It corrected the missing cockpit/chassis alignment when
the player loses mobility. Two original bugs are now proved and documented:
uninitialized AI aim components and an overflow carry in long detour offsets.
Corrected references are labelled separately from untouched original captures.
The 263-test baseline passed ASan/UBSan. The subsequent movement/world pass
finished with all 269 tests passing normally and all 19 affected suites passing
ASan/UBSan. The second 75-source timing/RNG sweep and ten longer later-career
runs also agreed. They corrected reverse animation on disable and the ramming
blast-centre reference. This extended pass covered 94,208 world frames. The
later audio checkpoint below adds its own tests and sanitizer results.


## Audio and sequel-fork checkpoint

The native audio update adds Munt MT-32/CM-32L, Nuked-SC55 SC-55/SCC-1A and
TinySoundFont, with saved window-level selection and automatic ROM lookup.
Original-driver captures prove the missing MT-32 melody routing in this release;
the native selector distinguishes that original selection from the optional
MPU-401 listening experiment. All 40 physical-MIDI song/device cases match.
See [MUSIC.md](MUSIC.md) for the evidence and hardware boundaries.

The final suite passes 272/272 tests (271 without optional hardware assets).
Six audio suites pass ASan/UBSan and leak checking. The earlier gameplay sanitizer
results above remain their own coverage record. Topic documents now describe
completed native integration separately from the browsers' inspection shortcuts.

[Earthsiege 2 handoff](EARTHSIEGE2_HANDOFF.md) lists the reusable tools and the
release-specific assumptions to recheck. Audio and documentation are complete
for that fork; further Earthsiege 1 gameplay coverage waits until afterwards.

## Expansion catalogue

The expansion resources are now integrated into the inspection browsers, with
separate provenance and original-code checks. See [Expansion catalogue and
integration](EXPANSION_INTEGRATION.md) for coverage, remaining semantic
uncertainties and the completed native integration. The C++ launcher offers both
editions. Careers, combat, deployment, environments and input have expansion
original-code comparisons; all four supplied recordings run through. Full
expansion replay-state equivalence and campaign playthroughs remain follow-up
validation, distinct from the completed resource catalogue.


The final expansion integration suite passes 294/294 tests with local optional
music assets. Eleven expansion suites pass ASan/UBSan and leak checking, including
all four demo runs. The demos consume all 11,421 packets (10,875 simulation frames
and 546 dialog packets); full original replay-state equivalence remains separate.
All 432 sampled environment frames match original pixels, palette and visual RNG,
including real cockpit masks and inset viewports. Browser checks cover eleven
inspection pages without JavaScript errors. The curated local staging build
validates its file hashes, links and publication scope.
