[
  {
    "number": 1,
    "ids": [
      "RI5",
      "RI9"
    ],
    "scope": "Localization",
    "evidence": "Released source",
    "feature": "Text-keyed translation packs and layered glyph fallback; basic RTL now present",
    "assessment": "RIPPS2 uses English-text hashes with fallback and adds Arabic/Persian joining/bidi plus Lao marks/wrapping. RiptOPL remains positional; printf-format validation already exists and is not counted as missing.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0104-ripps2-languages.patch",
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084"
    ],
    "states": [
      "partial",
      "shipped"
    ],
    "remaining_ids": [
      "RI5"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI5",
        "state": "partial",
        "assessment": "Arabic/Persian shaping, bidi and CJK/Thai/Lao line breaking are present (RI9). The remaining difference is RIPPS2 text-keyed/version-tolerant translation packs and layered per-glyph fallback; positional translation validation is already present.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "RI9",
        "state": "shipped",
        "assessment": "Arabic/Persian shaping and right-to-left lines plus CJK/Thai/Lao line breaks were merged in both editions. This is source parity; font coverage and real-console language acceptance remain separate.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 2,
    "ids": [
      "OH1",
      "OH12"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Declarative HTML/CSS flexbox compilation and reusable C99 console UI runtime",
    "assessment": "OPHTML compiles layouts to a bounded zero-allocation GS command list and publishes a reusable launcher-core archive; RiptOPL uses its existing theme configuration engine.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/tree/03a5d56f724055f4d46e0eaf44806e95f0202cb1/packages/layout",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/runtime/ps2ui.c",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/console/ophtml_console.h",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/examples/console-min/Makefile"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "OH1",
      "OH12"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "OH1",
        "state": "tracked",
        "assessment": "Consolidated #2 OPHTML compiles layouts to a bounded zero-allocation GS command list and publishes a reusable launcher-core archive; RiptOPL uses its existing theme configuration engine. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "OH12",
        "state": "tracked",
        "assessment": "Consolidated #2 OPHTML compiles layouts to a bounded zero-allocation GS command list and publishes a reusable launcher-core archive; RiptOPL uses its existing theme configuration engine. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 3,
    "ids": [
      "OH2"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Pre-resolved pairwise HarfBuzz kerning",
    "assessment": "Font shaping/kerning data is prepared off-console for EE use; separate from having UTF-8 fonts.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/packages/baker/ps2ui_bake/fontgen.py",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/runtime/ps2ui.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "OH2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "OH2",
        "state": "tracked",
        "assessment": "Consolidated #3 Font shaping/kerning data is prepared off-console for EE use; separate from having UTF-8 fonts. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 4,
    "ids": [
      "OH3"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Palette-index theme switching without texture re-upload",
    "assessment": "Specific instant color-scheme mechanism rather than ordinary theme switching.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/runtime/ps2ui.h",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/runtime/ps2ui.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "OH3"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "OH3",
        "state": "tracked",
        "assessment": "Consolidated #4 Specific instant color-scheme mechanism rather than ordinary theme switching. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 5,
    "ids": [
      "OH4"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Runtime 2D layout-coordinate offsets for animated expansion",
    "assessment": "OPHTML runtime layout primitive, beyond RiptOPL's element-specific carousel/list animations.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/runtime/ps2ui.c",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/BACKLOG.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "OH4"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "OH4",
        "state": "tracked",
        "assessment": "Consolidated #5 OPHTML runtime layout primitive, beyond RiptOPL's element-specific carousel/list animations. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 6,
    "ids": [
      "OH5"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Focus-subtree visibility masking with automatic navigation bypass",
    "assessment": "A coordinated layout/focus-tree mechanism, not simply hiding one image.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/runtime/ps2ui.c",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/BACKLOG.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "OH5"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "OH5",
        "state": "tracked",
        "assessment": "Consolidated #6 A coordinated layout/focus-tree mechanism, not simply hiding one image. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 7,
    "ids": [
      "OH10",
      "OH11"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Bounded binary UI loading and compiler budgets for declarative themes",
    "assessment": "Fuzzed .uib parsing, alignment checks and hard input/layout safety limits for OPHTML's format. Different architecture; not proof of an exploitable RiptOPL theme bug.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/runtime/tests/fuzz_load.c",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/runtime/ps2ui.c",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/packages/baker/ps2ui_bake/caps.py",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/packages/layout/src/limits.js"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "OH10",
      "OH11"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "OH10",
        "state": "tracked",
        "assessment": "Consolidated #7 Fuzzed .uib parsing, alignment checks and hard input/layout safety limits for OPHTML's format. Different architecture; not proof of an exploitable RiptOPL theme bug. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "OH11",
        "state": "tracked",
        "assessment": "Consolidated #7 Fuzzed .uib parsing, alignment checks and hard input/layout safety limits for OPHTML's format. Different architecture; not proof of an exploitable RiptOPL theme bug. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 8,
    "ids": [
      "P5",
      "RI46"
    ],
    "scope": "Theme / UI",
    "evidence": "Partial",
    "feature": "Animated game-launch presentation beyond black fade",
    "assessment": "RiptOPL has launch/video black fades; PS2-Launcher and Titan have their own staged launch animations. Retained as optional presentation, not missing handoff correctness.",
    "sources": [
      "https://github.com/Irfanlesnar/PS2-Launcher/blob/main/src/opl.c",
      "https://github.com/akilluminati47/RIPPS2/blob/b682a93cfffc9f3481a0f6dfd7b4e45a88b5be86/elf/patches/0122-ripps2-launch-disc-spin.patch"
    ],
    "states": [
      "partial",
      "candidate"
    ],
    "remaining_ids": [
      "P5",
      "RI46"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "P5",
        "state": "partial",
        "assessment": "Consolidated #8 RiptOPL has launch/video black fades; PS2-Launcher and Titan have their own staged launch animations. Retained as optional presentation, not missing handoff correctness. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "RI46",
        "state": "candidate",
        "assessment": "Spin/zoom launch-disc support is now in released build124; the local loader has launch fades but not this exact theme transition. The separate b125 branch fixes the built-in theme launch_disc key because its replacement config had omitted spin. Distinguish renderer support from packaged/default-theme activation.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 9,
    "ids": [
      "K1"
    ],
    "scope": "Diagnostics",
    "evidence": "Historical source",
    "feature": "Write debug logs to a BDM storage device",
    "assessment": "Historical uOPL logging output, distinct from RiptOPL's network/debug logging.",
    "sources": [
      "https://github.com/slimpuggamer/uOPL/blob/uOPL-1/include/ioman.h",
      "https://github.com/slimpuggamer/uOPL/blob/uOPL-1/src/ioman.c"
    ],
    "states": [
      "historical"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "K1",
        "state": "historical",
        "assessment": "Consolidated #9 Historical uOPL logging output, distinct from RiptOPL's network/debug logging. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 10,
    "ids": [
      "LU8",
      "LU43"
    ],
    "scope": "Core",
    "evidence": "Source",
    "feature": "Neutrino in-game return/IGR",
    "assessment": "RiptOPL has OPL-core IGR; the bundled Neutrino does not implement LUNA's held-combo return path.",
    "sources": [
      "https://github.com/dnunezx/LUNA",
      "https://github.com/dnunezx/neutrino-luna/blob/02cbf4f2a0bafcba71904f7d9d8fcda6ddd65f15/ee/ee_core/src/padhook.c",
      "https://github.com/dnunezx/neutrino-luna/blob/02cbf4f2a0bafcba71904f7d9d8fcda6ddd65f15/ee/ee_core/src/luna_igr_rpc.c",
      "https://github.com/dnunezx/neutrino-luna/blob/02cbf4f2a0bafcba71904f7d9d8fcda6ddd65f15/iop/cdvdfsv/src/cdvdfsv.c",
      "https://github.com/NathanNeurotic/RiptOPL/blob/rebuild/main/docs/IGR.md",
      "https://github.com/dnunezx/nhddl-luna/blob/f640a4e8cfd4c91579af4c4faf9246261e3536d7/src/devices/mmce.c",
      "https://github.com/dnunezx/neutrino-luna/blob/fff99d9828c287a7328958668ecd25b1f17ea601/ee/loader/src/mmce.c",
      "https://github.com/dnunezx/Open-PS2-Loader/blob/c533f939195847df1cd4d905f089aeb07300c72e/ee_core/src/padhook.c"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "LU8",
      "LU43"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU8",
        "state": "partial",
        "assessment": "Standard kits retain ordinary upstream Neutrino and no loader-provided LUNA held-combo return integration. RA kits separately ship ORBIT v1.0.2 with an achievement agent; that handoff alone does not establish the LUNA return/restore contract. Existing OPL-core IGR and its new optional beta panel are separate from Neutrino.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      },
      {
        "id": "LU43",
        "state": "partial",
        "assessment": "LUNA now defaults physical-MMCE switching Off, separates it from storage scanning and carries accepted-slot bits into both native and its matched Neutrino IGR. Local GameID, boot-path protection and selectable native IGR slots already exist. The remaining Neutrino return contract relates to LU8, not absence of generic MMCE support. MX4SIO/SIO2 exclusions and firmware timing differ.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 11,
    "ids": [
      "LU7"
    ],
    "scope": "Core",
    "evidence": "Source",
    "feature": "Coordinated Neutrino power-button shutdown",
    "assessment": "Optical-work drain and DEV9 shutdown on the physical power event; separate from the OPL-core power path.",
    "sources": [
      "https://github.com/dnunezx/LUNA",
      "https://github.com/dnunezx/neutrino-luna/blob/02cbf4f2a0bafcba71904f7d9d8fcda6ddd65f15/iop/cdvdfsv/src/cdvdfsv.c",
      "https://github.com/NathanNeurotic/neutrino/blob/master/iop/cdvdfsv/src/cdvdfsv.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "LU7"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU7",
        "state": "tracked",
        "assessment": "Consolidated #11 Optical-work drain and DEV9 shutdown on the physical power event; separate from the OPL-core power path. source 1 · source 2 · source 3",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 12,
    "ids": [
      "LU11",
      "LU35"
    ],
    "scope": "Storage",
    "evidence": "Partial",
    "feature": "Neutrino VMC backing and management for APA/PFS games",
    "assessment": "RiptOPL supports native-core VMC on APA, but deliberately drops Neutrino APA VMC arguments. LUNA's mapped backing has geometry and fragment limits; save/reload testing remains necessary.",
    "sources": [
      "https://github.com/dnunezx/neutrino-luna/blob/02cbf4f2a0bafcba71904f7d9d8fcda6ddd65f15/ee/loader/src/pfs_vmc.c",
      "https://github.com/dnunezx/neutrino-luna/blob/02cbf4f2a0bafcba71904f7d9d8fcda6ddd65f15/ee/loader/src/main.c",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/9ef8d643a739d88a4f4b5fd055a209d0b27299c4/docs/NEUTRINO.md",
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md",
      "https://github.com/dnunezx/nhddl-luna/blob/f640a4e8cfd4c91579af4c4faf9246261e3536d7/src/vmc_storage.c"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "LU11",
      "LU35"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU11",
        "state": "partial",
        "assessment": "Consolidated #12 RiptOPL supports native-core VMC on APA, but deliberately drops Neutrino APA VMC arguments. LUNA's mapped backing has geometry and fragment limits; save/reload testing remains necessary. source 1 · source 2 · source 3",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU35",
        "state": "partial",
        "assessment": "LUNA APA/PFS VMC management is now integrated into its shared PS1/PS2 manager. The local native-core VMC path already supports APA; local Neutrino APA backing remains deliberately constrained. Do not copy save mappings without geometry, fragment and recovery verification.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 13,
    "ids": [
      "LU12",
      "LU34",
      "TV7"
    ],
    "scope": "PS1",
    "evidence": "Source / claim",
    "feature": "Grouped PS1 disc sets, starting-disc picker and in-game swaps",
    "assessment": "LUNA implements ordered two-to-four-VCD sets and swaps in its matching runtime; FastLoader claims an Ember starting-disc picker. RiptOPL's ordinary PS1 listing is already present.",
    "sources": [
      "https://github.com/dnunezx/nhddl-luna/blob/127d012b07322dc0805ce62f877e5ba5e8cd6dbc/src/psxcore_discset.c",
      "https://github.com/NathanNeurotic/RiptOPL/blob/rebuild/main/docs/VCD.md",
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md",
      "https://github.com/Kyllemn/PS2TVCRT/blob/42c33b5be94cfa990f4a6f1281d0596922d20a46/README.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "LU12",
      "LU34",
      "TV7"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU12",
        "state": "tracked",
        "assessment": "Consolidated #13 LUNA implements ordered two-to-four-VCD sets and swaps in its matching runtime; FastLoader claims an Ember starting-disc picker. RiptOPL's ordinary PS1 listing is already present. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU34",
        "state": "tracked",
        "assessment": "Consolidated #13 LUNA implements ordered two-to-four-VCD sets and swaps in its matching runtime; FastLoader claims an Ember starting-disc picker. RiptOPL's ordinary PS1 listing is already present. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "TV7",
        "state": "tracked",
        "assessment": "Consolidated #13 LUNA implements ordered two-to-four-VCD sets and swaps in its matching runtime; FastLoader claims an Ember starting-disc picker. RiptOPL's ordinary PS1 listing is already present. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 14,
    "ids": [
      "LU13",
      "LU33",
      "LU44"
    ],
    "scope": "PS1 saves",
    "evidence": "Source",
    "feature": "Unified PS1/PS2 whole-card lifecycle, independent slot assignment and recovery",
    "assessment": "The missing capability is the integrated pair-management lifecycle, beyond existing POPStarter/Ember saves and basic card creation.",
    "sources": [
      "https://github.com/dnunezx/nhddl-luna/blob/127d012b07322dc0805ce62f877e5ba5e8cd6dbc/src/psxcore_vmc.c",
      "https://github.com/dnunezx/nhddl-luna/blob/f640a4e8cfd4c91579af4c4faf9246261e3536d7/src/vmc_storage.c",
      "https://github.com/dnunezx/nhddl-luna/blob/f640a4e8cfd4c91579af4c4faf9246261e3536d7/src/ui/vmc_manager.inc",
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "LU13",
      "LU33",
      "LU44"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU13",
        "state": "partial",
        "assessment": "Current LUNA now uses one PS1/PS2 VMC lifecycle with Create/Assign/Duplicate/Import/Export/Back Up/Restore/Recover, independent PS1 slot paths, staged whole-card copies and launch recovery gates. Local creation, assignment and the VMC Saves browser overlap, but are not this whole-card lifecycle. Upstream builds/tests are reported evidence, not local hardware acceptance.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "LU33",
        "state": "partial",
        "assessment": "Current LUNA now uses one PS1/PS2 VMC lifecycle with Create/Assign/Duplicate/Import/Export/Back Up/Restore/Recover, independent PS1 slot paths, staged whole-card copies and launch recovery gates. Local creation, assignment and the VMC Saves browser overlap, but are not this whole-card lifecycle. Upstream builds/tests are reported evidence, not local hardware acceptance.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "LU44",
        "state": "partial",
        "assessment": "Current source unifies raw-image format validation, staged verified copies, backups, replacement/recovery and independent PS1 slot assignment. Local VMC create/assign and Saves browsing overlap but do not establish this full lifecycle. Extends LU13/LU33/LU35; count the shared family once.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 15,
    "ids": [
      "RI1",
      "PX21"
    ],
    "scope": "Save tools",
    "evidence": "Source",
    "feature": "PSU and PS1 card-pair operations beyond the merged VMC Saves browser",
    "assessment": "Integrated VMC-as-folder/PSU tools and confirmed absent-destination PS1 pair copies; RiptOPL can create/assign cards but does not expose these save-browser operations.",
    "sources": [
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084",
      "https://github.com/akilluminati47/RIPPS2/blob/main/elf/patches/0098-ripps2-build98-memory-files.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/main/README.md",
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "states": [
      "partial",
      "tracked"
    ],
    "remaining_ids": [
      "RI1",
      "PX21"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI1",
        "state": "partial",
        "assessment": "Both editions have a VMC Saves page: browse a card image, copy a save out/in and delete. PSU import/export and PS1 card-pair lifecycle are not provided by this page. Preserve raw/ECC image and write-safety boundaries.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "PX21",
        "state": "tracked",
        "assessment": "Consolidated #15 Integrated VMC-as-folder/PSU tools and confirmed absent-destination PS1 pair copies; RiptOPL can create/assign cards but does not expose these save-browser operations. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 16,
    "ids": [
      "RI2",
      "B5"
    ],
    "scope": "Save tools",
    "evidence": "Source / claim",
    "feature": "Physical memory-card backup, restore, format and repair UI",
    "assessment": "Other shells integrate these tools. Optional extension with destructive operations, rather than a missing ability to save a game.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/main/elf/patches/0086-ripps2-build86-card-manager-neutrino-logo-first.patch",
      "https://boliviaos.site/",
      "https://github.com/ffgriever-pl/Memory-Card-Annihilator"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "RI2",
      "B5"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI2",
        "state": "tracked",
        "assessment": "Consolidated #16 Other shells integrate these tools. Optional extension with destructive operations, rather than a missing ability to save a game. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "B5",
        "state": "tracked",
        "assessment": "Consolidated #16 Other shells integrate these tools. Optional extension with destructive operations, rather than a missing ability to save a game. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 17,
    "ids": [
      "RI3",
      "T3",
      "RI12",
      "LU15"
    ],
    "scope": "In-game UI",
    "evidence": "Experimental",
    "feature": "OPL-core beta actions menu now present; other runtimes and pages differ",
    "assessment": "Both editions now have the RIPPS2-derived beta OPL-core menu with pause/resume, live cheat selection, exit and power off (#184/#1155). It defaults off, has flavour/framebuffer limits and is excluded from RA/IGS/freeze/debug variants. RIPPS2 Screenshot/Achievements pages, Neutrino and PS1 return menus remain distinct. No console acceptance.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0108-ripps2-ripshot.patch",
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/history/imported-root-artifacts/TITAN_SMART_IGR.md",
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0106-ripps2-poweroff-star.patch",
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/tools/build-luna-psxcore.sh",
      "https://github.com/dnunezx/PSXCore/blob/360a788ff7bb7c6853702a8edec6860cae49c0a2/runtime/igrloader/main.c",
      "https://github.com/NathanNeurotic/RiptOPL/blob/rebuild/main/docs/VCD.md"
    ],
    "states": [
      "partial",
      "shipped"
    ],
    "remaining_ids": [
      "RI3",
      "T3",
      "LU15"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI3",
        "state": "partial",
        "assessment": "Both editions now have the RIPPS2-derived beta OPL-core menu with pause/resume, live cheat selection, exit and power off (#184/#1155). It defaults off, has flavour/framebuffer limits and is excluded from RA/IGS/freeze/debug variants. RIPPS2 Screenshot/Achievements pages, Neutrino and PS1 return menus remain distinct. No console acceptance.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      },
      {
        "id": "T3",
        "state": "partial",
        "assessment": "The local optional OPL-core beta menu now overlaps pause/resume/exit, while Titan uses its own profile-gated suspend/resume/runtime contract. A generic absence-of-overlay claim is stale; Titan runtime/lifecycle behaviour remains experimental and separate.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      },
      {
        "id": "RI12",
        "state": "shipped",
        "assessment": "The optional beta OPL-core menu now contains a confirmed-twice Power Off action in both editions. This closes that menu-action scope in supported flavours; it does not add a Neutrino/PS1 menu or establish game/console compatibility.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      },
      {
        "id": "LU15",
        "state": "partial",
        "assessment": "The local beta menu applies only to supported OPL-core PS2 builds. LUNA native PS1 Quit/Play return UI remains a separate paired PSXCore runtime feature; the new local PS2 overlay does not supply it.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 18,
    "ids": [
      "RI6"
    ],
    "scope": "Disc tools",
    "evidence": "Released source",
    "feature": "Rip optical discs directly to the library or media storage",
    "assessment": "RIPDISC now exists in builds 105-110: PS2 ISO/split output, PS1 BIN/CUE, audio CD and DVD-video paths. Previous planned status is obsolete; emulator reports are not PS2 acceptance.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0105-ripps2-ripdisc.patch"
    ],
    "states": [
      "declined"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "RI6",
        "state": "declined",
        "assessment": "Optical-disc ripping was explicitly declined in the October 28 local scope decision. Retain RIPPS2 attribution and source evidence; do not recommend it as unfinished required work.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 19,
    "ids": [
      "RI7",
      "RI14",
      "O13"
    ],
    "scope": "Screenshots",
    "evidence": "Released source",
    "feature": "Managed in-game screenshot capture and artwork development",
    "assessment": "RIPSHOT has six-slot rolls, preview/Keep/Delete, ART/MEDIA output, PNG development and SCRn slideshow. RiptOPL inherits optional IGS code, so the gap is this complete managed workflow, not the existence of screenshot code.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0108-ripps2-ripshot.patch",
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/tools/import-igs.py"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "RI7",
      "RI14",
      "O13"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI7",
        "state": "tracked",
        "assessment": "Consolidated #19 RIPSHOT has six-slot rolls, preview/Keep/Delete, ART/MEDIA output, PNG development and SCRn slideshow. RiptOPL inherits optional IGS code, so the gap is this complete managed workflow, not the existence of screenshot code. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "RI14",
        "state": "tracked",
        "assessment": "Consolidated #19 RIPSHOT has six-slot rolls, preview/Keep/Delete, ART/MEDIA output, PNG development and SCRn slideshow. RiptOPL inherits optional IGS code, so the gap is this complete managed workflow, not the existence of screenshot code. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "O13",
        "state": "tracked",
        "assessment": "Consolidated #19 RIPSHOT has six-slot rolls, preview/Keep/Delete, ART/MEDIA output, PNG development and SCRn slideshow. RiptOPL inherits optional IGS code, so the gap is this complete managed workflow, not the existence of screenshot code. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 20,
    "ids": [
      "B1",
      "LU14",
      "LU20",
      "LU21",
      "TV9"
    ],
    "scope": "Console tools",
    "evidence": "Source / claim",
    "feature": "Integrated multi-device file explorer and bulk operations",
    "assessment": "Copy/move tray, rename/delete/mkdir, conflict choices, verified moves, text preview and ELF launch. Launchstation can supply file management externally; it is not embedded in RiptOPL.",
    "sources": [
      "https://boliviaos.site/",
      "https://github.com/dnunezx/nhddl-luna/blob/127d012b07322dc0805ce62f877e5ba5e8cd6dbc/src/ui/file_manager.c",
      "https://github.com/NathanNeurotic/Launchstation",
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md",
      "https://github.com/Kyllemn/PS2TVCRT/blob/42c33b5be94cfa990f4a6f1281d0596922d20a46/README.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "B1",
      "LU14",
      "LU20",
      "LU21",
      "TV9"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "B1",
        "state": "tracked",
        "assessment": "Consolidated #20 Copy/move tray, rename/delete/mkdir, conflict choices, verified moves, text preview and ELF launch. Launchstation can supply file management externally; it is not embedded in RiptOPL. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU14",
        "state": "tracked",
        "assessment": "Consolidated #20 Copy/move tray, rename/delete/mkdir, conflict choices, verified moves, text preview and ELF launch. Launchstation can supply file management externally; it is not embedded in RiptOPL. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU20",
        "state": "tracked",
        "assessment": "Consolidated #20 Copy/move tray, rename/delete/mkdir, conflict choices, verified moves, text preview and ELF launch. Launchstation can supply file management externally; it is not embedded in RiptOPL. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU21",
        "state": "tracked",
        "assessment": "Consolidated #20 Copy/move tray, rename/delete/mkdir, conflict choices, verified moves, text preview and ELF launch. Launchstation can supply file management externally; it is not embedded in RiptOPL. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "TV9",
        "state": "tracked",
        "assessment": "Consolidated #20 Copy/move tray, rename/delete/mkdir, conflict choices, verified moves, text preview and ELF launch. Launchstation can supply file management externally; it is not embedded in RiptOPL. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 21,
    "ids": [
      "RI8"
    ],
    "scope": "Console tools",
    "evidence": "Released source",
    "feature": "Cross-device file/folder search that opens the matching location",
    "assessment": "RIPPS2 build 107 implements bounded breadth-first search, cancellation and result navigation; it is no longer merely planned.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0107-ripps2-search.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "RI8"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI8",
        "state": "tracked",
        "assessment": "Consolidated #21 RIPPS2 build 107 implements bounded breadth-first search, cancellation and result navigation; it is no longer merely planned. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 22,
    "ids": [
      "TV2"
    ],
    "scope": "Library",
    "evidence": "Claimed release",
    "feature": "Coordinated game-file rename with art, VMC and metadata migration",
    "assessment": "FastLoader claims renaming the ISO carries its associated assets, card and settings; display-title editing in RiptOPL is already available.",
    "sources": [
      "https://github.com/Kyllemn/PS2TVCRT/blob/42c33b5be94cfa990f4a6f1281d0596922d20a46/README.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "TV2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "TV2",
        "state": "tracked",
        "assessment": "Consolidated #22 FastLoader claims renaming the ISO carries its associated assets, card and settings; display-title editing in RiptOPL is already available. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 23,
    "ids": [
      "TV1"
    ],
    "scope": "Library",
    "evidence": "Claimed release",
    "feature": "Automatic ISO discovery throughout arbitrary folder trees",
    "assessment": "FastLoader claims four-level discovery outside CD/DVD. RiptOPL's prefix/subfolder navigation is not a whole-drive arbitrary-directory scan.",
    "sources": [
      "https://github.com/Kyllemn/PS2TVCRT/releases/tag/FullAnFinalRelease"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "TV1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "TV1",
        "state": "tracked",
        "assessment": "Consolidated #23 FastLoader claims four-level discovery outside CD/DVD. RiptOPL's prefix/subfolder navigation is not a whole-drive arbitrary-directory scan. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 24,
    "ids": [
      "RI10"
    ],
    "scope": "Library",
    "evidence": "Released source",
    "feature": "Persistent per-source game-list snapshots with idle revalidation",
    "assessment": "RIPPS2 caches MMCE/BDM/SMB lists on their source. RiptOPL already has ISO-ID and APA list caches; the missing scope is its equivalent across those other backends.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0110-ripps2-quicklists.patch"
    ],
    "states": [
      "candidate"
    ],
    "remaining_ids": [
      "RI10"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI10",
        "state": "candidate",
        "assessment": "Persistent per-source/master snapshots and Trust Cache/manual-refresh policy remain source/design comparisons. Local APA/ISO-ID caches and current All Games are already present; trusting cached names cannot validate a replaced or removed device.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 25,
    "ids": [
      "RI11",
      "RI30"
    ],
    "scope": "Settings",
    "evidence": "Partial",
    "feature": "One settings-destination picker that provisions typed device paths",
    "assessment": "RIPPS2 offers typed MC/HDD/USB/MX4SIO/iLink/MMCE destinations, provisions the directory, and Build 111 adds a bootstrap pointer that survives a competing memory-card config. RiptOPL has custom settings paths; exact precedence needs separate regression comparison.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0110-ripps2-quicklists.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0111-ripps2-soundclean.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0110-ripps2-quicklists.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "RI11",
      "RI30"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI11",
        "state": "partial",
        "assessment": "The editions support selected settings destinations and boot-slot fallback, including the merged empty-USB-slot save fix. RIPPS2 guided typed-family provisioning and memory-card bootstrap precedence remain a narrower comparison; no identical current error is established.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "RI30",
        "state": "partial",
        "assessment": "The editions support selected settings destinations and boot-slot fallback, including the merged empty-USB-slot save fix. RIPPS2 guided typed-family provisioning and memory-card bootstrap precedence remain a narrower comparison; no identical current error is established.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 26,
    "ids": [
      "O3",
      "RI38"
    ],
    "scope": "Library",
    "evidence": "Source",
    "feature": "Extended Recent Games capacity and lazy-source navigation; last-10 list now present",
    "assessment": "OPLattice retains the last eight, rather than only RiptOPL's remembered last title.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/02-opl-sort-and-recent.patch",
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084",
      "https://github.com/akilluminati47/RIPPS2/blob/e1e3504f4a8bfd6b2f88425d284eb845393cfcb9/elf/patches/0115-ripps2-hardware.patch"
    ],
    "states": [
      "shipped",
      "partial"
    ],
    "remaining_ids": [
      "RI38"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "O3",
        "state": "shipped",
        "assessment": "Both editions have a persistent last-10 Recent list and a Recent filter. A separate lazy-source page with up to 99 entries is the narrower remaining RI38 design.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "RI38",
        "state": "partial",
        "assessment": "Both editions keep the last 10 recents, expose a Recent filter and sort by Last played. RIPPS2 separate lazy-source Recent page and configurable capacity up to 99 remain the narrower difference.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 27,
    "ids": [
      "O4"
    ],
    "scope": "Library",
    "evidence": "Source",
    "feature": "User-selectable alphabetical, reverse, recent and scan-order sorting",
    "assessment": "Distinct from remembering a selected game and from PS1/PS2 filters.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/02-opl-sort-and-recent.patch"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "O4"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "O4",
        "state": "partial",
        "assessment": "Sort Games now supports Off, A to Z and Last played in both editions. Further OPLattice sort modes/policies need an exact comparison; do not call all sorting absent or equate a recent timestamp with a play-count database.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 28,
    "ids": [
      "O9"
    ],
    "scope": "Library",
    "evidence": "Source",
    "feature": "Per-game launch counts and accumulated play time",
    "assessment": "A play-history/statistics layer, beyond a last-played selection.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/08-play-stats.patch"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "O9"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "O9",
        "state": "partial",
        "assessment": "Persistent recents and last-played ordering now overlap the history portion. Per-title play counters/statistics remain a separate comparison; no new gameplay-time tracking is established.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 29,
    "ids": [
      "P3"
    ],
    "scope": "Library",
    "evidence": "Source",
    "feature": "One automatically aggregated library across every game device",
    "assessment": "RiptOPL's Favorites can span sources and its platform filters mix PS1/PS2; neither aggregates all non-favorite games from every source into one library.",
    "sources": [
      "https://github.com/Irfanlesnar/PS2-Launcher/blob/main/src/opl.c",
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084"
    ],
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "P3",
        "state": "shipped",
        "assessment": "All Games aggregates games from started devices; All/PS2/PS1/Apps/Favourites/Recent filters and device-tagged duplicates are present in both editions. A persistent master catalogue before sources answer remains RI21.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 30,
    "ids": [
      "LU5",
      "BL1"
    ],
    "scope": "Library",
    "evidence": "Design option",
    "feature": "Favorites stored per game drive and carried with that drive",
    "assessment": "RiptOPL deliberately uses a shared cross-device favorites file. This is an alternative persistence policy, not missing Favorites.",
    "sources": [
      "https://github.com/dnunezx/LUNA",
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/src/favorites.c",
      "https://github.com/NathanNeurotic/RiptOPL/blob/rebuild/main/src/sources/favsupport.cpp",
      "https://github.com/Blayr/opl-custom/blob/7959031a65ed4f1abc12369820679d741dea0277/src/favorites.c",
      "https://github.com/Blayr/opl-custom/blob/7959031a65ed4f1abc12369820679d741dea0277/CUSTOM.md"
    ],
    "states": [
      "tracked",
      "intentional"
    ],
    "remaining_ids": [
      "LU5"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU5",
        "state": "tracked",
        "assessment": "Consolidated #30 RiptOPL deliberately uses a shared cross-device favorites file. This is an alternative persistence policy, not missing Favorites. source 1 · source 2 · source 3",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "BL1",
        "state": "intentional",
        "assessment": "New fork 7959031a has game-ID Favorites with selectable device-local or shared MC conf_favorites.cfg and no silent fallback. Both local editions already have cross-device Favorites and failure reporting. Per-device portability is an alternative identity/storage policy, grouped with LU5; do not replace local folder/name identity mechanically.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 31,
    "ids": [
      "LU6"
    ],
    "scope": "Reliability",
    "evidence": "Partial",
    "feature": "Staged replacement and recovery for last-title and title-ID cache files",
    "assessment": "Favorites staging/recovery already exists in RiptOPL. Only LUNA's additional last-title/cache coverage remains to compare and extend.",
    "sources": [
      "https://github.com/dnunezx/LUNA",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/945",
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/src/favorites.c",
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/src/options.c",
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/src/devices/iso.c"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "LU6"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU6",
        "state": "partial",
        "assessment": "Consolidated #31 Favorites staging/recovery already exists in RiptOPL. Only LUNA's additional last-title/cache coverage remains to compare and extend. source 1 · source 2 · source 3 · source 4 · source 5",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 32,
    "ids": [
      "M1"
    ],
    "scope": "Network UI",
    "evidence": "Claimed release",
    "feature": "Choose among multiple discovered UDPFS servers",
    "assessment": "Modulo exposes server selection; RiptOPL automatically chooses a server. Existing network-game transport is not missing.",
    "sources": [
      "https://github.com/AdityaKumar7209/Modulo-R1-Beta-Preview---PS2#readme"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "M1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "M1",
        "state": "tracked",
        "assessment": "Consolidated #32 Modulo exposes server selection; RiptOPL automatically chooses a server. Existing network-game transport is not missing. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 33,
    "ids": [
      "N1"
    ],
    "scope": "CLI",
    "evidence": "Source",
    "feature": "Generic backend/path forward-boot command line including no-init",
    "assessment": "NHDDL accepts mode/DVD-path forwarding and reuse of the resident environment; RiptOPL's positional HDD/BDM autolaunch is narrower.",
    "sources": [
      "https://github.com/pcm720/nhddl/blob/v1.2.2/README.md#forward-boot-mode"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "N1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "N1",
        "state": "tracked",
        "assessment": "Consolidated #33 NHDDL accepts mode/DVD-path forwarding and reuse of the resident environment; RiptOPL's positional HDD/BDM autolaunch is narrower. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 34,
    "ids": [
      "L1"
    ],
    "scope": "Storage",
    "evidence": "Source",
    "feature": "Extended APA addressing for HDDs above 2 TiB",
    "assessment": "Different from existing exFAT/GPT large-drive support. Source integration and safe media layout need independent evaluation.",
    "sources": [
      "https://github.com/L10N37/Open-PS2-Loader-Extended-APA/blob/main/EXTENDED_APA.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "L1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "L1",
        "state": "tracked",
        "assessment": "Consolidated #34 Different from existing exFAT/GPT large-drive support. Source integration and safe media layout need independent evaluation. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 35,
    "ids": [
      "X1"
    ],
    "scope": "Storage",
    "evidence": "Historical source",
    "feature": "EXT2 filesystem support on USB",
    "assessment": "E2OPL's legacy filesystem path is distinct from RiptOPL's FAT32/exFAT support; no current hardware regression claim.",
    "sources": [
      "https://sourceforge.net/projects/e2opl/",
      "https://sourceforge.net/p/e2opl/code/HEAD/tree/trunk/README"
    ],
    "states": [
      "historical"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "X1",
        "state": "historical",
        "assessment": "Consolidated #35 E2OPL's legacy filesystem path is distinct from RiptOPL's FAT32/exFAT support; no current hardware regression claim. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 36,
    "ids": [
      "DL1"
    ],
    "scope": "Disc launching",
    "evidence": "Source",
    "feature": "Selectable DKWDRV/PS1VModeNeg physical-PS1-disc handoff",
    "assessment": "RiptOPL has ordinary disc actions and PS1 image cores; this is the explicit enhanced-disc-launcher handoff workflow.",
    "sources": [
      "https://github.com/exalandru/Enhanced-PS2-Disc-Launcher/blob/main/src/main.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DL1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DL1",
        "state": "tracked",
        "assessment": "Consolidated #36 RiptOPL has ordinary disc actions and PS1 image cores; this is the explicit enhanced-disc-launcher handoff workflow. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 37,
    "ids": [
      "DL2"
    ],
    "scope": "Disc launching",
    "evidence": "Source",
    "feature": "Conditional import-disc OSD language override",
    "assessment": "The enhanced launcher applies an override conditionally for import-disc behavior.",
    "sources": [
      "https://github.com/exalandru/Enhanced-PS2-Disc-Launcher/blob/main/src/main.c",
      "https://github.com/exalandru/Enhanced-PS2-Disc-Launcher/blob/main/disc-launcher.cnf"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DL2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DL2",
        "state": "tracked",
        "assessment": "Consolidated #37 The enhanced launcher applies an override conditionally for import-disc behavior. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 38,
    "ids": [
      "P2"
    ],
    "scope": "Library",
    "evidence": "Source",
    "feature": "Download cover artwork directly on the PS2",
    "assessment": "PC artwork tools already work with RiptOPL; the missing operation is the console-initiated download.",
    "sources": [
      "https://github.com/Irfanlesnar/PS2-Launcher/blob/main/src/opl.c",
      "https://irfanlesnar.github.io/PS2-Launcher-Manager/"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "P2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "P2",
        "state": "tracked",
        "assessment": "Consolidated #38 PC artwork tools already work with RiptOPL; the missing operation is the console-initiated download. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 39,
    "ids": [
      "U6"
    ],
    "scope": "Network",
    "evidence": "Source",
    "feature": "Broadcast a game-launch event for a Discord presence listener",
    "assessment": "A console launch-announcement interface, distinct from an external companion calculating presence by other means.",
    "sources": [
      "https://github.com/ps2homebrew/Open-PS2-Loader/pull/1736"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "U6"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "U6",
        "state": "tracked",
        "assessment": "Consolidated #39 A console launch-announcement interface, distinct from an external companion calculating presence by other means. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 40,
    "ids": [
      "DB1"
    ],
    "scope": "Controllers",
    "evidence": "Source",
    "feature": "DualSense over Bluetooth in menu and in-game PADEMU",
    "assessment": "RiptOPL already has an optional USB DualSense variant; Bluetooth support is the gap.",
    "sources": [
      "https://github.com/rodrigoGalvanDev/OPL-DualSense-BT/blob/dualsense-bt/modules/ds34bt/iop/ds34bt.c",
      "https://github.com/rodrigoGalvanDev/OPL-DualSense-BT/blob/dualsense-bt/modules/pademu/ds34bt.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DB1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DB1",
        "state": "tracked",
        "assessment": "Consolidated #40 RiptOPL already has an optional USB DualSense variant; Bluetooth support is the gap. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 41,
    "ids": [
      "DB2"
    ],
    "scope": "Controllers",
    "evidence": "Source",
    "feature": "Wireless device discovery, secure pairing and persisted link keys in the GUI",
    "assessment": "Distinct from existing DS3 cable pairing and stock DS3/DS4 Bluetooth input.",
    "sources": [
      "https://github.com/rodrigoGalvanDev/OPL-DualSense-BT/blob/dualsense-bt/include/btkeys.h",
      "https://github.com/rodrigoGalvanDev/OPL-DualSense-BT/blob/dualsense-bt/src/dialogs.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DB2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DB2",
        "state": "tracked",
        "assessment": "Consolidated #41 Distinct from existing DS3 cable pairing and stock DS3/DS4 Bluetooth input. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 42,
    "ids": [
      "DT1"
    ],
    "scope": "Controllers",
    "evidence": "Source",
    "feature": "Automatic RTL8761B/BU Bluetooth firmware loading",
    "assessment": "Menu and in-game dongle initialization in the Realtek fork.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/tree/2cf308511b187f8a0b209140f71936dca0bb0bae/modules/ds34bt"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DT1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DT1",
        "state": "tracked",
        "assessment": "Consolidated #42 Menu and in-game dongle initialization in the Realtek fork. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 43,
    "ids": [
      "DT2"
    ],
    "scope": "Controllers",
    "evidence": "Source",
    "feature": "Extended DS4-clone HID, CRC, handshake and rumble handling",
    "assessment": "Additional clone protocol/feedback support; existing fake-DS3 workaround is not equivalent.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/tree/2cf308511b187f8a0b209140f71936dca0bb0bae/modules/ds34bt"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DT2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DT2",
        "state": "tracked",
        "assessment": "Consolidated #43 Additional clone protocol/feedback support; existing fake-DS3 workaround is not equivalent. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 44,
    "ids": [
      "DT3",
      "DT5",
      "P7",
      "DT7"
    ],
    "scope": "Controllers",
    "evidence": "Source",
    "feature": "Multi-pad connection/type/battery HUD and setup/test/disconnect UI",
    "assessment": "Combines overlapping pad-status rows rather than counting each fork's screen twice.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/commit/f638621cdd40d834877745bda75fa01dae0e1d84",
      "https://github.com/Irfanlesnar/PS2-Launcher/releases/tag/v5.0.0",
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/blob/c6d4741e079eadbdecd6cdcba318f81448de6601/src/gui.c",
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/releases/tag/rt-2.8.0"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DT3",
      "DT5",
      "P7",
      "DT7"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DT3",
        "state": "tracked",
        "assessment": "Consolidated #44 Combines overlapping pad-status rows rather than counting each fork's screen twice. source 1 · source 2 · source 3 · source 4",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "DT5",
        "state": "tracked",
        "assessment": "Consolidated #44 Combines overlapping pad-status rows rather than counting each fork's screen twice. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "P7",
        "state": "tracked",
        "assessment": "Consolidated #44 Combines overlapping pad-status rows rather than counting each fork's screen twice. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "DT7",
        "state": "tracked",
        "assessment": "Consolidated #44 rt-2.8.0 includes custom RGB selection; maintainer notes limited testing and clone differences. Do not copy its one-dongle USB pool reduction into a multi-device build. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 45,
    "ids": [
      "DT4"
    ],
    "scope": "Controllers",
    "evidence": "Released source",
    "feature": "Mixed physical/wireless multitap routing per slot and two-port poll",
    "assessment": "The rt-2.7.0 source splits real-pad transfers and preserves per-slot choices. RiptOPL has multitap emulation already; this is the additional routing behavior/fix.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/compare/e016d934e117a645e476564eddfd7f14f0188e01...rt-2.7.0"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DT4"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DT4",
        "state": "tracked",
        "assessment": "Consolidated #45 The rt-2.7.0 source splits real-pad transfers and preserves per-slot choices. RiptOPL has multitap emulation already; this is the additional routing behavior/fix. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 46,
    "ids": [
      "P1"
    ],
    "scope": "Controllers",
    "evidence": "Source",
    "feature": "Xbox One and Series controllers over USB",
    "assessment": "Requires a controller driver/protocol beyond RiptOPL's DS3/DS4 and optional DS5 paths.",
    "sources": [
      "https://github.com/Irfanlesnar/PS2-Launcher/tree/main/modules/xboxusb"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "P1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "P1",
        "state": "tracked",
        "assessment": "Consolidated #46 Requires a controller driver/protocol beyond RiptOPL's DS3/DS4 and optional DS5 paths. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 47,
    "ids": [
      "MP1"
    ],
    "scope": "Controllers",
    "evidence": "Historical source",
    "feature": "Xbox 360 controllers over USB",
    "assessment": "Separate controller class from Xbox One/Series; implemented in historical modular PADEMU.",
    "sources": [
      "https://github.com/belek666/Open-PS2-Loader/blob/modularPademu/modules/pademu/xbox360usb/xbox360usb.c"
    ],
    "states": [
      "historical"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "MP1",
        "state": "historical",
        "assessment": "Consolidated #47 Separate controller class from Xbox One/Series; implemented in historical modular PADEMU. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 48,
    "ids": [
      "MP2"
    ],
    "scope": "Controllers",
    "evidence": "Historical source",
    "feature": "Generic descriptor-driven USB HID gamepads",
    "assessment": "Generic report parsing, rather than only a whitelist of controller-specific drivers.",
    "sources": [
      "https://github.com/belek666/Open-PS2-Loader/blob/modularPademu/modules/pademu/hidusb/hidusb.c"
    ],
    "states": [
      "historical"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "MP2",
        "state": "historical",
        "assessment": "Consolidated #48 Generic report parsing, rather than only a whitelist of controller-specific drivers. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 49,
    "ids": [
      "P6"
    ],
    "scope": "Controllers",
    "evidence": "Source",
    "feature": "Additional Steam Controller, Shanwan PS3 and GP300 USB support",
    "assessment": "Specific protocol/device coverage in PS2-Launcher, not a claim that every clone is supported there.",
    "sources": [
      "https://github.com/Irfanlesnar/PS2-Launcher/releases/tag/v5.0.0"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "P6"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "P6",
        "state": "tracked",
        "assessment": "Consolidated #49 Specific protocol/device coverage in PS2-Launcher, not a claim that every clone is supported there. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 50,
    "ids": [
      "RR1"
    ],
    "scope": "Controllers",
    "evidence": "Source",
    "feature": "USB Driving Force wheel presented as a negCon",
    "assessment": "An experimental wheel translation path, distinct from ordinary pad emulation.",
    "sources": [
      "https://github.com/exaconn/Open-PS2-Loader/commit/3ab34d2028e3da9592b99b4681a7cdb324e3a070",
      "https://github.com/exaconn/Open-PS2-Loader/commit/e70e6cbddf39a68497c28b302d19695ee2ce753a",
      "https://github.com/exaconn/Open-PS2-Loader/tree/Driving-Force-2-negCon-Edition"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "RR1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RR1",
        "state": "tracked",
        "assessment": "Consolidated #50 An experimental wheel translation path, distinct from ordinary pad emulation. source 1 · source 2 · source 3",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 51,
    "ids": [
      "T9",
      "B6"
    ],
    "scope": "Controllers",
    "evidence": "Experimental",
    "feature": "Xbox Bluetooth/BLE and USB keyboard/mouse input classes",
    "assessment": "Titan's modern-input contracts are source/host validated with target acceptance pending; BoliviaOS separately advertises USB keyboard input.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/history/imported-root-artifacts/TITAN_MODERN_CONTROLLER_MATRIX.md",
      "https://boliviaos.site/"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "T9",
      "B6"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "T9",
        "state": "experimental",
        "assessment": "Consolidated #51 Titan's modern-input contracts are source/host validated with target acceptance pending; BoliviaOS separately advertises USB keyboard input. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "B6",
        "state": "experimental",
        "assessment": "Consolidated #51 Titan's modern-input contracts are source/host validated with target acceptance pending; BoliviaOS separately advertises USB keyboard input. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 52,
    "ids": [
      "P4"
    ],
    "scope": "In-game UI",
    "evidence": "Source",
    "feature": "Hold SELECT alone to leave a game",
    "assessment": "Alternative configurable exit interaction, beyond existing multi-button IGR.",
    "sources": [
      "https://github.com/Irfanlesnar/PS2-Launcher/blob/main/ee_core/src/padhook.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "P4"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "P4",
        "state": "tracked",
        "assessment": "Consolidated #52 Alternative configurable exit interaction, beyond existing multi-button IGR. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 53,
    "ids": [
      "O1",
      "RI17"
    ],
    "scope": "Theme / UI",
    "evidence": "Source",
    "feature": "Two-axis flat tile-grid library navigation",
    "assessment": "RiptOPL's linear Coverflow and PSBBN perspective fan do not provide the same grid.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/01-opl-tile-grid.patch",
      "https://github.com/NathanNeurotic/RiptOPL/pull/121",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1097",
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0078-ripps2-build78-grid-element-frosted-glass-towers-key.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0097-ripps2-build97-grid-and-flow.patch"
    ],
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "O1",
        "state": "shipped",
        "assessment": "Both editions now implement a two-axis Grid element and selectable Grid view, with cover-cache coverage and row/page navigation. This closes the generic flat-grid gap; LUNA projected 3D cases remain LU9. Source/merge evidence, no console acceptance.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "RI17",
        "state": "shipped",
        "assessment": "Both editions now implement a two-axis Grid element and selectable Grid view, with cover-cache coverage and row/page navigation. This closes the generic flat-grid gap; LUNA projected 3D cases remain LU9. Source/merge evidence, no console acceptance.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 54,
    "ids": [
      "LU2"
    ],
    "scope": "Theme / UI",
    "evidence": "Source",
    "feature": "Depth-sorted orbital ring library view",
    "assessment": "A complete selectable ring renderer with perspective and depth falloff.",
    "sources": [
      "https://github.com/dnunezx/LUNA",
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/src/ui/view_orbit.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "LU2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU2",
        "state": "tracked",
        "assessment": "Consolidated #54 A complete selectable ring renderer with perspective and depth falloff. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 55,
    "ids": [
      "LU9",
      "LU26"
    ],
    "scope": "Theme / UI",
    "evidence": "Source",
    "feature": "Projected 3D case grid with case styles and inspection",
    "assessment": "LUNA's projected case layout and PS1 case presentation; distinct from flat tiles and PSBBN Flow.",
    "sources": [
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/src/ui/view_3d.c",
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/include/ui/navigation.h",
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "LU9",
      "LU26"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU9",
        "state": "tracked",
        "assessment": "Consolidated #55 LUNA's projected case layout and PS1 case presentation; distinct from flat tiles and PSBBN Flow. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU26",
        "state": "tracked",
        "assessment": "Consolidated #55 LUNA's projected case layout and PS1 case presentation; distinct from flat tiles and PSBBN Flow. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 56,
    "ids": [
      "LU10",
      "LU27",
      "LU29"
    ],
    "scope": "Theme / UI",
    "evidence": "Experimental",
    "feature": "Ambient-orb Scroll view with logo/title fallback and controls",
    "assessment": "A full browsing view, not a claim that RiptOPL lacks animation or missing-art text.",
    "sources": [
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/src/ui/view_scroll.c",
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/src/ui/gui.c",
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "LU10",
      "LU27",
      "LU29"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU10",
        "state": "experimental",
        "assessment": "Consolidated #56 A full browsing view, not a claim that RiptOPL lacks animation or missing-art text. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU27",
        "state": "experimental",
        "assessment": "Consolidated #56 A full browsing view, not a claim that RiptOPL lacks animation or missing-art text. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU29",
        "state": "experimental",
        "assessment": "Consolidated #56 A full browsing view, not a claim that RiptOPL lacks animation or missing-art text. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 57,
    "ids": [
      "LU4",
      "LU25"
    ],
    "scope": "Theme / UI",
    "evidence": "Source",
    "feature": "Continuously rotating disc-label art and paired-art presentation",
    "assessment": "RiptOPL already supports ICO/LGO/COV artwork; animation is the differentiated capability.",
    "sources": [
      "https://github.com/dnunezx/LUNA",
      "https://github.com/dnunezx/nhddl-luna/blob/e9554ce6affa133fd776a7e1265580608832821e/src/ui/view_classic.c",
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "LU4",
      "LU25"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU4",
        "state": "tracked",
        "assessment": "Consolidated #57 RiptOPL already supports ICO/LGO/COV artwork; animation is the differentiated capability. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU25",
        "state": "tracked",
        "assessment": "Consolidated #57 RiptOPL already supports ICO/LGO/COV artwork; animation is the differentiated capability. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 58,
    "ids": [
      "LU23",
      "LU24",
      "LU28"
    ],
    "scope": "Theme / UI",
    "evidence": "Design option",
    "feature": "LUNA-specific view toggles, Random Scan and presentation presets",
    "assessment": "Includes view enablement, orbital auto-browsing, glass/font/background options; generic theme selection already exists in RiptOPL.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "states": [
      "partial",
      "tracked"
    ],
    "remaining_ids": [
      "LU23",
      "LU24",
      "LU28"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU23",
        "state": "partial",
        "assessment": "All four local List/Coverflow/PSBBN/Grid views now work for every theme through fallback layouts; custom per-view/SD/HD keys override them. LUNA retains its own projected/orb/ring renderers and per-view policy. Generic multi-view availability is present; renderer-specific behaviour remains distinct.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      },
      {
        "id": "LU24",
        "state": "tracked",
        "assessment": "Consolidated #58 Includes view enablement, orbital auto-browsing, glass/font/background options; generic theme selection already exists in RiptOPL. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU28",
        "state": "tracked",
        "assessment": "Consolidated #58 Includes view enablement, orbital auto-browsing, glass/font/background options; generic theme selection already exists in RiptOPL. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 59,
    "ids": [
      "O10",
      "RI15"
    ],
    "scope": "Theme / UI",
    "evidence": "Source",
    "feature": "SHELF dashboard/sidebar with Home, Library, Apps and Settings",
    "assessment": "Optional sidebar shells differ: OPLattice offers Home/Library/Apps/Settings; RIPPS2 Build 113 adds three category glyphs, bounded source drawers and exclusive focus. Counted once as the sidebar family, not as a new storage capability.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/09-shelf-sidebar.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0113-ripps2-sidebar.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "O10",
      "RI15"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "O10",
        "state": "tracked",
        "assessment": "Consolidated #59 An optional complete shell presentation rather than a new game source. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "RI15",
        "state": "tracked",
        "assessment": "Consolidated #59 Released Build 113 adds Launch Disc / Storage / Memory Files glyphs, text-measured drawers and exclusive sidebar focus. Shares the existing optional-sidebar capability family; not a new storage backend. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 60,
    "ids": [
      "CO1"
    ],
    "scope": "Theme / UI",
    "evidence": "Source",
    "feature": "Interpolated XMB category and game-list rails",
    "assessment": "Caduceus OPL's specific navigation model.",
    "sources": [
      "https://github.com/Rian6/caduceus-opl/blob/2a98a9d7361f8e33f421244bc88c318eab3bdf2f/src/menusys.c#L1088-L1242"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "CO1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "CO1",
        "state": "tracked",
        "assessment": "Consolidated #60 Caduceus OPL's specific navigation model. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 61,
    "ids": [
      "CO2"
    ],
    "scope": "RetroAchievements UI",
    "evidence": "Partial",
    "feature": "Game-details card with automatic RA support/status checks",
    "assessment": "RiptOPL already has achievement support checks and a browser; the additional automatic details-card workflow remains different.",
    "sources": [
      "https://github.com/Rian6/caduceus-opl/blob/2a98a9d7361f8e33f421244bc88c318eab3bdf2f/src/menusys.c#L1367-L1505"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "CO2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "CO2",
        "state": "partial",
        "assessment": "Consolidated #61 RiptOPL already has achievement support checks and a browser; the additional automatic details-card workflow remains different. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 62,
    "ids": [
      "CO7"
    ],
    "scope": "Device UI",
    "evidence": "Source",
    "feature": "Initialize manual devices asynchronously when their category receives focus",
    "assessment": "RiptOPL has manual and automatic discovery, but not this specific category-focus policy.",
    "sources": [
      "https://github.com/Rian6/caduceus-opl/blob/2a98a9d7361f8e33f421244bc88c318eab3bdf2f/src/opl.c#L272-L298"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "CO7"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "CO7",
        "state": "tracked",
        "assessment": "Consolidated #62 RiptOPL has manual and automatic discovery, but not this specific category-focus policy. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 63,
    "ids": [
      "OF1"
    ],
    "scope": "Theme / UI",
    "evidence": "Experimental",
    "feature": "Dedicated carousel/device dock and system-status HUD primitives",
    "assessment": "OPL FUTURE's optional interface architecture; no generalized console-performance claim.",
    "sources": [
      "https://github.com/brunlx/OPL-Future---BETA/blob/main/OPL_FUTURE_UI.md",
      "https://github.com/brunlx/OPL-Future---BETA/blob/main/OPL_FUTURE_QA_REPORT.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "OF1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "OF1",
        "state": "experimental",
        "assessment": "Consolidated #63 OPL FUTURE's optional interface architecture; no generalized console-performance claim. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 64,
    "ids": [
      "E1"
    ],
    "scope": "Theme / UI",
    "evidence": "Experimental",
    "feature": "Unified controller, memory-card, storage and network dashboard",
    "assessment": "OPL Evolution's integrated status surface; ordinary individual status indicators overlap existing behavior.",
    "sources": [
      "https://github.com/officialjuicedesigns/OPL-Evolution/blob/evo-development/src/evo_ui.c"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "E1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "E1",
        "state": "experimental",
        "assessment": "Consolidated #64 OPL Evolution's integrated status surface; ordinary individual status indicators overlap existing behavior. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 65,
    "ids": [
      "DN1"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Configurable framebuffer blur/frosted-glass compositing",
    "assessment": "A new render/compositing primitive rather than an image that resembles blur.",
    "sources": [
      "https://github.com/danielnuld/Open-PS2-Loader/blob/fca8fcb03e8ca366a49123cd85e7ec43d39697f9/src/rmblur.c",
      "https://github.com/danielnuld/Open-PS2-Loader/blob/fca8fcb03e8ca366a49123cd85e7ec43d39697f9/src/themes.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DN1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DN1",
        "state": "tracked",
        "assessment": "Consolidated #65 A new render/compositing primitive rather than an image that resembles blur. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 66,
    "ids": [
      "DN2"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "CardShelf element and crossfading cover-art wallpaper",
    "assessment": "Daniel's PS5-style theme primitives; generic carousel/artwork display already exists.",
    "sources": [
      "https://github.com/danielnuld/Open-PS2-Loader/blob/fca8fcb03e8ca366a49123cd85e7ec43d39697f9/src/themes.c",
      "https://github.com/danielnuld/Open-PS2-Loader/blob/fca8fcb03e8ca366a49123cd85e7ec43d39697f9/themes/PS5/conf_theme.cfg"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "DN2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "DN2",
        "state": "tracked",
        "assessment": "Consolidated #66 Daniel's PS5-style theme primitives; generic carousel/artwork display already exists. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 67,
    "ids": [
      "W1"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Load an entire theme from a TAR archive",
    "assessment": "RiptOPL already loads ART/CFG/CHT archives; the missing archive type is THM/theme resources.",
    "sources": [
      "https://github.com/ps2homebrew/wOPL/pull/370",
      "https://github.com/ps2homebrew/wOPL/pull/378"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "W1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "W1",
        "state": "tracked",
        "assessment": "Consolidated #67 RiptOPL already loads ART/CFG/CHT archives; the missing archive type is THM/theme resources. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 68,
    "ids": [
      "W2",
      "O7"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Theme X-position controls specifically for widescreen layouts",
    "assessment": "wsX and x_scaled address the same broad layout requirement and are counted together.",
    "sources": [
      "https://github.com/ps2homebrew/wOPL/blob/wOPL-base/src/themes.c",
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/03-opl-menu-tabs.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "W2",
      "O7"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "W2",
        "state": "tracked",
        "assessment": "Consolidated #68 wsX and x_scaled address the same broad layout requirement and are counted together. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "O7",
        "state": "tracked",
        "assessment": "Consolidated #68 wsX and x_scaled address the same broad layout requirement and are counted together. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 69,
    "ids": [
      "W3"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Live PADEMU/GSM/cheat-state icons supplied to themes",
    "assessment": "Distinct from static metadata badges in AttributeImage.",
    "sources": [
      "https://github.com/ps2homebrew/wOPL/blob/wOPL-base/src/textures.c",
      "https://github.com/ps2homebrew/wOPL/blob/wOPL-base/src/themes.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "W3"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "W3",
        "state": "tracked",
        "assessment": "Consolidated #69 Distinct from static metadata badges in AttributeImage. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 70,
    "ids": [
      "W6"
    ],
    "scope": "Theme / UI",
    "evidence": "Design option",
    "feature": "Info-only page without list navigation",
    "assessment": "An alternative information-screen interaction policy.",
    "sources": [
      "https://github.com/ps2homebrew/wOPL/pull/308"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "W6"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "W6",
        "state": "tracked",
        "assessment": "Consolidated #70 An alternative information-screen interaction policy. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 71,
    "ids": [
      "O2"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Bind image elements to non-selected neighboring game rows",
    "assessment": "Offset-driven hero/filmstrip layouts.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/01-opl-tile-grid.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "O2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "O2",
        "state": "tracked",
        "assessment": "Consolidated #71 Offset-driven hero/filmstrip layouts. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 72,
    "ids": [
      "O5"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "MenuTabs strip showing all devices and custom labels",
    "assessment": "Existing MenuText/current-device selection is narrower.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/03-opl-menu-tabs.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "O5"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "O5",
        "state": "tracked",
        "assessment": "Consolidated #72 Existing MenuText/current-device selection is narrower. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 73,
    "ids": [
      "O6"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Theme-controlled game-count prefix and suffix",
    "assessment": "Current RiptOPL GameCountText uses the localized FILE_COUNT format.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/03-opl-menu-tabs.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "O6"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "O6",
        "state": "tracked",
        "assessment": "Consolidated #73 Current RiptOPL GameCountText uses the localized FILE_COUNT format. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 74,
    "ids": [
      "O11"
    ],
    "scope": "Apps",
    "evidence": "Source",
    "feature": "Per-app subtitle metadata and display",
    "assessment": "A separate subtitle field in the app's title.cfg.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/09-shelf-sidebar.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "O11"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "O11",
        "state": "tracked",
        "assessment": "Consolidated #74 A separate subtitle field in the app's title.cfg. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 75,
    "ids": [
      "RI13"
    ],
    "scope": "Theme engine",
    "evidence": "Released source",
    "feature": "Per-row star, highlight and platform-decorator controls",
    "assessment": "RiptOPL has Favorites and decorators; the configurable star column/highlight/PS1/PS2/app controls are additional.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0106-ripps2-poweroff-star.patch"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "RI13"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI13",
        "state": "partial",
        "assessment": "The RIPPS2 port adds dimmed disabled rows, scroll bars, right-stick peek, glyph sets and font weight. The exact star-column/highlight/platform-decorator configuration remains source-specific; these controls do not imply the whole RIPPS2 navigation renderer was ported.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 76,
    "ids": [
      "TV8"
    ],
    "scope": "Theme / UI",
    "evidence": "Claimed release",
    "feature": "Cycle startup backgrounds without repeats until the set is exhausted",
    "assessment": "Specific shuffle-bag behavior advertised by FastLoader, not basic background/theme support.",
    "sources": [
      "https://github.com/Kyllemn/PS2TVCRT/blob/42c33b5be94cfa990f4a6f1281d0596922d20a46/README.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "TV8"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "TV8",
        "state": "tracked",
        "assessment": "Consolidated #76 Specific shuffle-bag behavior advertised by FastLoader, not basic background/theme support. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 77,
    "ids": [
      "T1"
    ],
    "scope": "Enhancements",
    "evidence": "Source",
    "feature": "Independent graphics-enhancement files and selection",
    "assessment": "Titan separates ENH enhancements from gameplay CHT cheats, with separate per-game choices and metadata.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/TITAN_GAME_PATCHES.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "T1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "T1",
        "state": "tracked",
        "assessment": "Consolidated #77 Titan separates ENH enhancements from gameplay CHT cheats, with separate per-game choices and metadata. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 78,
    "ids": [
      "T4"
    ],
    "scope": "Profiles",
    "evidence": "Source",
    "feature": "Named system users whose selected profile chooses an exclusive VMC",
    "assessment": "Different from per-game card assignment alone.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/kernel/src/services/titan_user_profile.h",
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/kernel/src/services/titan_profile_storage.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "T4"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "T4",
        "state": "tracked",
        "assessment": "Consolidated #78 Different from per-game card assignment alone. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 79,
    "ids": [
      "T5"
    ],
    "scope": "System UI",
    "evidence": "Source",
    "feature": "Notification center with retained activity/download progress",
    "assessment": "RiptOPL has transient notifications rather than a retained activity service.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/kernel/src/ui/titan_notifications.h",
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/kernel/src/ui/titan_shell_catalog.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "T5"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "T5",
        "state": "tracked",
        "assessment": "Consolidated #79 RiptOPL has transient notifications rather than a retained activity service. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 80,
    "ids": [
      "T2"
    ],
    "scope": "System platform",
    "evidence": "Source",
    "feature": "Installable native app packages and an in-process application SDK",
    "assessment": "Titan TPKG/runtime services; ordinary external ELF launching is already present.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition#product-components",
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/TITAN_PACKAGE_FORMAT.md",
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/reference/TITAN_STANDALONE_SDK.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "T2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "T2",
        "state": "tracked",
        "assessment": "Consolidated #80 Titan TPKG/runtime services; ordinary external ELF launching is already present. source 1 · source 2 · source 3",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 81,
    "ids": [
      "T6"
    ],
    "scope": "System tools",
    "evidence": "Source",
    "feature": "Integrated lightweight interactive web browser",
    "assessment": "HTTP text/link browsing and bridge-backed HTTPS, rather than HTTP game streaming.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/apps/internet-browser/README.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "T6"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "T6",
        "state": "tracked",
        "assessment": "Consolidated #81 HTTP text/link browsing and bridge-backed HTTPS, rather than HTTP game streaming. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 82,
    "ids": [
      "T7"
    ],
    "scope": "System tools",
    "evidence": "Source",
    "feature": "In-console staged/rollback-capable system updater",
    "assessment": "RiptOPL distributes release kits instead of performing transactional console installation.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/SYSTEM_UPDATE_PUP.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "T7"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "T7",
        "state": "tracked",
        "assessment": "Consolidated #82 RiptOPL distributes release kits instead of performing transactional console installation. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 83,
    "ids": [
      "T10"
    ],
    "scope": "System platform",
    "evidence": "Experimental",
    "feature": "Repository catalog, dependency resolution and verified package downloads",
    "assessment": "Titan Store foundation; target download acceptance remains pending and no finished-storefront claim is made.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/TITAN_STORE_ARCHITECTURE.md",
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/TITAN_DOWNLOAD_SERVICE.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "T10"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "T10",
        "state": "experimental",
        "assessment": "Consolidated #83 Titan Store foundation; target download acceptance remains pending and no finished-storefront claim is made. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 84,
    "ids": [
      "T8"
    ],
    "scope": "Theme engine",
    "evidence": "Source",
    "feature": "Packaged scene/keyframe themes with transitions, idle loops and audio",
    "assessment": "More than existing OPL theme images, BGM and built-in animations.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/THEME_AUTHORING.md"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "T8"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "T8",
        "state": "tracked",
        "assessment": "Consolidated #84 More than existing OPL theme images, BGM and built-in animations. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 85,
    "ids": [
      "B2"
    ],
    "scope": "Media tools",
    "evidence": "Claimed / source",
    "feature": "General-purpose console music player",
    "assessment": "Separate from RiptOPL background music playback.",
    "sources": [
      "https://boliviaos.site/"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "B2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "B2",
        "state": "tracked",
        "assessment": "Consolidated #85 Separate from RiptOPL background music playback. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 86,
    "ids": [
      "B3"
    ],
    "scope": "Media tools",
    "evidence": "Claimed / source",
    "feature": "General-purpose image and font viewers",
    "assessment": "Separate from rendering game artwork and UI fonts.",
    "sources": [
      "https://boliviaos.site/"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "B3"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "B3",
        "state": "tracked",
        "assessment": "Consolidated #86 Separate from rendering game artwork and UI fonts. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 87,
    "ids": [
      "B4"
    ],
    "scope": "System tools",
    "evidence": "Claimed / source",
    "feature": "Integrated text/code editor and terminal",
    "assessment": "BoliviaOS tool suite, outside normal game launching.",
    "sources": [
      "https://boliviaos.site/"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "B4"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "B4",
        "state": "tracked",
        "assessment": "Consolidated #87 BoliviaOS tool suite, outside normal game launching. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 88,
    "ids": [
      "B7"
    ],
    "scope": "Media tools",
    "evidence": "Claimed / source",
    "feature": "Integrated PDF viewer",
    "assessment": "A separate document-viewing application in the console shell.",
    "sources": [
      "https://boliviaos.site/"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "B7"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "B7",
        "state": "tracked",
        "assessment": "Consolidated #88 A separate document-viewing application in the console shell. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 89,
    "ids": [
      "R1",
      "TV3"
    ],
    "scope": "Emulator frontend",
    "evidence": "Source / claim",
    "feature": "Retro-system ROM libraries with configured emulator/core launch",
    "assessment": "RETROLauncher and the Retro Arcade suite provide ROM catalogs beyond RiptOPL's PS1/PS2/Apps views; launching an emulator ELF through Apps already exists.",
    "sources": [
      "https://github.com/Spaghetticode-Boon-Tobias/RETROLauncher#readme",
      "https://github.com/Kyllemn/PS2TVCRT/releases/tag/FullAnFinalRelease"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "R1",
      "TV3"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "R1",
        "state": "tracked",
        "assessment": "Consolidated #89 RETROLauncher and the Retro Arcade suite provide ROM catalogs beyond RiptOPL's PS1/PS2/Apps views; launching an emulator ELF through Apps already exists. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "TV3",
        "state": "tracked",
        "assessment": "Consolidated #89 RETROLauncher and the Retro Arcade suite provide ROM catalogs beyond RiptOPL's PS1/PS2/Apps views; launching an emulator ELF through Apps already exists. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 90,
    "ids": [
      "TV4"
    ],
    "scope": "Emulator frontend",
    "evidence": "Claimed release",
    "feature": "Retro Arcade launch-mode picker and return to the selected ROM",
    "assessment": "The suite documents 240p/480i/480p selection and returning to the same game; not a new PS2 OPL/Neutrino compatibility mode.",
    "sources": [
      "https://github.com/Kyllemn/PS2TVCRT/releases/tag/FullAnFinalRelease"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "TV4"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "TV4",
        "state": "tracked",
        "assessment": "Consolidated #90 The suite documents 240p/480i/480p selection and returning to the same game; not a new PS2 OPL/Neutrino compatibility mode. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 91,
    "ids": [
      "PX3",
      "PX4"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "Select PSXCore as a third PS1 runtime / use its source-buildable adapter",
    "assessment": "RiptOPL ships POPStarter and Ember, not PSXCore. Main no longer ships tester sources; the tester branch is separate.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/INTEGRATION.md",
      "https://github.com/NathanNeurotic/RiptOPL/blob/rebuild/main/docs/VCD.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX3",
      "PX4"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX3",
        "state": "experimental",
        "assessment": "Consolidated #91 RiptOPL ships POPStarter and Ember, not PSXCore. Main no longer ships tester sources; the tester branch is separate. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX4",
        "state": "experimental",
        "assessment": "Consolidated #91 RiptOPL ships POPStarter and Ember, not PSXCore. Main no longer ships tester sources; the tester branch is separate. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 92,
    "ids": [
      "PX1"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "Optional guarded decoded-instruction code validation",
    "assessment": "A PSXCore mechanism; different from RiptOPL checking file/module identities before launch.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/src/compat.c"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX1",
        "state": "experimental",
        "assessment": "Consolidated #92 A PSXCore mechanism; different from RiptOPL checking file/module identities before launch. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 93,
    "ids": [
      "PX2",
      "PX31",
      "PX32"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore GPU/GTE/DMA semantic corrections",
    "assessment": "Current source extends the earlier GPU/GTE/DMA work with exact polygon packets, native GTE read/flag/depth/clamp and far-color/special-matrix corrections. Some options were reverted or default-enabled later; this audit follows net 636961dd source, not every intermediate commit message.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/src/runtime_corrections.c",
      "https://github.com/dnunezx/PSXCore/commit/9d9c7a36c493abd741793fec4dafb018883b0212",
      "https://github.com/dnunezx/PSXCore/commit/2f35645aa9c35a4af83feee91da79f39155ced1c"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX2",
      "PX31",
      "PX32"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX2",
        "state": "experimental",
        "assessment": "Consolidated #93 Includes palette/query fixes, signed INTPL interpolation and parked-worker GP1 DMA-control changes. No inferred superiority for a particular game. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX31",
        "state": "experimental",
        "assessment": "Consolidated #93 Includes palette/query fixes, signed INTPL interpolation and parked-worker GP1 DMA-control changes. No inferred superiority for a particular game. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX32",
        "state": "experimental",
        "assessment": "Consolidated #93 Includes palette/query fixes, signed INTPL interpolation and parked-worker GP1 DMA-control changes. No inferred superiority for a particular game. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 94,
    "ids": [
      "PX5",
      "PX33",
      "PX36",
      "LU39"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore MDEC/RGB24/buffered-interlace corrections",
    "assessment": "PSXCore source now includes MDEC run-length/quantization corrections and an opt-in output-only interlaced HDTV patch, with a wrapper-pinned per-game UI. These are specific runtime mechanisms; POPStarter/Ember already have PS1 video paths. No universal HD or compatibility win is claimed.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/runtime/Makefile",
      "https://github.com/dnunezx/PSXCore/commit/dcf1fc868de33a957ae14072145a2d6810abc3ff",
      "https://github.com/dnunezx/PSXCore/blob/636961dd666f71d5fe2fd2a0d6c8aa95c0b110ae/src/hdtv.c",
      "https://github.com/dnunezx/PSXCore/blob/636961dd666f71d5fe2fd2a0d6c8aa95c0b110ae/runtime/hdtv.S",
      "https://github.com/dnunezx/nhddl-luna/blob/15f01bd180f076d8098529b5c5d5df4d07b13f46/src/ui/game_options.c",
      "https://github.com/dnunezx/LUNA/tree/386f352cf1c2d74a010b23f519c680d31826405d"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX5",
      "PX33",
      "PX36",
      "LU39"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX5",
        "state": "experimental",
        "assessment": "Consolidated #94 Includes publishing the completed interlace display descriptor; not proof that all FMVs are fixed. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX33",
        "state": "experimental",
        "assessment": "Consolidated #94 Includes publishing the completed interlace display descriptor; not proof that all FMVs are fixed. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX36",
        "state": "experimental",
        "assessment": "Consolidated #94 Exact-site/known-runtime patch with --hdtv overrides; current wrapper pins it. Keep guest timing/rendering separate from presentation and require representative display/game tests. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "LU39",
        "state": "experimental",
        "assessment": "Consolidated #94 The wrapper pins the UI and core option. This is output-only interlaced compatibility for PSXCore, not higher-resolution rendering or a universal substitute for POPStarter/Ember video settings. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 95,
    "ids": [
      "PX6"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore SPU, capture-IRQ, reverb and CDDA corrections",
    "assessment": "Alternative runtime implementation, not a claim RiptOPL has no PS1 audio.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/src/runtime_corrections.c",
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/runtime/Makefile"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX6"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX6",
        "state": "experimental",
        "assessment": "Consolidated #95 Alternative runtime implementation, not a claim RiptOPL has no PS1 audio. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 96,
    "ids": [
      "PX7",
      "PX34",
      "PX37"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore guest-memory, CPU-timing and load-delay fast paths",
    "assessment": "Includes precomputed addressing and smaller DMA/GP0/GP1 saves now enabled by default, with disable switches retained.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md",
      "https://github.com/dnunezx/PSXCore/compare/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9...0d4348ea5fff50a16c303c5c1910038e65bf7915",
      "https://github.com/dnunezx/PSXCore/blob/636961dd666f71d5fe2fd2a0d6c8aa95c0b110ae/runtime/gamepatches/rayman2.c",
      "https://github.com/dnunezx/PSXCore/blob/636961dd666f71d5fe2fd2a0d6c8aa95c0b110ae/runtime/gamepatches.c"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX7",
      "PX34",
      "PX37"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX7",
        "state": "experimental",
        "assessment": "Consolidated #96 Includes precomputed addressing and smaller DMA/GP0/GP1 saves now enabled by default, with disable switches retained. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX34",
        "state": "experimental",
        "assessment": "Consolidated #96 Includes precomputed addressing and smaller DMA/GP0/GP1 saves now enabled by default, with disable switches retained. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX37",
        "state": "experimental",
        "assessment": "Consolidated #96 Rayman 2 handoff retirement and a shared startup dispatcher are new source mechanisms, not proof of a missing POPStarter/Ember compatibility fix. Additional GTE/MDEC fixes also extend existing PX2/PX5 families. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 97,
    "ids": [
      "PX8",
      "PX14"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore firmware-identity and transactional runtime-patch planner",
    "assessment": "Includes byte guards, overlap/capacity checks and revision-specific license-string changes; no generic region-bypass claim.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/src/patch.c",
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX8",
      "PX14"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX8",
        "state": "experimental",
        "assessment": "Consolidated #97 Includes byte guards, overlap/capacity checks and revision-specific license-string changes; no generic region-bypass claim. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX14",
        "state": "experimental",
        "assessment": "Consolidated #97 Includes byte guards, overlap/capacity checks and revision-specific license-string changes; no generic region-bypass claim. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 98,
    "ids": [
      "PX9",
      "PX29"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore native-save worker, PFS ownership and flush guards",
    "assessment": "Partially provisioned native-partition path; source mechanisms do not establish power-loss durability or a complete APA user flow.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/INTEGRATION.md",
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX9",
      "PX29"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX9",
        "state": "experimental",
        "assessment": "Consolidated #98 Partially provisioned native-partition path; source mechanisms do not establish power-loss durability or a complete APA user flow. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX29",
        "state": "experimental",
        "assessment": "Consolidated #98 Partially provisioned native-partition path; source mechanisms do not establish power-loss durability or a complete APA user flow. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 99,
    "ids": [
      "PX10"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore disc/TOC fingerprint binding to save identity",
    "assessment": "A content-identity mechanism beyond ordinary file naming.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/src/discset.c"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX10"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX10",
        "state": "experimental",
        "assessment": "Consolidated #99 A content-identity mechanism beyond ordinary file naming. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 100,
    "ids": [
      "PX11"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "Optional adaptive PCM output-rate feedback",
    "assessment": "Off by default, changes rate/possibly pitch; not a CPU-speed fix.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX11"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX11",
        "state": "experimental",
        "assessment": "Consolidated #100 Off by default, changes rate/possibly pitch; not a CPU-speed fix. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 101,
    "ids": [
      "PX24"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore bounded sector-tail cache and seek-status correction",
    "assessment": "Runtime I/O mechanism; broad game-speed improvement is unmeasured.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX24"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX24",
        "state": "experimental",
        "assessment": "Consolidated #101 Runtime I/O mechanism; broad game-speed improvement is unmeasured. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 102,
    "ids": [
      "PX25"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore exact raster/polygon-cost fast path",
    "assessment": "Keep timing/compatibility evidence separate from build success.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX25"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX25",
        "state": "experimental",
        "assessment": "Consolidated #102 Keep timing/compatibility evidence separate from build success. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 103,
    "ids": [
      "PX26"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore GP0 packet/callback/empty-flush fast paths",
    "assessment": "Source optimization, not a standalone proven end-user compatibility feature.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX26"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX26",
        "state": "experimental",
        "assessment": "Consolidated #103 Source optimization, not a standalone proven end-user compatibility feature. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 104,
    "ids": [
      "PX30"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore bounded aligned/unaligned upload-row copies",
    "assessment": "The newer branch streams rows with aligned quadword loads while retaining bounds.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX30"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX30",
        "state": "experimental",
        "assessment": "Consolidated #104 The newer branch streams rows with aligned quadword loads while retaining bounds. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 105,
    "ids": [
      "PX23",
      "PX35"
    ],
    "scope": "PS1 runtime",
    "evidence": "Experimental",
    "feature": "PSXCore boot/save-worker and patch-plan diagnostics",
    "assessment": "Current adapter also reports planner failures and increases its bounded capacity.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md",
      "https://github.com/dnunezx/PSXCore/commit/f1333504bdd43815f295081f434276dcfae80eff"
    ],
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "PX23",
      "PX35"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "PX23",
        "state": "experimental",
        "assessment": "Consolidated #105 Current adapter also reports planner failures and increases its bounded capacity. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      },
      {
        "id": "PX35",
        "state": "experimental",
        "assessment": "Consolidated #105 Current adapter also reports planner failures and increases its bounded capacity. source 1",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 106,
    "ids": [
      "RI18"
    ],
    "scope": "Rendering design",
    "evidence": "Source design alternative",
    "feature": "Magnified single-pass 720p/1080i menu presentation",
    "assessment": "Uses 640-wide framebuffers with GS magnification and one render pass. This trades horizontal raster resolution for lower queue replay/VRAM pressure; RiptOPL already has HD output. Benchmark before adopting.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0075-ripps2-build75-one-pass-hd-early-boot-sound-neutrino-show-args.patch"
    ],
    "states": [
      "intentional"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "RI18",
        "state": "intentional",
        "assessment": "RIPPS2 single-pass magnified 640-wide HD is an alternative raster/VRAM tradeoff. The local edition deliberately retains sharper hires rendering; no correctness gap or automatic performance win is established.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 107,
    "ids": [
      "RI21"
    ],
    "scope": "Library",
    "evidence": "Released source",
    "feature": "Master library before sources answer, with waiting rows",
    "assessment": "October 25: Build 114 released; preserve runtime/save-safety validation limits. b114 stores allgames.bin, validates its schema/checksum and resolves waiting rows through their source at launch. Different from RI10 per-source snapshots. Development source, not released Build 113 or proven cold-boot/game acceptance.",
    "sources": [
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084",
      "https://github.com/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/patches/0114-ripps2-games.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "RI21"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI21",
        "state": "partial",
        "assessment": "All Games is merged, but it aggregates started devices. RIPPS2 saved allgames.bin, waiting rows and lazy source activation are still a distinct persistent-catalogue design.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 108,
    "ids": [
      "RI22"
    ],
    "scope": "Library",
    "evidence": "Released source",
    "feature": "Per-device hidden-game catalogue and Hidden Games manager",
    "assessment": "October 25: Build 114 released; preserve runtime/save-safety validation limits. b114 stores RIPPS2.HID on each source and offers restoration through Settings. Separate from parental-lock policy and temporarily unavailable sources.",
    "sources": [
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084",
      "https://github.com/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/patches/0114-ripps2-games.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "RI22",
        "state": "shipped",
        "assessment": "Per-device hidden.txt, Hide Game and Show Hidden Games are present in both editions. Hidden entries are excluded from the unified/favourites/recent/random views.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 109,
    "ids": [
      "RI23"
    ],
    "scope": "Game management",
    "evidence": "Released source",
    "feature": "Managed full-game cleanup with a read-only APA preflight",
    "assessment": "October 25: Build 114 released; preserve runtime/save-safety validation limits. b114 plans associated-file removal, explicit save choices and APA header/size/alignment/link checks before partition deletion. Synthetic tests are useful but do not certify arbitrary real disks, interrupted deletion or shared-save ownership.",
    "sources": [
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084",
      "https://github.com/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/patches/0114-ripps2-games.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "RI23"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI23",
        "state": "partial",
        "assessment": "BDM/MMCE/SMB PS2 cleanup now removes all game parts before CFG/art/cheats and keeps VMC saves. APA partition deletion was intentionally declined; it is not an outstanding port commitment.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 110,
    "ids": [
      "RI24"
    ],
    "scope": "Image tools",
    "evidence": "Released source",
    "feature": "On-console ISO/ZSO conversion with staged read-back checks",
    "assessment": "October 25: Build 114 released; preserve runtime/save-safety validation limits. b114 implements LZ4 packing/unpacking, free-space checks, aligned streaming, per-run CRC read-back and a separate confirmation before source removal. OPL-core ZSO support is not Neutrino support. Needs malformed-header, overflow, cancellation, temp-file ownership and power-loss tests before adoption.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/patches/0114-ripps2-games.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "RI24"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI24",
        "state": "tracked",
        "assessment": "Released source / adoption candidate October 25 update: Build 114 is now released as v1.1.4-beta. Build 114 implements LZ4 packing/unpacking, free-space checks, aligned streaming, per-run CRC read-back and a separate confirmation before source removal. OPL-core ZSO support is not Neutrino support. Needs malformed-header, overflow, cancellation, temp-file ownership and power-loss tests before adoption. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 111,
    "ids": [
      "RI26"
    ],
    "scope": "Theme / UI",
    "evidence": "Released source",
    "feature": "Editable named Color Sweeps with speed and delete controls",
    "assessment": "October 25: Build 114 released; preserve runtime/save-safety validation limits. b114 adds a named sweep manager, distinguishes Sweep from Theme Color and keeps theme ordering explicit. Optional presentation source; not a game-loading requirement.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/patches/0114-ripps2-games.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "RI26"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI26",
        "state": "tracked",
        "assessment": "Released source / adoption candidate October 25 update: Build 114 is now released as v1.1.4-beta. Build 114 adds a named sweep manager, distinguishes Sweep from Theme Color and keeps theme ordering explicit. Optional presentation source; not a game-loading requirement. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 112,
    "ids": [
      "RI28"
    ],
    "scope": "Menu audio",
    "evidence": "Released source",
    "feature": "16-bit WAV mono/rate conversion for menu music",
    "assessment": "Released Build 111 streams mono WAVs as stereo and resamples rates for audsrv; Build 112 distinguishes the two BIOS-derived pieces. RiptOPL’s existing Vorbis BGM is not the same PCM input path. No audio assets are redistributed by this audit.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0111-ripps2-soundclean.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0112-ripps2-menumusic.patch"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "RI28"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI28",
        "state": "tracked",
        "assessment": "Consolidated #112 Released Build 111 streams mono WAVs as stereo and resamples rates for audsrv; Build 112 distinguishes the two BIOS-derived pieces. RiptOPL’s existing Vorbis BGM is not the same PCM input path. No audio assets are redistributed by this audit. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 113,
    "ids": [
      "LU36"
    ],
    "scope": "Audio design",
    "evidence": "Wrapper-pinned source",
    "feature": "SPU2 ADPCM hardware-loop ambient playback",
    "assessment": "LUNA now pins the implementation and packages its bounded LADP asset. RiptOPL already has streaming BGM; this alternative removes continuous decoding for a fixed resident loop but reserves SPU2 memory/voices and changes the asset format.",
    "sources": [
      "https://github.com/dnunezx/LUNA/tree/386f352cf1c2d74a010b23f519c680d31826405d",
      "https://github.com/dnunezx/nhddl-luna/blob/15f01bd180f076d8098529b5c5d5df4d07b13f46/src/ui/ambient.c"
    ],
    "states": [
      "tracked"
    ],
    "remaining_ids": [
      "LU36"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU36",
        "state": "tracked",
        "assessment": "Consolidated #113 No longer an unbundled frontend experiment: LUNA 386f352c pins frontend 15f01bd1, including SPU2 hardware-loop ambient playback. RiptOPL already has BGM; this is an alternative bounded playback mechanism, not missing music. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 114,
    "ids": [
      "RI34"
    ],
    "scope": "Correctness / design review",
    "evidence": "Development source",
    "feature": "Version-aware external Neutrino argument negotiation",
    "assessment": "Build 115 reads version.txt, then ELF strings/config markers before teardown and gates automatically generated options. RiptOPL already validates token boundaries and argument budgets, but that is not runtime option negotiation. Unknown or packed installs retain permissive compatibility behavior in its tests; a conservative fallback would need separate design. Inspect ORBIT and user overrides independently.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e1e3504f4a8bfd6b2f88425d284eb845393cfcb9/elf/patches/0115-ripps2-hardware.patch"
    ],
    "states": [
      "candidate"
    ],
    "remaining_ids": [
      "RI34"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI34",
        "state": "candidate",
        "assessment": "Version-aware capability negotiation for whichever external Neutrino ELF is installed remains a candidate. Local argument budgeting, read-only cheat/config handling and explicit launch-argument inspection already exist; LUNA long-argument transport is LU42 and requires a paired runtime.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 115,
    "ids": [
      "RI35"
    ],
    "scope": "Correctness / design review",
    "evidence": "Development source",
    "feature": "MMCE busy/card-creation coordination before scans and launch",
    "assessment": "Build 115 checks device busy state, delays card reads and writes play history before waiting for the game card. Device busy is different from loader IO busy. Recheck firmware semantics, cancellation, timeout and shared SIO2 scheduling before any port; upstream hardware notes still describe a failed MMCE game launch.",
    "sources": [
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084",
      "https://github.com/akilluminati47/RIPPS2/blob/e1e3504f4a8bfd6b2f88425d284eb845393cfcb9/elf/patches/0115-ripps2-hardware.patch",
      "https://github.com/NathanNeurotic/RiptOPL/pull/146",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1118"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "RI35"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI35",
        "state": "partial",
        "assessment": "The busy-seen-then-ready launch wait, START skip and bounded timeout are merged in both editions. Broader scan/card-creation coordination is separate. YA-09 silent-swap follow-up: Merged in both editions: RiptOPL #146 (batch #162) and legacy #1118 (batch #1133). Not tested on hardware.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 116,
    "ids": [
      "RI36"
    ],
    "scope": "Artwork interoperability",
    "evidence": "Development source",
    "feature": "Artwork name aliases with exact case-preserved directory lookup",
    "assessment": "Build 115 adds JPEG/case-aware lookup, OPL Manager BG_00/SCR_00/SCR_01 aliases and PS1 disc/ELF alternatives. Source-extracted host check passed. Avoid extra network misses and define deterministic precedence when two aliases exist.",
    "sources": [
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084",
      "https://github.com/akilluminati47/RIPPS2/blob/e1e3504f4a8bfd6b2f88425d284eb845393cfcb9/elf/patches/0115-ripps2-hardware.patch"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "RI36"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI36",
        "state": "partial",
        "assessment": "JPG/JPEG decoding, exact case-preserved lookup in indexed ART folders, OPL Manager BG_00/SCR_00/SCR_01 aliases and JPG archive members are merged. RIPPS2 additional PS1 disc/ELF-name alternatives are not part of that port; unindexed network folders retain bounded extension probes.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 117,
    "ids": [
      "RI38"
    ],
    "scope": "Library navigation",
    "evidence": "Development source",
    "feature": "Extended Recent Games capacity and lazy-source navigation; last-10 list now present",
    "assessment": "A separate sidebar list shares All Games source proxies; Manual drives start when selected. RiptOPL already retains last-played/favorite concepts; a bounded history page is a distinct UI extension, not missing history altogether.",
    "sources": [
      "https://github.com/NathanNeurotic/RiptOPL/pull/99",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1084",
      "https://github.com/akilluminati47/RIPPS2/blob/e1e3504f4a8bfd6b2f88425d284eb845393cfcb9/elf/patches/0115-ripps2-hardware.patch"
    ],
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "RI38"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI38",
        "state": "partial",
        "assessment": "Both editions keep the last 10 recents, expose a Recent filter and sort by Last played. RIPPS2 separate lazy-source Recent page and configurable capacity up to 99 remain the narrower difference.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 118,
    "ids": [
      "NV1"
    ],
    "scope": "In-game audio",
    "evidence": "Uncompiled proof of concept",
    "feature": "In-game master-volume RPC with framebuffer overlay",
    "assessment": "New fork explicitly calls this an uncompiled proof of concept. SPU2 master-volume RPC and active-framebuffer drawing need build and console checks, game-owned audio reconfiguration, IOP reset/rebind and DMA race analysis. Not release-ready or evidence of safe arbitrary-game overlays.",
    "sources": [
      "https://github.com/Nrlemo/Open-PS2-Loader-volume/blob/c1a5b3305be955bb1d4a6115bbf12335880f8176/docs/IN_GAME_VOLUME_CONTROL.md",
      "https://github.com/Nrlemo/Open-PS2-Loader-volume/blob/c1a5b3305be955bb1d4a6115bbf12335880f8176/docs/IN_GAME_VOLUME_OVERLAY.md"
    ],
    "states": [
      "candidate"
    ],
    "remaining_ids": [
      "NV1"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "NV1",
        "state": "candidate",
        "assessment": "Review candidate; not a confirmed RiptOPL defect New fork explicitly calls this an uncompiled proof of concept. SPU2 master-volume RPC and active-framebuffer drawing need build and console checks, game-owned audio reconfiguration, IOP reset/rebind and DMA race analysis. Not release-ready or evidence of safe arbitrary-game overlays. source 1 · source 2",
        "assessment_date": "2026-10-25 or dated later amendment"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 119,
    "ids": [
      "LU37",
      "LU41",
      "BL2"
    ],
    "feature": "Artwork scheduling, bounded decoded-source reuse and cancellation",
    "scope": "October 29 source findings",
    "states": [
      "candidate"
    ],
    "remaining_ids": [
      "LU37",
      "LU41",
      "BL2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU37",
        "state": "candidate",
        "assessment": "LUNA retained cooperative artwork slicing and now adds direction-aware decoded-cover reuse within 4 MiB (LU41). Both local editions already have asynchronous artwork workers, caching and Grid coverage. Compare cancellation, generation ownership, RAM/VRAM and actual storage latency before claiming a speedup.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "LU41",
        "state": "candidate",
        "assessment": "The 4 MiB direction-aware decoded-cover reuse mechanism remains in LUNA; the wrapper now pins luna@1c97889d after five additional UI-focused commits. Removal of an unused background-available helper is not removal of the art worker/cache. Local async workers/Grid caches already overlap; no comparative latency result.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      },
      {
        "id": "BL2",
        "state": "candidate",
        "assessment": "New fork speculatively loads COV/ICO for up to two visible neighbours each way, one queued request, after selection settles. Local artwork workers and Grid caches already overlap. Compare queue fairness, cancellation, filtered indices and device removal; the author reports a PS2 prefetch trial but newer Favorites/UI only emulator checks, not local acceptance.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/dnunezx/nhddl-luna/blob/15f01bd180f076d8098529b5c5d5df4d07b13f46/src/ui/artwork_slice.c",
      "https://github.com/dnunezx/nhddl-luna/blob/f640a4e8cfd4c91579af4c4faf9246261e3536d7/src/ui/collection_art.c",
      "https://github.com/dnunezx/nhddl-luna/blob/f640a4e8cfd4c91579af4c4faf9246261e3536d7/include/ui/collection_art.h",
      "https://github.com/dnunezx/nhddl-luna/blob/f640a4e8cfd4c91579af4c4faf9246261e3536d7/src/ui/art_cache.c",
      "https://github.com/Blayr/opl-custom/blob/7959031a65ed4f1abc12369820679d741dea0277/src/texcache.c",
      "https://github.com/Blayr/opl-custom/blob/7959031a65ed4f1abc12369820679d741dea0277/CUSTOM.md"
    ]
  },
  {
    "number": 120,
    "ids": [
      "RI41",
      "RI42"
    ],
    "feature": "On-console ART archive construction and merge",
    "scope": "October 29 source findings",
    "states": [
      "candidate"
    ],
    "remaining_ids": [
      "RI41",
      "RI42"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI41",
        "state": "candidate",
        "assessment": "Released builds 118-121 add ART Pack construction, estimates and selection. Local ART .tar reading and JPEG aliases are already present; building/managing packs on-console is the difference. No filesystem performance or save-safety acceptance is inferred.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "RI42",
        "state": "candidate",
        "assessment": "ART tar merge is in released v1.2.4-beta/build124 (previously labelled development123). Source uses sibling staging, duplicate-name replacement and rename/recovery handling; local ART archive reading/indexing does not implement this construction/merge workflow. Release claims are not verified atomicity or power-loss durability.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/b682a93cfffc9f3481a0f6dfd7b4e45a88b5be86/elf/patches/0118-ripps2-artpack-bootsound.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/b682a93cfffc9f3481a0f6dfd7b4e45a88b5be86/elf/patches/0123-ripps2-tar-merge.patch"
    ]
  },
  {
    "number": 121,
    "ids": [
      "RI43"
    ],
    "feature": "Aspect-aware picture crop policy",
    "scope": "October 29 source findings",
    "states": [
      "candidate"
    ],
    "remaining_ids": [
      "RI43"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI43",
        "state": "candidate",
        "assessment": "Released build 119 crops game pictures to their middle three quarters in 16:9 while preserving covers/logos, with explicit opt-out. Local existing art scaling is not this automatic policy. Treat as presentation choice and compare 4:3/16:9 themes and art semantics.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/b682a93cfffc9f3481a0f6dfd7b4e45a88b5be86/elf/patches/0119-ripps2-infopage-artpack-flow.patch"
    ]
  },
  {
    "number": 122,
    "ids": [
      "RI44"
    ],
    "feature": "Menu position profiles per video mode",
    "scope": "October 29 source findings",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "RI44",
        "state": "shipped",
        "assessment": "Both editions merged per-video-mode H-POS/V-POS/overscan profiles (#159/#1131). They subsequently merged saved-video-mode boot (#170/#1141) and SD/HD theme layouts, fallback views and forced 16:9 for 720p/1080i. The MC boot-audio sidecar is still RI45; saved-mode boot does not provide it.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/b682a93cfffc9f3481a0f6dfd7b4e45a88b5be86/elf/patches/0124-ripps2-position-per-mode.patch"
    ]
  },
  {
    "number": 123,
    "ids": [
      "RI45"
    ],
    "feature": "Memory-card boot-sound sidecar policy",
    "scope": "October 29 source findings",
    "states": [
      "candidate"
    ],
    "remaining_ids": [
      "RI45"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI45",
        "state": "candidate",
        "assessment": "RIPPS2 build121 MC boot.adp sidecar/copy offer remains a separate audio-start policy. Both local editions now start in the saved video mode, but that port does not supply this card-side audio file workflow. Earlier emulator timing remains upstream-only evidence.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/b682a93cfffc9f3481a0f6dfd7b4e45a88b5be86/elf/patches/0121-ripps2-boot-sound-card.patch"
    ]
  },
  {
    "number": 124,
    "ids": [
      "RI47"
    ],
    "feature": "Opt-in thread-wait watchdog diagnostics",
    "scope": "October 29 source findings",
    "states": [
      "experimental"
    ],
    "remaining_ids": [
      "RI47"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "RI47",
        "state": "experimental",
        "assessment": "The opt-in thread-wait watchdog exists in build124 source, now tagged v1.2.4-beta. It is diagnostic evidence collection, not a freeze fix. Local menu-freeze diagnostics #191/#1160 are still open at this snapshot and must not be described as shipped.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/b682a93cfffc9f3481a0f6dfd7b4e45a88b5be86/elf/patches/0124-ripps2-position-per-mode.patch"
    ]
  },
  {
    "number": 125,
    "ids": [
      "LU42"
    ],
    "feature": "Paired resident long-argument launch transport",
    "scope": "October 29 source findings",
    "states": [
      "candidate"
    ],
    "remaining_ids": [
      "LU42"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "LU42",
        "state": "candidate",
        "assessment": "LUNA uses a validated resident argv block and a matched -luna-args loader extension to carry longer launch settings across startup. Local launch preflight safely refuses its kernel-budget overflow rather than silently truncating. Supporting larger arguments requires paired frontend/runtime ownership, not merely increasing argv[32].",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/dnunezx/neutrino-luna/blob/fff99d9828c287a7328958668ecd25b1f17ea601/ee/loader/src/luna_handoff.h",
      "https://github.com/dnunezx/nhddl-luna/blob/f640a4e8cfd4c91579af4c4faf9246261e3536d7/src/neutrino.c"
    ]
  },
  {
    "number": 126,
    "ids": [
      "JUMP1",
      "JUMP2"
    ],
    "feature": "Optional loose shortcut discovery and display categorization",
    "scope": "October 29 source findings",
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "JUMP1",
      "JUMP2"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "JUMP1",
        "state": "partial",
        "assessment": "Explicit [PS1] Apps tags and separate POPSTARTER launch preparation already exist locally. JUMP adds prefix-based shelf categorization. Its predicate confuses some PS2 IDs, omits some regional PS1 prefixes and does not itself enforce .ELF; classification must never choose a core or bypass launch checks.",
        "assessment_date": "2026-10-29"
      },
      {
        "id": "JUMP2",
        "state": "partial",
        "assessment": "JUMP scans loose root/POPS/APPS ELFs into its portal. Local All Games aggregation and configured Apps already exist; opt-in loose-shortcut discovery is the narrower optional difference. Bound scans and preserve source/path identity, arguments and deduplication.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/juankyt505/OPL-JUMP/blob/414674c2448533ec3d386a31d035deb3e5b31687/src/appsupport.c",
      "https://github.com/juankyt505/OPL-JUMP/blob/414674c2448533ec3d386a31d035deb3e5b31687/src/menusys.c"
    ]
  },
  {
    "number": 127,
    "ids": [
      "YA-01"
    ],
    "feature": "OSD history executable-name bounds",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-01",
        "state": "shipped",
        "assessment": "Bounds and 15-character history payload follow-up merged in both hardening batches.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/142",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1114"
    ]
  },
  {
    "number": 128,
    "ids": [
      "YA-02"
    ],
    "feature": "ISO9660 directory record bounds and empty-name handling",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-02",
        "state": "shipped",
        "assessment": "Merged in both editions: RiptOPL #150 (batch #162) and legacy #1122 (batch #1133). Not tested on hardware.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/150",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1122"
    ]
  },
  {
    "number": 129,
    "ids": [
      "YA-03"
    ],
    "feature": "ZSO header/index validation and bounded large-read slices",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-03",
        "state": "shipped",
        "assessment": "Merged in both editions: RiptOPL #151 (batch #162) and legacy #1124 (batch #1133). Not tested on hardware.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/151",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1124"
    ]
  },
  {
    "number": 130,
    "ids": [
      "YA-04"
    ],
    "feature": "Wrapped font-string terminator preservation",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-04",
        "state": "shipped",
        "assessment": "Font NUL fix merged in both hardening batches.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/142",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1114"
    ]
  },
  {
    "number": 131,
    "ids": [
      "YA-05"
    ],
    "feature": "Cheat-table full-capacity attribution and accepted-code preservation",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-05",
        "state": "shipped",
        "assessment": "Both merged parsers preserve accepted codes when capacity is reached.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/142",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1114"
    ]
  },
  {
    "number": 132,
    "ids": [
      "YA-06"
    ],
    "feature": "Local bounded DualShock handoff retained after upstream reset withdrawal",
    "scope": "YAOPL mechanisms",
    "states": [
      "intentional"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-06",
        "state": "intentional",
        "assessment": "Both editions retain the bounded digital/unlocked DualShock launch handoff that was merged in #149/#1121. Current YAOPL removed that reset in 7094cd25 and now closes the pad directly. This is an upstream withdrawal/current policy divergence, not proof either policy fixes every controller or game. Preserve both source histories and seek affected-console evidence before changing it.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/149",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1121"
    ],
    "assessment": "Both editions retain the bounded digital/unlocked DualShock launch handoff that was merged in #149/#1121. Current YAOPL removed that reset in 7094cd25 and now closes the pad directly. This is an upstream withdrawal/current policy divergence, not proof either policy fixes every controller or game. Preserve both source histories and seek affected-console evidence before changing it."
  },
  {
    "number": 133,
    "ids": [
      "YA-07"
    ],
    "feature": "Per-pad DS34 USB report ownership and alarm cancellation",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-07",
        "state": "shipped",
        "assessment": "Merged in both editions: RiptOPL #147 (batch #162) and legacy #1119 (batch #1133). Not tested on hardware.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/147",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1119"
    ]
  },
  {
    "number": 134,
    "ids": [
      "YA-08"
    ],
    "feature": "Native UDPBD/UDPFS IMG launch and startup/read scheduling",
    "scope": "YAOPL mechanisms",
    "states": [
      "partial"
    ],
    "remaining_ids": [
      "YA-08"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "YA-08",
        "state": "partial",
        "assessment": "Native OPL core launches and the 16 KiB UDPBD read cap are merged (#153/#1123); Neutrino stays default. UDPFS Files games can also use the OPL core, with VMC saves (RiptOPL #161, legacy #1134). Retry/yield/SMAP-priority experiments require separate comparison; branch names are not accepted fixes.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/153",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1123"
    ]
  },
  {
    "number": 135,
    "ids": [
      "YA-09"
    ],
    "feature": "MMCE silent card-switch status settling",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-09",
        "state": "shipped",
        "assessment": "Merged in both editions: RiptOPL #146 (batch #162) and legacy #1118 (batch #1133). Not tested on hardware.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/146",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1118"
    ]
  },
  {
    "number": 136,
    "ids": [
      "YA-10"
    ],
    "feature": "SYSTEM.CNF BOOT2 missing-equals handling",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-10",
        "state": "shipped",
        "assessment": "C++ already had the guard and now has its regression; legacy guard/test merged in #1114. This record follows the #131 plan numbering, not the conflicting #130 handoff numbering.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/142",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1114"
    ]
  },
  {
    "number": 137,
    "ids": [
      "YA-12"
    ],
    "feature": "One BdmIndex dot per visible mass device",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-12",
        "state": "shipped",
        "assessment": "Merged in both editions: RiptOPL #152 (batch #162) and legacy #1125 (batch #1133). Not tested on hardware.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/152",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1125"
    ]
  },
  {
    "number": 138,
    "ids": [
      "YA-13"
    ],
    "feature": "MMCE bar/controller coverage verification",
    "scope": "YAOPL mechanisms",
    "states": [
      "candidate"
    ],
    "remaining_ids": [
      "YA-13"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "current_assessments": [
      {
        "id": "YA-13",
        "state": "candidate",
        "assessment": "Verification-only plan item. No new confirmed runtime defect or delivered source feature is inferred; retain the transport/controller acceptance matrix.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/131",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1105"
    ]
  },
  {
    "number": 139,
    "ids": [
      "YA-14"
    ],
    "feature": "Translated MMCE IGR slot choices and integration coverage",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-14",
        "state": "shipped",
        "assessment": "Merged in both editions: RiptOPL #154 (batch #162) and legacy #1126 (batch #1133). Not tested on hardware.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/NathanNeurotic/RiptOPL/pull/154",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1126"
    ]
  },
  {
    "number": 140,
    "ids": [
      "YA-15"
    ],
    "feature": "Synchronous disc-key RPC semaphore lifetime",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-15",
        "state": "shipped",
        "assessment": "Both merged helpers own the N-command semaphore through the complete key RPC and handle the disc-read and launch paths. Hardware repeated-read/launch checks remain pending.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/yaopl/yaopl/commit/7f1018e7bddd659cd3de4f477daefd2cbe75eabf",
      "https://github.com/NathanNeurotic/RiptOPL/pull/142",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1114"
    ]
  },
  {
    "number": 141,
    "ids": [
      "YA-16"
    ],
    "feature": "Fragmented-VMC counts and recovery guidance",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-16",
        "state": "shipped",
        "assessment": "Both merged dialogs use fragment counts and backup-first advice while retaining the existing layout/range rejection policy.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/yaopl/yaopl/commit/c19eed0850aed1ec30286f8448681043144b9d5c",
      "https://github.com/NathanNeurotic/RiptOPL/pull/142",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1114"
    ]
  },
  {
    "number": 142,
    "ids": [
      "YA-17"
    ],
    "feature": "USB host shutdown before IGR IOP reset",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-17",
        "state": "shipped",
        "assessment": "Merged in both editions: RiptOPL #144 (batch #162) and legacy #1116 (batch #1133). Not tested on hardware.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/yaopl/yaopl/commit/e72c9f485cfc1f99f33829cdccaf8c1dda4b3ef3",
      "https://github.com/NathanNeurotic/RiptOPL/pull/144",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1116"
    ]
  },
  {
    "number": 143,
    "ids": [
      "YA-18"
    ],
    "feature": "Coordinated read-only UDPBD capability and write policy",
    "scope": "YAOPL mechanisms",
    "states": [
      "shipped"
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "current_assessments": [
      {
        "id": "YA-18",
        "state": "shipped",
        "assessment": "A UDPBD/UDPFS IMG device is write-checked when it connects (512 timer-seeded bytes to opl_write_test.tmp, read back, deleted). A read-only device gets no folders, games.bin or OPL settings; game CFGs move to CFG/ by the settings home; no VMC; Rename/Delete/VMC/Ember settings hidden. smap_udpbd counts a refused write as done, so FatFs stays readable. The refused-write rule ships together with that suppression policy, not alone; the probe still uses a fixed file name. Merged in both editions: RiptOPL #158 (batch #162) and legacy #1130 (batch #1133). Not tested on hardware.",
        "assessment_date": "2026-10-29"
      }
    ],
    "source_date": "See each stable ID; prior source assessments retain their original evidence date.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/fc5426469c04c9a46a936c4d89fba9c80e7c9e30/CHANGELOG.md",
      "https://github.com/yaopl/yaopl/commit/093b541bf13edcda418fd4e59c3c222a9b83fb40",
      "https://github.com/NathanNeurotic/RiptOPL/pull/158",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/1130"
    ]
  },
  {
    "number": 144,
    "ids": [
      "LS2"
    ],
    "scope": "Save tools",
    "evidence": "Tool",
    "feature": "Aggregated card saves, staged Game-ID splits and PSU sets",
    "assessment": "Current Launchstation stages per-source Game-ID cards as.PART, verifies before final naming, groups saves across folder card images and supports marked saves/PSU sets with bounded enumeration. Card writes use safety copies; deleting a PSU does not make a safety copy. Local VMC Saves browsing is narrower. These source recovery paths are not a durability or physical-card acceptance test.",
    "sources": [
      "https://github.com/NathanNeurotic/Launchstation/blob/2b1d95581a934c09940a5f014e877bbc24e50698/src/dash_card_tool.c",
      "https://github.com/NathanNeurotic/Launchstation/pull/234",
      "https://github.com/NathanNeurotic/Launchstation/pull/235",
      "https://github.com/NathanNeurotic/Launchstation/pull/236"
    ],
    "states": [
      "companion"
    ],
    "current_assessments": [
      {
        "id": "LS2",
        "state": "companion",
        "assessment": "Current Launchstation stages per-source Game-ID cards as.PART, verifies before final naming, groups saves across folder card images and supports marked saves/PSU sets with bounded enumeration. Card writes use safety copies; deleting a PSU does not make a safety copy. Local VMC Saves browsing is narrower. These source recovery paths are not a durability or physical-card acceptance test.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 145,
    "ids": [
      "RI48"
    ],
    "scope": "PC media",
    "evidence": "Tool",
    "feature": "Media Studio Windows audio/video authoring companion",
    "assessment": "Released Windows companion targets XviD/MPEG4-ASP AVI with MP3/MP2 audio at640x480 or smaller and around30fps, packages ffmpeg/ffprobe, and renders sounds from the user-supplied BIOS. It prepares files for RIPPS2 media playback; it does not add a native RiptOPL video player or game codec.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/5ebb5e0b4cc074742b184ed9892494d161e97e49/tools/media-studio/video_io.py",
      "https://github.com/akilluminati47/RIPPS2/blob/5ebb5e0b4cc074742b184ed9892494d161e97e49/tools/media-studio/README.md",
      "https://github.com/akilluminati47/RIPPS2/releases/tag/media-studio"
    ],
    "states": [
      "companion"
    ],
    "current_assessments": [
      {
        "id": "RI48",
        "state": "companion",
        "assessment": "Released Windows companion targets XviD/MPEG4-ASP AVI with MP3/MP2 audio at640x480 or smaller and around30fps, packages ffmpeg/ffprobe, and renders sounds from the user-supplied BIOS. It prepares files for RIPPS2 media playback; it does not add a native RiptOPL video player or game codec.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 146,
    "ids": [
      "RI49"
    ],
    "scope": "Files / archives",
    "evidence": "Experiment",
    "feature": "TAR-as-folder browsing and editable archive members",
    "assessment": "Unreleased, diverged b125@524c2cef adds archive member listing, extraction, paste/add and deletion through staged rewrites, plus folder counts/mark-all/invert. Released build124 supports creating/merging packs, not this full browser. Local tar reading is existing overlap; write/recovery/device interruption cases remain untested.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/524c2cef7c40c3d75b70dfd1713a6c4726fff153/elf/patches/0125-ripps2-video-player-browser.patch"
    ],
    "states": [
      "experimental"
    ],
    "current_assessments": [
      {
        "id": "RI49",
        "state": "experimental",
        "assessment": "Unreleased, diverged b125@524c2cef adds archive member listing, extraction, paste/add and deletion through staged rewrites, plus folder counts/mark-all/invert. Released build124 supports creating/merging packs, not this full browser. Local tar reading is existing overlap; write/recovery/device interruption cases remain untested.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "remaining_ids": [
      "RI49"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 147,
    "ids": [
      "RI50"
    ],
    "scope": "Caching",
    "evidence": "Experiment",
    "feature": "Bounded recent-game CFG cache with explicit invalidation",
    "assessment": "Unreleased b125 adds up to64 slots/64KiB of packed CFG plus merged-metadata text, LRU eviction and invalidation on config writes, database/device/browser changes and art-memory pressure. Local object/metadata/art caches already exist. Compare ownership and media-swap invalidation before proposing a port; no speed or memory win measured.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/524c2cef7c40c3d75b70dfd1713a6c4726fff153/elf/patches/0125-ripps2-video-player-browser.patch"
    ],
    "states": [
      "experimental"
    ],
    "current_assessments": [
      {
        "id": "RI50",
        "state": "experimental",
        "assessment": "Unreleased b125 adds up to64 slots/64KiB of packed CFG plus merged-metadata text, LRU eviction and invalidation on config writes, database/device/browser changes and art-memory pressure. Local object/metadata/art caches already exist. Compare ownership and media-swap invalidation before proposing a port; no speed or memory win measured.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "remaining_ids": [
      "RI50"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 148,
    "ids": [
      "RI51"
    ],
    "scope": "Media / art",
    "evidence": "Experiment",
    "feature": "Video playback transport and HD cover-download choice",
    "assessment": "Unreleased b125 adds pause/stop/loop, ten-second seeking, volume OSD and an HD280x400 versus standard140x200 cover-download choice. These are media/browser workflows and RAM/throughput tradeoffs; existing local art display and configurable themes are not absent.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/524c2cef7c40c3d75b70dfd1713a6c4726fff153/elf/patches/0125-ripps2-video-player-browser.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/524c2cef7c40c3d75b70dfd1713a6c4726fff153/elf/libsmslite/src/smslite.c"
    ],
    "states": [
      "experimental"
    ],
    "current_assessments": [
      {
        "id": "RI51",
        "state": "experimental",
        "assessment": "Unreleased b125 adds pause/stop/loop, ten-second seeking, volume OSD and an HD280x400 versus standard140x200 cover-download choice. These are media/browser workflows and RAM/throughput tradeoffs; existing local art display and configurable themes are not absent.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "remaining_ids": [
      "RI51"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 149,
    "ids": [
      "T11"
    ],
    "scope": "Storage scheduling",
    "evidence": "Experiment",
    "feature": "Fair scan/artwork quanta with separate prefetch/decode buffers",
    "assessment": "Titan arena branch d442d58d alternates bounded library-scan/artwork work, advances two scan entries per turn and separates read-ahead/decode publication buffers while retaining one FileXio owner. Its main ref is unchanged. Local async scan/art queues already exist; adoption requires consumer/cancellation/RAM/audio-latency proofs, not an inferred speedup.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/d442d58dc85849a0e6ccc7b9df5f07ddb8220f80/kernel/src/services/titan_storage_scheduler.c",
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/d442d58dc85849a0e6ccc7b9df5f07ddb8220f80/kernel/src/services/titan_asset_service.c"
    ],
    "states": [
      "experimental"
    ],
    "current_assessments": [
      {
        "id": "T11",
        "state": "experimental",
        "assessment": "Titan arena branch d442d58d alternates bounded library-scan/artwork work, advances two scan entries per turn and separates read-ahead/decode publication buffers while retaining one FileXio owner. Its main ref is unchanged. Local async scan/art queues already exist; adoption requires consumer/cancellation/RAM/audio-latency proofs, not an inferred speedup.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "remaining_ids": [
      "T11"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 150,
    "ids": [
      "T12"
    ],
    "scope": "Diagnostics",
    "evidence": "Experiment",
    "feature": "DEX operation-status ribbon with bounded owner snapshots",
    "assessment": "Titan arena branch adds operation stage/subject/progress snapshots, sticky errors and expiring normal status through a DEX-only ribbon; asset reads/decodes are the current producers. Local DIAG.TXT/drive status is existing diagnostic coverage. This is an optional live presentation contract, not console failure causation or a shipped main-branch feature.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/d442d58dc85849a0e6ccc7b9df5f07ddb8220f80/docs/DEX_OPERATION_RIBBON.md",
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/d442d58dc85849a0e6ccc7b9df5f07ddb8220f80/kernel/src/services/titan_diagnostics.c"
    ],
    "states": [
      "experimental"
    ],
    "current_assessments": [
      {
        "id": "T12",
        "state": "experimental",
        "assessment": "Titan arena branch adds operation stage/subject/progress snapshots, sticky errors and expiring normal status through a DEX-only ribbon; asset reads/decodes are the current producers. Local DIAG.TXT/drive status is existing diagnostic coverage. This is an optional live presentation contract, not console failure causation or a shipped main-branch feature.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "remaining_ids": [
      "T12"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 151,
    "ids": [
      "YA-19"
    ],
    "scope": "IGR / controller",
    "evidence": "Fix",
    "feature": "PadOpen hook lifetime and kernel-context cache publication",
    "assessment": "Current YAOPL keeps padOpen_hooked through temporary polling pauses, sets it in both callbacks and flushes data/instruction caches after patching. Both local padhook.c implementations already contain these mechanisms. Retain as shared source overlap; no new port or gameplay-compatibility claim.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/0889ac4d009567b168b283e6d6933af36df7c2e8/ee_core/src/padhook.c"
    ],
    "states": [
      "overlap"
    ],
    "current_assessments": [
      {
        "id": "YA-19",
        "state": "overlap",
        "assessment": "Current YAOPL keeps padOpen_hooked through temporary polling pauses, sets it in both callbacks and flushes data/instruction caches after patching. Both local padhook.c implementations already contain these mechanisms. Retain as shared source overlap; no new port or gameplay-compatibility claim.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "remaining_ids": [],
    "disposition": "Retained history / overlap / separate scope",
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  },
  {
    "number": 152,
    "ids": [
      "YA-20"
    ],
    "scope": "UI text",
    "evidence": "Fix",
    "feature": "Shared wrapping across message, warning and confirmation surfaces",
    "assessment": "YAOPL now routes message boxes, text screens, warnings, video confirmation and remove-settings prompts through a1024-byte wrapped-text helper. Local interactive message boxes already word-wrap, but warning/confirmation/removal surfaces retain separate rendering paths. Compare all consumers, UTF-8/CJK rules, line/height bounds and truncation; do not replace the existing font layout blindly.",
    "sources": [
      "https://github.com/yaopl/yaopl/blob/0889ac4d009567b168b283e6d6933af36df7c2e8/src/gui.c"
    ],
    "states": [
      "partial"
    ],
    "current_assessments": [
      {
        "id": "YA-20",
        "state": "partial",
        "assessment": "YAOPL now routes message boxes, text screens, warnings, video confirmation and remove-settings prompts through a1024-byte wrapped-text helper. Local interactive message boxes already word-wrap, but warning/confirmation/removal surfaces retain separate rendering paths. Compare all consumers, UTF-8/CJK rules, line/height bounds and truncation; do not replace the existing font layout blindly.",
        "assessment_date": "2026-10-30T06:11:17.956128+00:00"
      }
    ],
    "remaining_ids": [
      "YA-20"
    ],
    "disposition": "Remaining comparison / partial / pending",
    "source_date": "See each stable ID; prior source assessments retain their original evidence date."
  }
]
