{
  "schema_version": 1,
  "release": "orao-2026-wasm-v0.4.0",
  "prepared_on": "2026-10-19",
  "timezone": "Europe/Zagreb",
  "status": "Prepared incremental ZIP for upload; no remote deployment performed",
  "archive": "evil-appliances-orao-2026-wasm-v0.4.0-update.zip",
  "previous_release": "orao-2026-wasm-v0.3.0",
  "requires_previous_release": "orao-2026-wasm-v0.3.0",
  "scope": [
    "orao/",
    "reference/orao/"
  ],
  "whole_site_release": false,
  "emulator_version": "0.11.0",
  "emulator_revision": "ui-speed-1",
  "firmware_base": "0.10.0 / raster-1",
  "wasm_version": "0.4.0",
  "experimental": true,
  "abandonable": true,
  "new_trees": {
    "orao/versions/orao-2026-v0.11/": 105,
    "orao/prototypes/wasm-v04/": 19
  },
  "packaging": {
    "modified_files": 6,
    "added_files": 126,
    "zip_entries": 132,
    "unchanged_excluded": 1425,
    "deletions": 0,
    "complete_baseline_files": 1557,
    "complete_future_baseline": "orao-tests/orao-2026-release-baseline-wasm-v0.4.0.json",
    "whole_site_baseline_replaced": false
  },
  "changes": [
    "Packed RGBA presentation, small status snapshots, printer text and static DOM caches in JS v0.11",
    "Wasm active/halt candidates, reused opcode fetch and avoided known JS-only round-trips",
    "Native firmware, clocks, CPU/device behavior and all preceding archives preserved",
    "Nineteen JS versions in three carousel cards; v0.11 default; separate Wasm panel starts v0.4"
  ],
  "checks": {
    "nativeCPUCases": 8202,
    "decoderCases": 792,
    "nmosOpcodeCases": 6144,
    "nmosArithmeticCases": 524288,
    "nmosInterruptCases": 12,
    "presentationChecks": 6,
    "uiStateChecks": 11,
    "nativeGUIChecks": 11,
    "rasterCases": 64,
    "allNineteenJSAndFourWasmArchiveManifestsVerified": true,
    "pinnedBenchmarkedSourcesVerified": true,
    "deterministicBuildsVerified": true
  },
  "benchmark": {
    "ui": [
      {
        "name": "renderingMs",
        "oldMs": 923.2000000476837,
        "newMs": 230.39999997615814,
        "speedup": 4.006944445066045
      },
      {
        "name": "guiStatusMs",
        "oldMs": 80.60000002384186,
        "newMs": 0.5999999642372131,
        "speedup": 134.33334137996087
      },
      {
        "name": "snapshotMs",
        "oldMs": 76.19999998807907,
        "newMs": 0.3999999761581421,
        "speedup": 190.5000113248832
      }
    ],
    "wasm": [
      {
        "name": "boot",
        "oldMs": 7562.1034,
        "newMs": 7013.4627,
        "speedup": 1.078226793734855
      },
      {
        "name": "typing",
        "oldMs": 3865.2814,
        "newMs": 3591.2923,
        "speedup": 1.0762926203472771
      },
      {
        "name": "pointer",
        "oldMs": 549.4112999999998,
        "newMs": 496.3030999999992,
        "speedup": 1.1070075927391965
      },
      {
        "name": "drag",
        "oldMs": 5835.242,
        "newMs": 5583.144100000001,
        "speedup": 1.0451533930496257
      },
      {
        "name": "menus",
        "oldMs": 1853.435300000001,
        "newMs": 1604.7796000000017,
        "speedup": 1.154946947231881
      },
      {
        "name": "1-guests",
        "oldMs": 2194.484199999999,
        "newMs": 1914.0953999999983,
        "speedup": 1.146486324558327
      },
      {
        "name": "2-guests",
        "oldMs": 2084.714,
        "newMs": 1915.3037999999979,
        "speedup": 1.0884508243548634
      }
    ],
    "ui_method": "Three new pages per version, alternating order, sequential. Paused synthetic 1024x768 palette fixture; 160 full uploads; 400 GUI status refreshes; 400 snapshots with 16384 printer bytes. Includes putImageData call cost, excludes deferred browser compositing, CPU simulation and gameplay. Exact browser RGBA hashes match.",
    "wasm_method": "Three fresh Node/V8 processes per engine, sequential and alternating order; identical inputs, exact absolute master/bus/wait clocks, core registers/cycles/deadlines, full RAM/video/frame hashes and Orao32 register/memory/sound state at every stage. Compilation/initialization, DOM presentation, actual audio playback and realtime limiting excluded. Guest stages cover 0.5 virtual seconds per reservation, not whole-game throughput. Exploratory/profile samples excluded."
  },
  "limits": [
    "Presentation gain is an isolated paused synthetic UI measurement, not CPU/gameplay acceleration",
    "Wasm comparisons exclude initialization, compilation, DOM, actual audio playback and realtime limiting",
    "Guest stages cover 0.5 virtual seconds per reservation, not complete games",
    "Wasm remains experimental and removable; JS reference remains available",
    "Engine switching reloads RAM/media; download IMG before switching or closing"
  ],
  "preserved": [
    "1425 unchanged preceding files, all eighteen prior JS versions and three Wasm prototypes",
    "Original transcript, ROM, tapes, sources and cassette loader/UI",
    "Every previous release ZIP and complete comparison baseline"
  ]
}
