Investigation and limits · Shared city explorer · Shared model browser · Cockpits and effects sheets · Lossless inventory
Release labels follow the supplied directory names. The early README is dated 21 May 1993, but accompanying material includes a 1995 antivirus report and a Macintosh Word document. These are not independently established build dates.
Use the same map/type/state controls as retail. Surface A/B are deliberately neutral names. Colours come from demo sheets; modern preview projection and retail-derived placement/state conventions remain inspection assumptions. Unsupported standalone definitions are marked; no guessed geometry replaces them.
Green: added occupied cell. Red: removed occupied cell. Yellow: changed raw type ID. Grey: unchanged occupied cell. Type IDs can mean different objects across banks; identical IDs do not prove identical models.
1993 X/X1 startup workaround verified: the sound-probe timer wait can be bypassed using the same missing call as X2. Both patched builds enter the first saved game. Instructions, exact patches and evidence.
Read-only inventory; names are bounded by their first null byte. Unknown record bytes are preserved in the original files. Do not use the retail save editor for these different layouts.
Original script executed with a synthetic clock. Times are script-clock units, not independently calibrated seconds. These are timed player-script messages, not proximity triggers.
References include map placements, every stored scenario setup, player configurations, geometry aliases and city damage/alternate chains. “No reference” does not exclude executable spawns or later script callbacks. Projectile definitions are a known example of dynamically used models.
| Model | Faces | Placements | Evidence |
|---|
Thirty native checks verify the primary/follow-up selection transitions and candidate gates. The 1995 follow-up additionally requires the candidate's exact primary-capsule definition; the 1993 handler only checks for a nonzero pointer. This does not establish that normal gameplay supplies an incorrect candidate. Checks and scope
Native hit-result checks also show the 1995 Skimma chirp on building/object hits, but not misses or ground-plane interception; 1993 includes the ground-plane result. Damage dealt is not tested by this cue. The 1995 chargeable-weapon release executes 256 port-61 bit-1 toggles with progressively shorter software delays (32,896 writes). Twelve native firing-dispatch traces found no sound-device-selection gate on this path. Actual audibility depends on the speaker/PIT state and emulated CPU timing. Similar loops occur elsewhere in both demos, including a repeating terminal loop; player-facing effect versus development feedback remains unresolved. The retail chargeable release omits this block. Port traces and scope
Estimated 386 instruction timings, with timer output assumed high. Listening previews have a quiet, illustrative speaker response (150 Hz–8 kHz); they are reconstructions, not recordings. The extra I/O wait profile shows timing sensitivity. Timing assumptions and exact edge times
Listening WAV · Electrical drive WAV (unipolar, no speaker response)
Original player-script scheduling; seconds use the nominal ~500 Hz game clock. Vehicle tracks execute the 1995 ground-route interpreter, independently of combat and collision. Lines join phase-start positions; they do not show the full turning curve. Traces stop at scheduled destruction or the first repeated route address.
Player timelines and beacon runs · Native vehicle, hit-cue and impact checks
195 records reduce to 17 distinct byte sequences; each release has 90 copies of one empty placeholder. This view decodes setup objects and scripts from their stored entry points. Conditional branches, stopped-script continuations and normal menu reachability remain explicit. Beacon run coordinates are city cells; horizontal and vertical are map axes.
These formats predate the retail multilingual header and script opcode set. Record boundaries, configuration bytes and relative entry pointers are exported. Text below is a printable-run index, including possible formatting bytes; it is not a completed briefing/message timeline or a claim that all records are reachable.
The selection code retains the *3 comparison. Use Shift+8, then number-row 3. The original matcher was executed independently; case and punctuation matter. The two short handlers below really are return-only stubs. An active patch does not by itself establish its in-flight effect.
| Exact phrase | Handler | Native instructions |
|---|
Native matching/handler checks
Native weapon-selector, boost and Z checks · Early scenario weapon-mask checks · Jason/Z numeric patch checks
Craft-specific engine sound gates
All 83 event slots, including inactive ones. Held controls (steering, fire, brakes and look-around) use separate input paths: absence from this table does not mean a key does nothing. The first instructions are evidence, not automatic descriptions of complete behaviour. See the investigation for explained differences.
| Key | Demo event | Retail event | Handler / first instructions |
|---|
The original movement kernels match on 1,000 horizontal and 1,000 vertical test vectors per release. The 1993 vertical-target calculation differs in downward-pitch and braking behaviour; the tested 1995 and retail target slices agree. Early velocity values reside in self-modifying instructions; later builds store them in object records. These isolated checks do not establish identical complete flight behaviour or real-time speed.
Native flight comparison and numeric examples · Interpretation and limits
Boost consumption also matches across the three builds: a steady target contribution until the last partial update. Retail increases boost-reserve recharge compared with both demos. Engine-off gates incoming beacon energy but does not directly cancel existing boost.
Native boost, engine-gate and recharge checks · Equations and limits
The demos share angular integration helpers; retail changes rounding. The bounded angular-error response changes in every release. All three program the same nominal 500 Hz PIT timer.
Native steering, launch and timer checks · Complete trace data
These traces run the original steady Caero or Skimma callbacks with a constant beacon supplier and common synthetic starting values. They exclude collision, input sampling and mission setup. Positions and angles are internal units, not metres or degrees; update counts are not rendered frames.
| Update | X | Y | Height | Forward velocity | Vertical velocity | Heading | Pitch | Roll | Boost |
|---|
Actual craft parameters and elapsed-time checks · Skimma trace data · Underground smoothing comparisons · Interpretation and limits
The complete decoded X/X1/X2 image audit leaves no unexplained bytes after rebasing and explicit padding changes. The substantive differences are two startup probe calls; no further gameplay revision was identified. Full address-normalization audit · Findings and limits.
These are the two-letter keys stored in the executable, not reconstructed long option names. README spellings can be stale.
Macintosh Word document printable runs · Disassembly, key tables and X1/X2 differences · Native vertex checks