{
  "format": "tfx-launcher-runtime-tests-1",
  "scope": "Startup through the pilot-selection menu on isolated copies, plus a diagnostic child process capturing launcher interrupt vectors and environment. These are not complete mission or all-soundcard compatibility tests. Original installs and media were not modified.",
  "setup": {
    "dosbox": "0.74-3",
    "cycles": "fixed 150000",
    "memsize_mb": 32,
    "soundblaster": "sbpro2, A220 I7 D1 T4",
    "swap": 0,
    "control": 1,
    "stick": 0,
    "display": "private Xvfb with SDL_VIDEODRIVER=x11",
    "audio_output": "SDL_AUDIODRIVER=dummy",
    "cd_mount": "matching original cue/bin mounted as D: for each CD case"
  },
  "trials": [
    {
      "label": "native-early-long",
      "engine_and_data": "floppy_1993_11_loose",
      "launcher": "floppy_1993_11_loose",
      "native_control": true,
      "irqbase": null,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "native-late-long",
      "engine_and_data": "cd_1994_09",
      "launcher": "cd_1994_09",
      "native_control": true,
      "irqbase": 135,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "early-on-late-96-no-fx",
      "engine_and_data": "cd_1994_09",
      "launcher": "floppy_1993_11_loose",
      "native_control": false,
      "irqbase": 96,
      "soundfx": 0,
      "music": 1,
      "archive_adjustment": "none",
      "result": "Hardware change please install again",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "late-on-early-96-long",
      "engine_and_data": "floppy_1993_11_loose",
      "launcher": "cd_1994_09",
      "native_control": false,
      "irqbase": 96,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "early-cd-on-early-floppy",
      "engine_and_data": "floppy_1993_11_loose",
      "launcher": "cd_1993_12",
      "native_control": false,
      "irqbase": null,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "early-floppy-on-early-cd",
      "engine_and_data": "cd_1993_12",
      "launcher": "floppy_1993_11_loose",
      "native_control": false,
      "irqbase": null,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "Hardware change please install again",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "patched-floppy-on-early-floppy",
      "engine_and_data": "floppy_1993_11_loose",
      "launcher": "floppy_1994_03_archived",
      "native_control": false,
      "irqbase": 96,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "patched-floppy-on-september",
      "engine_and_data": "cd_1994_09",
      "launcher": "floppy_1994_03_archived",
      "native_control": false,
      "irqbase": 135,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "late-cd-on-patched-floppy",
      "engine_and_data": "floppy_1994_03_archived",
      "launcher": "cd_1994_09",
      "native_control": false,
      "irqbase": 135,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "early-cd-on-patched-floppy",
      "engine_and_data": "floppy_1994_03_archived",
      "launcher": "cd_1993_12",
      "native_control": false,
      "irqbase": 96,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "early-cd-on-march",
      "engine_and_data": "cd_1994_03",
      "launcher": "cd_1993_12",
      "native_control": false,
      "irqbase": 96,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "late-cd-on-march",
      "engine_and_data": "cd_1994_03",
      "launcher": "cd_1994_09",
      "native_control": false,
      "irqbase": 135,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "native-patched-floppy",
      "engine_and_data": "floppy_1994_03_archived",
      "launcher": "floppy_1994_03_archived",
      "native_control": true,
      "irqbase": 135,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "none",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "floppy-original-launcher-on-december-appended-stamp",
      "engine_and_data": "cd_1993_12",
      "launcher": "floppy_1993_11_loose",
      "native_control": false,
      "irqbase": 96,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "Appended 43b3ffff after the complete original CD archive; all original bytes preserved.",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "floppy-original-launcher-on-september-appended-stamp",
      "engine_and_data": "cd_1994_09",
      "launcher": "floppy_1993_11_loose",
      "native_control": false,
      "irqbase": 96,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "Appended 43b3ffff after the complete original CD archive; all original bytes preserved.",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    },
    {
      "label": "early-on-patched-floppy-restamped",
      "engine_and_data": "floppy_1994_03_archived",
      "launcher": "floppy_1993_11_loose",
      "native_control": false,
      "irqbase": 96,
      "soundfx": 1,
      "music": 1,
      "archive_adjustment": "Replaced existing four-byte floppy hardware trailer 03b1ffff with 43b3ffff; complete archive body unchanged.",
      "result": "pilot-selection menu reached",
      "observation": "12-second startup, then two Escape presses one second apart."
    }
  ],
  "interrupt_probe": {
    "method": "Temporary COM-format TFX.DAT writes its PSP, interrupt vector table and environment to PROBE.BIN; each original START.EXE launches it. IRQBASE=135, MUSIC=0, SOUNDFX=0. Source assembly retained in launcher-tests/probe.asm.",
    "results": [
      {
        "launcher": "floppy_1993_11_loose",
        "command_tail": "  demo",
        "vectors": {
          "0x60": "0466:09b4",
          "0x61": "0000:0000",
          "0x87": "0000:0000",
          "0x88": "0000:0000"
        },
        "environment": [
          "PATH=Z:\\",
          "COMSPEC=Z:\\COMMAND.COM",
          "BLASTER=A220 I7 D1 H5 T6",
          "DOS4G=NULLP",
          "DOS16M=^0x20",
          "DID=C:\\"
        ]
      },
      {
        "launcher": "cd_1993_12",
        "command_tail": "  demo",
        "vectors": {
          "0x60": "046a:09b4",
          "0x61": "0000:0000",
          "0x87": "0000:0000",
          "0x88": "0000:0000"
        },
        "environment": [
          "PATH=Z:\\",
          "COMSPEC=Z:\\COMMAND.COM",
          "BLASTER=A220 I7 D1 H5 T6",
          "DOS4G=NULLP",
          "DOS16M=^0x20",
          "DID=C:\\"
        ]
      },
      {
        "launcher": "floppy_1994_03_archived",
        "command_tail": "  demo",
        "vectors": {
          "0x60": "0000:0000",
          "0x61": "0000:0000",
          "0x87": "04ed:09b4",
          "0x88": "0000:0000"
        },
        "environment": [
          "PATH=Z:\\",
          "COMSPEC=Z:\\COMMAND.COM",
          "BLASTER=A220 I7 D1 H5 T6",
          "DID=C:\\"
        ]
      },
      {
        "launcher": "cd_1994_09",
        "command_tail": "  demo",
        "vectors": {
          "0x60": "0000:0000",
          "0x61": "0000:0000",
          "0x87": "04f5:09b4",
          "0x88": "0000:0000"
        },
        "environment": [
          "PATH=Z:\\",
          "COMSPEC=Z:\\COMMAND.COM",
          "BLASTER=A220 I7 D1 H5 T6",
          "DID=C:\\"
        ]
      }
    ]
  },
  "hardware_fingerprint_probe": {
    "stamp_hex": "43b3ffff",
    "cpu_class": 8,
    "fpu_class": 3,
    "bios_date": "01/01/92",
    "matches_installed_floppy_trailer": true,
    "method": "Unmodified START.EXE file bytes 0xa8b:0xc02 executed at their original CS offsets in a temporary COM wrapper inside DOSBox 0.74-3."
  },
  "excluded_experiments": "Initial CD tail-overwrite trials are excluded: a CD archive has no hardware trailer, so its last four bytes are index data. Included CD stamp tests append four bytes and preserve every original byte."
}
