{
  "title": "Harbinger 2: The Void",
  "edition": "Complete Intro V2 and A/B/C V5",
  "platform": "sam",
  "conversion_credit": "2026 by Outsoftware using ChatGPT & Codex",
  "source": {
    "url": "https://cthoniangodkiller.wordpress.com/",
    "archive_url": "https://spectrumcomputing.co.uk/entry/32225/ZX-Spectrum/Harbinger_2_The_Void",
    "evidence_files": [
      "resume1044/harbinger-triage/void.html",
      "resume1130/harbinger-void/REPORT.json"
    ],
    "source_sha256": null,
    "free_basis": "Saved Spectrum Computing32225 entry lists complete128K Intro andSideA/B/C as Available/Freeware. Four disks are one game.",
    "licence": "Freeware, copyrighted; no additional derivative licence asserted",
    "licence_url": null,
    "availability_is_not_a_new_licence": true
  },
  "limits": [
    "No full-game completion, every-room/ending, entire-game cadence, exhaustive indirect-flow/ROM independence, or physical SAM claim.",
    "Gameplay comparison is initial neutral15/25complete four-scan cycles with source stable callsites and native matching clusters; no fullRAM/RNG identity. B laterhandoff index128 is outside prefix. V4~9percent duration deficit is superseded only for this measured V5 prefix.",
    "All original source music/SFX commands preserved; native route exercises bounded subset. Do not call full3128component catalogue an allmusic/allSFX native run.",
    "AY/SAA tone limits, envelope2048 +12.9984percent clock clamp, noise polynomial/clock/amplitude differences remain explicit. No AY PCM identity. Phase comparison uses actual SAA model with synthetic frame-level events, not intra-call cycle-identical waveform.",
    "LoaderBREAK shared unchanged AUTO inherited from exact V4A; B/C and V5 not independently BREAK-boot-tested by this reviewer.",
    "Reviewer performed no emulator lifecycle runs, guest state injection, publication or ready promotion. Root acceptance remains separate.",
    "Source six6912byteSCR payloads and exactnativeMGT screenpayloads are byteidentical. CapturednativePNGs independently prove renderedgeometry for allsix, with platformRGBmapping; they do not prove nativeRAMbyteidentity.",
    "Numeric0 and50 ordinaryinput paths qualified; retainedPAUSEA aftereachscreen. TimedPNG snapshots are50framesapart, not instructionlevel pause entry/exit traces. Diskload duration differsfrom cassette; no source loadingtime equivalence claimed.",
    "FinalSTOP aftersixthpause is an explicitEOF adaptation. The source requested a nonexistent seventh tapeimage; destination returnsBASIC and changesstatusrows after fullsixthpause. Do notclaim finalraster foreveridentical.",
    "Originalintro has onlyBASIC+sixSCREEN blocks, no machinecode/audio; no music was removed from thisintro. GameplayA/B/C V5review belongsotherreviewers.",
    "Oldcandidate-intro and timeoutINCOMPLETE runs excluded. Onlyfinalzero/fifty andloader-break-intro exacthashrecords used.",
    "AY and SAA oscillator/noise polynomial/amplitude laws differ. No PCMidentity or realSAM hardware/endings/fullgame claim.",
    "Toneperiod13 target8525.96Hz exceeds7812.5Hz:−8.3681%,5ticks100ms originaltonalSFX3. Tone4094 target27.0732Hz below30.5773Hz:+12.9432%; originalSFX9/17 clips explicitly counted in frequencyreport.",
    "Envelopeperiod2048 clocktarget27.05994Hz below30.57730Hz:+12.9984%; three sourcepercussionticks~60ms. Other observed highenvelopeclocks maxabsolute0.100017%. All16decaylevels and holdzero retained.",
    "Original Aperiod0vol15toneONnoiseOFF receives exact bounded constant-mean DC treatment; this is not a generalultrasound solution.",
    "ROM/source audit bounded10.4s perpart and finalnative traversedroutes. Source decoder omits stack/I/O operands; native passiveactual memory audits and fixedmirror checks provide separate scoped evidence. No globalindirect-flow/ROMindependence assertion.",
    "IRQregularinterval119808cycles; longinitialization/decompression/controlhandoff gaps retained and separately counted, not claimed alloneframe. Gameplaycadence gate is distinct.",
    "Root viewed the final V5 composite: natural traversal, end prompts and restarted gameplay; V4A/Intro loader images remain labeled inherited proof. No new native run was performed by root.",
    "Intro V2 plus A/B/C V5 are four media for one complete sourced game. The six-screen Intro ends with explicit STOP after the final PAUSE, adapting source tape EOF.",
    "BASIC BREAK/centered-credit proof for gameplay is inherited through unchanged AUTO from exact V4A; B/C/V5 were not each boot-tested again. No global loader-phase claim."
  ],
  "media": [
    {
      "filename": "Harbinger_2_The_Void_Intro (Mode 1).mgt",
      "sha256": "c86dee427adf6d329f75795499b7b9c580f67c2e1374f4ddffe9fe9b3f90feb8",
      "part": "Intro"
    },
    {
      "filename": "Harbinger_2_The_Void_A (Mode 1).mgt",
      "sha256": "ad12e04a00d3fb8b7d7555fe219f6231f1927eaa4888f9f5338b97143ea47d76",
      "part": "A"
    },
    {
      "filename": "Harbinger_2_The_Void_B (Mode 1).mgt",
      "sha256": "5aa0b9de1342a8f0ad7c9838cd0151c945b043811e486ff91037cf4ae6be266f",
      "part": "B"
    },
    {
      "filename": "Harbinger_2_The_Void_C (Mode 1).mgt",
      "sha256": "790d0b128b9c9990a882bbf11e47f8c1f2650b68a7e820f1f18910eb496857f6",
      "part": "C"
    }
  ]
}
