[
  {
    "id": "CA1",
    "feature": "Curated SQLite desktop catalogue",
    "category": "PC library",
    "project": "Caduceus (PC)",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion parity",
    "reason": "Current PS2-Servers README explicitly has SQLite library, JSON import/export, online backups and guided setup; not a missing loader-core feature.",
    "sources": [
      "https://github.com/Rian6/caduceus/blob/311f4eabc4ddaad649cbd0d60859f27d0ffcbbfc/electron/main.ts#L95-L170"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "CA2",
    "feature": "ISO import, installed status and transfer queue",
    "category": "PC library",
    "project": "Caduceus (PC)",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/Rian6/caduceus/blob/311f4eabc4ddaad649cbd0d60859f27d0ffcbbfc/src/GettingStarted.tsx#L10-L17"
    ],
    "filter_state": "companion"
  },
  {
    "id": "CA3",
    "feature": "Cover conversion, migration and repair",
    "category": "PC artwork",
    "project": "Caduceus (PC)",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/Rian6/caduceus/blob/311f4eabc4ddaad649cbd0d60859f27d0ffcbbfc/electron/cover-art.ts#L5-L30"
    ],
    "filter_state": "companion"
  },
  {
    "id": "CA4",
    "feature": "PC RetroAchievements account/live progress dashboard",
    "category": "PC RetroAchievements",
    "project": "Caduceus (PC)",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/Rian6/caduceus/blob/311f4eabc4ddaad649cbd0d60859f27d0ffcbbfc/electron/main.ts#L42-L63"
    ],
    "filter_state": "companion"
  },
  {
    "id": "CA5",
    "feature": "Live game detection and Discord presence",
    "category": "PC companion",
    "project": "Caduceus (PC)",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/Rian6/caduceus/blob/311f4eabc4ddaad649cbd0d60859f27d0ffcbbfc/electron/opl-activity.ts#L4-L35"
    ],
    "filter_state": "companion"
  },
  {
    "id": "CA6",
    "feature": "Importable catalogue and safe SQLite backups",
    "category": "PC reliability",
    "project": "Caduceus (PC)",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion parity",
    "reason": "Current PS2-Servers README explicitly has SQLite library, JSON import/export, online backups and guided setup; not a missing loader-core feature.",
    "sources": [
      "https://github.com/Rian6/caduceus/blob/311f4eabc4ddaad649cbd0d60859f27d0ffcbbfc/electron/catalog-backup.ts#L6-L20"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "CA7",
    "feature": "Guided first-run PS2 connection setup",
    "category": "PC onboarding",
    "project": "Caduceus (PC)",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion parity",
    "reason": "Current PS2-Servers README explicitly has SQLite library, JSON import/export, online backups and guided setup; not a missing loader-core feature.",
    "sources": [
      "https://github.com/Rian6/caduceus/blob/311f4eabc4ddaad649cbd0d60859f27d0ffcbbfc/src/GettingStarted.tsx#L5-L20"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "CO1",
    "feature": "Interpolated XMB category and game-list rail",
    "category": "Console UI",
    "project": "Caduceus OPL",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #60",
    "reason": "Caduceus OPL's specific navigation model.",
    "sources": [
      "https://github.com/Rian6/caduceus-opl/blob/2a98a9d7361f8e33f421244bc88c318eab3bdf2f/src/menusys.c#L1088-L1242"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "CO2",
    "feature": "Game-details card with automatic RA checks",
    "category": "Console RetroAchievements",
    "project": "Caduceus OPL",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #61",
    "reason": "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"
    ],
    "filter_state": "partial"
  },
  {
    "id": "CO3",
    "feature": "Browse RA account achievements on the console",
    "category": "Console RetroAchievements",
    "project": "Caduceus OPL",
    "kind": "Feature overlaps OR4",
    "state": "Implemented / verify on hardware",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/Rian6/caduceus-opl/blob/2a98a9d7361f8e33f421244bc88c318eab3bdf2f/src/menusys.c#L1589-L1683"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "CO4",
    "feature": "Text-and-points in-game unlock card",
    "category": "Console RetroAchievements",
    "project": "Caduceus OPL",
    "kind": "Experimental",
    "state": "Tracked / reassess",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/2808a4cd579e4294c520e35149bbfc87d79cce45/ee_core/src/ra_overlay.c",
      "https://github.com/Rian6/caduceus-opl/blob/2a98a9d7361f8e33f421244bc88c318eab3bdf2f/ee_core/src/ra_overlay.c#L185-L360"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "CO5",
    "feature": "RA session-ready launch gating",
    "category": "Console launching",
    "project": "Caduceus OPL",
    "kind": "Feature",
    "state": "Implemented / verify on hardware",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/923",
      "https://github.com/Rian6/caduceus-opl/blob/2a98a9d7361f8e33f421244bc88c318eab3bdf2f/src/supportbase.c#L950-L968"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "CO6",
    "feature": "SMB ECHO and conditional reconnect on Refresh",
    "category": "Console network",
    "project": "Caduceus OPL",
    "kind": "Fix",
    "state": "Implemented / verify on hardware",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/898",
      "https://github.com/Rian6/caduceus-opl/blob/2a98a9d7361f8e33f421244bc88c318eab3bdf2f/src/ethsupport.c#L426-L458"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "CO7",
    "feature": "Async initialize manual devices upon category focus",
    "category": "Console device handling",
    "project": "Caduceus OPL",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #62",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "CF1",
    "feature": "PC CARD CF/ATA controller and adapter detection",
    "category": "Hardware & storage",
    "project": "PS2CF",
    "kind": "Feature",
    "state": "Integrated; hardware verification pending",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/mihhru/PS2CF/blob/9b6ed3702b59a87512426952e003125a5b4f0e3c/src/opl/modules/pccf/pccf_hw.c"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "CF2",
    "feature": "FAT32/exFAT CF game listing, including large ISOs",
    "category": "Game storage",
    "project": "PS2CF",
    "kind": "Feature",
    "state": "Integrated; hardware verification pending",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/mihhru/PS2CF/blob/9b6ed3702b59a87512426952e003125a5b4f0e3c/src/opl/modules/pccf/main.c",
      "https://github.com/mihhru/PS2CF/blob/main/README.md"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "CF3",
    "feature": "Read-only in-game PC CARD CF CD/DVD backend",
    "category": "In-game I/O",
    "project": "PS2CF",
    "kind": "Feature",
    "state": "Integrated; hardware verification pending",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/mihhru/PS2CF/blob/9b6ed3702b59a87512426952e003125a5b4f0e3c/src/opl/Makefile",
      "https://github.com/mihhru/PS2CF/blob/main/CHANGES.md"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "CF4",
    "feature": "PC CARD cf:/ file management via wLaunchELF",
    "category": "Companion file manager",
    "project": "PS2CF",
    "kind": "Companion",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/NathanNeurotic/Launchstation/pull/156",
      "https://github.com/mihhru/PS2CF/blob/main/src/wlaunchelf/iop/pccf/main.c"
    ],
    "filter_state": "companion"
  },
  {
    "id": "DB1",
    "feature": "DualSense Bluetooth input and feedback in menu/in-game",
    "category": "Controllers & input",
    "project": "OPL-DualSense-BT",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #40",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "DB2",
    "feature": "Wireless pad scan and Secure Simple Pairing in OPL GUI",
    "category": "Controllers & input",
    "project": "OPL-DualSense-BT",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #41",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI1",
    "feature": "VMC image browsing and PSU save management",
    "category": "File and save tools",
    "project": "RIPPS2",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #15",
    "reason": "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/akilluminati47/RIPPS2/blob/main/elf/patches/0098-ripps2-build98-memory-files.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/main/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI2",
    "feature": "Native physical memory-card backup and management UI",
    "category": "Memory cards",
    "project": "RIPPS2",
    "kind": "High-risk",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #16",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI3",
    "feature": "In-game pause, resume, achievements and exit overlay",
    "category": "In-game UI",
    "project": "RIPPS2",
    "kind": "Experimental",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #17",
    "reason": "RIPPS2 now enables its panel by default and adds power off; Titan has profile-gated suspend/resume, and LUNA integrates a native PS1 Quit/Play return panel. RiptOPL's reset and RA notices do not provide these menus.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0108-ripps2-ripshot.patch"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "RI4",
    "feature": "Offline BIOS audio-to-theme pack toolchain",
    "category": "PC tools",
    "project": "RIPPS2",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/tree/main/tools/audio-studio"
    ],
    "filter_state": "companion"
  },
  {
    "id": "DL1",
    "feature": "Physical PS1 disc DKWDRV/PS1VModeNeg handoff",
    "category": "Disc launching",
    "project": "Enhanced Disc Launcher",
    "kind": "Companion",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #36",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "DL2",
    "feature": "Conditional import-disc OSD language override",
    "category": "Disc launching",
    "project": "Enhanced Disc Launcher",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #37",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "OF1",
    "feature": "Dedicated carousel/device dock/status HUD UI primitives",
    "category": "Theme engine",
    "project": "OPL FUTURE",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #63",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "OM1",
    "feature": "Convert PS1 VCD launcher layout between POPStarter and RiptOPL/POPSLoader, including batch migration",
    "category": "PC PS1 library",
    "project": "OrbitPS2 Manager",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/Luden02/OrbitPS2-Manager/blob/cb915ca62d650a298fd951ec781ea3d39cf1f8cf/src/services/rename.service.ts",
      "https://github.com/Luden02/OrbitPS2-Manager/blob/cb915ca62d650a298fd951ec781ea3d39cf1f8cf/src/services/ps1-import.service.ts"
    ],
    "filter_state": "companion"
  },
  {
    "id": "OM2",
    "feature": "Local bulk ISO ↔ ZSO compression/decompression and conversion jobs",
    "category": "PC image tools",
    "project": "OrbitPS2 Manager",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/Luden02/OrbitPS2-Manager/blob/cb915ca62d650a298fd951ec781ea3d39cf1f8cf/src/services/zso.service.ts"
    ],
    "filter_state": "companion"
  },
  {
    "id": "SM1",
    "feature": "HTTP-range-backed, persistent-cache virtual SMB1 ISO files",
    "category": "PC SMB server",
    "project": "PS2SMB",
    "kind": "Hardware pending",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/forbenaj/ps2smb/blob/4ddd3fd96c77a4a20adaad84f7f070b0eddd28a8/ps2smb/smb/server.py",
      "https://github.com/forbenaj/ps2smb/blob/4ddd3fd96c77a4a20adaad84f7f070b0eddd28a8/ps2smb/remote.py",
      "https://github.com/forbenaj/ps2smb/blob/4ddd3fd96c77a4a20adaad84f7f070b0eddd28a8/ps2smb/cache.py"
    ],
    "filter_state": "companion"
  },
  {
    "id": "DN1",
    "feature": "Configurable frosted-glass framebuffer blur compositing",
    "category": "Theme engine",
    "project": "PS5-style OPL",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #65",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "DN2",
    "feature": "Horizontal CardShelf and crossfading cover-art wallpaper theme elements",
    "category": "Theme engine",
    "project": "PS5-style OPL",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #66",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "W1",
    "feature": "Themes loaded from a .tar archive",
    "category": "Theme engine",
    "project": "wOPL",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #67",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "W2",
    "feature": "wsX widescreen X position",
    "category": "Theme engine",
    "project": "wOPL",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #68",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "W3",
    "feature": "PADEMU, GSM and cheat status icons",
    "category": "Theme engine",
    "project": "wOPL",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #69",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "W6",
    "feature": "Info page without list navigation",
    "category": "Library & menu",
    "project": "wOPL",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #70",
    "reason": "An alternative information-screen interaction policy.",
    "sources": [
      "https://github.com/ps2homebrew/wOPL/pull/308"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O1",
    "feature": "Grid game list",
    "category": "Theme engine",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #53",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O2",
    "feature": "GameImage offset for non-selected games",
    "category": "Theme engine",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #71",
    "reason": "Offset-driven hero/filmstrip layouts.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/01-opl-tile-grid.patch"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O3",
    "feature": "Recently played list",
    "category": "Library & menu",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #26",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O4",
    "feature": "Sort modes",
    "category": "Library & menu",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #27",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O5",
    "feature": "MenuTabs device tab strip",
    "category": "Theme engine",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #72",
    "reason": "Existing MenuText/current-device selection is narrower.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/03-opl-menu-tabs.patch"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O6",
    "feature": "GameCountText prefix and suffix",
    "category": "Theme engine",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #73",
    "reason": "Current RiptOPL GameCountText uses the localized FILE_COUNT format.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/03-opl-menu-tabs.patch"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O7",
    "feature": "x_scaled widescreen alignment",
    "category": "Theme engine",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #68",
    "reason": "wsX and x_scaled address the same broad layout requirement and are counted together.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/03-opl-menu-tabs.patch"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O8",
    "feature": "VRAM texture budget clamp",
    "category": "Theme engine",
    "project": "OPLattice",
    "kind": "Fix",
    "state": "Tracked / reassess",
    "current_status": "Fix / equivalence investigation",
    "reason": "Keep driver/VRAM/memory-footprint correctness leads separate from feature counts. H13 is a concrete source delta (+0x1000 TX descriptor base); runtime causality/porting must be audited. DT6 release notes admit an unresolved debug FMV freeze.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/07-texture-safety.patch"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "O9",
    "feature": "Play stats",
    "category": "Library & menu",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #28",
    "reason": "A play-history/statistics layer, beyond a last-played selection.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/08-play-stats.patch"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O10",
    "feature": "SHELF sidebar interface",
    "category": "Library & menu",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #59",
    "reason": "An optional complete shell presentation rather than a new game source.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/09-shelf-sidebar.patch"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O11",
    "feature": "App subtitles",
    "category": "Library & menu",
    "project": "OPLattice",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #74",
    "reason": "A separate subtitle field in the app's title.cfg.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/patches/09-shelf-sidebar.patch"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O12",
    "feature": "Art conversion and VRAM checker",
    "category": "PC tools",
    "project": "OPLattice",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/tools/palettize-art.py",
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/tools/check-art.py"
    ],
    "filter_state": "companion"
  },
  {
    "id": "O13",
    "feature": "In-game screenshot importer",
    "category": "PC tools",
    "project": "OPLattice",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #19",
    "reason": "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/coffeedevsolutions/OPLattice/blob/main/tools/import-igs.py"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "O14",
    "feature": "Browser theme previewer",
    "category": "PC tools",
    "project": "OPLattice",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/blob/main/opl-theme-previewer.html"
    ],
    "filter_state": "companion"
  },
  {
    "id": "O15",
    "feature": "Device staging and card sync scripts",
    "category": "PC tools",
    "project": "OPLattice",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPLattice/tree/main/tools"
    ],
    "filter_state": "companion"
  },
  {
    "id": "OH1",
    "feature": "Declarative HTML/CSS flexbox compilation to zero-allocation C99 GS command list",
    "category": "Theme engine",
    "project": "OPHTML",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #2",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "OH2",
    "feature": "Pre-resolved pairwise HarfBuzz font kerning on EE",
    "category": "Theme engine",
    "project": "OPHTML",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #3",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "OH3",
    "feature": "Instant 1-byte palette theme switching without VRAM re-upload",
    "category": "Theme engine",
    "project": "OPHTML",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #4",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "OH4",
    "feature": "Runtime 2D coordinate offsets for motion and expanding layouts",
    "category": "Theme engine",
    "project": "OPHTML",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #5",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "OH5",
    "feature": "Runtime focus-subtree visibility masking with auto-bypassing navigation",
    "category": "Theme engine",
    "project": "OPHTML",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #6",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "OH6",
    "feature": "Automated CRT overscan safe area and multi-layer alpha contrast linter",
    "category": "PC tools",
    "project": "OPHTML",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/packages/layout/src/lint.js",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/docs/findings.md"
    ],
    "filter_state": "companion"
  },
  {
    "id": "OH7",
    "feature": "Interactive web browser theme simulator and testbed",
    "category": "PC tools",
    "project": "OPHTML",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/packages/baker/ps2ui_bake/serve.py",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/packages/baker/ps2ui_bake/serve_page.html"
    ],
    "filter_state": "companion"
  },
  {
    "id": "OH8",
    "feature": "Static VRAM budgeting and layout compiler",
    "category": "PC tools",
    "project": "OPHTML",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/packages/baker/ps2ui_bake/vram.py",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/tools/check-vram-model.py"
    ],
    "filter_state": "companion"
  },
  {
    "id": "OH9",
    "feature": "Headless Play! emulator CI testbed with input scripting and frame diffs",
    "category": "PC tools",
    "project": "OPHTML",
    "kind": "Tool",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/.github/workflows/hw.yml",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/console/tests/play_input.py"
    ],
    "filter_state": "companion"
  },
  {
    "id": "OH10",
    "feature": "Fuzzed .uib loader with EE bus-alignment and malformed blob hardening",
    "category": "Theme engine",
    "project": "OPHTML",
    "kind": "Fix",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #7",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "OH11",
    "feature": "Hard compiler safety limits for untrusted themes",
    "category": "Theme engine",
    "project": "OPHTML",
    "kind": "Fix",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #7",
    "reason": "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/packages/baker/ps2ui_bake/caps.py",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/packages/layout/src/limits.js"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "U1",
    "feature": "Per-game parental lock",
    "category": "Cheats, launching & network",
    "project": "Upstream OPL",
    "kind": "Feature",
    "state": "Implemented; console verification pending",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/ps2homebrew/Open-PS2-Loader/pull/1779"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "U6",
    "feature": "Launch announcement for Discord rich presence",
    "category": "Cheats, launching & network",
    "project": "Upstream OPL",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #39",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "U9",
    "feature": "Bluetooth controller input lag",
    "category": "Controllers & input",
    "project": "Upstream OPL",
    "kind": "Investigate",
    "state": "Closed upstream proposal",
    "current_status": "Historical proposal",
    "reason": "Closed unmerged upstream proposal; not a delivered feature.",
    "sources": [
      "https://github.com/ps2homebrew/Open-PS2-Loader/pull/1675"
    ],
    "filter_state": "historical"
  },
  {
    "id": "B1",
    "feature": "File explorer",
    "category": "Beyond game loading",
    "project": "BoliviaOS",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #20",
    "reason": "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/"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "B2",
    "feature": "Music player",
    "category": "Beyond game loading",
    "project": "BoliviaOS",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #85",
    "reason": "Separate from RiptOPL background music playback.",
    "sources": [
      "https://boliviaos.site/"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "B3",
    "feature": "Image and font viewers",
    "category": "Beyond game loading",
    "project": "BoliviaOS",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #86",
    "reason": "Separate from rendering game artwork and UI fonts.",
    "sources": [
      "https://boliviaos.site/"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "B4",
    "feature": "Text editor, code editor and terminal",
    "category": "Beyond game loading",
    "project": "BoliviaOS",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #87",
    "reason": "BoliviaOS tool suite, outside normal game launching.",
    "sources": [
      "https://boliviaos.site/"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "B5",
    "feature": "Memory card format and repair",
    "category": "Beyond game loading",
    "project": "BoliviaOS",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #16",
    "reason": "Other shells integrate these tools. Optional extension with destructive operations, rather than a missing ability to save a game.",
    "sources": [
      "https://boliviaos.site/",
      "https://github.com/ffgriever-pl/Memory-Card-Annihilator"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "B6",
    "feature": "USB keyboard",
    "category": "Controllers & input",
    "project": "BoliviaOS",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #51",
    "reason": "Titan's modern-input contracts are source/host validated with target acceptance pending; BoliviaOS separately advertises USB keyboard input.",
    "sources": [
      "https://boliviaos.site/"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "B7",
    "feature": "PDF viewer",
    "category": "Beyond game loading",
    "project": "BoliviaOS",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #88",
    "reason": "A separate document-viewing application in the console shell.",
    "sources": [
      "https://boliviaos.site/"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "P1",
    "feature": "Xbox One and Series controllers over USB",
    "category": "Controllers & input",
    "project": "PS2-Launcher",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #46",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "P2",
    "feature": "Download covers from the PS2",
    "category": "Library & menu",
    "project": "PS2-Launcher",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #38",
    "reason": "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/"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "P3",
    "feature": "One games list across every device",
    "category": "Library & menu",
    "project": "PS2-Launcher",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #29",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "P4",
    "feature": "Hold SELECT to leave a game",
    "category": "Controllers & input",
    "project": "PS2-Launcher",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #52",
    "reason": "Alternative configurable exit interaction, beyond existing multi-button IGR.",
    "sources": [
      "https://github.com/Irfanlesnar/PS2-Launcher/blob/main/ee_core/src/padhook.c"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "P5",
    "feature": "Launch transition animation",
    "category": "Library & menu",
    "project": "PS2-Launcher",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #8",
    "reason": "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"
    ],
    "filter_state": "partial"
  },
  {
    "id": "P6",
    "feature": "More USB controllers: Steam Controller, Shanwan PS3 clones, ANT Esports GP300",
    "category": "Controllers & input",
    "project": "PS2-Launcher",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #49",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "P7",
    "feature": "Connected controller count on screen",
    "category": "Controllers & input",
    "project": "PS2-Launcher",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #44",
    "reason": "Combines overlapping pad-status rows rather than counting each fork's screen twice.",
    "sources": [
      "https://github.com/Irfanlesnar/PS2-Launcher/releases/tag/v5.0.0"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "OR3",
    "feature": "RetroAchievements telemetry with Neutrino games",
    "category": "RetroAchievements",
    "project": "ORBIT",
    "kind": "Feature",
    "state": "Implemented / verify on hardware",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/923",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/rebuild/main/docs/RETROACHIEVEMENTS.md",
      "https://github.com/danielnuld/ps2-launcher/blob/d015baf7e4c004fa5db6964dc6bedd16484ea45d/launcher.c",
      "https://github.com/danielnuld/ps2-launcher/blob/d015baf7e4c004fa5db6964dc6bedd16484ea45d/third_party/neutrino-igr/ra.c",
      "https://github.com/danielnuld/ps2-launcher/blob/d015baf7e4c004fa5db6964dc6bedd16484ea45d/docs/phase17-results.md"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "OR4",
    "feature": "Browse achievement titles and progress on the console",
    "category": "RetroAchievements",
    "project": "ORBIT",
    "kind": "Feature",
    "state": "Implemented / verify on hardware",
    "current_status": "Implemented / validate",
    "reason": "Present in RiptOPL source, including an experimental default-Off Caduceus text card. Hardware acceptance and safe GS ownership are separate questions.",
    "sources": [
      "https://github.com/NathanNeurotic/Open-PS2-Loader/pull/916",
      "https://github.com/danielnuld/ps2-launcher/blob/d015baf7e4c004fa5db6964dc6bedd16484ea45d/launcher.c",
      "https://github.com/danielnuld/ps2-launcher/blob/d015baf7e4c004fa5db6964dc6bedd16484ea45d/achievements.c",
      "https://github.com/danielnuld/ps2-launcher/blob/d015baf7e4c004fa5db6964dc6bedd16484ea45d/docs/phase16b-results.md"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "OR5",
    "feature": "Companion catalog for UDPFS games",
    "category": "Cheats, launching & network",
    "project": "ORBIT",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/danielnuld/ps2-launcher/blob/d015baf7e4c004fa5db6964dc6bedd16484ea45d/launcher.c",
      "https://github.com/danielnuld/ps2-launcher/blob/d015baf7e4c004fa5db6964dc6bedd16484ea45d/tools/orbit_catalog.py",
      "https://github.com/danielnuld/ps2-launcher/blob/d015baf7e4c004fa5db6964dc6bedd16484ea45d/docs/phase17-results.md"
    ],
    "filter_state": "companion"
  },
  {
    "id": "T1",
    "feature": "Graphics patches kept apart from cheats",
    "category": "Cheats, launching & network",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #77",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "T2",
    "feature": "Installable TPKG apps, in-process runtime and SDK",
    "category": "Beyond game loading",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #80",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "T3",
    "feature": "Smart IGR overlay with Resume / Return",
    "category": "Game compatibility",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature Hardware pending",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #17",
    "reason": "RIPPS2 now enables its panel by default and adds power off; Titan has profile-gated suspend/resume, and LUNA integrates a native PS1 Quit/Play return panel. RiptOPL's reset and RA notices do not provide these menus.",
    "sources": [
      "https://github.com/sobecapaklebs-dev/project-titan-magenta-edition/blob/main/docs/history/imported-root-artifacts/TITAN_SMART_IGR.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "T4",
    "feature": "Named user profiles with per-profile VMC",
    "category": "Beyond game loading",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #78",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "T5",
    "feature": "Notification center and background-progress UI",
    "category": "Library & menu",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #79",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "T6",
    "feature": "Integrated lightweight web browser",
    "category": "Beyond game loading",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #81",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "T7",
    "feature": "Transactional .pup system updater",
    "category": "Beyond game loading",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #82",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "T8",
    "feature": "Installable animated scene themes with audio",
    "category": "Theme engine",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #84",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "T9",
    "feature": "Xbox Bluetooth/BLE plus USB keyboard and mouse input",
    "category": "Controllers & input",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature Hardware pending",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #51",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "T10",
    "feature": "Repository-backed package download pipeline",
    "category": "Beyond game loading",
    "project": "Project Titan Magenta Edition",
    "kind": "Feature Target pending",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #83",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "E1",
    "feature": "Controller, memory card, storage and network status",
    "category": "Library & menu",
    "project": "OPL-Evolution",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #64",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "R1",
    "feature": "Retro emulator ROM libraries",
    "category": "Beyond game loading",
    "project": "RETROLauncher",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #89",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "M1",
    "feature": "Choose between several network servers",
    "category": "Cheats, launching & network",
    "project": "Modulo R1",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #32",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "N1",
    "feature": "Generic forward-boot CLI",
    "category": "Launcher integration",
    "project": "NHDDL",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #33",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "N2",
    "feature": "Reuse SYS-CONF/IPCONFIG.DAT for UDPFS IP",
    "category": "Cheats, launching & network",
    "project": "NHDDL",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Overlap / current source",
    "reason": "configReadMulti(CONFIG_NETWORK) calls configReadLegacyIP when the normal network config is absent; udpfssupport.c passes the resulting ps2_ip to its module. Shared IPCONFIG fallback exists; exact on-console precedence still needs regression coverage.",
    "sources": [
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/2808a4cd579e4294c520e35149bbfc87d79cce45/src/config.c",
      "https://github.com/pcm720/nhddl/blob/v1.2.2/README.md#udpfs",
      "https://github.com/pcm720/nhddl/commit/81905e1f68f50ded828fe59a04f6313a9c4f21de"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU2",
    "feature": "Orbit depth-sorted ring library view",
    "category": "Library & menu",
    "project": "LUNA",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #54",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU4",
    "feature": "Animated rotating ICO disc-label artwork",
    "category": "Library & menu",
    "project": "LUNA",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #57",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU5",
    "feature": "Per-drive Favorites that travel with the game HDD",
    "category": "Library & menu",
    "project": "LUNA",
    "kind": "Optional",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #30",
    "reason": "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/Open-PS2-Loader/blob/rebuild/main/src/favsupport.c"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU6",
    "feature": "Staged temp-file writes for key persistent library state",
    "category": "Reliability / persistence",
    "project": "LUNA",
    "kind": "Fix",
    "state": "Partial parity",
    "current_status": "Consolidated #31",
    "reason": "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"
    ],
    "filter_state": "partial"
  },
  {
    "id": "LU7",
    "feature": "Neutrino physical power-button DEV9-safe shutdown",
    "category": "Game compatibility",
    "project": "LUNA",
    "kind": "Fix",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #11",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU8",
    "feature": "Neutrino in-game return / IGR",
    "category": "Game compatibility",
    "project": "LUNA",
    "kind": "Feature WIP",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #10",
    "reason": "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/Open-PS2-Loader/blob/rebuild/main/docs/IGR.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "L1",
    "feature": "APA HDDs over 2 TiB",
    "category": "Internal HDD",
    "project": "Extended APA",
    "kind": "Not planned",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #34",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "X1",
    "feature": "EXT2 USB filesystem support",
    "category": "USB / game sources",
    "project": "E2OPL",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #35",
    "reason": "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"
    ],
    "filter_state": "historical"
  },
  {
    "id": "MP1",
    "feature": "Xbox 360 controllers over USB",
    "category": "Controllers & input",
    "project": "Modular PADEMU",
    "kind": "Feature Historical",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #47",
    "reason": "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"
    ],
    "filter_state": "historical"
  },
  {
    "id": "MP2",
    "feature": "Generic USB HID gamepads",
    "category": "Controllers & input",
    "project": "Modular PADEMU",
    "kind": "Feature Historical",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #48",
    "reason": "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"
    ],
    "filter_state": "historical"
  },
  {
    "id": "K1",
    "feature": "Write debug logs to a BDM device",
    "category": "Developer / diagnostics",
    "project": "uOPL (historical)",
    "kind": "Feature Debug build",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #9",
    "reason": "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"
    ],
    "filter_state": "historical"
  },
  {
    "id": "RR1",
    "feature": "USB Driving Force wheel with negCon presentation",
    "category": "Controllers & input",
    "project": "RRVE / exaconn OPL",
    "kind": "Feature Experimental",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #50",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "S1",
    "feature": "ATA DRDY waiting for slow-starting SMR / SSD drives",
    "category": "Internal HDD",
    "project": "Stable OPL",
    "kind": "Fix",
    "state": "Tracked / reassess",
    "current_status": "Fix / equivalence investigation",
    "reason": "Keep driver/VRAM/memory-footprint correctness leads separate from feature counts. H13 is a concrete source delta (+0x1000 TX descriptor base); runtime causality/porting must be audited. DT6 release notes admit an unresolved debug FMV freeze.",
    "sources": [
      "https://github.com/mystyq/Stable-Open-PS2-Loader/commit/3495d55b96ce72497b6a922ab540ac76a58ca74a",
      "https://github.com/mystyq/Stable-Open-PS2-Loader/blob/master/modules/iopcore/cdvdman/atad.c"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "OH12",
    "feature": "Reusable console-launcher core archive",
    "category": "Launcher integration",
    "project": "OPHTML",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #2",
    "reason": "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/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/console/ophtml_console.h",
      "https://github.com/coffeedevsolutions/OPHTML/blob/03a5d56f724055f4d46e0eaf44806e95f0202cb1/examples/console-min/Makefile"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU9",
    "feature": "Projected 3D game-case grid",
    "category": "Library & menu",
    "project": "LUNA",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #55",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU10",
    "feature": "Animated ambient-orb Scroll library view",
    "category": "Library & menu",
    "project": "LUNA",
    "kind": "Experimental",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #56",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "LU11",
    "feature": "Neutrino VMC backing on APA/PFS",
    "category": "Game compatibility",
    "project": "LUNA",
    "kind": "Feature",
    "state": "Tracked / reassess",
    "current_status": "Consolidated #12",
    "reason": "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"
    ],
    "filter_state": "partial"
  },
  {
    "id": "LU12",
    "feature": "PS1 multi-disc playlists and in-game disc switching",
    "category": "PS1 library",
    "project": "LUNA",
    "kind": "Experimental",
    "state": "Tracked / verify",
    "current_status": "Consolidated #13",
    "reason": "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/Open-PS2-Loader/blob/rebuild/main/docs/VCD.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU13",
    "feature": "Named PS1 VMC pairs, import/export, backup and recovery",
    "category": "PS1 saves",
    "project": "LUNA",
    "kind": "Experimental",
    "state": "Tracked / verify",
    "current_status": "Consolidated #14",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU14",
    "feature": "Console file manager with copy tray, safe moves and preview",
    "category": "Companion file manager",
    "project": "LUNA",
    "kind": "Companion",
    "state": "Tracked / verify",
    "current_status": "Consolidated #20",
    "reason": "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://github.com/dnunezx/nhddl-luna/blob/127d012b07322dc0805ce62f877e5ba5e8cd6dbc/src/ui/file_manager.c",
      "https://github.com/NathanNeurotic/Launchstation"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "PX1",
    "feature": "PS1 guarded per-title code validation",
    "category": "PS1 runtime",
    "project": "PSXCore",
    "kind": "Experimental",
    "state": "Tracked / verify",
    "current_status": "Consolidated #92",
    "reason": "A PSXCore mechanism; different from RiptOPL checking file/module identities before launch.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/src/compat.c"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX2",
    "feature": "PS1 GPU/GTE compatibility runtime corrections",
    "category": "PS1 runtime",
    "project": "PSXCore",
    "kind": "Experimental",
    "state": "Tracked / verify",
    "current_status": "Consolidated #93",
    "reason": "Includes palette/query fixes, signed INTPL interpolation and parked-worker GP1 DMA-control changes. No inferred superiority for a particular game.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/src/runtime_corrections.c"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX3",
    "feature": "Source-buildable POPS adapter and standalone tester",
    "category": "PS1 tooling",
    "project": "PSXCore",
    "kind": "Alternative",
    "state": "Tracked / verify",
    "current_status": "Consolidated #91",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "DT1",
    "feature": "Realtek RTL8761B/BU Bluetooth dongle firmware handling",
    "category": "Controllers",
    "project": "OPL-DS4RTBT",
    "kind": "Feature",
    "state": "Tracked / verify",
    "current_status": "Consolidated #42",
    "reason": "Menu and in-game dongle initialization in the Realtek fork.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/tree/2cf308511b187f8a0b209140f71936dca0bb0bae/modules/ds34bt"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "DT2",
    "feature": "DS4 clone HID CRC and rumble handling",
    "category": "Controllers",
    "project": "OPL-DS4RTBT",
    "kind": "Feature",
    "state": "Tracked / verify",
    "current_status": "Consolidated #43",
    "reason": "Additional clone protocol/feedback support; existing fake-DS3 workaround is not equivalent.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/tree/2cf308511b187f8a0b209140f71936dca0bb0bae/modules/ds34bt"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "DT3",
    "feature": "Four-pad menu status and controller setup/test screens",
    "category": "Controllers",
    "project": "OPL-DS4RTBT",
    "kind": "Feature",
    "state": "Tracked / verify",
    "current_status": "Consolidated #44",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "MA1",
    "feature": "macOS PS1/PS2 import and POPStarter multi-disc packaging",
    "category": "Desktop companion",
    "project": "PS2 Manager (macOS)",
    "kind": "Tool",
    "state": "Tracked / verify",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/Gionnio/ps2manager/tree/edc6b26236a1858e47df5c6583c9b9d4d0b447e6"
    ],
    "filter_state": "companion"
  },
  {
    "id": "MA2",
    "feature": "POPS patch archive and reverse VCD conversion tools",
    "category": "Desktop companion",
    "project": "PS2 Manager (macOS)",
    "kind": "Tool",
    "state": "Tracked / verify",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/Gionnio/ps2manager/tree/edc6b26236a1858e47df5c6583c9b9d4d0b447e6"
    ],
    "filter_state": "companion"
  },
  {
    "id": "RI5",
    "feature": "Version-tolerant keyed translation packs with per-glyph fallback",
    "category": "Language & localization",
    "project": "RIPPS2",
    "kind": "Feature",
    "state": "Tracked / unreleased source",
    "current_status": "Consolidated #1",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU15",
    "feature": "PS1 native IGR menu with return-to-launcher",
    "category": "PS1 lifecycle",
    "project": "LUNA",
    "kind": "Experimental",
    "state": "Source difference / verify",
    "current_status": "Consolidated #17",
    "reason": "RIPPS2 now enables its panel by default and adds power off; Titan has profile-gated suspend/resume, and LUNA integrates a native PS1 Quit/Play return panel. RiptOPL's reset and RA notices do not provide these menus.",
    "sources": [
      "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/Open-PS2-Loader/blob/rebuild/main/docs/VCD.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX4",
    "feature": "Third PS1 core, optional per-game PSXCore runtime choice",
    "category": "PS1 integration",
    "project": "PSXCore",
    "kind": "Integration candidate",
    "state": "Source difference / verify",
    "current_status": "Consolidated #91",
    "reason": "RiptOPL ships POPStarter and Ember, not PSXCore. Main no longer ships tester sources; the tester branch is separate.",
    "sources": [
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/rebuild/main/docs/VCD.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX5",
    "feature": "MDEC, RGB24 film and buffered interlace fixes",
    "category": "PS1 FMV",
    "project": "PSXCore",
    "kind": "Runtime candidate",
    "state": "Source difference / verify",
    "current_status": "Consolidated #94",
    "reason": "Includes publishing the completed interlace display descriptor; not proof that all FMVs are fixed.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/runtime/Makefile"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX6",
    "feature": "SPU, capture IRQ, reverb and CDDA audio fixes",
    "category": "PS1 audio",
    "project": "PSXCore",
    "kind": "Runtime candidate",
    "state": "Source difference / verify",
    "current_status": "Consolidated #95",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX7",
    "feature": "Guest memory, CPU timing and load-delay safeguards",
    "category": "PS1 CPU",
    "project": "PSXCore",
    "kind": "Runtime candidate",
    "state": "Source difference / verify",
    "current_status": "Consolidated #96",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX8",
    "feature": "Firmware identity and transactional POPS patch safety",
    "category": "PS1 integrity",
    "project": "PSXCore",
    "kind": "Safety candidate",
    "state": "Source difference / verify",
    "current_status": "Consolidated #97",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX9",
    "feature": "Native save-worker write, flush and ownership guards",
    "category": "PS1 VMC",
    "project": "PSXCore",
    "kind": "Experimental",
    "state": "Source difference / verify",
    "current_status": "Consolidated #98",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX10",
    "feature": "Disc and TOC fingerprinting with save binding",
    "category": "PS1 multi-disc",
    "project": "PSXCore",
    "kind": "Runtime candidate",
    "state": "Source difference / verify",
    "current_status": "Consolidated #99",
    "reason": "A content-identity mechanism beyond ordinary file naming.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/src/discset.c"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "LU16",
    "feature": "Per-game Neutrino/OPL core choice",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU17",
    "feature": "Neutrino low/high resolution video modes",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU18",
    "feature": "PS2 startup logo per-title override",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU19",
    "feature": "Neutrino PS2RD cheat selection",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU20",
    "feature": "File manager conflict choices and verified moves",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Companion / tool",
    "state": "Companion / tool",
    "current_status": "Consolidated #20",
    "reason": "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://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU21",
    "feature": "File manager previews, ELF launch, filter/sort",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Companion / tool",
    "state": "Companion / tool",
    "current_status": "Consolidated #20",
    "reason": "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://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU22",
    "feature": "Selectable devices and manual rescan",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU23",
    "feature": "Enable or disable each browsing view",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Consolidated #58",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU24",
    "feature": "Orbit Random Scan and quick shortcuts",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Consolidated #58",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU25",
    "feature": "Separate or overlapping cover and disc art",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Consolidated #57",
    "reason": "RiptOPL already supports ICO/LGO/COV artwork; animation is the differentiated capability.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU26",
    "feature": "PS1 jewel-case versus tall-case style",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Consolidated #55",
    "reason": "LUNA's projected case layout and PS1 case presentation; distinct from flat tiles and PSBBN Flow.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU27",
    "feature": "Scroll logo fallback to title text",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Consolidated #56",
    "reason": "A full browsing view, not a claim that RiptOPL lacks animation or missing-art text.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "LU28",
    "feature": "Eleven background presets, glass, font",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Consolidated #58",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU29",
    "feature": "Ambient Orbs colors, trails, shapes",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Consolidated #56",
    "reason": "A full browsing view, not a claim that RiptOPL lacks animation or missing-art text.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "LU30",
    "feature": "English/Spanish/Portuguese localizations",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU31",
    "feature": "Favorites and PS1/PS2/Mix quick filters",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU32",
    "feature": "Optional ambient WAV background music",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU33",
    "feature": "PS1 shared-card auto-creation and named pairs",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #14",
    "reason": "The missing capability is the integrated pair-management lifecycle, beyond existing POPStarter/Ember saves and basic card creation.",
    "sources": [
      "https://github.com/dnunezx/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU34",
    "feature": "PS1 disc-set editing and image revalidation",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #13",
    "reason": "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/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "LU35",
    "feature": "APA/PFS PS2 VMC manager and capacity modes",
    "category": "LU capability",
    "project": "LUNA",
    "kind": "Partial parity",
    "state": "Partial parity",
    "current_status": "Consolidated #12",
    "reason": "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/LUNA/blob/4614b0c53e0f904a57afb18572b15090a6afd657/README.md"
    ],
    "filter_state": "partial"
  },
  {
    "id": "PX11",
    "feature": "Optional adaptive PCM output-rate feedback",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #100",
    "reason": "Off by default, changes rate/possibly pitch; not a CPU-speed fix.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX12",
    "feature": "Prepared native APA/PFS disc-mapping API",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Developer API / design alternative",
    "reason": "Prepared API, empty automatic-profile catalog, path-hash identity choice, inventory probe or build policy. Not a delivered unique game-loader feature; source retained.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "PX13",
    "feature": "Auto/Default/Custom profile selection API",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Developer API / design alternative",
    "reason": "Prepared API, empty automatic-profile catalog, path-hash identity choice, inventory probe or build policy. Not a delivered unique game-loader feature; source retained.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "PX14",
    "feature": "Guarded native license-string patch",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #97",
    "reason": "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/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX15",
    "feature": "Native USB/internal ATA FAT32/exFAT support",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "PX16",
    "feature": "APA, MX4SIO, MMCE and multi-USB tester limitations",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Known limitation",
    "state": "Known limitation",
    "current_status": "Upstream limitation",
    "reason": "Limitation/removal in the other project rather than a capability RiptOPL lacks.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "limitation"
  },
  {
    "id": "PX17",
    "feature": "Standalone seven-title paginated tester UI",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "PX18",
    "feature": "Tester 128-VCD nonrecursive library limit",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Known limitation",
    "state": "Known limitation",
    "current_status": "Upstream limitation",
    "reason": "Limitation/removal in the other project rather than a capability RiptOPL lacks.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "limitation"
  },
  {
    "id": "PX19",
    "feature": "Path-hash-derived game card identity",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Developer API / design alternative",
    "reason": "Prepared API, empty automatic-profile catalog, path-hash identity choice, inventory probe or build policy. Not a delivered unique game-loader feature; source retained.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "PX20",
    "feature": "Create only absent 128 KiB PS1 card slots",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Already present / overlap",
    "state": "Already present / overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "PX21",
    "feature": "Confirmed card-mode pair copying",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Consolidated #15",
    "reason": "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/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "PX22",
    "feature": "Read-only ATA/APA inventory developer utility",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Companion / tool",
    "state": "Companion / tool",
    "current_status": "Developer API / design alternative",
    "reason": "Prepared API, empty automatic-profile catalog, path-hash identity choice, inventory probe or build policy. Not a delivered unique game-loader feature; source retained.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "PX23",
    "feature": "On-screen boot stage and save-worker diagnostics",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Consolidated #105",
    "reason": "Current adapter also reports planner failures and increases its bounded capacity.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX24",
    "feature": "Sector-tail cache and seek-status correction",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #101",
    "reason": "Runtime I/O mechanism; broad game-speed improvement is unmeasured.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX25",
    "feature": "Exact raster/polygon cost fast path",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #102",
    "reason": "Keep timing/compatibility evidence separate from build success.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX26",
    "feature": "GP0 packet coalescing and callback fast paths",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #103",
    "reason": "Source optimization, not a standalone proven end-user compatibility feature.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX27",
    "feature": "Pinned SDK/driver build dependency checks",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Companion / tool",
    "state": "Companion / tool",
    "current_status": "Developer API / design alternative",
    "reason": "Prepared API, empty automatic-profile catalog, path-hash identity choice, inventory probe or build policy. Not a delivered unique game-loader feature; source retained.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "PX28",
    "feature": "Immediate power-button shutdown safety limitation",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Known limitation",
    "state": "Known limitation",
    "current_status": "Upstream limitation",
    "reason": "Limitation/removal in the other project rather than a capability RiptOPL lacks.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "limitation"
  },
  {
    "id": "PX29",
    "feature": "Native pfs1 save partition and ownership guards",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #98",
    "reason": "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/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX30",
    "feature": "Bounded unaligned upload-row copy",
    "category": "PX capability",
    "project": "PSXCore",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #104",
    "reason": "The newer branch streams rows with aligned quadword loads while retaining bounds.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9/README.md"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "H4",
    "feature": "Large achievement watch-list transport fix",
    "category": "H capability",
    "project": "xeRAbora",
    "kind": "Investigate / compare",
    "state": "Investigate / compare",
    "current_status": "Implemented correction",
    "reason": "Current raParseChunkHeader consumes exactly one binary delimiter and tests all 256 leading bytes. The alpha.18 whitespace-loss fix is already present; a full 2679-address client/game session is still untested here.",
    "sources": [
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/2808a4cd579e4294c520e35149bbfc87d79cce45/src/ranet.c",
      "https://github.com/hacan359/xerabora/releases/tag/v0.1.0-alpha.18"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "H5",
    "feature": "Hardcore API unlock-date classification fix",
    "category": "H capability",
    "project": "xeRAbora",
    "kind": "Companion / tool",
    "state": "Companion / tool",
    "current_status": "Usable external companion",
    "reason": "PC/phone client feature. RiptOPL can use the external client; source compatibility with alpha.19 still needs current console acceptance. An older recommendation/shortcut is a documentation/pinning lag, not proof of missing console capability.",
    "sources": [
      "https://github.com/hacan359/xerabora/releases/tag/v0.1.0-alpha.18"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "H6",
    "feature": "Toggle unlock flash on console TV",
    "category": "H capability",
    "project": "xeRAbora",
    "kind": "Companion / tool",
    "state": "Companion / tool",
    "current_status": "Usable external companion",
    "reason": "PC/phone client feature. RiptOPL can use the external client; source compatibility with alpha.19 still needs current console acceptance. An older recommendation/shortcut is a documentation/pinning lag, not proof of missing console capability.",
    "sources": [
      "https://github.com/hacan359/xerabora/releases/tag/v0.1.0-alpha.18"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "H7",
    "feature": "Live Rich Presence in console status panel",
    "category": "H capability",
    "project": "xeRAbora",
    "kind": "Companion / tool",
    "state": "Companion / tool",
    "current_status": "Usable external companion",
    "reason": "PC/phone client feature. RiptOPL can use the external client; source compatibility with alpha.19 still needs current console acceptance. An older recommendation/shortcut is a documentation/pinning lag, not proof of missing console capability.",
    "sources": [
      "https://github.com/hacan359/xerabora/releases/tag/v0.1.0-alpha.18"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "H8",
    "feature": "Achievement/leaderboard list/grid + badge rings",
    "category": "H capability",
    "project": "xeRAbora",
    "kind": "Companion / tool",
    "state": "Companion / tool",
    "current_status": "Usable external companion",
    "reason": "PC/phone client feature. RiptOPL can use the external client; source compatibility with alpha.19 still needs current console acceptance. An older recommendation/shortcut is a documentation/pinning lag, not proof of missing console capability.",
    "sources": [
      "https://github.com/hacan359/xerabora/releases/tag/v0.1.0-alpha.18"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "H9",
    "feature": "Removal of PS2RD cheats in upstream OPL-RA",
    "category": "H capability",
    "project": "xeRAbora",
    "kind": "Known limitation",
    "state": "Known limitation",
    "current_status": "Upstream limitation",
    "reason": "Limitation/removal in the other project rather than a capability RiptOPL lacks.",
    "sources": [
      "https://github.com/hacan359/xerabora/releases/tag/v0.1.0-alpha.18"
    ],
    "filter_state": "limitation"
  },
  {
    "id": "H10",
    "feature": "Android xeRAbora companion service",
    "category": "H capability",
    "project": "xeRAbora",
    "kind": "Companion / tool",
    "state": "Companion / tool",
    "current_status": "Usable external companion",
    "reason": "PC/phone client feature. RiptOPL can use the external client; source compatibility with alpha.19 still needs current console acceptance. An older recommendation/shortcut is a documentation/pinning lag, not proof of missing console capability.",
    "sources": [
      "https://github.com/hacan359/xerabora/blob/0e5d35a3e9c64594973aff995f5d1a2db62310d4/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "RI6",
    "feature": "RIPDISC optical-disc ripping workflow",
    "category": "RI capability",
    "project": "RIPPS2",
    "kind": "Planned / not shipped",
    "state": "Planned / not shipped",
    "current_status": "Consolidated #18",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI7",
    "feature": "RIPSHOT in-game screenshot action",
    "category": "RI capability",
    "project": "RIPPS2",
    "kind": "Planned / not shipped",
    "state": "Planned / not shipped",
    "current_status": "Consolidated #19",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI8",
    "feature": "Memory Files universal search",
    "category": "RI capability",
    "project": "RIPPS2",
    "kind": "Planned / not shipped",
    "state": "Planned / not shipped",
    "current_status": "Consolidated #21",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "TV1",
    "feature": "Recursive ISO discovery outside CD/DVD",
    "project": "FastLoader",
    "category": "October 21 delta",
    "kind": "Claimed release",
    "state": "Claimed release",
    "current_status": "Consolidated #23",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "TV2",
    "feature": "Rename ISO and its associated art, VMC and metadata together",
    "project": "FastLoader",
    "category": "October 21 delta",
    "kind": "Claimed release",
    "state": "Claimed release",
    "current_status": "Consolidated #22",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "TV3",
    "feature": "Integrated CPS1/CPS2/MVS/PCE/Neo Geo CD ROM library",
    "project": "Retro Arcade",
    "category": "October 21 delta",
    "kind": "Claimed release",
    "state": "Claimed release",
    "current_status": "Consolidated #89",
    "reason": "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/Kyllemn/PS2TVCRT/releases/tag/FullAnFinalRelease"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "TV4",
    "feature": "Emulator return to same game and per-launch 240p/480i/480p",
    "project": "Retro Arcade",
    "category": "October 21 delta",
    "kind": "Claimed release",
    "state": "Claimed release",
    "current_status": "Consolidated #90",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "TV5",
    "feature": "Integrated Windows suite layout/art/VMC preparation",
    "project": "Retro Volt Suite",
    "category": "October 21 delta",
    "kind": "Companion",
    "state": "Companion",
    "current_status": "Companion / separate scope",
    "reason": "Desktop authoring, server, or file-manager workflow. Retained in the inclusive register; compare exact PS2-Servers/Launchstation parity separately, not as a missing RiptOPL game-loader feature.",
    "sources": [
      "https://github.com/Kyllemn/PS2TVCRT/releases/tag/FullAnFinalRelease"
    ],
    "filter_state": "companion"
  },
  {
    "id": "TV6",
    "feature": "Fixed CRT interface and embedded frontend resources",
    "project": "FastLoader",
    "category": "October 21 delta",
    "kind": "Design overlap",
    "state": "Design overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/Kyllemn/PS2TVCRT/blob/42c33b5be94cfa990f4a6f1281d0596922d20a46/README.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "TV7",
    "feature": "Ember starting-disc selection from grouped PS1 games",
    "project": "FastLoader",
    "category": "October 21 delta",
    "kind": "Claimed release",
    "state": "Claimed release",
    "current_status": "Consolidated #13",
    "reason": "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/Kyllemn/PS2TVCRT/blob/42c33b5be94cfa990f4a6f1281d0596922d20a46/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "TV8",
    "feature": "Nonrepeating startup background rotation",
    "project": "FastLoader",
    "category": "October 21 delta",
    "kind": "Claimed release",
    "state": "Claimed release",
    "current_status": "Consolidated #76",
    "reason": "Specific shuffle-bag behavior advertised by FastLoader, not basic background/theme support.",
    "sources": [
      "https://github.com/Kyllemn/PS2TVCRT/blob/42c33b5be94cfa990f4a6f1281d0596922d20a46/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "TV9",
    "feature": "Integrated bulk file/save manager with progress and cancellation",
    "project": "FastLoader",
    "category": "October 21 delta",
    "kind": "Claimed release",
    "state": "Claimed release",
    "current_status": "Consolidated #20",
    "reason": "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://github.com/Kyllemn/PS2TVCRT/blob/42c33b5be94cfa990f4a6f1281d0596922d20a46/README.md"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "TV10",
    "feature": "Network ISO and artwork serving through Neutrino",
    "project": "FastLoader",
    "category": "October 21 delta",
    "kind": "Overlap",
    "state": "Overlap",
    "current_status": "Overlap / design alternative",
    "reason": "RiptOPL already supports the broad capability. Distinct implementation or presentation does not establish missing functionality; retained for provenance.",
    "sources": [
      "https://github.com/Kyllemn/PS2TVCRT/releases/tag/FullAnFinalRelease"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "RI9",
    "feature": "Arabic/Persian shaping, bidi and Lao mark layout",
    "project": "RIPPS2",
    "category": "October 21 delta",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #1",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI10",
    "feature": "Persistent per-source library snapshot with idle revalidation",
    "project": "RIPPS2",
    "category": "October 21 delta",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #24",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI11",
    "feature": "Typed settings destination picker with directory provisioning",
    "project": "RIPPS2",
    "category": "October 21 delta",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #25",
    "reason": "RIPPS2 offers MC/HDD/USB/MX4SIO/iLink/MMCE and creates its folder. RiptOPL already supports custom/typed paths; this is the guided workflow, not new settings-storage support.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0110-ripps2-quicklists.patch"
    ],
    "filter_state": "partial"
  },
  {
    "id": "RI12",
    "feature": "Power off from paused in-game actions panel",
    "project": "RIPPS2",
    "category": "October 21 delta",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #17",
    "reason": "RIPPS2 now enables its panel by default and adds power off; Titan has profile-gated suspend/resume, and LUNA integrates a native PS1 Quit/Play return panel. RiptOPL's reset and RA notices do not provide these menus.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e6b3fc9a5ad0bce0c08e30df84b697519aa9c803/elf/patches/0106-ripps2-poweroff-star.patch"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "RI13",
    "feature": "Per-row star/highlight/platform decorator theme controls",
    "project": "RIPPS2",
    "category": "October 21 delta",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #75",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI14",
    "feature": "Managed screenshot rolls, indexed PNG development and SCRn",
    "project": "RIPPS2",
    "category": "October 21 delta",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #19",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "H11",
    "feature": "Selectable suffix RA mark and smaller unframed cover mark",
    "project": "xeRAbora OPL",
    "category": "October 21 delta",
    "kind": "Released source",
    "state": "Merged source; console acceptance pending",
    "current_status": "Implemented / merged #1039",
    "reason": "RiptOPL now has gRABadgeSuffix, clean sorting/CFG titles and hidden PS1 ID preservation; the cover mark is flat and clamped to 16–32 pixels. Source parity is not console acceptance.",
    "sources": [
      "https://github.com/hacan359/Open-PS2-Loader/commit/759b12a2dff0cf49736b27991c73399a7e7971e8",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/55261de1381ae70ecfdfb2054f9cafbcfcd586cf/src/rabadge.c",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/55261de1381ae70ecfdfb2054f9cafbcfcd586cf/src/themes.c"
    ],
    "filter_state": "shipped"
  },
  {
    "id": "H12",
    "feature": "Linux ARM64 Raspberry Pi client package",
    "project": "xeRAbora",
    "category": "October 21 delta",
    "kind": "Companion",
    "state": "Companion",
    "current_status": "Usable external companion",
    "reason": "PC/phone client feature. RiptOPL can use the external client; source compatibility with alpha.19 still needs current console acceptance. An older recommendation/shortcut is a documentation/pinning lag, not proof of missing console capability.",
    "sources": [
      "https://github.com/hacan359/xerabora/releases/tag/v0.1.0-alpha.19"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "H13",
    "feature": "Correct in-game SMAP TX descriptor buffer base",
    "project": "xeRAbora OPL",
    "category": "October 21 delta",
    "kind": "Fix candidate",
    "state": "Fix candidate",
    "current_status": "Fix / equivalence investigation",
    "reason": "Current RiptOPL 55261de1 still writes BD_ptr->pointer = BD_data_ptr in smap-ingame/xfer.c; hacan359 adds +0x1000. Retain the FIFO-offset versus descriptor-address correctness investigation; not a missing feature or a verified runtime cause.",
    "sources": [
      "https://github.com/hacan359/Open-PS2-Loader/commit/205223e2d5f838674676d6f8c171dd909eb6c01d",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/55261de1381ae70ecfdfb2054f9cafbcfcd586cf/modules/network/smap-ingame/xfer.c"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "DT4",
    "feature": "Mixed real/emulated multitap slot and two-port poll routing",
    "project": "OPL-DS4RTBT",
    "category": "October 21 delta",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #45",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "DT5",
    "feature": "Controller screen with battery/type and per-pad disconnect",
    "project": "OPL-DS4RTBT",
    "category": "October 21 delta",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #44",
    "reason": "Combines overlapping pad-status rows rather than counting each fork's screen twice.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/commit/f638621cdd40d834877745bda75fa01dae0e1d84"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "DT6",
    "feature": "KH2 SMB+PADEMU memory-footprint correction",
    "project": "OPL-DS4RTBT",
    "category": "October 21 delta",
    "kind": "Fix candidate",
    "state": "Fix candidate",
    "current_status": "Fix / equivalence investigation",
    "reason": "Keep driver/VRAM/memory-footprint correctness leads separate from feature counts. H13 is a concrete source delta (+0x1000 TX descriptor base); runtime causality/porting must be audited. DT6 release notes admit an unresolved debug FMV freeze.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/releases/tag/rt-2.7.0"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "PX31",
    "feature": "Signed INTPL GTE interpolation correction",
    "project": "PSXCore",
    "category": "October 21 delta",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #93",
    "reason": "Includes palette/query fixes, signed INTPL interpolation and parked-worker GP1 DMA-control changes. No inferred superiority for a particular game.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/commit/9d9c7a36c493abd741793fec4dafb018883b0212"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX32",
    "feature": "GP1 DMA control applied with native worker parked",
    "project": "PSXCore",
    "category": "October 21 delta",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #93",
    "reason": "Includes palette/query fixes, signed INTPL interpolation and parked-worker GP1 DMA-control changes. No inferred superiority for a particular game.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/commit/2f35645aa9c35a4af83feee91da79f39155ced1c"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX33",
    "feature": "Buffered interlace descriptor publication",
    "project": "PSXCore",
    "category": "October 21 delta",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #94",
    "reason": "Includes publishing the completed interlace display descriptor; not proof that all FMVs are fixed.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/commit/dcf1fc868de33a957ae14072145a2d6810abc3ff"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX34",
    "feature": "Precomputed memory addressing and smaller DMA/GP0/GP1 saves",
    "project": "PSXCore",
    "category": "October 21 delta",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #96",
    "reason": "Includes precomputed addressing and smaller DMA/GP0/GP1 saves now enabled by default, with disable switches retained.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/compare/66c70e9f920c39ebbe8c3d1deb7cfc7a78cf4fc9...0d4348ea5fff50a16c303c5c1910038e65bf7915"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX35",
    "feature": "Larger adapter capacity and startup planner diagnostics",
    "project": "PSXCore",
    "category": "October 21 delta",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #105",
    "reason": "Current adapter also reports planner failures and increases its bounded capacity.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/commit/f1333504bdd43815f295081f434276dcfae80eff"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "LU36",
    "feature": "SPU2 ADPCM hardware-loop ambient music",
    "project": "LUNA frontend",
    "category": "October 21 delta",
    "kind": "Integrated source",
    "state": "Wrapper-pinned source",
    "current_status": "Consolidated #113",
    "reason": "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.",
    "sources": [
      "https://github.com/dnunezx/LUNA/tree/386f352cf1c2d74a010b23f519c680d31826405d",
      "https://github.com/dnunezx/nhddl-luna/blob/15f01bd180f076d8098529b5c5d5df4d07b13f46/src/ui/ambient.c"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI15",
    "feature": "Category sidebar, source drawers and explicit input focus",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #59",
    "reason": "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.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0113-ripps2-sidebar.patch"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI16",
    "feature": "Legacy-theme opt-out for new category navigation",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Design candidate",
    "state": "Design candidate",
    "current_status": "Adoption candidate / not counted separately",
    "reason": "categories=three/storage and legacy-theme detection preserve old OPL themes and L1/R1 list paging. A compatibility requirement when adopting a sidebar, not a capability RiptOPL lacks while using its classic UI.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0113-ripps2-sidebar.patch"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "RI17",
    "feature": "Two-axis Grid theme element and bounded edge navigation",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #53",
    "reason": "RIPPS2 provides a second source implementation for the existing flat-grid gap O1. Compare its explicit input ownership and fresh-press source changes; do not count another grid family.",
    "sources": [
      "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI18",
    "feature": "Magnified single-pass 720p/1080i menu presentation",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Source design alternative",
    "state": "Source design alternative",
    "current_status": "Consolidated #106",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI19",
    "feature": "Selective FreeType module registration and font stripping",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Design candidate",
    "state": "Design candidate",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 114 avoids the default module table and subsets embedded fonts. Candidate build-footprint optimization only: keep custom TTF/CFF and CJK fallbacks, validate the SDK symbols, and measure allocated sections. ELF sizes from different bundled runtimes are not comparable.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/patches/0114-ripps2-games.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/theme/tools/strip_fonts.py",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "RI20",
    "feature": "External launcher search with remembered typed-family paths",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Design candidate",
    "state": "Design candidate",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 113 removes embedded Ember/POPStarter; Build 114 searches for launchers and remembers usb/ata/mx4sio/ilink paths. RiptOPL already has external lookup and convenient bundled fallbacks. Family identity is not a unique physical drive identity when two USB drives exist.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0113-ripps2-sidebar.patch",
      "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"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "RI21",
    "feature": "Master library before sources answer, with waiting rows",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Released source",
    "state": "Development source",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 114 stores allgames.bin, validates its schema/checksum and resolves waiting rows through their source at launch. Different from RI10 per-source snapshots. Released source; console/game acceptance remains separate.",
    "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI22",
    "feature": "Per-device hidden-game catalogue and Hidden Games manager",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Released source",
    "state": "Development source",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 114 stores RIPPS2.HID on each source and offers restoration through Settings. Separate from parental-lock policy and temporarily unavailable sources.",
    "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI23",
    "feature": "Managed full-game cleanup with a read-only APA preflight",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Released source",
    "state": "Development source",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 114 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/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/patches/0114-ripps2-games.patch",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI24",
    "feature": "On-console ISO/ZSO conversion with staged read-back checks",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Released source",
    "state": "Development source",
    "current_status": "Released source / adoption candidate",
    "reason": "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.",
    "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI25",
    "feature": "One background writer, a launch latch and aligned sequential stages",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Design candidate",
    "state": "Design candidate",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 114 serializes its own cache/art/hidden-list writes and blocks new writes during large image jobs. It also imports RiptOPL’s guarded exFAT allocator work. Reuse existing I/O ownership where possible; no blanket delay or extra worker should be added without evidence.",
    "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"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "RI26",
    "feature": "Editable named Color Sweeps with speed and delete controls",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Released source",
    "state": "Development source",
    "current_status": "Released source / adoption candidate",
    "reason": "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.",
    "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI27",
    "feature": "Hold-SELECT theme list / cycle / off policy",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Design candidate",
    "state": "Design candidate",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 114 makes the theme shortcut configurable and displays the chooser over the current page. RiptOPL already selects themes; track as an interaction option, not a new theme-loader capability.",
    "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"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "RI28",
    "feature": "16-bit WAV mono/rate conversion for menu music",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #112",
    "reason": "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"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "RI29",
    "feature": "Reload sound sets only when source metadata changes",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Design candidate",
    "state": "Design candidate",
    "current_status": "Adoption candidate / not counted separately",
    "reason": "Build 111 keys sound-set reuse on path/size/date and avoids reuploading all sounds on unchanged theme switches. Performance candidate; retain explicit invalidation on IOP reset, changed device or asset replacement.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0111-ripps2-soundclean.patch"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "RI30",
    "feature": "Settings destination bootstrap that survives memory-card precedence",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 111 persists/removes the selected drive pointer in the memory-card bootstrap as well as beside the ELF. Extends RI11’s typed settings destination. Check our actual precedence before attributing the same bug to RiptOPL.",
    "sources": [
      "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"
    ],
    "filter_state": "partial"
  },
  {
    "id": "RI31",
    "feature": "Group menu-list caches separately from in-game read-ahead settings",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Design candidate",
    "state": "Design candidate",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 113 groups settings by effect. RiptOPL now has its own Language page and nine-page settings index; similar organization is an overlap/design lesson, not a missing language selector.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/9b876e6153e3d801c4fc18ce93f38229e319fd8f/elf/patches/0113-ripps2-sidebar.patch",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/55261de1381ae70ecfdfb2054f9cafbcfcd586cf/src/gui.c",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "RI32",
    "feature": "i.LINK field results and shared upstream reset fixes",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Reporter / source evidence",
    "state": "Reporter / source evidence",
    "current_status": "Shared source / reporter evidence; not a feature gap",
    "reason": "Build 112’s recorded native OPL success used modes/logo; its report still failed Neutrino and POPStarter. b114 imports RiptOPL 57c45b4 but not #1042 at 55261de. Keep native OPL, ordinary Neutrino, POPStarter and RA ORBIT separate; argument order alone is not a handshake fix.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/28bc44d0d3a31b084d6b7e55ff91745f9a09c026/docs/plans/builds-104-on.md",
      "https://github.com/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/RIPTOPL_UPSTREAM",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/55261de1381ae70ecfdfb2054f9cafbcfcd586cf/docs/ILINK_CODE_AUDIT_2026-10-22.md"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "RI33",
    "feature": "Drive-family identification instead of mass-slot assumptions",
    "project": "RIPPS2",
    "category": "October 24 RIPPS2 deep dive",
    "kind": "Design candidate",
    "state": "Design candidate",
    "current_status": "Released source / adoption candidate",
    "reason": "October 25 update: Build 114 is now released as v1.1.4-beta. Build 114 identifies drive types for discovery and stored paths. RiptOPL already tests family/alias/index transport binding. This is not proof that either frontend’s ordinal mass slot is a permanent physical-drive identity.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/1d8888ed63c33aa45c27355cd61c966dd1f918eb/elf/patches/0114-ripps2-games.patch",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/55261de1381ae70ecfdfb2054f9cafbcfcd586cf/.github/scripts/test_bdm_transport_binding.py",
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU37",
    "feature": "Budgeted artwork loading slices during rapid navigation",
    "project": "LUNA frontend",
    "category": "Artwork scheduling",
    "kind": "Source candidate",
    "state": "Source candidate",
    "current_status": "Adoption candidate / not counted separately",
    "reason": "artwork_slice.c uses an 8 ms cooperative budget. RiptOPL already has asynchronous caches; compare cancellation/generation and frame latency rather than claiming missing async artwork.",
    "sources": [
      "https://github.com/dnunezx/nhddl-luna/blob/15f01bd180f076d8098529b5c5d5df4d07b13f46/src/ui/artwork_slice.c"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "LU38",
    "feature": "MMCE directory status translated to iomanX EOF",
    "project": "LUNA frontend",
    "category": "Storage correctness",
    "kind": "Source fix",
    "state": "Source fix",
    "current_status": "Overlap / existing driver fix",
    "reason": "LUNA now patches status 1 to a zero directory-EOF result. RiptOPL already ships the coherent MMCEMAN EOF patch and its regression checks.",
    "sources": [
      "https://github.com/dnunezx/nhddl-luna/blob/15f01bd180f076d8098529b5c5d5df4d07b13f46/iop/mmceman-eof.cmake",
      "https://github.com/NathanNeurotic/Open-PS2-Loader/blob/55261de1381ae70ecfdfb2054f9cafbcfcd586cf/.github/patches/mmceman-fs-dread-eof.patch"
    ],
    "filter_state": "overlap"
  },
  {
    "id": "LU39",
    "feature": "Per-game PS1 HDTV Fix control for PSXCore",
    "project": "LUNA frontend",
    "category": "PS1 video",
    "kind": "Integrated source",
    "state": "Integrated source",
    "current_status": "Consolidated #94",
    "reason": "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.",
    "sources": [
      "https://github.com/dnunezx/nhddl-luna/blob/15f01bd180f076d8098529b5c5d5df4d07b13f46/src/ui/game_options.c",
      "https://github.com/dnunezx/LUNA/tree/386f352cf1c2d74a010b23f519c680d31826405d"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX36",
    "feature": "Output-only interlaced HDTV compatibility patch",
    "project": "PSXCore",
    "category": "PS1 video",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #94",
    "reason": "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.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/636961dd666f71d5fe2fd2a0d6c8aa95c0b110ae/src/hdtv.c",
      "https://github.com/dnunezx/PSXCore/blob/636961dd666f71d5fe2fd2a0d6c8aa95c0b110ae/runtime/hdtv.S"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "PX37",
    "feature": "Title-specific startup patch dispatch and stale-translation retirement",
    "project": "PSXCore",
    "category": "Runtime correctness",
    "kind": "Experimental source",
    "state": "Experimental source",
    "current_status": "Consolidated #96",
    "reason": "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.",
    "sources": [
      "https://github.com/dnunezx/PSXCore/blob/636961dd666f71d5fe2fd2a0d6c8aa95c0b110ae/runtime/gamepatches/rayman2.c",
      "https://github.com/dnunezx/PSXCore/blob/636961dd666f71d5fe2fd2a0d6c8aa95c0b110ae/runtime/gamepatches.c"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "DT7",
    "feature": "Per-slot custom lightbar picker with live preview and cancel rollback",
    "project": "OPL-DS4RTBT",
    "category": "Controller UI",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Consolidated #44",
    "reason": "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.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/blob/c6d4741e079eadbdecd6cdcba318f81448de6601/src/gui.c",
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/releases/tag/rt-2.8.0"
    ],
    "filter_state": "tracked"
  },
  {
    "id": "DT8",
    "feature": "Browse SMB shares directly from Network Settings",
    "project": "OPL-DS4RTBT",
    "category": "Network UI",
    "kind": "Post-release source",
    "state": "Post-release source",
    "current_status": "Partial overlap / UI alternative",
    "reason": "Current main is ahead of rt-2.8.0 and adds this picker. RiptOPL already enumerates shares through its SMB source; the difference is the settings workflow, not absent SMB share discovery.",
    "sources": [
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/blob/9f250d4ca03c78adfd6b4db215c303d236a97cc4/src/gui.c",
      "https://github.com/MiguelQueiroz010/OPL-DS4RTBT/blob/9f250d4ca03c78adfd6b4db215c303d236a97cc4/src/ethsupport.c"
    ],
    "filter_state": "partial"
  },
  {
    "id": "H14",
    "feature": "Optional console link-counter fields in snapshot headers",
    "project": "xeRAbora",
    "category": "Telemetry diagnostics",
    "kind": "Source candidate",
    "state": "Source candidate",
    "current_status": "Protocol adoption candidate / not counted separately",
    "reason": "v1.0.0 parses optional us/mx/fail/sk/ds/bad/rc/fc and link/error fields. A useful diagnostics lead; absence does not by itself break the old frame payload. RiptOPL’s alpha.17 recommendation is not silently upgraded.",
    "sources": [
      "https://github.com/hacan359/xerabora/blob/faf24cdd4e2790868c880899bd58c8f775539d50/client/src/snapshot.c"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "H15",
    "feature": "STREAM/OBS view, two skins, rarity/rank and achievement comments",
    "project": "xeRAbora",
    "category": "PC companion",
    "kind": "Companion release",
    "state": "Companion release",
    "current_status": "Companion / separate scope",
    "reason": "Stable v1.0.0 adds desktop/web presentation, --server mode and rcheevos 12.5.0. These are not missing features inside the PS2 loader.",
    "sources": [
      "https://github.com/hacan359/xerabora/releases/tag/v1.0.0"
    ],
    "filter_state": "companion"
  },
  {
    "id": "UF1",
    "feature": "udpfsd Stat fallback and UDP batch-writer panic correction",
    "project": "udpfsd",
    "category": "Server correctness",
    "kind": "Source fix",
    "state": "Source fix",
    "current_status": "Companion correctness candidate",
    "reason": "Two upstream commits change unopened-path Stat fallback and Linux UDP batch error handling. Review the deployed server implementation before updating; this is not a new console protocol.",
    "sources": [
      "https://github.com/pcm720/udpfsd/compare/58d7c8f11ac196d4a5ca7b65b78743fbeedfdd80...ee94414f9f45ed33b8dd4ca4e03847440df946e9"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "OM3",
    "feature": "Rip a physical PS2 DVD through the desktop importer",
    "project": "OrbitPS2 Manager",
    "category": "PC disc import",
    "kind": "Companion source",
    "state": "Companion source",
    "current_status": "Companion / separate scope",
    "reason": "cdd590a adds an optical-drive service and importer UI. Keep this desktop workflow distinct from RIPPS2’s console RIPDISC and from ISO/ZSO conversion.",
    "sources": [
      "https://github.com/Luden02/OrbitPS2-Manager/blob/cdd590aed8f37b09fa69f3fd3deccc1d0fd4f56d/src/services/optical-drive.service.ts"
    ],
    "filter_state": "companion"
  },
  {
    "id": "DK1",
    "feature": "DKWDRV 1.7.6t dithering, USB-menu and CD-emulation changes",
    "project": "DKWDRV",
    "category": "External PS1 core",
    "kind": "Release claim",
    "state": "Release claim",
    "current_status": "External runtime / release evidence",
    "reason": "README and release notes describe global dithering, per-game matrices, EI/DI and USB CD-emulation step 5. No matching implementation-source delta was exposed in this repository comparison; no RiptOPL gameplay deficiency is inferred.",
    "sources": [
      "https://github.com/DKWDRV/DKWDRV/releases/tag/1.7.6t"
    ],
    "filter_state": "companion"
  },
  {
    "id": "TV11",
    "feature": "Retro Volt full-install memory-card boot and controller support",
    "project": "FastLoader / Retro Volt",
    "category": "External suite",
    "kind": "Closed-source release claim",
    "state": "Closed-source release claim",
    "current_status": "Companion / closed-source evidence",
    "reason": "Suite_FULL_INSTALL_MC advertises direct memory-card startup and DS3/4/5/8BitDo USB input. The repository source head did not change; installer claims are not inspected loader code.",
    "sources": [
      "https://github.com/Kyllemn/PS2TVCRT/releases/tag/Suite_FULL_INSTALL_MC"
    ],
    "filter_state": "companion"
  },
  {
    "id": "WC1",
    "feature": "Game age-rating and platform/publisher metadata",
    "project": "PS2 Webcore Launcher",
    "category": "Windows frontend",
    "kind": "Release claim",
    "state": "Release claim",
    "current_status": "Companion / separate scope",
    "reason": "2.2.0 adds metadata to a Windows frontend. It is not a PS2-native loader feature.",
    "sources": [
      "https://github.com/cha0ticd4rksid3/PS2-Webcore-Launcher/releases/tag/2.2.0-CodeName-FlashBack"
    ],
    "filter_state": "companion"
  },
  {
    "id": "PB1",
    "feature": "Native Apple-silicon macOS PSBBN installation tooling",
    "project": "PSBBN Definitive Project",
    "category": "Host installer",
    "kind": "Source",
    "state": "Source",
    "current_status": "Companion / separate scope",
    "reason": "Current source adds Darwin helpers and platform wrappers for installation. No new RiptOPL game-loading backend is implied.",
    "sources": [
      "https://github.com/CosmicScale/PSBBN-Definitive-Project/blob/6c7c122f7bc6f4cfbddcb99946e61b99cbdbb3a1/scripts/Setup.sh"
    ],
    "filter_state": "companion"
  },
  {
    "id": "LS1",
    "feature": "UDPFS odd-tail/startup fixes and current navigation wrap",
    "project": "Launchstation",
    "category": "Companion correctness",
    "kind": "Source fix",
    "state": "Source fix",
    "current_status": "Companion / net-tree review",
    "reason": "Current head 3e03e640 explicitly reverts to the 2e140ab6 state. The net tree retains the earlier SMAP and wrap work; do not list every intervening transfer/video/MMCE commit as currently shipped.",
    "sources": [
      "https://github.com/NathanNeurotic/Launchstation/commit/3e03e640a1434a6d23dd1b80498fa0fbb7c88672"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "LC1",
    "feature": "Explicit Ember CUE argument and cover-forwarding documentation",
    "project": "launcHER",
    "category": "Companion launch documentation",
    "kind": "Documentation",
    "state": "Documentation",
    "current_status": "Companion / no new runtime delta",
    "reason": "The two new commits alter documentation, examples and the launch-argument test; the comparison contains no handler implementation change.",
    "sources": [
      "https://github.com/NathanNeurotic/launcHER/compare/94809b18aaf621dd16f03707eb7b0ce362cf742c...2f083b8aef3e17d3eada476f96d8af505d9f6afc"
    ],
    "filter_state": "companion"
  },
  {
    "id": "RI34",
    "feature": "Version-aware external Neutrino argument negotiation",
    "project": "RIPPS2",
    "category": "October 25 source review",
    "kind": "Development source",
    "state": "Development source",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "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"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "RI35",
    "feature": "MMCE busy/card-creation coordination before scans and launch",
    "project": "RIPPS2",
    "category": "October 25 source review",
    "kind": "Development source",
    "state": "Development source",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "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/akilluminati47/RIPPS2/blob/e1e3504f4a8bfd6b2f88425d284eb845393cfcb9/elf/patches/0115-ripps2-hardware.patch"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "RI36",
    "feature": "Artwork name aliases with exact case-preserved directory lookup",
    "project": "RIPPS2",
    "category": "October 25 source review",
    "kind": "Development source",
    "state": "Development source",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "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/akilluminati47/RIPPS2/blob/e1e3504f4a8bfd6b2f88425d284eb845393cfcb9/elf/patches/0115-ripps2-hardware.patch"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "RI37",
    "feature": "Trust Cache policy and coalesced manual refresh",
    "project": "RIPPS2",
    "category": "October 25 source review",
    "kind": "Development source",
    "state": "Development source",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "Extends RI10/RI21 rather than creating another cache family: cached MMCE/SMB/BDM lists stand until SELECT. Stale removals and device replacement must be revalidated at launch; do not promise that trusting a cache validates its media.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/e1e3504f4a8bfd6b2f88425d284eb845393cfcb9/elf/patches/0115-ripps2-hardware.patch"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "RI38",
    "feature": "Recent Games as a lazy-source page, up to 99 entries",
    "project": "RIPPS2",
    "category": "October 25 source review",
    "kind": "Development source",
    "state": "Development source",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "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/akilluminati47/RIPPS2/blob/e1e3504f4a8bfd6b2f88425d284eb845393cfcb9/elf/patches/0115-ripps2-hardware.patch"
    ],
    "filter_state": "experimental"
  },
  {
    "id": "RI39",
    "feature": "Quiet background HDD probes and explicit-source errors",
    "project": "RIPPS2",
    "category": "October 25 source review",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "Build 114 hotfix suppresses error 400 for background ATA probes without hiding explicit HDD-start failure. Compare which probes our code runs on slims and adapterless fats; no hardware regression is established by the upstream fix.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "RI40",
    "feature": "MMCE rename capability preflight before conversion",
    "project": "RIPPS2",
    "category": "October 25 source review",
    "kind": "Released source",
    "state": "Released source",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "Build 114 hotfix tries a small sibling-file rename before lengthy conversion. Release notes require sd2psXtd 1.4.0 and report no MMCE free-space check. Extends RI24; staged readback alone does not guarantee atomic replacement or interrupted-operation recovery.",
    "sources": [
      "https://github.com/akilluminati47/RIPPS2/blob/f59abffde0794debdadaee526c175414a4b12b21/elf/patches/0114-ripps2-games.patch"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "YA1",
    "feature": "Parser, configuration, VMC and MMCE hardening review",
    "project": "YAOPL",
    "category": "October 25 source review",
    "kind": "Source correctness candidate",
    "state": "Source correctness candidate",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "New fork has 99 commits ahead of upstream master, including merged branches and fixes credited to RiptOPL. That count is not 99 missing features. Prioritize MMCE history/GameID ordering and responding-slot IGR return; reconcile each parser/VMC change against current RiptOPL before claiming novelty.",
    "sources": [
      "https://github.com/belomaxorka/yaopl/tree/33a2b19a8afa37b50015eeb1414f575b2270ac7d",
      "https://github.com/belomaxorka/yaopl/blob/33a2b19a8afa37b50015eeb1414f575b2270ac7d/FORK.md"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "NV1",
    "feature": "In-game master-volume RPC with framebuffer overlay",
    "project": "OPL-volume",
    "category": "October 25 source review",
    "kind": "Uncompiled proof of concept",
    "state": "Uncompiled proof of concept",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "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"
    ],
    "filter_state": "candidate"
  },
  {
    "id": "LU40",
    "feature": "Tolerant scans retaining partial library results",
    "project": "LUNA",
    "category": "October 25 source review",
    "kind": "Source correctness candidate",
    "state": "Source correctness candidate",
    "current_status": "Review candidate; not a confirmed RiptOPL defect",
    "reason": "Current wrapper pins nhddl-luna df394982. A failed/unreadable ISO no longer discards all valid scan results; the isolated v3.1.3 hotfix workflow pins a different frontend and original core. Do not equate wrapper main, hotfix package and PSXCore development runtime.",
    "sources": [
      "https://github.com/dnunezx/nhddl-luna/commit/df394982c12e331dd7a18390ac055b6ba957fbbb"
    ],
    "filter_state": "candidate"
  }
]
