{
  "title": "Harbinger Convergence",
  "edition": "Complete source A and B",
  "platform": "sam",
  "conversion_credit": "2026 by Outsoftware using ChatGPT & Codex",
  "source": {
    "url": "https://cthoniangodkiller.wordpress.com/",
    "archive_url": "https://spectrumcomputing.co.uk/entry/30313/ZX-Spectrum/Harbinger_Convergence",
    "evidence_files": [
      "resume1044/harbinger-triage/convergence.html",
      "resume1044/harbinger-convergence/SOURCES-MANIFEST.json"
    ],
    "source_sha256": null,
    "free_basis": "Saved Spectrum Computing30313 entry marks complete128K SideA/SideB Available and Freeware. Original publisherAPSIS; two disks form one game.",
    "licence": "Freeware, copyrighted; no additional derivative licence asserted",
    "licence_url": null,
    "availability_is_not_a_new_licence": true
  },
  "limits": [
    "Final Fast2 lifecycle regression A4070/B5330 passes observed transition/death/menu/restart on exact hashes. Game-state identity is established only for the separately aligned61-prefix source/native window. Natural B death/menu/restart timing differs from DC, documented explicitly.",
    "Source uses exact unmodified real-TAP-loader entry snapshots for Spectrum diagnostics; SAM always coldMGT.",
    "Residual measured game-rate differences -1.386872%A and-0.984731%B are explicit; no invented acceptance threshold or artificial global timing compensation.",
    "R differs with optimized instruction stream and is excluded from componentABI, as in prior adapter contract. All captured game-variable prefixes remained exact; whole-game R-dependent effects are not claimed ruled out.",
    "First fast1 component harness was interrupted without verdict; Fast2 directly compares to frozenDC and supersedes it.",
    "Natural sourceA exploratory longinput reacheddeath atupdate76 andwaitedforrelease; retained harnessnegative. Final61 test uses boundedfour-updateholds and succeeds.",
    "AY/SAA amplitude quantization and noise spectrum/waveform differ; no PCM or physical hardware equivalence.",
    "Tone period13 remains -8.368106% (sourceeffect3 five ticks,99.958ms); period4094 remains+12.943240% (effects9/17 fourteen ticks each,279.882ms).",
    "DC models the nonzero mean of period0 carrier rather than the110837.5Hz carrier. Exact predicate avoids A-noise and B/C envelopes.",
    "All4096LUT identity is not claimed: inherited ROM gateways and six rounding bytes differ from mathematical pure table. Every used lookup, including muted voices, was checked; zero collisions in complete source/component and reviewed native domains.",
    "Two SAM disks are one complete sourced game, not two new titles. A4070/B5330 cover chosen natural paths, not full game endings or hardware.",
    "A/B keyboard commands and release verified on natural paths; no native joystick compatibility claim is added.",
    "Source song1 covers all three active AY voices in component tests; tested native routes have audible A/B with C zero. No claim three audible native voices.",
    "Noise periods1/2/3 saturate at SAA31250Hz versus AY110837.5/55418.75/36945.833Hz. All channel content retained; physical noise spectrum differs.",
    "Final Fast2 B GameOver observed3700 versus DC4100; fixed frame keys therefore reach menu/restart at different times. Source-aligned61state prefixes exact; no whole-route equality claimed.",
    "ROM, data, writes and paging audit bounded to measured source/native paths; source legacy gateways preserved, not globally proven independent."
  ],
  "media": [
    {
      "filename": "Harbinger_Convergence_Side_A (Mode 1).mgt",
      "sha256": "1d48f70f4a0a3922618afaf225ffbea9f6341061e9f1d466b262aa579acc32d7",
      "part": "A"
    },
    {
      "filename": "Harbinger_Convergence_Side_B (Mode 1).mgt",
      "sha256": "8dded994a6ae6fdb60e915ef374a7e69ad039df6bee708dc26558262069e817b",
      "part": "B"
    }
  ]
}
