POPStarter DOCS

Design decisions

← POPSLoader docs ยท view on GitHub โ†—

Last updated: 2026-06-21 (BETA-13 session: frame-counted nav/desc-scroll, analog-fold gate + hysteresis, layered cover art / MISSING.png drop, OPL-style overscan, boot-sound toggle, HDD scan-slot steering, Codex BETA-13 audit). Released line: BETA-12 (2026-06-18; BETA-11 2026-06-15); active dev / rolling branch BETA-13-PLAY (created off BETA-12-PLAY @ 8d1e67a; BETA-12-PLAY is now archival / frozen; rolling-release.yml was repiped to publish from BETA-13-PLAY). BETA-13 is the in-progress rolling candidate, not yet cut. Shared volatile facts (Known Issues, Preservation Contracts, Settings behavior, Invariants, Hardware Status) live in STATE.md โ€” this log records the decisions, not the current-state snapshot.

DECISIONS

Decision Log Format

Each entry records:
- Date (YYYY-MM-DD)
- Decision
- Rationale
- Implications
- Evidence

Decision Log

2026-06-21 โ€” Frame-Count Nav Auto-Repeat Instead of the Wall Clock (d128779)

2026-06-21 โ€” os.clock() Sweep for the Remaining ยตs-as-ms Timers PARKED (not done)

2026-06-21 โ€” Description Right-Stick Scroll Is Frame-Counted Too (c8fce10)

2026-06-21 โ€” Gate the Analog-Stickโ†’D-Pad Fold on Real Analog Mode + Hysteresis (d233069, 9b8a38e)

2026-06-21 โ€” Boot Sound On/Off Setting (6eba9e7, save fixed 9b8a38e)

2026-06-21 โ€” OPL-Style Overscan (CRT Inset): Identity Render-Transform at Permille 0 (1ac15ad C core, 6f0d742 UI, 73f0933 reset)

2026-06-21 โ€” Layered Cover-Art Placeholder Replaces the Single MISSING.png (56a5ad5)

2026-06-21 โ€” Embedded-Asset Add/Remove Is Three Explicit Coordinated Places (not auto-glob)

2026-06-21 โ€” Steer the HDD Game Scan Off the Boot PFS Slot (Proposal A, b159a43; save-after-scan liveness 8d1e67a)

2026-06-21 โ€” Codex BETA-13 Audit: 6 Findings Verified Real and Fixed (ec81de3)

2026-06-21 โ€” POPSTARTER.ELF Ships in Both Release Zips

2026-06-17 โ€” PLDR.HDD Attach-Before-Init Load-Order Boot Fix (d4b04be)

2026-06-17 โ€” BDMA Marker File Renamed .pldr_bdma_mode โ†’ bdma_mode.txt (Legacy Names Still Read)

2026-06 โ€” POPSTARTER Memory Card Folder Toggle + BDMA Interlock

2026-06 โ€” PAL Renders Natively at 640ร—512 (Supersedes the 640ร—448 PAL Layout)

2026-06 โ€” HDD Boot-Partition RW Take-Over for Settings + In-App .hide (EnsureBootPartitionWritable)

2026-06 โ€” Embedded-Lua Syntax Gate (luac5.4 -p) Is Now Live in CI

2026-05-31 โ€” U-10 (BOOT.ELF from HDD-Booted POPSLoader) Resolved by PR #479 (reboot_iop=0)

2026-05-29 โ€” MX4SIO Settings Save Fixed by PR #476 + PR #477 (Hardware-Confirmed)

2026-05-28 PM late (correction 2) โ€” Class A vs Class B: HOSDmenu/wLE Fail to Launch POPSLoader is Distinct from U-10

2026-05-28 PM late โ€” U-10 PASS Claim Walked Back; Remains Known-Broken Accepted

2026-05-28 PM โ€” U-10 Unexpectedly Resolved; Known-Broken List Reduced to DKWDRV-HDD-Custom (WALKED BACK 2026-05-28 PM late โ€” see entry above)

2026-05-28 PM โ€” PR #470, #472, #473 Hardware-Verified

2026-05-28 โ€” Layer C mmceman Lazy Load (PR #471, DRAFT)

2026-05-28 โ€” Lua Forward-Reference Hotfix (PR #473)

2026-05-28 โ€” MX4SIO Evidence-Based Mass: Classification (PR #472 + refinement 7b587fe)

2026-05-28 โ€” mx4sio_bd Depends on usbmass_bd (Enforced at C Layer)

2026-05-28 โ€” PLDR.LAUNCH_ARGS.game and -debug Consumers Wired (PR #470)

2026-05-28 โ€” Rolling Release Workflow Operational

2026-05-28 โ€” BETA-10-5 Hardware Confirmation (Nuno)

2026-05-27 โ€” BETA-10-5 Release Cut (v1.0.0-rev5, commit 9a0ebe2)

2026-05-27 โ€” HDD Sidecar Disabled; Known-Broken Edge Cases Accepted (PR #466)

2026-05-25 โ€” NHDDL-Style Launch Argument Parsing (PR #458)

2026-05-25 โ€” Unified ResolveBootContext Resolver (PR #458)

2026-05-25 โ€” Per-Device Settings Sidecar with First-Run Migration (PR #459, PR #462)

2026-05-22 โ€” Minimal B2 Dynamic PFS Unmount Production Fix

2026-03-06 โ€” Lua runtime is embedded-only at boot

2026-03-06 โ€” Settings persist as a transaction on Settings/Profile exit

2026-03-26 โ€” USB vs MX4SIO identity is authoritative by mount driver

2026-03-26 โ€” Runtime device locks are no longer enforced

2026-03-26 โ€” Startup backend initialization is path-driven

2026-03-26 โ€” PAL UI uses the same 640x448 raster layout as NTSC-authored UI assets

2026-03-26 โ€” Release ZIP contract is strict and PATCH_5-based

2026-03-29 โ€” QA_REGRESSION_MATRIX.md is the detailed run ledger

2026-05-13 โ€” Separate build/package CI from comment-triggered AI automation

2026-05-19 โ€” Default cover image is optional at compile time

Archived Investigations

The investigations below were active during the Marchโ€“May 2026 development cycle and are now largely resolved by the BETA-10-5 release. They are preserved verbatim for historical context and to document the diagnostic chain that produced the B2 fix at commit 4ae6679 (D-10) and the V2 BOOT.ELF route at commit d23520a (L-07). For the current state, see STATE.md (current state, hardware status, and known issues) and QA_REGRESSION_MATRIX.md.