# Final resource extraction pass

[Open the browser](resources/index.html) · [File coverage](resources/coverage.json) · [Native checks](resources/remaining-verification.json).

The extraction now scans all ten retained game filesystems, including our
original installation, the played 2.00 floppy and the duplicate-labelled expansion.
Identical resources still share one output. All **793 source files** are accounted
for: 791 have an inspection/decoding output; the remaining two are the already
inventoried duplicate distribution ZIPs inside the original installation. No
original game file was changed, and extraction reports no warnings.

## Additional scenery and state

The map browser now has **22 distinct saved campaigns**, sixteen more than before.
Together with 25 distributed worlds, three generated examples and the later
source-only slalom layout, that gives 51 world entries when all editions are
selected. Duplicate saves share a preview.
Case-insensitive briefing lookup reconnects the original lowercase files and
archived saves to their corresponding mission text.

All four unique pilot files are decoded, including the played floppy's shorter
header. Four unique high-score files expose all three top-ten lists. The
[format notes](state-formats.md) describe their layouts and verified fields.
Statistics not yet individually understood remain available as original bytes.

The Text & briefings tab now includes **93 distinct documents and scripts**,
including the omitted old manuals/help variants, extensionless README files,
distributor descriptions, launch batches and generated start-location text.
The Configuration tab retains flight configuration and Windows PIF bytes,
word arrays and strings. These are settings, not hidden image packs.

## Sun and an early visual joke

The model browser now includes **Sun (sky)** for every inspected flight binary.
Its geometry lives outside the 61 world-object templates. In later retail 3.42
it is model DS:`545c`, with its two-disc primitive at DS:`537e`. The native TWR
parameter reader changes the first diameter to the supplied size and the second
to size + 5, and changes the second colour. The stored default diameters are
120 and 112. These are the original values, including their differing relationship.
The viewer shows stored geometry; it does not silently apply a theatre preset.

Early 1.20 and 2.00 also contain a **sun with a face and rays**. The ground-crew
proximity code installs that near-detail sun model alongside the middle-finger
crew pose. Middle and far pointers retain the plain sun. In 2.00, the crew/sun
assignments are at file offsets `0x81bb–0x81cd`; the sun changes from DS:`49cc`
to `49f4`. In 1.20 the equivalent sun assignment is `0xbdc6–0xbdcc`, changing
`9d1c` to `9d44`. Select an early edition, **Sun (sky)**, then **Sun with face**
and Near detail. The model can be rotated to see its flat linework face-on.
The native assignment is checked, rather than inferring the connection solely
from the shapes. The face model also survives beside the plain sun in later engines, although
no selection trigger has been found there. Those builds offer **Sun with face
(stored geometry)** as an inspection choice, without inventing a gameplay trigger.

## Destroyed radar

The radar has its own burning wreck model, previously missed because the game
changes its type to 33—the same type used by a destroyed fuel dump. That type's
stored template therefore does not describe every destroyed instance.

The native retail switch at `0x8f02–0x8f1e` selects near model DS:`406a` and
middle/far model `4132`, then changes the type to 33. The extracted preview has
broken structure, linework and the shared fire-particle primitive. Its original
impact-position change and random orientation are gameplay operations, not
baked into the local geometry preview. Both the radar and type-33 entries offer
the wreck state; the wreck does not keep rotating like a working dish.

The broader scan also recovered missing earlier code-referenced models, including
the yellow explosion stage and earlier radar wrecks. Shape comparisons identify
matches without borrowing unverified newer gameplay triggers. A further data-segment scan recovers six additional complete stored model
records per normal build, and seven in Other Worlds. These include linework,
polygons and disc effects; their original uses have not yet been traced, so
they are exposed as **Additional embedded geometry** rather than assigned
speculative gameplay names. Neutral geometry makes zero-colour records visible.
There are now **111 extracted models per normal-game engine and 112 in Other
Worlds**. The bounded code-reference audit finds no further complete eight-octant
model candidates among immediate AX/SI loads. That is not a claim about all
possible indirectly generated geometry.

## Executable promotional screens

The Promotional screens tab contains three distinct screens from `CC3D.COM`
and `CC3D1.COM`: an Other Worlds advertisement and two distribution/shareware
notices. One `.COM` is actually a packed MZ executable. All three are run in
isolated Unicorn memory until their first key wait or exit, with no DOS file I/O.
Their complete 80×25 character/attribute buffers and searchable transcriptions
are exported alongside colour PNG previews.

Previews use the VGA 8×16 font embedded in DOSBox 0.74-3, GPL-2.0-or-later, and
the standard text palette. The font is external to Corncob; original game text
and artwork retain their original authorship. The previews use eight-dot cells
and hide the hardware cursor rather than pretending to be exact captures of
every possible DOS text-mode display configuration.

## Generated sky and instrument graphics

The Sky & instruments tab includes an angular plot and complete native star
records, together with links to the existing original cockpit/HUD and SRATS
captures. The captures are reused in place, without extra PNG or video copies.

`tools/extract_renderer.py` executes the retail star initialisation loop at
`0x266a–0x2690`. It generates 80 points using the original PRNG and retains the
pre-existing bank anchor as well. Each record has three 32-bit coordinates and
a 16-bit marker. Stars are generated at Z=`0x08000000`; they are not loaded from
a sky bitmap. A small original loop detail is preserved: drawing consumes
records 0–79, while generation writes records 1–80. The angular plot is an
inspection aid, not an imitation of the original sky projection.

Instrument needles, digits, crosshair and rear view are drawn by engine code
over the already extracted cockpit mask. SRATS likewise generates its effect.
There is no additional image file to decode for those elements. The subsequent
[gameplay investigation](mission-rules.md#ending-experimental-aircraft-and-srats)
traces SRATS to the experimental-aircraft ascent and Earth-saved ending.
Instrument drawing and updates were subsequently implemented in the
[native reconstruction](https://github.com/Lost-Engines/corncob-cpp/blob/master/docs/reconstruction.md); they are not an unextracted asset pack.

## Reproduction and limits

Use Pillow, Unicorn and DOSBox; renderer extraction itself only needs Unicorn.
The existing audio tools have their own optional dependencies.

```sh
python3 tools/extract_renderer.py
python3 tools/extract_resources.py
python3 tools/compare_models.py
python3 tools/validate_remaining.py
python3 tools/validate_resources.py
python3 tools/validate_extended.py
python3 tools/validate_browser.py
```

The browser check additionally needs Playwright and Chromium. Verification checks
native high-score sums, sun settings, geometry switches, pilot masks, source
coverage and existing resource regressions. Complete file coverage means all
files are classified and known resources are exposed. It does not mean every
executable instruction, saved statistic, drawing convention or gameplay rule has
been reverse engineered. No additional known asset archive remains unopened.
