CORNCOB Research archive

Final resource extraction pass

Open the browser · File coverage · Native checks.

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 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 traces SRATS to the experimental-aircraft ascent and Earth-saved ending. Instrument drawing and updates were subsequently implemented in the native reconstruction; 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.

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.