From b8b82b753c32062db6b51b0a603513d37643bda5 Mon Sep 17 00:00:00 2001 From: Alex Vanderveen Date: Mon, 17 Aug 2026 16:52:18 -0400 Subject: [PATCH 1/8] Fix the pad-hotkey range check rejecting every chord MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [hotkeys] rewind_pad / save_state_menu_pad accept the recomp-ui pad encoding, where 1000 + a button bitmask is a CHORD. The parse guarded on `n < 256`, which admits single buttons and rejects every chord there is — including the two values this same file writes back out (1272 = select+r3, 2040 = select+r1). A saved chord was silently dropped on load and the defaults quietly reinstated, so the pad hotkeys were never actually configurable. The bound predates the chord encoding; the runtime's own normalize_hotkey_pad_binding has handled combos correctly all along. Replaced with pad_bind_value_ok(), sharing one documented bound with the encoding it validates. Verified against a live boot with rewind_pad = 1017 (select+cross): parsed has=0 value=1272 before, has=1 value=1017 after. Co-Authored-By: Claude Opus 5 (1M context) (cherry picked from commit 165fae0aa1fb1aea4ae299bb3552cd906b73f768) --- recompiler/src/config_loader.cpp | 4 ++-- recompiler/src/config_loader.h | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/recompiler/src/config_loader.cpp b/recompiler/src/config_loader.cpp index f9d75249..6b25477e 100644 --- a/recompiler/src/config_loader.cpp +++ b/recompiler/src/config_loader.cpp @@ -2329,14 +2329,14 @@ UserSettings load_user_settings(const fs::path& path) { const toml::value& h = toml::find(doc, "hotkeys"); if (h.contains("rewind_pad")) try_get([&]{ const auto n = toml::find(h, "rewind_pad"); - if (n >= 0 && n < 256) { + if (pad_bind_value_ok(n)) { s.hotkey_pad_rewind = (int)n; s.has_hotkey_pad_rewind = true; } }); if (h.contains("save_state_menu_pad")) try_get([&]{ const auto n = toml::find(h, "save_state_menu_pad"); - if (n >= 0 && n < 256) { + if (pad_bind_value_ok(n)) { s.hotkey_pad_save_state_menu = (int)n; s.has_hotkey_pad_save_state_menu = true; } diff --git a/recompiler/src/config_loader.h b/recompiler/src/config_loader.h index 9e7e829f..a993421e 100644 --- a/recompiler/src/config_loader.h +++ b/recompiler/src/config_loader.h @@ -55,6 +55,20 @@ inline constexpr int VIDEO_RENDERER_OPENGL = 1; inline constexpr int VIDEO_RENDERER_VULKAN = 2; inline constexpr int DEFAULT_VIDEO_RENDERER = VIDEO_RENDERER_OPENGL; +// Controller-hotkey bind encoding, mirroring recomp-ui's RECOMP_LAUNCHER_PAD_* +// (recomp_launcher.h): 0 = unbound, 1..99 = button (1 + SDL button code), +// 100..999 = axis, 1000+ = a CHORD, encoded as 1000 + a bitmask of SDL button +// codes. Two buttons held together is the normal case (select+r3), so a real +// value here is routinely five digits. +// +// The bound matters: a naive `< 256` check silently rejects every chord, so a +// saved rewind_pad = 1272 was dropped on load and pad hotkeys were only ever +// configurable to single buttons. SDL defines about 21 gamepad buttons, so cap +// the mask at 32 bits' worth and let the runtime ignore bits no controller can +// produce. +inline constexpr int PAD_BIND_MAX = 1000 + (1 << 21); +inline bool pad_bind_value_ok(long long n) { return n >= 0 && n < PAD_BIND_MAX; } + struct WidescreenSignedBoundSite { uint32_t address = 0; uint32_t expected = 0; // guarded LUI instruction From 7a872bc0186556d7e624e7ff80da537250a6170f Mon Sep 17 00:00:00 2001 From: Matthew Stanley <1379tech@gmail.com> Date: Sun, 23 Aug 2026 13:09:19 -0700 Subject: [PATCH 2/8] docs: add host optimization and upstream audit notes --- docs/HOST_OPTIMIZATION_CONTRACT.md | 203 ++++++++++++++++++++++ docs/UPSTREAM_2026-08-20.md | 262 +++++++++++++++++++++++++++++ 2 files changed, 465 insertions(+) create mode 100644 docs/HOST_OPTIMIZATION_CONTRACT.md create mode 100644 docs/UPSTREAM_2026-08-20.md diff --git a/docs/HOST_OPTIMIZATION_CONTRACT.md b/docs/HOST_OPTIMIZATION_CONTRACT.md new file mode 100644 index 00000000..29146544 --- /dev/null +++ b/docs/HOST_OPTIMIZATION_CONTRACT.md @@ -0,0 +1,203 @@ +# Host optimization contract + +This document is the acceptance contract for changes intended to make +psxrecomp run faster on the host. It applies to generated code, the runtime, +the flat CPS trampoline, overlay dispatch and validation, graphics and audio +support code, and host-side caches or fast paths. + +Correctness fixes and deliberate guest-visible enhancements still need focused +verification, but the 5% performance retention gate below applies specifically +to optimizations. + +## Non-negotiable rules + +1. Measure on a quiet host with zero compiler processes. Finish all AOT, + overlay, shader, and helper compilation before the timed region. Confirm + that no compiler, linker, build driver, or autocompile worker is alive while + sampling. A run in which one appears is contaminated and is discarded, not + explained away. +2. Interleave A and B. Never measure all baseline runs and then all candidate + runs. The minimum acceptable order for three pairs is `A1 B1 A2 B2 A3 B3`; + reversing the first member of alternate campaigns is encouraged. Keep the + same binary and use a forced runtime selector when practical. +3. Report every raw run, the min-of-N for A and B, the percentage change + between those minima, both medians, and the percentage change between the + medians. N is at least three. State whether lower or higher is better. +4. Discard a pair when either member is contaminated. Reasons include a + compiler process, overlay compilation, shader-cache construction, a changed + power or thermal state, unexpected foreground load, a different overlay + population, or a different pacing owner. Record the discarded pair and its + reason in the experiment ledger. +5. A candidate that adds complexity, persistent state, generated-code ABI, + configuration or debug ABI, or another maintained fast path is retained + only when the agreed primary metric improves by at least 5%. A pure + simplification may be retained at flat cost, but its measured numbers must + still be recorded. Correctness fixes are judged on correctness, not this + speed threshold; do not disguise an optimization as a correctness fix. +6. With the optimization forced on for every eligible operation, guest-visible + state must be byte-identical to the faithful path at deterministic + checkpoints. An automatic fallback is not proof: it can hide the exact case + the fast path mishandles. +7. The faithful reference computation remains linked and selectable. A fast + path is an implementation of that same computation, not a replacement model + that merely looks plausible for one title. +8. Do not copy another console project's opcode handlers. It is valid to reuse + its experimental process, evidence format, test structure, or review + checklist. Implement R3000A behavior from PlayStation evidence and + psxrecomp's own faithful path. + +## Preparing comparable psxrecomp runs + +Prefer one executable containing both paths and an explicit selector with +three states: faithful, candidate forced on, and normal policy. Record the +selector and assert in telemetry that the requested state took effect. If two +binaries are unavoidable, build both before the campaign and record their +commits, toolchains, options, and artifact hashes. + +Static recompilation makes build quietness part of the benchmark definition. +Pre-generate the game and BIOS images, warm every overlay needed by the +workload, and prevent runtime autocompile during the measured interval. Record +the static image identity and the exact overlay inventory. A benchmark is not +comparable if A interprets an overlay while B uses a compiled shard. + +Content-verified overlay variants require an additional check. A and B must +use the same captured bytes, identity ranges, flavor, cache generation, and +selected variant at each checkpoint. Pin and report the overlay flavor. A fast +identity check may avoid a CRC or range scan, but the faithful verifier must +remain callable and both must select the same content-verified variant. + +The flat CPS trampoline is part of observable execution semantics. Compare the +published continuation PC, dispatch result, exception redirect, dispatch depth, +and same-site resume consumption at block and function boundaries. A host +function returning with `cpu->pc == 0` is not equivalent to tail-publishing the +next guest PC, even if common images never cross that boundary. + +Use a deterministic workload with fixed inputs and a fixed capture or replay +when possible. Keep renderer, audio backend, window state, display refresh, +vsync/pacer ownership, CPU overclock, CRTC multiplier, mods, RAM size, and +instrumentation identical. Warm caches outside the timed region unless cold +behavior is the stated metric. + +## Correctness proof + +The forced-candidate run must exercise the candidate, and its checkpoints must +match a run forced through the faithful reference. Hash or serialize all state +that can affect later guest execution, including: + +- GPR, HI/LO, PC, COP0, GTE registers and completion timestamps; +- main RAM, scratchpad, VRAM, SPU RAM, and relevant device registers; +- the R3000A cycle counter, deferred cycle charges, event deadlines, IRQ state, + load-delay state, and pending exception continuation; +- dispatch and overlay identity state that changes which guest bytes execute; +- deterministic mod-owned guest state and savestate-visible sections. + +Host-only counters may be excluded only when they cannot influence selection, +timing, invalidation, or later guest state. Document every exclusion. + +Compare at more than the final frame. Include checkpoints before the candidate +first fires, immediately after it fires, at overlay or exception boundaries it +touches, and after a long soak. For caches and memos, force hits, misses, +invalidation, wrap or saturation, and savestate/rewind restore. For generated +code, cover the game emitter, BIOS full-function emitter, compiled overlays, +static overlay bakes, and the dirty interpreter wherever the contract crosses +execution tiers. + +For cycle-affecting work, use `tools/cycle_testrom/measure.py` as the existing +measurement seam. Run the same test-ROM anchors against the native compiled +path, `PSX_FORCE_INTERP=1`, and the Beetle oracle as applicable. The script's +per-iteration deltas establish guest-cycle correctness; they do not replace a +separate interleaved wall-time or throughput campaign for host performance. +The faithful per-instruction R3000A cycle model remains authoritative: an +optimization may reduce host work but may not remove base charges, wait states, +interlocks, GTE completion timing, I-cache behavior, or peripheral deadlines. + +## Performance campaign and evidence + +Choose the primary metric before running the campaign. Frame or workload time +is preferred when the work is bounded; throughput is acceptable for a fixed +steady-state loop. Report secondary metrics, but do not change the retention +decision after seeing the results. + +The evidence block for every candidate contains: + +```text +Candidate: +Commits/artifacts: A= B= selector= +Workload: +Primary metric: +Run order: A1 B1 A2 B2 A3 B3 +Raw A: , , +Raw B: , , +Min-of-3: A= B= change= +Medians: A= B= change= +Correctness: faithful= forced-on= result= +Contamination: +Complexity/ABI: +Decision: ACCEPT/REJECT - +``` + +Worked example, using workload time in milliseconds where lower is better: + +```text +Run order: A1 B1 A2 B2 A3 B3 +Raw A: 12.000, 11.000, 13.000 ms +Raw B: 9.744, 9.493, 10.100 ms +Min-of-3: A=11.000 B=9.493; improves 13.7% +Medians: A=12.000 B=9.744; improves 18.8% +Correctness: faithful=7a... forced-on=7a...; byte-identical +Complexity/ABI: two per-variant words plus one generated helper call +Decision: ACCEPT - both summaries exceed the 5% retention gate +``` + +Do not report only a profiler share, a best screenshot, an FPS range, or a +sequential before/after observation. Those are useful for finding candidates, +not for accepting them. + +## Experiment ledger + +Every investigated candidate gets a ledger row, including rejected, +superseded, reverted, and flat candidates. The ledger is append-only evidence, +not a highlights page. Keep it beside the optimization or campaign notes and +include links to raw data when available. + +Required fields are: + +| Field | Required contents | +|---|---| +| ID and date | Stable candidate ID and campaign date | +| Change | Commit(s), artifact hashes, selector, and concise hypothesis | +| Scope | Workload, renderer/audio backend, host, toolchain, config, overlay inventory and flavor | +| Correctness | Faithful and forced-on checkpoint hashes; exact exclusions | +| Runs | Interleaved order, all raw accepted runs, and every discarded pair with reason | +| Summary | A/B min-of-N and medians with percentage changes | +| Cost | Added code, state, ABI, configuration, maintenance burden, or simplification | +| Verdict | Accepted or rejected, threshold used, and reason | + +Accepted and rejected results are equally visible. A compact ledger index may +look like this, with each row linking to its full evidence block: + +| ID | Min-of-N change | Median change | State result | Cost | Verdict | +|---|---:|---:|---|---|---| +| EX-A | improves 13.7% | improves 18.8% | byte-identical | two per-variant words and one helper call | ACCEPT - clears 5% | +| EX-R | improves 3.0% | improves 1.0% | byte-identical | new cache and invalidation path | REJECT - below 5% | + +Use an explicit rejected entry even when the candidate was reverted before a +formal campaign. Record the numbers that motivated the experiment and state +which required evidence is missing. Do not silently delete failed ideas: the +ledger prevents the same attractive but invalid optimization from being tried +again without new evidence. + +## Review checklist + +- Host was quiet and had zero compiler processes during every retained run. +- A/B was interleaved; contaminated pairs were discarded and recorded. +- Raw runs, min-of-N, and medians are present. +- The forced candidate and faithful reference produced byte-identical + guest-visible state. +- The faithful path remains linked and selectable. +- Overlay identities and execution tiers were held constant and reported. +- Cycle-model changes were checked through the cycle-test-ROM seam. +- Added complexity or ABI clears 5%; flat pure simplifications have numbers. +- Accepted and rejected candidates are both in the experiment ledger. +- R3000A implementation was derived independently; no other console's opcode + handlers were copied. diff --git a/docs/UPSTREAM_2026-08-20.md b/docs/UPSTREAM_2026-08-20.md new file mode 100644 index 00000000..d69b5cca --- /dev/null +++ b/docs/UPSTREAM_2026-08-20.md @@ -0,0 +1,262 @@ +# Upstream contribution audit — 2026-08-20 + +## Summary + +This worktree is a cross-cutting psxrecomp framework hardening and host-performance pass discovered while bringing up WipEout 3 SE: it fixes overlay-DLL generation and byte-variant identity, makes cycle/IRQ/cache shortcuts preserve guest-observable timing, closes several PGXP/GTE provenance holes, extends HD-texture tracking to copied VRAM, separates presentation content policy from the configured outer canvas, and adds reusable profiling/test surfaces. The mechanisms are generally applicable to recompiled PS1 titles; the few title-specific observations and enablement conclusions are isolated below and should not be upstreamed as framework policy. + +## Audit basis and limits + +- The audited delta is the **current working tree against local `HEAD` `4f0b07b1491e` on `feat/ws-cull-widen`**, because that is the boundary that matches the reported session body: 58 tracked files (`3,068` insertions, `871` deletions) plus 16 meaningful untracked source/doc/test files = **74 meaningful paths**. Untracked `build-pgxp-focused/` and `build-texpack-focused/` are build artifacts and were excluded. +- `fork/feat/ws-cull-widen` is `e27eac73663f`, an ancestor 27 commits behind local `HEAD`. Diffing to that remote ref would mix those already-committed changes into this working-tree contribution and produce 81 meaningful paths instead of the reported approximately 76. +- Per instruction, no build, test, benchmark, or executable was run during this audit. “Covered” below means the test source exists and targets the invariant; it is **not** a fresh pass result. +- A number is called “measured” only when the audited files contain an actual observation/result. Loop counts and cache capacities are reported as designed coverage/structure, not as performance results. Where the delta has no result, the measurement is **UNKNOWN**. + +## Corrections to the supplied headlines + +1. **Overlay shim anchor: mechanism supported; manifestation counts unverified.** `patch_generated_c` now anchors after the unconditional `#include "psx_runtime.h"` and fails if it is missing. The delta does not contain a linker transcript or result establishing “~10k undefined runtime symbols” or “zero overlay DLLs”; those numbers are **UNKNOWN** here. +2. **Overlay stale-PC/variant identity: supported.** An executed-word overwrite retires the whole page epoch, incoherent capture roots are rejected against current bytes, and static requests are keyed by `(load address, size, bytes)`. +3. **Cycle specialization: supported with a qualification.** Generation selects arity 0/1/2/3 helpers, but masks with more than three nonzero dependencies deliberately retain the generic mask helper. Main-RAM load charges and the pre-deadline fast path are present. +4. **LTO: feature supported; quoted deltas unsupported.** `PSX_ENABLE_LTO`, the no-inline cycle wrappers, and a deterministic benchmark target exist. No checked-in output contains `-45.92%`, `+10.45%`, or `+32.69%`; all three are **UNKNOWN** for this audit. +5. **PGXP/GTE: the correctness changes are supported; “fake never-incremented counters removed” is not.** The old `s_nclip_corrected` counter was incremented on both sign-disagreement branches, and the removed `s_texcorr.z_interp` field was incremented when missing Z values were mean-filled. The change converts NCLIP to non-mutating disagreement telemetry, removes partial-Z interpolation, and adds real primitive/provenance counters; no demonstrably never-incremented counter removal was found. +6. **HD texture pack: supported.** Tile occupancy gates invalidation scans, and VRAM copies can become upload-equivalent candidates, with deferred readback for unresolved copies. +7. **HD text gate: headline mechanism is wrong.** The change uses an atomic aggregate boolean (`g_dispatch_armed`) derived from capture, string-table, and pending-patch state. It is **not** a monotonic mutation epoch. The separate native-text guard does gain a monotonic epoch, but that is a different subsystem. +8. **Presentation: supported as an opt-in capability.** With `fixed_outer_aspect=true`, scene classification selects only the inner content rect; the outer rect comes from configured aspect. Legacy behavior remains when the option is false. +9. **Card-write diagnostic: only true for release builds.** `card_data_writes_check` and `card_data_writes_arm` preprocess away under `PSX_NO_DEBUG_TOOLS`; debug builds still execute them. +10. **GTE bridge narrowing: supported.** The command exporter stops rewriting inputs/control registers and its source comment counts **40 redundant stores removed per COP2 command**; per-write whole-state canonicalization is removed from data/control writes. +11. **Widescreen `items_join`: not in this delta.** `runtime/src/ws_ui_group.c` and its test are unchanged against local `HEAD`. Submission-order joining was implemented earlier in ancestor commit `572b921`; it must be summarized from that commit separately, not claimed as part of this worktree. + +Significant changes missing from the supplied list are the exact IRQ-pending cache and writer audit, I-cache replay isolation, two generated-dispatch caches, cycle-observer flushes, live CRTC cadence reconciliation/config exposure, PGXP rectangle-state disarming, release diagnostic pruning, and new host-optimization/keyboard regression surfaces. + +## Improvement inventory + +Tests named in the last column were inspected but not executed. + +### Correctness bugs + +| ID | Title | Files touched | What it fixes | Why it is general | Test(s) that cover it | +|---|---|---|---|---|---| +| C1 | Overlay shim anchored to an unconditional include | `tools/compile_overlays.py`; `runtime/include/{cpu_state.h,psx_cycles.h}`; overlay shim tests | A conditional include could make the whole DLL callback shim disappear under `PSX_OVERLAY_DLL_BUILD`, leaving unresolved direct runtime calls. The new anchor is the emitter-guaranteed unconditional runtime include and absence is fatal. | Any generated overlay can acquire conditional headers; no title address or symbol is involved. | `recompiler/tests/test_overlay_store_barrier_codegen.py`; `test_overlay_shim_compile.py` | +| C2 | Overlay execution epoch and exact byte-variant identity | `runtime/src/memory.c`; `tools/compile_overlays.py`; overlay discovery/perf-guard tests | Prevents an outgoing image's recorded PCs from being compiled against a later image's bytes; current-byte CFG rejection and exact-image static requests fail closed to interpretation. | Self-modifying code, streamed overlays, and same-address variants are generic PS1 behaviors. | `recompiler/tests/test_aot_overlay_discovery.py`; `runtime/tests/test_interpreter_perf_guards.py` | +| C3 | Exact cached INTC output and Cause.IP2 ownership | `runtime/include/interrupts.h`; `runtime/src/{interrupts,boot_state,memory,overlay_loader,sio,psx_interpreter}.c`; IRQ tests | Replaces repeated `i_stat & i_mask` hot reads with one cache while making a single refresh owner update both the full pending value and Cause.IP2 after every writer. | Every title uses the PS1 INTC; correctness depends on hardware-register mutation, not game logic. | `runtime/tests/test_cause_ip2_combinational.c`; `test_perf_round3_guards.py` | +| C4 | Deferred-cycle observers flush before reading time | `runtime/src/psx_cycles.c`; cycle tests | MUL/DIV and GTE issue/read/stall paths no longer observe a guest clock that is still sitting in the deferred batch. | These are architectural R3000A/GTE completion timestamps shared by all guests. | `runtime/tests/test_psx_cycle_event_boundaries.c`; `test_perf_round3_guards.py` | +| C5 | I-cache replay cannot mutate tags or charge misses | `runtime/include/psx_icache.h`; `runtime/tests/test_psx_icache_fastpath.c` | Replay now suppresses both tag evolution and miss charges while preserving normal cold initialization, hit/miss behavior, and the disabled-cache giveback path. | Lockstep/replay correctness is independent of title code. | `runtime/tests/test_psx_icache_fastpath.c` | +| C6 | Primitive-atomic PGXP position/depth and frame-canonical endpoints | `runtime/include/pgxp_vertex_cache.h`; `runtime/src/{pgxp_vertex_cache,gpu}.c`; `ENHANCEMENTS.md`; cache test/CMake | Eliminates corrected/native cracks on shared raster endpoints, prevents the two halves of a quad from making different decisions, and rejects incomplete depth instead of mean-filling missing Z. First use of `(frame, final native x, final native y)` owns the endpoint for the frame. | Shared-edge identity, quad splitting, and incomplete projection depth occur in any PGXP-enabled title. | `runtime/tests/test_pgxp_vertex_cache.c`; depth completeness is exercised indirectly by existing GTE/PGXP tests, but **no focused incomplete-Z primitive test was found.** | +| C7 | Per-component PGXP projection identity | `runtime/src/pgxp.cpp`; `runtime/include/pgxp.h`; PGXP tests | Identical packed bits from different projections can no longer be mistaken for coherent X/Y/Z provenance, including after halfword reconstruction. | Packed-word aliasing is a generic provenance problem in MIPS dataflow. | `runtime/tests/test_pgxp.cpp` | +| C8 | Destructive PGXP writes invalidate stale provenance everywhere | `recompiler/src/{pgxp_hook_emitter.cpp,pgxp_hook_emitter.h}`; `runtime/include/{pgxp.h,pgxp_hooks.h,overlay_dispatch_preamble.c.inc}`; `runtime/src/pgxp.cpp`; `runtime/src/{memory,psx_interpreter,dirty_ram_interp,overlay_loader}.c`; emitter/PGXP coverage tests | AND/XOR/NOR/SLT families, link writes, COP0/COP2 destinations, and raw RAM/scratch stores now kill old provenance even when the resulting integer bytes are unchanged. Sparse GPR/page-live gates avoid paying the callback when no value is live. | All recompilers/interpreters must agree on writer semantics; no opcode handling is title-specific. | `recompiler/tests/full_function_emitter_test.cpp`; `runtime/tests/test_pgxp.cpp`; `test_pgxp_destructive_write_coverage.py` | +| C9 | SXYP shadow FIFO follows architectural FIFO movement | `runtime/src/{gte.cpp,pgxp.cpp}`; `runtime/include/pgxp.h`; GTE test | A write to register 15 shifts shadows `12 <- 13`, `13 <- 14`, then invalidates the new `14/15`, instead of retaining stale SXY0/SXY1 provenance. | SXYP alias/FIFO semantics are architectural GTE behavior. | `runtime/tests/test_gte_register_access.cpp` | +| C10 | Precise NCLIP is telemetry-only and guest-bit-exact | `runtime/src/{gte.cpp,gpu.c,debug_server.c}`; `runtime/include/cpu_state.h`; `recompiler/src/config_loader.h`; GTE test | Exact 16.16 winding is still observed, but it never changes guest MAC0 or face visibility; the old saturation-rail clamp rescue can no longer smuggle far-off precise coordinates into rasterization. | Host precision enhancements must not alter guest branches or bypass native GTE saturation in any title. | `runtime/tests/test_gte_register_access.cpp::test_precise_nclip_never_flips_guest_sign` | +| C11 | Polygon-to-rectangle boundary clears triangle-only PGXP state | `runtime/src/{gpu.c,gpu_render.c}` | PGXP-armed polygon fast paths are no longer collapsed to rectangles, and native GP0 rectangles clear any prior triangle precision, perspective, or depth state. | Renderer state leakage and primitive fast-path conversion can affect any sequence mixing polygon and rectangle paths. | **No focused test found.** | +| C12 | Live CRTC changes reconcile host pacing at VBlank | `runtime/include/gpu.h`; `runtime/src/gpu.c`; `runtime/src/main.cpp`; `runtime/tests/test_host_refresh_sanitize.py` | Host pacing/swap policy is no longer startup-latched: a GP1(08h), restore, or plugin period change resets old pacing debt and is applied before waits; banners defer until the guest programs display mode. | PAL/NTSC switching, restores, and timing plugins are framework concerns. | `runtime/tests/test_host_refresh_sanitize.py` | + +### Performance + +| ID | Title | Files touched | What it fixes | Why it is general | Test(s) that cover it | +|---|---|---|---|---|---| +| P1 | Generation-time cycle dependency arity | `recompiler/src/{code_generator,full_function_emitter}.cpp`; `runtime/include/psx_cyc.h`; `runtime/src/psx_cyc_steps.c`; emitter/cycle tests | Removes the runtime dependency-mask loop for the common 0–3 register cases while retaining a generic fallback for larger masks; shared no-inline wrappers bound LTO cloning. | Every generated instruction uses the load-delay/cycle dependency machinery. | `runtime/tests/test_psx_cyc_batch.c`; `recompiler/tests/full_function_emitter_test.cpp`; `runtime/tests/test_perf_round3_guards.py` | +| P2 | Fused load charge and exact pre-deadline fast charge | `runtime/include/{psx_cyc.h,psx_cycles.h}`; `runtime/src/{memory,psx_cycles,psx_interpreter,dirty_ram_interp}.c`; cycle/perf tests | Main-RAM loads publish base + read fudge + wait/completion as one exact charge; eligible CPU charges advance directly only through `next_service_cycle - 1`, including exact Q16 overclock remainder handling. | Load timing, event deadlines, replay, and overclock transforms are common runtime machinery. | `runtime/tests/test_psx_cyc_batch.c`; `test_psx_cycle_event_boundaries.c`; `test_interpreter_perf_guards.py` | +| P3 | Exact-address compiled dispatch caches | `recompiler/src/{full_function_emitter,main_psx}.cpp`; emitter test | Adds a 256-slot TLS cache in generated static dispatch and a 1,024-slot TLS positive/negative cache in game lookup; every hit rechecks the full canonical address before bypassing binary search. | BIOS services, tail-call loops, and large dispatch tables occur across recompiled games. | `recompiler/tests/full_function_emitter_test.cpp` covers the generated-dispatch cache; **no focused test found for the game lookup cache.** | +| P4 | Two-level native-text guard epoch | `runtime/src/memory.c`; structural guard test | Stable no-write intervals return after one epoch comparison; after a mutation, the existing exact page-generation sum decides whether the cached verdict remains valid. | Dirty-RAM/native-code guards are shared by every title using mutable text. | `runtime/tests/test_perf_round3_guards.py` | +| P5 | Aggregate text-translation dispatch gate | `runtime/include/text_xlate.h`; `runtime/src/{text_xlate.cpp,fntrace.c}`; structural guard test | Avoids invoking the translation callback at every dispatch once capture is off and no string-table or unsettled RAM patch needs it. This is an atomic boolean, not an epoch. | Capture, shipped translations, and pending patch classes are framework state. | `runtime/tests/test_perf_round3_guards.py` | +| P6 | Tile-indexed texture invalidation | `runtime/include/tex_pack_rect_index.h`; `runtime/src/tex_pack.cpp`; index test/CMake | VRAM writes first query conservative 16×16-tile occupancy instead of always linearly scanning up to 8,192 upload/palette/pending-copy records; uncertainty returns “maybe” and preserves the slow exact scan. | VRAM invalidation volume and upload count vary by title, while the VRAM geometry is common. | `runtime/tests/test_tex_pack_rect_index.cpp` | +| P7 | Narrow GTE command export and incremental canonicalization | `runtime/src/gte.cpp`; `runtime/tests/test_gte_register_access.cpp`; `runtime/CMakeLists.txt` | Commands export only architectural results (`D7..D29`, `C31`) and writes maintain aliases/masks incrementally instead of sweeping the entire backing state after every write. | COP2 register semantics are architectural and shared. | `runtime/tests/test_gte_register_access.cpp` | +| P8 | Debug-only store diagnostics compile out of release | `runtime/src/{memory,sio}.c`; structural guard test | Removes universal RAM-store calls to card-write and debug trace consumers, plus SIO arming, when `PSX_NO_DEBUG_TOOLS` has no consumer. Debug behavior is retained. | This is build-mode ownership, not a title exception. | `runtime/tests/test_perf_round3_guards.py` | + +### New capability + +| ID | Title | Files touched | What it fixes/adds | Why it is general | Test(s) that cover it | +|---|---|---|---|---|---| +| N1 | Opt-in CMake IPO/LTO and generated-hotpath benchmark | `runtime/runtime.cmake`; `runtime/CMakeLists.txt`; `runtime/tests/bench_psx_runtime_hotpath.c`; `runtime/src/psx_cyc_steps.c` | Adds toolchain-checked `PSX_ENABLE_LTO` (default off), applies IPO to runtime targets, and provides a semantic-checksummed generated-style benchmark. | Toolchain optimization and code-shape regression measurement apply to every game target. | Benchmark is deliberately not registered in CTest; **no result is checked in or run here.** | +| N2 | HD replacements from VRAM-to-VRAM copies | `runtime/include/tex_pack.h`; `runtime/src/{tex_pack.cpp,gpu_render.c}`; copy test/CMake | Copy destinations can reuse an exact tracked source preimage or become a lazily read-back candidate; CPU upload and copy records share the same position/size/hash semantics and replacement lookup. | Many PS1 engines stage textures in VRAM rather than uploading final destinations directly. | `runtime/tests/test_tex_pack_copy.cpp` | +| N3 | Configurable CRTC refresh multiplier | `recompiler/src/{config_loader.cpp,config_loader.h}`; `runtime/include/{gpu.h,mod_plugins.h}`; `runtime/src/gpu.c`; `runtime/src/main.cpp`; host refresh test | Exposes `[video] crtc_refresh_multiplier` in the range 1..8 as the baseline timing setting, with activation plugins allowed to override it. | It turns an existing runtime timing control into a validated per-project framework option. | `runtime/tests/test_host_refresh_sanitize.py` covers live x2 cadence ownership, not parser bounds 1..8. | +| N4 | Stable configured outer aspect with scene-specific inner content | `WIDESCREEN.md`; `recompiler/src/{config_loader.cpp,config_loader.h}`; `runtime/include/{gpu_gl_renderer.h,gpu_vk_renderer.h,present_ring.h,ws_present_layout.h}`; `runtime/src/{gpu.c,gte.cpp,main.cpp,gpu_gl_renderer.c,gpu_vk_renderer.c,ws_present_layout.c}`; layout test/CMake | Adds opt-in `fixed_outer_aspect`: menus/FMV can remain centered 4:3 content without changing the outer configured canvas; GL, Vulkan, interpolation, hold-last, and CPU paths use the separated policy. | Outer user preference and content correction are independent concepts for any widescreen title. | `runtime/tests/test_ws_present_layout.c` | + +### Diagnostics and verification surfaces + +| ID | Title | Files touched | What it fixes/adds | Why it is general | Test(s) that cover it | +|---|---|---|---|---|---| +| D1 | Actionable PGXP and copied-texture telemetry | `runtime/include/{cpu_state.h,pgxp.h}`; `runtime/src/{gpu.c,gte.cpp,pgxp.cpp,debug_server.c,tex_pack.cpp}` | Reports primitive armed/rejected/mixed decisions, endpoint promotion/demotion/cache overflow, memory invalidations, mixed projection rejects, NCLIP sign disagreements, and copy queued/resolved/tracked/invalidated/dropped counts. | These counters diagnose framework coverage and fail-closed behavior without game addresses. | Counter transitions are partially asserted by `runtime/tests/{test_pgxp.cpp,test_gte_register_access.cpp,test_tex_pack_copy.cpp}`. | +| D2 | Host optimization acceptance contract | `docs/HOST_OPTIMIZATION_CONTRACT.md` | Defines an interleaved A/B protocol, semantic equivalence requirement, raw-run retention, and a 5% acceptance gate for complexity/ABI-bearing host optimizations. | It is a reusable maintainer process rather than title behavior. | Documentation only. | +| D3 | Keyboard Select+Start chord regression | `runtime/tests/test_keyboard_pad_chord.c`; `runtime/CMakeLists.txt` | Adds a focused test for default bindings, simultaneous and consecutive polls, release, and re-press behavior. It does not change production keybind code. | Multi-button active-low pad words are common input behavior. | `runtime/tests/test_keyboard_pad_chord.c` | + +## Concrete evidence and measurements + +### Correctness evidence + +**C1 — overlay shim anchor.** The root cause and new invariant are stated at `tools/compile_overlays.py:2078-2089`: the syntactically last include may be inside the per-instruction I-cache `#ifdef/#else`, and `PSX_OVERLAY_DLL_BUILD` would preprocess away the callback definitions. The insertion now uses the exact unconditional include at `tools/compile_overlays.py:2084-2091`; absence raises `ValueError`. `recompiler/tests/test_overlay_store_barrier_codegen.py:109-118` asserts the flush definition precedes the DLL conditional, and `test_overlay_shim_compile.py:43-59` compiles the expanded PGXP hook surface with the DLL macros when that test is run. Windows exports for the cycle barrier are at `runtime/include/cpu_state.h:76-81` and `runtime/include/psx_cycles.h:192-198`. **Measured result:** UNKNOWN. The supplied ~10k unresolved-symbol and zero-linked-DLL claims are absent from the audited delta. + +**C2 — overlay epoch/identity.** `runtime/src/memory.c:1080-1114` preserves evidence for data-only writes but clears both full-page PC bitmaps and the page gate when any executed word is replaced. `tools/compile_overlays.py:1546-1572` rejects capture-derived roots whose current capped CFG reaches invalid instructions; `tools/compile_overlays.py:2867-2930` keys static demand by `(load_addr, size, data)` and resolves it only against current-byte range identities; isolated generation also reports `INCOHERENT_VARIANT_BYTES` at `tools/compile_overlays.py:3074-3083`. Focused regressions begin at `recompiler/tests/test_aot_overlay_discovery.py:340` and `:366`. **Measured result:** UNKNOWN; no shard ok/failed count or coverage percentage for this change is present. + +**C3 — IRQ cache.** The owner computes `pending = i_stat & i_mask`, stores the full value, and then derives Cause.IP2 at `runtime/src/interrupts.c:149-160`. The structural audit at `runtime/tests/test_perf_round3_guards.py:22-46` currently finds exactly **19** direct `I_STAT`/`I_MASK` mutations across five writer files and requires a refresh near each; it also verifies the cache is stored before the nullable Cause pointer can return (`:55-63`). `runtime/tests/test_cause_ip2_combinational.c:97` repeatedly asserts exact cache equality. **Measured result:** UNKNOWN; 19 is a static writer-set count, not a runtime speed result. + +**C4 — cycle observers.** Flushes precede cycle-dependent work in `psx_muldiv_set`, `psx_muldiv_stall`, `psx_gte_read`, `psx_gte_set`, and `psx_gte_stall` at `runtime/src/psx_cycles.c:696-795`. `runtime/tests/test_psx_cycle_event_boundaries.c` includes explicit delayed GTE read/stall assertions and ends by checking cross-device `D-1 + 1` causality. **Measured result:** UNKNOWN. + +**C5 — I-cache replay.** `runtime/include/psx_icache.h:20-32` separates active-state initialization from replay and calls the miss path only outside replay. Warmed-hit and would-be-miss replay cases are at `runtime/tests/test_psx_icache_fastpath.c:79-103`. **Measured result:** UNKNOWN. + +**C6 — primitive/canonical endpoint.** The cache is a fixed **65,536-entry** table (`runtime/include/pgxp_vertex_cache.h:21-35`) and resolves frame/native-coordinate identity at `runtime/src/pgxp_vertex_cache.c:10-38`. Whole primitive resolution, including all four quad vertices, starts at `runtime/src/gpu.c:3434-3609`; depth arms only when `depth_count == count` (`:3570-3605`), replacing the old mean-filled partial-Z path. The focused cache test covers corrected→native, native→corrected, transform identity, and frame identity; its native→corrected candidate is deliberately **0.75 px**, above the old 0.5 workaround (`runtime/tests/test_pgxp_vertex_cache.c:12-64`). **Measured result:** no performance or in-game crack count is recorded; UNKNOWN. + +**C7 — component IDs.** `PGXPValue` gains independent X/Y/Z projection IDs at `runtime/src/pgxp.cpp:62-68`; coherence predicates require matching nonzero IDs at `:287-307`, and reconstructed halves propagate their component's ID around `:450-526`. `runtime/tests/test_pgxp.cpp:205-220` asserts that mixed projections are rejected even when packed integer geometry can otherwise look usable. **Measured result:** UNKNOWN. + +**C8 — destructive writes.** The hot GPR macro consults `g_pgxp_gpr_live_mask` before calling the invalidator (`runtime/include/pgxp_hooks.h:93-101`); the invalidator itself is at `runtime/src/pgxp.cpp:396-403`. Raw word invalidation and partial-half handling begin at `runtime/src/pgxp.cpp:371`, while six central RAM/scratch write branches are gated in `runtime/src/memory.c:1968-2520`. `runtime/tests/test_pgxp_destructive_write_coverage.py:69-77` requires two 1-byte, two 2-byte, and two 4-byte paths plus both interpreter/emitter surfaces. `runtime/tests/test_pgxp.cpp:137-203` includes byte-identical GPR and RAM writes. The existing source comment says the earlier broad ALU-hook gate accounted for **3.6% of the emulation thread** in a high-refresh workload (`runtime/src/pgxp.cpp:91-101`), but there is no measured delta for the new sparse invalidation gates. **Measured result for this change:** UNKNOWN. + +**C9 — SXYP.** Architectural backing shifts at `runtime/src/gte.cpp:2027-2047`; the shadow shift/reset is implemented in `runtime/src/pgxp.cpp:1033-1053`. `runtime/tests/test_gte_register_access.cpp:501-526` checks the precise FIFO before and after register 15 and all SXY write classes. **Measured result:** UNKNOWN. + +**C10 — NCLIP.** The old double-based sign replacement is removed; `runtime/src/gte.cpp:962-983` computes an exact `int64_t` determinant, increments disagreement telemetry, and always writes native `out` to MAC0. The GPU-side comment at `runtime/src/gpu.c:3644-3650` makes NCLIP audit-only and removes the saturation-rail rescue route to far-off precise raster coordinates. The regression constructs native `+1` versus exact negative and requires guest MAC0 to remain `+1` while the disagreement counter increments (`runtime/tests/test_gte_register_access.cpp:575-602`). The removed code incremented `s_nclip_corrected` in both mismatch branches, and the removed partial-Z path incremented `s_texcorr.z_interp`, so the “never-incremented” description is false. **Measured result:** one deterministic disagreement fixture; no field count or performance result. + +**C11 — rectangle boundary.** PGXP-aware polygon fast paths require position/depth to be unarmed before collapsing a quad to a rectangle (`runtime/src/gpu.c:4049-4054`, `:4287-4330`). `runtime/src/gpu_render.c:135-141` clears precise position, perspective, and depth state; each flat/textured/scaled rect entry invokes it at `:270`, `:288`, and `:296`. **Test/measurement:** no focused test found; UNKNOWN. + +**C12 — live CRTC cadence.** Guest display-mode observation is recorded on GP1(08h) and restore at `runtime/src/gpu.c:6018` and `:6202`. `refresh_live_crtc_cadence` (`runtime/src/main.cpp:2916-2949`) keys transitions by exact guest period, resets old wall-clock debt, reapplies present cadence, and logs only after guest programming; it is called before frame performance/pacing work at `runtime/src/main.cpp:6250`. The structural test's exact arithmetic establishes PAL×2 = **100.0 Hz** matches a 100 Hz panel while NTSC×2 = **120.0 Hz** does not (`runtime/tests/test_host_refresh_sanitize.py:73-86`). These are formula assertions, not a live-run result. **Measured runtime result:** UNKNOWN. + +### Performance evidence + +**P1 — arity helpers.** Both emitters choose specialized helpers and retain the generic fallback at `recompiler/src/code_generator.cpp:51-69` and `recompiler/src/full_function_emitter.cpp:35-53`. The shared wrappers and deliberate no-inline boundary are at `runtime/src/psx_cyc_steps.c:5-68`; overlay DLLs retain inline equivalents at `runtime/include/psx_cyc.h:219-247`. `runtime/tests/test_psx_cyc_batch.c:244-264` defines **98,304 oracle comparisons** (`4,096 seeds × 6 modes × 4 arities`) and compares every `CPUState` byte plus deferred cycles. **Measured performance:** UNKNOWN. + +**P2 — fused/fast charge.** Main-RAM word and half loads compute a single `charge + fudge + 5` publication (`wait 3 + completion 2`) at `runtime/include/psx_cyc.h:280-337`; slow paths carry the same base charge through `runtime/src/memory.c:2316-2383`. `psx_cycles_try_fast_charge` previews and commits both scaled cycles and Q16 remainder only below the published limit (`runtime/include/psx_cycles.h:110-139`), which is set to `next_service_cycle - 1` at `runtime/src/psx_cycles.c:189-194` and invalidated at MMIO/exact/restore boundaries. Tests define **4,096 fused-load oracle cases** (`2,048 × 2 overclock modes`, `runtime/tests/test_psx_cyc_batch.c:267-307`) and **1,152 fast-charge oracle cases** (`2 scales × 16 accumulators × 3 charges × 12 deadline rooms`, `:311-334`). **Measured performance:** UNKNOWN. + +**P3 — dispatch caches.** Generated static dispatch emits the 256-slot table and exact-address hit check at `recompiler/src/full_function_emitter.cpp:1834-1865`; the game lookup emits 1,024 TLS slots and caches both hits and misses at `recompiler/src/main_psx.cpp:1594-1629`. `recompiler/tests/full_function_emitter_test.cpp:199-204` checks the generated helper and address validation. **Measured result:** UNKNOWN; no hit rate, comparison count, or benchmark delta is present. + +**P4 — native-text guard epoch.** The monotonic epoch and global mutation helper are at `runtime/src/memory.c:617-624`; the one-compare hit and page-generation fallback are at `:772-829`. The existing source comment records a motivating profile in which `psx_game_text_native_ok` was **6.8% of the emulation thread** with the older memo never hitting (`runtime/src/memory.c:625-632`). That is a baseline attribution, not a measured post-change gain. **Measured gain:** UNKNOWN. + +**P5 — text-translation aggregate gate.** `refresh_dispatch_armed` derives one atomic gate from capture, string-table, and three pending patch counts (`runtime/src/text_xlate.cpp:441-453`); `fntrace_record` checks it at `runtime/src/fntrace.c:170-171`. The source records two historical baselines: capture scanning at roughly **33k dispatches/frame**, **18.6% of samples**, with capture disabled yielding **+22% fps over guest frames 800–2200** (`runtime/src/text_xlate.cpp:423-435`), and the otherwise-useless fixes-only argument scan at **4.2% of the emulation thread** (`:898-905`). None is a direct A/B of the new outer aggregate gate. **Measured gain:** UNKNOWN. + +**P6 — texture tile index.** The conservative grid uses 16×16 tiles over a 2,048×1,024 domain and returns “maybe” for unindexed/uncertain rectangles (`runtime/include/tex_pack_rect_index.h:15-83`). `invalidate_locked` checks upload, pending-copy, and palette occupancy before any vector scan (`runtime/src/tex_pack.cpp:562-620`); the tracker cap remains **8,192** records (`runtime/src/tex_pack.cpp:54`). The deterministic test runs **20,000 randomized add/remove/query iterations** and asserts there are no false negatives (`runtime/tests/test_tex_pack_rect_index.cpp:47-77`). **Measured performance:** UNKNOWN. + +**P7 — GTE bridge.** `runtime/src/gte.cpp:1702-1729` exports only command results and explicitly counts **40 redundant stores removed per command**. Data/control writes now maintain their own masked/aliased state at `:2012-2081`; full canonicalization remains only at the raw import boundary (`:2099`). The oracle suite covers **2,112 command cases** (`22 functions × 96`), **256** MVMVA selector combinations, and **8,192** stateful stream steps (`64 × 128`) at `runtime/tests/test_gte_register_access.cpp:382-473`, in addition to register-write tests. **Measured throughput:** UNKNOWN. + +**P8 — release diagnostics.** Declarations and call sites are guarded around `runtime/src/memory.c:1298-1301`, `:2006-2012`, `:2142-2150`, and `:2485-2493`; SIO arming receives the same build guard. `runtime/tests/test_perf_round3_guards.py:65-73` scans every card diagnostic call for a release guard. **Measured performance:** UNKNOWN. + +### Capability evidence + +**N1 — LTO/benchmark.** `runtime/runtime.cmake:26-44` defines default-off, C/C++ toolchain-checked `PSX_ENABLE_LTO`; target IPO is applied at `:937-939`. The wrappers resist whole-program cloning at `runtime/src/psx_cyc_steps.c:28-38`. The benchmark models **32 guest instructions/block**, defaults to **4,000,000 blocks** (**128,000,000 guest instructions/sample**), takes **7 samples**, reports median/min/max, and rejects checksum drift (`runtime/tests/bench_psx_runtime_hotpath.c:25-28`, `:227-284`). It is intentionally not a CTest (`runtime/CMakeLists.txt:46-58`). **Measured result:** UNKNOWN; the supplied `-45.92%`, `+10.45%`, and `+32.69%` values are not in the audited repository state. + +**N2 — VRAM copies.** `gr_copy_rect` classifies mask/wrap/overlap preservation and reports the copy before backend mutation (`runtime/src/gpu_render.c:143-156`). `tex_pack_on_copy` (`runtime/src/tex_pack.cpp:817-893`) shares exact full-source preimages, hashes subrects, invalidates the destination in the original order, and otherwise queues a fail-closed candidate. Draw-time query/resolution is at `:896-989`; CPU and copy records meet in the shared builder at `:625-657`. `runtime/tests/test_tex_pack_copy.cpp` checks CPU/copy key parity, invalidation, and replacement lookup. Its optional, unregistered benchmark is designed for **200,000 copies**, **5,000,000 no-pending queries**, and **50,000 hashes** (`:168-208`), but no output is checked in or run. **Measured performance:** UNKNOWN. + +**N3 — CRTC config.** Parsing and range rejection are at `recompiler/src/config_loader.cpp:573-579`; the default/range contract is at `recompiler/src/config_loader.h:412-414`. Config is applied before activation plugins at `runtime/src/main.cpp:11534-11538`. The available test checks x2 live cadence only; it does not test TOML parser bounds or multipliers 3–8. **Measured compatibility/coverage for 3–8:** UNKNOWN. + +**N4 — outer/content layout.** The API contract explicitly forbids scene classification from changing the outer rect when fixed mode is enabled (`runtime/include/ws_present_layout.h:20-32`); the independent rect calculation is at `runtime/src/ws_present_layout.c:33-60`. GL uses it at `runtime/src/gpu_gl_renderer.c:3452-3461`; Vulkan uses it at `runtime/src/gpu_vk_renderer.c:1688-1706`; scene classification was renamed/content-scoped in `runtime/src/gpu.c:324-390` and `runtime/src/main.cpp:7022-7391`. The focused test checks exact 32:9-in-16:9 and 21:9 layouts plus unchanged legacy behavior (`runtime/tests/test_ws_present_layout.c:14-43`). **Measured visual/performance result:** UNKNOWN. + +### Diagnostic evidence + +**D1 — telemetry.** Primitive counters are defined and exported at `runtime/src/gpu.c:3460-3498`; PGXP memory/mixed-projection counters are maintained in `runtime/src/pgxp.cpp`; NCLIP disagreements are at `runtime/src/gte.cpp:941-983`; debug JSON publishes them at `runtime/src/debug_server.c:5216-5276`. Copy lifecycle counters are defined at `runtime/src/tex_pack.cpp:204-207` and published at `:1465-1487`. **Measured field values:** UNKNOWN; the change adds counters but the delta contains no captured report. + +**D2 — optimization contract.** `docs/HOST_OPTIMIZATION_CONTRACT.md:29-44` defines the 5% retention and semantic-equivalence gates; `:103-110` requires a separate interleaved performance campaign; `:185-200` specifies evidence retention. The example percentages at `:181-182` are explicitly examples, not results from this work. **Measured result:** not applicable. + +**D3 — keyboard chord test.** `runtime/tests/test_keyboard_pad_chord.c:24-50` checks default Return/RShift bindings and six pad states: released, Select held, first and consecutive Select+Start polls, Start release, and Start re-press. `runtime/CMakeLists.txt:86-95` registers it. **Production change/measurement:** none; this is regression coverage only, and it was not run here. + +## RISK / REVIEW FOCUS + +1. **Overlay byte identity and shim placement (C1/C2) — highest review priority.** Preserve three invariants: (a) the callback preamble is outside every conditional and missing the guaranteed runtime include is a hard failure; (b) a compiled body satisfies a request only when load address, size, and exact bytes/range identities agree; (c) overwriting an executed word retires all PC/dispatch evidence for that page's outgoing image, while an unrelated data-only write does not erase valid execution evidence. False positives execute wrong bytes; overly broad invalidation silently destroys AOT coverage. +2. **Guest cycle exactness and device deadlines (C4/P1/P2) — highest review priority.** Specialized helpers must be byte-for-byte equivalent to the generic dependency mask, preserve GPR0, read-absorb and load-delay ownership, and retain COSIM/replay/conservative/device-service fallbacks. A fused load must apply base, read fudge, wait, completion, and Q16 overclock remainder exactly once. Fast charge must never reach or cross `next_service_cycle`, overflow the clock, bypass a local/deferred batch, or leave stale eligibility after MMIO, exact service, or restore. Every observer of absolute guest time must flush first. +3. **IRQ pending cache and live CRTC timing (C3/C12/N3) — highest review priority.** Every direct `I_STAT`/`I_MASK` writer, including init, restore, acknowledgment, and temporary CD/SIO masking, must call the refresh owner. The full cached value must remain exactly `i_stat & i_mask`; only Cause.IP2 is masked to the architectural 11 bits. Cached snapshots must be refreshed after any idle skip/device service. CRTC period changes must be reconciled before the next host wait without changing plugin override precedence or inheriting pacing debt from the old period. Adding a twentieth writer without extending the structural audit is a correctness bug. +4. **PGXP provenance and guest visibility (C6–C11).** NCLIP telemetry must never write a host-corrected sign to guest MAC0. Projection IDs must survive only operations that prove component identity; every destructive writer must invalidate across both interpreters, generated code, and overlay DLLs. Endpoint-cache collision/overflow behavior must remain deterministic and fail to native geometry. Rect paths must clear every triangle-only backend latch. +5. **VRAM copy tracking (P6/N2).** Masked, wrapping, or overlapping copies must never claim a pre-copy source hash as the post-copy destination. Pending readback must use the authoritative post-copy backend, be invalidated by later writes/restores, and preserve CPU-upload key semantics including position. Tile indices may have false positives but must never have false negatives. +6. **LTO/code-shape claims (P1/N1).** Review generated symbol visibility on MSVC/Clang/GCC and ensure IPO does not clone the guarded wrappers or drop DLL exports. Do not accept the quoted LTO percentages without raw commands, compiler/linker versions, interleaved samples, and semantic checksums; none is present in this delta. +7. **Presentation backends (N4).** Fixed mode must produce the same outer rect for gameplay, menu, FMV, interpolation, hold-last, native VRAM, CPU, and wide paths; scene state may change only the inner rect. Legacy mode must remain byte/geometry compatible for projects that do not opt in, especially Vulkan's pre-existing 4:3 policy. + +## NOT UPSTREAMABLE + +- The WipEout-specific conclusion in `ENHANCEMENTS.md:879-883` that `pgxp_tolerance = 1.0` is valid for WipEout 3 is title validation/configuration, not a framework default. Upstream the canonical-endpoint mechanism and neutral explanation; keep the title's chosen value in the game repository. +- The explanatory phrase “the WipEout 8 MB payload depends on that” at `runtime/src/memory.c:1090` should be generalized before submission. The whole-page execution-epoch mechanism itself is upstreamable. +- `docs/internal/upstream/WIPEOUT3_SESSION_ENGINE_DRAFTS_2026-08-20.md` is a WipEout session/commit audit, not framework product documentation; do not include it in an upstream code PR. +- `build-pgxp-focused/` and `build-texpack-focused/` are generated build trees and must not be committed. +- Enabling `fixed_outer_aspect`, a non-stock CRTC multiplier, PGXP tolerance 1.0, or any other title profile belongs in the game repository. The parser/runtime capabilities and default-off framework behavior are upstreamable. +- No new WipEout-specific executable address hook was found in the working-tree delta. Existing title references outside the added lines are not evidence that the general mechanisms above are per-game hacks. +- The `items_join` UI grouping change is potentially upstreamable, but it is **not part of this delta**; submit/review it from ancestor commit `572b921` with its own history and evidence rather than folding it into this worktree summary. + +## Suggested PR split and landing order + +1. **Overlay DLL shim placement/export fix (C1).** Small, independently testable, and prerequisite to trusting any overlay-DLL validation. +2. **Overlay byte-identity correctness (C2).** Land after the shim fix so generated overlay tests exercise a valid DLL surface. Keep the page-epoch producer fix and byte-keyed consumer/static-request logic together because either half alone leaves a stale-image path. +3. **IRQ pending-cache ownership (C3).** Separate high-risk PR. Include all current writers and the 19-writer structural audit in the same change. +4. **Cycle exactness foundation (C4, C5, P2 without code-shape claims).** Land observer flushes, replay-safe I-cache behavior, fused load accounting, deadline publication/invalidation, and oracle tests together. This establishes equivalence before performance-oriented code generation changes. +5. **Cycle arity specialization and LTO surface (P1, N1).** Depend on PR 4. Keep the benchmark and no-inline rationale with the specialization; publish new raw benchmark results instead of the unsupported percentages in the supplied headline. +6. **Dispatch/text/release hot-path pruning (P3, P4, P5, P8).** These are independent of guest timing after PR 4. Prefer three reviewable commits/PRs if maintainers want narrower invalidation reasoning: dispatch caches; text guards/gates; debug-only store hooks. +7. **GTE/PGXP provenance correctness (C7–C10, P7).** Land component IDs, destructive-write coverage, SXYP FIFO, NCLIP telemetry-only behavior, and narrowed architectural export first. These define trustworthy provenance and guest-bit-exact boundaries. +8. **PGXP primitive/canonical endpoint and renderer boundary (C6, C11, D1 PGXP portion).** Depend on PR 7. Add a focused rectangle-state regression before submission; keep the WipEout tolerance conclusion out of the framework PR. +9. **Texture-pack index, then copy candidates (P6 followed by N2 and copy telemetry).** The copy queue uses the conservative index and shared upload storage, so land/test the no-false-negative index first. Review copy/mask/wrap/overlap and savestate invalidation as a separate capability PR. +10. **Presentation layout separation (N4).** Independent UI/rendering PR covering the shared layout helper and both GL/Vulkan paths. Preserve default-off legacy behavior. +11. **CRTC configuration and live cadence (C12/N3).** Separate timing-sensitive PR after IRQ/cycle work. Add parser tests for 1, 8, 0, and 9 and either validate or narrow the advertised 1..8 range before landing. +12. **Maintainer diagnostics (D2/D3).** The optimization contract can land as documentation if the project accepts that policy; the keyboard regression can land independently. Neither should block correctness PRs. + +--- + +## Appendix: session measurements (recorded 2026-08-20) + +The audit above correctly marks several deltas UNKNOWN because no result transcript is +checked in. These numbers WERE observed live during the session that produced this work. +They are recorded here so a reviewer can see the basis; they are single-machine +observations, not a portable benchmark suite. + +**Host:** AMD Ryzen 7 9800X3D (8C/16T, 4.7 GHz, X3D cache), Windows 11, pinned +retcomm cmake-clang-v1 (Clang 22.1.8). Title: WipEout 3 SE (PAL, SCES-02845) with +hueponik's official PAL 100 fps patch, 8 MB RAM, max in-game detail, +`cpu_overclock = 900`, `crtc_refresh_multiplier = 2` (PAL 50 Hz x2 = 100 Hz). + +### LTO / codegen benchmark +`runtime/tests/bench_psx_runtime_hotpath.c`, median-of-three rotated runs, seven samples +each, 256M guest instructions per sample. EVERY variant produced identical results +(guest cycles 33,774,169; oc accumulator 60,416; services 0; digest 3d88e743440954f1), +which is the equivalence evidence for this workload. + +| Variant | Guest instructions/s | vs baseline | +|---|---:|---:| +| Baseline `-O3` | 451,062,216 | - | +| Plain ThinLTO | 243,919,125 | -45.92% | +| Plain full LTO | 585,251,881 | +29.75% | +| ThinLTO + guarded wrappers | 498,195,210 | +10.45% | +| **Full LTO + guarded wrappers** | **598,526,036** | **+32.69%** | +| `-march=native` only | 457,336,000 | +1.39% | +| `-march=znver5 -mtune=znver5` | 441,476,740 | -2.13% | +| Helpers moved to headers/unity | 162,246,886 | -64.03% | + +Plain ThinLTO REGRESSES badly by cloning hot interlock bodies; the `noinline` guard at +`runtime/src/psx_cyc_steps.c:27` is what makes LTO a win. ThinLTO executable size fell +97,148,928 -> 86,249,472 bytes (-11.22%) once guarded, confirming the over-cloning. + +### End-to-end guest speed (identical BIOS boot phase each run, so directly comparable) +| Build state | Guest speed | +|---|---:| +| Session start (no static bake; overlay autocompile degraded) | 0.36x | +| + partial static bake (25/62 shards) | 0.42x | +| + clean static bake (26 shards, 0 failed) | 0.49x | +| + overlay DLL link fix; PGXP hooks and rewind disarmed | 0.58x | +| + cycle-accounting specialization, PGXP RE-ENABLED, 100% texture pack | 0.50x | +| **+ full LTO** | **0.68-0.76x** | + +LTO's end-to-end contribution on this identical phase was ~+35%, consistent with the ++32.69% synthetic result. 3D attract-mode scenes were observed sustaining +`VBlank 100/s 1.00x, render 100 fps`. + +### Overlay pipeline +| Metric | Before | After | +|---|---:|---:| +| Overlay DLL link errors | 10,395 diagnostics / 20 symbol names | 0 | +| Overlay DLLs produced by autocompile | 0 | 1,442 in cache | +| Static bake shards | ok=25 failed=23 skipped=14 | ok=26 failed=0 skipped=14 | +| Runtime dispatch | `disp_native=0`, `disp_interp=4,456,079` | native dispatch active | + +The `disp_native=0` figure is from the runtime's own `psx_last_run_report.json`, which also +carried `autocompile_degraded=1` with the reason string naming the cause. + +### HD texture pack +| Metric | Before | After | +|---|---:|---:| +| Requested (texture,palette) pairs covered | 39 / 439 (8.88%) | 439 / 439 (100%) | +| Pack entries | 292 | 445 generated (692 live incl. legacy) | +| PNG payload | 2.61 MiB | 4.32 MiB | + +Verification on the generated set: alpha subset of source 402/402, RGB subset 402/402, +all dimensions <= 4096, F500 font atlases byte-identical (untouched). + +### PGXP +Hook cost measured by the 1 kHz IP sampler on the emulation thread, in race: +`psx_pgxp_load` 7.66% + `psx_pgxp_alu` 3.63% + `psx_pgxp_store` 2.35% + +`psx_pgxp_cop2` 1.20% = **14.84%** while both correction features were DISABLED, because +`precise_nclip` and `pgxp_cpu_mode` arm the hook surface independently. After disarming, +the same buckets fell to 0.69% total. + +### Font atlases (game-side asset work, listed for completeness) +| Metric | Before | After | +|---|---:|---:| +| Detached ink components (ringing lobes) | 986 | 0 | +| Dark ink pixels (black halo) | 87,650 | 0 | +| Alpha masks | - | byte-identical before/after | From e301a57279e7f6ff45b94b0fadaec8ed2492813b Mon Sep 17 00:00:00 2001 From: tetrisgm <30949000+tetrisgm@users.noreply.github.com> Date: Sat, 22 Aug 2026 10:01:52 -0700 Subject: [PATCH 3/8] debug: expose savestate completion receipt (cherry picked from commit c7a3d59e1ab1c0f560bd44c5ccca419efd1939d8) --- runtime/CMakeLists.txt | 3 ++ runtime/include/savestate.h | 3 ++ runtime/src/debug_server.c | 13 +++++++ runtime/src/savestate.c | 38 +++++++++++++++++++ .../tests/test_savestate_status_protocol.py | 14 +++++++ 5 files changed, 71 insertions(+) create mode 100644 runtime/tests/test_savestate_status_protocol.py diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index 982fe204..0088aea4 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -403,6 +403,9 @@ if(BUILD_TESTING) add_test(NAME rewind_toggle_combo_test COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_rewind_toggle_combo.py) + add_test(NAME savestate_status_protocol_test + COMMAND ${Python3_EXECUTABLE} + ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_savestate_status_protocol.py) endif() # DISABLED, not de-registered. It links and runs, but 147 of its 309 checks diff --git a/runtime/include/savestate.h b/runtime/include/savestate.h index c9c8f138..7d2a380a 100644 --- a/runtime/include/savestate.h +++ b/runtime/include/savestate.h @@ -97,6 +97,9 @@ int savestate_request_load_blob_protocol(const void* data, size_t size); /* 1 while a staged save/load has not yet been consumed by savestate_poll. */ int savestate_pending(void); +/* Machine-readable lifecycle receipt for deterministic debug harnesses. */ +void savestate_status_json(char* buf, size_t cap); + /* 1 once after a successful load restore (before scheduler longjmp). Clears. */ int savestate_take_load_completed(void); diff --git a/runtime/src/debug_server.c b/runtime/src/debug_server.c index cccf2daf..f2fd4794 100644 --- a/runtime/src/debug_server.c +++ b/runtime/src/debug_server.c @@ -8044,6 +8044,18 @@ static void handle_savestate(int id, const char *json) send_fmt("{\"id\":%d,\"ok\":true,\"op\":\"%s\",\"slot\":%d}", id, op, slot); } +/* Deterministic harness receipt: unlike the savestate acknowledgement above, + * this reports the safe-boundary completion generation after savestate_poll + * has actually applied or rejected the request. */ +static void handle_savestate_status(int id, const char *json) +{ + (void)json; + extern void savestate_status_json(char *buf, size_t cap); + char status[256]; + savestate_status_json(status, sizeof status); + send_fmt("{\"id\":%d,\"ok\":true,%s}", id, status); +} + static void handle_turbo(int id, const char *json) { int enabled = json_get_int(json, "enabled", -1); @@ -13514,6 +13526,7 @@ static const CmdEntry s_commands[] = { { "input_route_stop", handle_input_route_stop }, { "input_route_status",handle_input_route_status }, { "savestate", handle_savestate }, + { "savestate_status", handle_savestate_status }, { "turbo", handle_turbo }, { "turbo_state", handle_turbo_state }, { "pause", handle_pause }, diff --git a/runtime/src/savestate.c b/runtime/src/savestate.c index f8a09e94..f2f753ee 100644 --- a/runtime/src/savestate.c +++ b/runtime/src/savestate.c @@ -55,6 +55,11 @@ static int s_save_pending = -1; /* slot, or -1 */ static int s_load_pending = -1; static int s_load_completed = 0; static int s_load_failed = 0; +static uint32_t s_status_generation = 0; +static int s_status_pending = 0; +static int s_status_last_ok = 0; +static int s_status_last_load = 0; +static int s_status_last_slot = -1; static int s_save_failed = 0; static uint32_t s_last_save_pc = 0; static int s_save_defer_slot = -1; @@ -587,6 +592,9 @@ static int request_save_inner(int slot) { s_last_save_pc = 0; /* block netplay transfer until this write stamps a PC */ s_save_defer_slot = -1; s_save_pending = slot; + s_status_pending = 1; + s_status_last_load = 0; + s_status_last_slot = slot; return 1; } @@ -603,6 +611,9 @@ static int request_load_inner(int slot) { s_load_failed = 0; s_load_completed = 0; s_load_pending = slot; + s_status_pending = 1; + s_status_last_load = 1; + s_status_last_slot = slot; return 1; } @@ -658,6 +669,16 @@ int savestate_pending(void) { return (s_save_pending >= 0 || s_load_pending >= 0) ? 1 : 0; } +void savestate_status_json(char* buf, size_t cap) { + if (!buf || cap == 0) return; + snprintf(buf, cap, + "\"generation\":%u,\"pending\":%d,\"last_ok\":%d," + "\"last_op\":\"%s\",\"last_slot\":%d", + (unsigned)s_status_generation, s_status_pending, + s_status_last_ok, s_status_last_load ? "load" : "save", + s_status_last_slot); +} + int savestate_take_load_completed(void) { int v = s_load_completed; s_load_completed = 0; @@ -705,6 +726,9 @@ void savestate_poll(CPUState* cpu, uint32_t resume_pc) { s_save_defer_slot = -1; s_last_save_pc = 0; s_save_failed = 1; + s_status_pending = 0; + s_status_last_ok = 0; + s_status_generation++; fprintf(stderr, "savestate: SAVE FAILED slot %d — no safe resume PC " "(hint=0x%08X)\n", @@ -733,12 +757,18 @@ void savestate_poll(CPUState* cpu, uint32_t resume_pc) { s_last_save_pc = 0; s_save_failed = 1; } + s_status_pending = 0; + s_status_last_ok = ok ? 1 : 0; + s_status_generation++; fprintf(stderr, "savestate: %s slot %d @ pc=0x%08X -> %s\n", ok ? "SAVED" : "SAVE FAILED", slot, (unsigned)pc, path); psx_frontend_on_savestate_notify(0, slot, ok); } else { s_last_save_pc = 0; s_save_failed = 1; + s_status_pending = 0; + s_status_last_ok = 0; + s_status_generation++; psx_frontend_on_savestate_notify(0, slot, 0); } } @@ -788,6 +818,11 @@ void savestate_poll(CPUState* cpu, uint32_t resume_pc) { s_load_failed = 1; psx_frontend_on_savestate_notify(1, slot, 0); } + if (!loaded) { + s_status_pending = 0; + s_status_last_ok = 0; + s_status_generation++; + } if (loaded) { t_after_boot = savestate_mono_ms(); psx_cycles_resync_after_restore(cpu); @@ -801,6 +836,9 @@ void savestate_poll(CPUState* cpu, uint32_t resume_pc) { cdrom_accelerate_after_savestate(); /* Netplay post-load barrier observes this before the longjmp. */ s_load_completed = 1; + s_status_pending = 0; + s_status_last_ok = 1; + s_status_generation++; /* Restage FBO/present latch so the restored frame is visible * immediately (avoids disabled-display blank latch + stale smooth). */ psx_frontend_on_savestate_loaded(); diff --git a/runtime/tests/test_savestate_status_protocol.py b/runtime/tests/test_savestate_status_protocol.py new file mode 100644 index 00000000..88a8764f --- /dev/null +++ b/runtime/tests/test_savestate_status_protocol.py @@ -0,0 +1,14 @@ +"""Guard the deterministic savestate completion receipt used by load gates.""" +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +HEADER = (ROOT / "include/savestate.h").read_text(encoding="utf-8") +STATE = (ROOT / "src/savestate.c").read_text(encoding="utf-8") +SERVER = (ROOT / "src/debug_server.c").read_text(encoding="utf-8") + +assert "void savestate_status_json(char* buf, size_t cap);" in HEADER +assert '\\"generation\\"' in STATE and '\\"pending\\"' in STATE +assert "s_status_generation++" in STATE +assert '"savestate_status"' in SERVER +assert "savestate_status_json(status, sizeof status)" in SERVER +print("savestate status protocol guard passed") From 063b5210d9a584a3a6b24dfbd5b8f874e713cef1 Mon Sep 17 00:00:00 2001 From: tetrisgm <30949000+tetrisgm@users.noreply.github.com> Date: Wed, 19 Aug 2026 02:56:27 -0700 Subject: [PATCH 4/8] autocompile: pin the overlay flavor through the spawn env (PSX_OVERLAY_FLAVOR) The runtime pins the cache dir and captures path into the spawned compile's environment so the cache can never drift from where the loader reads - but not the FLAVOR. compile_overlays.py's --flavor defaults to 0 (play), so an instrumented (flavor 2) runtime spawned compiles whose shards its own loader then rejected: the overlay_loader_status message said it plainly - "this build reads ..._f2 but shards exist under ..._f0 -> ALL overlays run INTERPRETED". On mod-heavy titles (WipEout 3's framerate packages patch most of the game text) that is the difference between full speed and ~0.2x, misread as general slowness for weeks. The runtime now exports PSX_OVERLAY_FLAVOR alongside the other pins, and the tool honors it over --flavor, so each build population self-heals. Measured after the fix (instrumented, WipEout 3 ntsc120full8): shard loads 0 -> 8 (45 funcs), interpreted insns 6.6M/s -> 1.0M/s. Co-Authored-By: Claude Fable 5 (cherry picked from commit 45f9d0f866eb86ac0be5574d0cba9feac4536221) --- runtime/src/autocompile.c | 14 ++++++++++++++ tools/compile_overlays.py | 13 +++++++++++++ 2 files changed, 27 insertions(+) diff --git a/runtime/src/autocompile.c b/runtime/src/autocompile.c index 2018428e..a9b2a79e 100644 --- a/runtime/src/autocompile.c +++ b/runtime/src/autocompile.c @@ -15,6 +15,10 @@ # include #endif +#ifndef PSX_OVERLAY_FLAVOR +#define PSX_OVERLAY_FLAVOR 0 +#endif + static char s_cmd[4096]; /* large: the runtime-constructed bundled tcc cmd has * many absolute paths (python+script+recompiler+tcc+...) */ static char s_cwd[512]; @@ -855,6 +859,16 @@ int autocompile_request(void) { if (s_cache_dir[0]) SetEnvironmentVariableA("PSX_OVERLAY_CACHE_DIR", s_cache_dir); if (s_captures[0]) SetEnvironmentVariableA("PSX_OVERLAY_CAPTURES", s_captures); SetEnvironmentVariableA("PSX_OVERLAY_LIVE_AUTOCOMPILE", "1"); + /* Pin the FLAVOR the same way: the tool's --flavor defaults to 0 (play), + * so an instrumented (flavor 2) runtime spawned a compile whose shards it + * could never load — the loader's flavor guard rejected them and EVERY + * overlay ran interpreted, forever, on debug builds. The child must + * always write the flavor this runtime reads. */ + { + char flavor_buf[16]; + snprintf(flavor_buf, sizeof flavor_buf, "%d", (int)PSX_OVERLAY_FLAVOR); + SetEnvironmentVariableA("PSX_OVERLAY_FLAVOR", flavor_buf); + } /* cmd.exe /C resolves the command via PATH and supports the relative * paths in the configured line (cwd = project root). The WHOLE command is diff --git a/tools/compile_overlays.py b/tools/compile_overlays.py index b3f7a3c0..d9d8105f 100644 --- a/tools/compile_overlays.py +++ b/tools/compile_overlays.py @@ -5259,6 +5259,19 @@ def main(): if _env_cap != args.captures: print(f'[cache] PSX_OVERLAY_CAPTURES overrides --captures: {_env_cap}') args.captures = _env_cap + # Flavor is pinned by the spawning runtime the same way as the cache + # locations: --flavor defaults to 0 (play), so an instrumented (flavor 2) + # runtime used to spawn compiles whose shards its loader then rejected — + # every overlay ran interpreted on debug builds, silently. + _env_flavor = os.environ.get('PSX_OVERLAY_FLAVOR') + if _env_flavor: + try: + _fl = int(_env_flavor, 0) + except ValueError: + _fl = None + if _fl is not None and _fl != args.flavor: + print(f'[cache] PSX_OVERLAY_FLAVOR overrides --flavor: {_fl}') + args.flavor = _fl if not args.captures: ap.error('no captures file: set PSX_OVERLAY_CAPTURES (runtime injects it) ' 'or pass --captures for manual/offline use') From 9ad208c34af307aa0e79b57555d65dc7d8b90eaa Mon Sep 17 00:00:00 2001 From: tetrisgm <30949000+tetrisgm@users.noreply.github.com> Date: Mon, 17 Aug 2026 20:13:41 -0700 Subject: [PATCH 5/8] sdl: declare per-monitor DPI awareness before SDL_Init Without it Windows virtualises everything the process sees. On a 7680x4320 panel at 400% scaling SDL_GetDisplayUsableBounds reports 1920x1032, so clamp_window_aspect fits the window to roughly 1376 LOGICAL pixels and it opens as a small box that the desktop compositor then upscales. The internal render resolution is unaffected, which is what makes this expensive rather than cosmetic: the game renders at supersampling 16 and the result is thrown away scaling a 1376-wide window up to an 8K display. Choosing a high internal resolution and getting a small blurry window is the exact opposite of the intent. permonitorv2 makes SDL report physical pixels, so the window sizes against the real panel and the drawable matches it 1:1. Set before both SDL_Init call sites, guarded on the hints existing so it builds against older SDL. Also changes g_video_win_w's default from a hardcoded 1280 to 0, meaning "fit the display", clamped to the usable bounds and the configured aspect. An explicit width still wins. 1280 was a reasonable default when a window was a window; it is not one on a 4K or 8K panel. Diagnosed after reporting the display as 1920x1080 from a non-DPI-aware query and telling the user their panel could not be larger. It is 7680x4320; the measurement was virtualised, not the display. Co-Authored-By: Claude Opus 5 (cherry picked from commit 236778ed7bb93ac301d98d6d770f12211ca1619b) --- runtime/src/main.cpp | 51 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/runtime/src/main.cpp b/runtime/src/main.cpp index 9a8215cf..148790c8 100644 --- a/runtime/src/main.cpp +++ b/runtime/src/main.cpp @@ -1115,7 +1115,7 @@ static int g_video_renderer = PSXRecompV4::DEFAULT_VIDEO_RENDERER; static int g_fullscreen = 0; /* tri-state: 0 windowed, 1 borderless (desktop) * fullscreen, 2 exclusive fullscreen */ static int g_video_screen = 0; /* 0=raw,1=crt,2=composite,3=trinitron */ -static int g_video_win_w = 1280; /* window width (height follows aspect) */ +static int g_video_win_w = 0; /* 0 = fit the display; see clamp_window_aspect */ static bool g_audio_spu_hq = false; /* SPU float-shadow (env overrides) */ static int g_audio_freq = 44100; /* host device request */ static int g_auto_skip_fmv = 0; /* skip FMVs the instant they're detected */ @@ -1458,9 +1458,18 @@ static int g_logical_w = 640; * the given aspect: height = width*den/num. */ static void clamp_window_aspect(int* w, int* h, int num, int den) { int width = *w; - if (width < 640) width = 640; SDL_Rect bounds; - if (SDL_GetDisplayUsableBounds(0, &bounds) == 0 && bounds.w > 0 && bounds.h > 0) { + const int have_bounds = + (SDL_GetDisplayUsableBounds(0, &bounds) == 0 && bounds.w > 0 && bounds.h > 0); + /* 0 = "fit the display". The old default was a hardcoded 1280, which on a + * 4K or 8K panel opens a small window in the corner and, worse, makes the + * image far smaller than the internal render resolution the user chose -- + * supersampling 16 rendering into a 1280-wide window throws almost all of + * it away. Fitting the usable bounds keeps the window proportional to the + * display it is actually on. An explicit width still wins. */ + if (width <= 0) width = have_bounds ? bounds.w : 1280; + if (width < 640) width = 640; + if (have_bounds) { if (width > bounds.w) width = bounds.w; if (width * den / num > bounds.h) width = bounds.h * num / den; } @@ -11423,6 +11432,24 @@ int main(int argc, char** argv) { (!std::getenv("PSX_NO_LAUNCHER") && !force_no_launcher && !skip_launcher_setting); if (want_launcher) { launcher_boot_timing_mark("host:before_sdl_init"); + /* Per-monitor DPI awareness, BEFORE any SDL_Init. + * + * Without it Windows virtualises everything this process sees: on a + * 7680x4320 panel at 400% scaling SDL_GetDisplayUsableBounds reports + * 1920x1032, so the window is clamped to roughly 1376 LOGICAL pixels and + * opens as a small box, while the desktop compositor then upscales it. + * The internal render resolution is unaffected -- which is the trap: the + * game renders at supersampling 16 and the result is thrown away scaling + * a 1376-wide window up to an 8K display. + * + * permonitorv2 makes SDL report physical pixels, so the window sizes + * against the real panel and the drawable matches it 1:1. */ +#ifdef SDL_HINT_WINDOWS_DPI_AWARENESS + SDL_SetHint(SDL_HINT_WINDOWS_DPI_AWARENESS, "permonitorv2"); +#endif +#ifdef SDL_HINT_WINDOWS_DPI_SCALING + SDL_SetHint(SDL_HINT_WINDOWS_DPI_SCALING, "0"); +#endif if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMECONTROLLER) == 0) { launcher_boot_timing_mark("host:after_sdl_init"); recomp_launcher_set_preserve_sdl(1); @@ -12637,6 +12664,24 @@ session_reboot: * default). Enable the HIDAPI Xbox driver so HIDAPI handles Xbox pads too. */ SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_XBOX, "1"); if (!SDL_WasInit(SDL_INIT_VIDEO | SDL_INIT_GAMECONTROLLER)) { + /* Per-monitor DPI awareness, BEFORE any SDL_Init. + * + * Without it Windows virtualises everything this process sees: on a + * 7680x4320 panel at 400% scaling SDL_GetDisplayUsableBounds reports + * 1920x1032, so the window is clamped to roughly 1376 LOGICAL pixels and + * opens as a small box, while the desktop compositor then upscales it. + * The internal render resolution is unaffected -- which is the trap: the + * game renders at supersampling 16 and the result is thrown away scaling + * a 1376-wide window up to an 8K display. + * + * permonitorv2 makes SDL report physical pixels, so the window sizes + * against the real panel and the drawable matches it 1:1. */ +#ifdef SDL_HINT_WINDOWS_DPI_AWARENESS + SDL_SetHint(SDL_HINT_WINDOWS_DPI_AWARENESS, "permonitorv2"); +#endif +#ifdef SDL_HINT_WINDOWS_DPI_SCALING + SDL_SetHint(SDL_HINT_WINDOWS_DPI_SCALING, "0"); +#endif if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMECONTROLLER) != 0) { std::fprintf(stderr, "SDL_Init failed: %s\n", SDL_GetError()); return 1; From 16b439876cd6dd461ccfad66775f4e1508b74f17 Mon Sep 17 00:00:00 2001 From: tetrisgm <30949000+tetrisgm@users.noreply.github.com> Date: Mon, 17 Aug 2026 20:19:57 -0700 Subject: [PATCH 6/8] sdl: maximise the window instead of computing the frame size clamp_window_aspect fits the CLIENT area to the usable bounds, but a window is client plus title bar and borders. On a display whose usable height it exactly matched, the result was a window taller than the screen: client 5504x4128, window 5550x4263, positioned at y = -112 and hanging off the top. Deriving the decoration size first does not work either. SDL_GetWindowBordersSize reports nothing useful before the window has been shown, so a post-creation correction based on it silently did not apply -- the window stayed exactly as wrong, which is worse than not trying. The window manager already solves this exactly, so ask it: SDL_MaximizeWindow fits the work area with decorations and taskbar included. Measured on a 7680x4320 panel, client area is now 7680x4039 against 5504x4128 before. Only when the width was not explicitly chosen -- an explicit window_width is a deliberate decision and is left alone. Suggested by the user after two failed attempts at doing the arithmetic here. Co-Authored-By: Claude Opus 5 (cherry picked from commit d6d0946703817835805db7a6e0580799ade25261) --- runtime/src/main.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/runtime/src/main.cpp b/runtime/src/main.cpp index 148790c8..ce1910da 100644 --- a/runtime/src/main.cpp +++ b/runtime/src/main.cpp @@ -1116,6 +1116,7 @@ static int g_fullscreen = 0; /* tri-state: 0 windowed, 1 borderle * fullscreen, 2 exclusive fullscreen */ static int g_video_screen = 0; /* 0=raw,1=crt,2=composite,3=trinitron */ static int g_video_win_w = 0; /* 0 = fit the display; see clamp_window_aspect */ +static bool g_video_win_w_explicit = false; /* user chose a width */ static bool g_audio_spu_hq = false; /* SPU float-shadow (env overrides) */ static int g_audio_freq = 44100; /* host device request */ static int g_auto_skip_fmv = 0; /* skip FMVs the instant they're detected */ @@ -11019,6 +11020,7 @@ int main(int argc, char** argv) { #endif if (us.has_supersampling) g_video_scale = us.supersampling; if (us.has_window_width) g_video_win_w = us.window_width; + if (us.has_window_width && us.window_width > 0) g_video_win_w_explicit = true; if (us.has_antialiasing) g_video_aa = us.antialiasing; if (us.has_texture_filter) g_video_texfilter = us.texture_filter; if (us.has_geometry_correction) @@ -12766,6 +12768,22 @@ session_reboot: } psx_apply_window_icon(sdl_window, argv[0]); + /* Maximise instead of computing the frame size ourselves. + * + * clamp_window_aspect fits the CLIENT area to the usable bounds, but a + * window is client plus title bar and borders, so fitting the client to a + * full-height display produced a window taller than the screen that hung + * off the top. Deriving the decoration size first does not work either: + * SDL_GetWindowBordersSize reports nothing useful before the window is + * shown, so the correction silently did not apply. + * + * The window manager already solves this exactly. Maximise and let it fit + * the work area, decorations and taskbar included. Only when the request + * was "fit the display" (window_width unset) -- an explicit width is a + * deliberate choice and is left alone. */ + if (!g_fullscreen && !g_video_win_w_explicit) + SDL_MaximizeWindow(sdl_window); + /* Host refresh: if the panel is within ~2% of 60 Hz, record it so driver * vsync can own cadence (pacer skipped). Non-~60 Hz and unknown refresh * (common on Wayland) keep PSX 59.94 Hz pacing and force swap interval 0 From d10d76563a752c1059e4c0c37464f1ce8b61c645 Mon Sep 17 00:00:00 2001 From: tetrisgm <30949000+tetrisgm@users.noreply.github.com> Date: Sat, 22 Aug 2026 20:02:12 -0700 Subject: [PATCH 7/8] release: allowlist title framework packages (cherry picked from commit 03aba664236445132ed0b3a3cc72c1bf82bdbb98) --- runtime/runtime.cmake | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/runtime/runtime.cmake b/runtime/runtime.cmake index 30324354..06dede5e 100644 --- a/runtime/runtime.cmake +++ b/runtime/runtime.cmake @@ -1263,19 +1263,37 @@ function(psxrecomp_add_runtime_target target) # own POST_BUILD copy so a title may still override an id if it ever needs # to; copy_directory merges rather than replacing the tree. if(EXISTS "${PSXRECOMP_ROOT}/mods/builtin/packages") + # Clear first: copy_directory MERGES, so a mod deleted from source + # would otherwise survive in the build output forever and keep + # appearing on the Mods page (and inflate release catalog assertions). + # Scoped to mods/packages, not mods/: state.toml is launcher-owned user + # state and must survive a rebuild. + set(_psx_builtin_mod_copy_commands "") + if(DEFINED PSX_BUILTIN_MOD_ALLOWLIST AND NOT + "${PSX_BUILTIN_MOD_ALLOWLIST}" STREQUAL "") + foreach(_psx_builtin_mod IN LISTS PSX_BUILTIN_MOD_ALLOWLIST) + if(NOT EXISTS "${PSXRECOMP_ROOT}/mods/builtin/packages/${_psx_builtin_mod}") + message(FATAL_ERROR + "PSX_BUILTIN_MOD_ALLOWLIST names missing package: ${_psx_builtin_mod}") + endif() + list(APPEND _psx_builtin_mod_copy_commands + COMMAND ${CMAKE_COMMAND} -E copy_directory + "${PSXRECOMP_ROOT}/mods/builtin/packages/${_psx_builtin_mod}" + "$/mods/packages/${_psx_builtin_mod}") + endforeach() + else() + list(APPEND _psx_builtin_mod_copy_commands + COMMAND ${CMAKE_COMMAND} -E copy_directory + "${PSXRECOMP_ROOT}/mods/builtin" + "$/mods") + endif() add_custom_command(TARGET ${target} POST_BUILD - # Clear first: copy_directory MERGES, so a mod deleted from source - # would otherwise survive in the build output forever and keep - # appearing on the Mods page (and inflate the release packagers' - # catalog assertions). This runs before the game's own staging, so - # both catalogs land on a clean slate. COMMAND ${CMAKE_COMMAND} -E rm -rf - "$/mods" - COMMAND ${CMAKE_COMMAND} -E copy_directory - "${PSXRECOMP_ROOT}/mods/builtin" - "$/mods" - COMMENT "Staging framework-owned mod catalog (loading speed)" + "$/mods/packages" + ${_psx_builtin_mod_copy_commands} + COMMENT "Staging framework-owned mod catalog" VERBATIM) + unset(_psx_builtin_mod_copy_commands) endif() endif() From 8ddcafb1c4c045a0f749961b58feeafbf89a2f22 Mon Sep 17 00:00:00 2001 From: Matthew Stanley <1379tech@gmail.com> Date: Sun, 23 Aug 2026 13:24:06 -0700 Subject: [PATCH 8/8] tools: extend new project setup workflow --- tools/new_project_layout/fetch_boxart.py | 84 +- tools/new_project_layout/fill_tokens.py | 60 + .../project_studio/bulkops.py | 182 +- .../new_project_layout/project_studio/cli.py | 1683 ++++++++++++++++- .../project_studio/detect.py | 48 + .../project_studio/models.py | 2 + .../project_studio/naming.py | 8 +- .../project_studio/newproject.py | 374 ++++ .../new_project_layout/project_studio/ops.py | 135 ++ .../new_project_layout/project_studio/plan.py | 2 + .../project_studio/readme_metrics.py | 348 ++++ tools/new_project_layout/setup_project.ps1 | 77 +- tools/new_project_layout/setup_project.sh | 77 +- .../new_project_layout/templates/README.md.in | 49 +- .../templates/raid-discord.png | Bin 0 -> 573522 bytes 15 files changed, 3005 insertions(+), 124 deletions(-) create mode 100644 tools/new_project_layout/project_studio/newproject.py create mode 100644 tools/new_project_layout/project_studio/readme_metrics.py create mode 100644 tools/new_project_layout/templates/raid-discord.png diff --git a/tools/new_project_layout/fetch_boxart.py b/tools/new_project_layout/fetch_boxart.py index edc4cd80..8eebffff 100755 --- a/tools/new_project_layout/fetch_boxart.py +++ b/tools/new_project_layout/fetch_boxart.py @@ -1,12 +1,13 @@ #!/usr/bin/env python3 -"""Fetch PS1 Named_Boxarts from libretro-thumbnails and write launcher TGA. +"""Fetch PS1 Named_Boxarts from libretro-thumbnails (PNG + launcher TGA). Sources (tried in order): https://thumbnails.libretro.com/Sony - PlayStation/Named_Boxarts/.png https://raw.githubusercontent.com/libretro-thumbnails/Sony_-_PlayStation/master/Named_Boxarts/.png -Writes 32-bit uncompressed TGA (bottom-up BGRA) for recomp-ui LAUNCHER_BOXART. -Also writes launcher_assets/img/BOXART_SOURCE.txt with URL + attribution. +Writes the original PNG (README) and a 32-bit uncompressed TGA (bottom-up BGRA) +for recomp-ui LAUNCHER_BOXART. Also writes launcher_assets/img/BOXART_SOURCE.txt +with URL + attribution. Requires network. Prefer Pillow when installed; otherwise decodes common 8-bit RGBA/RGB PNGs with the stdlib. @@ -120,7 +121,7 @@ def try_fetch(names: list[str]) -> tuple[bytes, str, str]: except (urllib.error.HTTPError, urllib.error.URLError, TimeoutError, RuntimeError) as e: last_err = e continue - raise SystemExit( + raise FileNotFoundError( f"boxart not found for candidates {names[:8]}… ({last_err})" ) @@ -241,6 +242,40 @@ def write_tga_bgra(path: Path, width: int, height: int, rgba: bytes) -> None: path.write_bytes(bytes(header) + bytes(bgra)) +def fetch_to_paths( + tga_path: Path, + *, + cue_stem: str = "", + display_name: str = "", + extra_names: list[str] | None = None, + png_path: Path | None = None, +) -> tuple[Path, Path, str]: + """Fetch libretro Named_Boxarts PNG, write PNG + TGA + BOXART_SOURCE.txt.""" + names = candidate_names(cue_stem, display_name, *(extra_names or [])) + if not names: + raise ValueError("pass cue_stem and/or display_name") + png, url, matched = try_fetch(names) + tga_path = Path(tga_path) + png_path = Path(png_path) if png_path else tga_path.with_suffix(".png") + png_path.parent.mkdir(parents=True, exist_ok=True) + png_path.write_bytes(png) + try: + w, h, rgba = png_to_rgba(png) + write_tga_bgra(tga_path, w, h, rgba) + except SystemExit as exc: + raise RuntimeError(str(exc) or "PNG decode failed") from exc + src_path = tga_path.parent / "BOXART_SOURCE.txt" + src_path.write_text( + "Box art sourced from libretro-thumbnails (Named_Boxarts).\n" + f"Matched name: {matched}\n" + f"URL: {url}\n" + "https://github.com/libretro-thumbnails/libretro-thumbnails\n" + "PNG is for README; TGA is for recomp-ui LAUNCHER_BOXART.\n", + encoding="utf-8", + ) + return tga_path, png_path, url + + def main() -> int: ap = argparse.ArgumentParser(description=__doc__) ap.add_argument( @@ -256,6 +291,11 @@ def main() -> int: default="", help="attribution file (default: next to TGA as BOXART_SOURCE.txt)", ) + ap.add_argument( + "--png-out", + default="", + help="output PNG path (default: same stem as --out with .png)", + ) args = ap.parse_args() names = candidate_names(args.cue_stem, args.display_name, *args.name) @@ -264,24 +304,28 @@ def main() -> int: return 2 print(f" searching libretro boxart ({len(names)} candidates)…", file=sys.stderr) - png, url, matched = try_fetch(names) - print(f" fetched {matched}", file=sys.stderr) - print(f" {url}", file=sys.stderr) - - w, h, rgba = png_to_rgba(png) out = Path(args.out) - write_tga_bgra(out, w, h, rgba) - print(f" wrote {out} ({w}x{h})", file=sys.stderr) - + png_out = Path(args.png_out) if args.png_out else out.with_suffix(".png") + try: + tga_path, png_path, url = fetch_to_paths( + out, + cue_stem=args.cue_stem, + display_name=args.display_name, + extra_names=list(args.name), + png_path=png_out, + ) + except (FileNotFoundError, ValueError, RuntimeError) as exc: + print(str(exc) or "boxart fetch failed", file=sys.stderr) + return 1 + print(f" wrote {png_path}", file=sys.stderr) + print(f" wrote {tga_path}", file=sys.stderr) + print(f" {url}", file=sys.stderr) src_path = Path(args.source_out) if args.source_out else out.parent / "BOXART_SOURCE.txt" - src_path.write_text( - "Box art sourced from libretro-thumbnails (Named_Boxarts).\n" - f"Matched name: {matched}\n" - f"URL: {url}\n" - "https://github.com/libretro-thumbnails/libretro-thumbnails\n" - "Convert: PNG → 32-bit TGA for recomp-ui LAUNCHER_BOXART.\n", - encoding="utf-8", - ) + if args.source_out: + src_path.write_text( + (tga_path.parent / "BOXART_SOURCE.txt").read_text(encoding="utf-8"), + encoding="utf-8", + ) print(f" wrote {src_path}", file=sys.stderr) return 0 diff --git a/tools/new_project_layout/fill_tokens.py b/tools/new_project_layout/fill_tokens.py index 012ca948..43e6c048 100755 --- a/tools/new_project_layout/fill_tokens.py +++ b/tools/new_project_layout/fill_tokens.py @@ -8,6 +8,12 @@ import re import sys from pathlib import Path +GITHUB_ABOUT_DESCRIPTION = ( + "Made with PSXrecomp, a Sony PlayStation game static recompiler ecosystem · " + "Part of the R.A.I.D. community" +) +GITHUB_ABOUT_HOMEPAGE = "https://discord.gg/Ad9BwSzctP" + def derive_zip_prefix(name: str) -> str: base = re.sub(r"(?i)recomp(iled)?$", "", name).strip() @@ -20,6 +26,60 @@ def derive_zip_prefix(name: str) -> str: return (slug or "game")[:20] +def sanitize_github_name(name: str) -> str: + """GitHub owner/repo slug: spaces → '-', drop illegal chars, keep [A-Za-z0-9._-].""" + s = (name or "").strip() + if not s: + return "" + s = re.sub(r"\s+", "-", s) + s = re.sub(r"[^A-Za-z0-9._-]+", "", s) + s = re.sub(r"-{2,}", "-", s) + s = s.strip(".-") + return s[:100] or "repo" + + +def install_dir_name(name: str) -> str: + """Local checkout / launcher ``apps/`` folder — same slug as the GitHub repo name. + + New-project wizard must create this folder (not the display name with spaces) + so Studio catalog matching and RetComM ``install_dir_name`` stay consistent. + """ + return sanitize_github_name(name) + + +def normalize_repo_key(name: str) -> str: + """Casefold + collapse whitespace/underscores to hyphens for folder/catalog match. + + Lets ``Wipeout 3 Special Edition Recomp`` match catalog + ``Wipeout-3-Special-Edition-Recomp`` / github short name without renaming. + """ + s = (name or "").strip().lower() + if not s: + return "" + s = re.sub(r"[\s_]+", "-", s) + s = re.sub(r"[^a-z0-9._-]+", "", s) + s = re.sub(r"-{2,}", "-", s) + return s.strip(".-") + + +def repo_match_keys(name: str) -> set[str]: + """Match keys for a folder / install_dir / github short name. + + Includes the normalized form and a form with a trailing ``-recomp`` / + ``-recompiled`` stripped so local ``… Recomp`` checkouts still match + catalog ``install_dir_name`` / github slugs that omit that suffix + (e.g. Klonoa). + """ + k = normalize_repo_key(name) + if not k: + return set() + out = {k} + stripped = re.sub(r"(-recomp(iled)?)+$", "", k).strip("-") + if stripped: + out.add(stripped) + return out + + def main() -> int: ap = argparse.ArgumentParser(description=__doc__) ap.add_argument("src") diff --git a/tools/new_project_layout/project_studio/bulkops.py b/tools/new_project_layout/project_studio/bulkops.py index 79a08e0c..a91ee709 100644 --- a/tools/new_project_layout/project_studio/bulkops.py +++ b/tools/new_project_layout/project_studio/bulkops.py @@ -509,7 +509,13 @@ def resolve_catalog_root(studio_toml: Path | None = None) -> Path | None: def _catalog_name_keys(catalog_root: Path) -> set[str]: - """Folder / github short-name keys (lowercased) for every catalog title.""" + """Folder / github short-name keys for every catalog title. + + Stores raw lowercased names plus ``repo_match_keys`` forms so spacey / + ``… Recomp`` legacy checkouts still match hyphenated ``install_dir_name``. + """ + from fill_tokens import repo_match_keys + index_path = catalog_root / "index.json" titles_dir = catalog_root / "titles" if not index_path.is_file() or not titles_dir.is_dir(): @@ -519,8 +525,16 @@ def _catalog_name_keys(catalog_root: Path) -> set[str]: except (OSError, json.JSONDecodeError): return set() keys: set[str] = set() + + def _add(raw: str) -> None: + s = (raw or "").strip() + if not s: + return + keys.add(s.lower()) + keys.update(repo_match_keys(s)) + for tid in ids: - keys.add(str(tid).lower()) + _add(str(tid)) path = titles_dir / f"{tid}.json" if not path.is_file(): continue @@ -530,7 +544,7 @@ def _catalog_name_keys(catalog_root: Path) -> set[str]: continue name = str(raw.get("install_dir_name") or "").strip() if name: - keys.add(name.lower()) + _add(name) for nest in ( ("release", "github"), ("build", "source", "github"), @@ -543,15 +557,141 @@ def _catalog_name_keys(catalog_root: Path) -> set[str]: break cur = cur[k] if ok and isinstance(cur, str) and "/" in cur: - keys.add(cur.rsplit("/", 1)[-1].lower()) + _add(cur.rsplit("/", 1)[-1]) homepage = str(raw.get("homepage") or "") if "github.com/" in homepage.lower(): tail = homepage.rstrip("/").split("github.com/")[-1] if "/" in tail: - keys.add(tail.split("/")[-1].lower()) + _add(tail.split("/")[-1]) return keys +def catalog_title_id_for_root( + root: Path, + *, + catalog_root: Path | None = None, +) -> str | None: + """Best-effort catalog title id for a local checkout (install_dir / github slug).""" + from fill_tokens import repo_match_keys + + cat = catalog_root or resolve_catalog_root() + if cat is None: + return None + index_path = cat / "index.json" + titles_dir = cat / "titles" + if not index_path.is_file() or not titles_dir.is_dir(): + return None + try: + ids = list(json.loads(index_path.read_text(encoding="utf-8")).get("titles") or []) + except (OSError, json.JSONDecodeError): + return None + + want = set(repo_match_keys(root.name)) + try: + from .gitops import _git + + code, url, _ = _git(root, "remote", "get-url", "origin") + if code == 0 and url: + u = url.strip().rstrip("/") + if u.endswith(".git"): + u = u[:-4] + if "github.com" in u.lower(): + # git@github.com:Owner/Repo or https://github.com/Owner/Repo + tail = u.replace(":", "/").split("github.com/")[-1] + if "/" in tail: + want.update(repo_match_keys(tail.split("/")[-1])) + except Exception: + pass + want.discard("") + + for tid in ids: + path = titles_dir / f"{tid}.json" + if not path.is_file(): + continue + try: + raw = json.loads(path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError): + continue + candidates = [str(tid), str(raw.get("install_dir_name") or "")] + gh = raw.get("release") if isinstance(raw.get("release"), dict) else {} + if isinstance(gh, dict) and isinstance(gh.get("github"), str) and "/" in gh["github"]: + candidates.append(gh["github"].rsplit("/", 1)[-1]) + homepage = str(raw.get("homepage") or "") + if "github.com/" in homepage.lower(): + tail = homepage.rstrip("/").split("github.com/")[-1] + if "/" in tail: + candidates.append(tail.split("/")[-1]) + for c in candidates: + if repo_match_keys(c) & want: + return str(tid) + return None + + +def upsert_studio_toml_title( + title_id: str, + project_root: Path, + *, + studio_toml: Path | None = None, +) -> str | None: + """Ensure ``[titles] "id" = "rel/path"`` in studio.toml. Returns note or None.""" + cfg = studio_toml or find_studio_toml() + if cfg is None or not (title_id or "").strip(): + return None + title_id = title_id.strip() + root = project_root.expanduser().resolve() + if not root.is_dir(): + return None + try: + rel = os.path.relpath(root, cfg.parent.resolve()).replace("\\", "/") + except ValueError: + rel = str(root) + key_line = f'"{title_id}" = "{rel}"' + text = cfg.read_text(encoding="utf-8") + # Already present with any path → leave alone (user may have customized). + existing = re.search( + rf'^[ \t]*"{re.escape(title_id)}"\s*=\s*("[^"]*"|\'[^\']*\')', + text, + re.M, + ) + if existing: + return f"studio.toml already maps {title_id}" + if re.search(r"^\[titles\]\s*$", text, re.M): + # Append after [titles] block's last assignment, or right after header. + lines = text.splitlines(keepends=True) + out: list[str] = [] + in_titles = False + inserted = False + i = 0 + while i < len(lines): + line = lines[i] + s = line.strip() + if s.startswith("[") and s.endswith("]"): + if in_titles and not inserted: + out.append(key_line + "\n") + inserted = True + in_titles = s == "[titles]" + out.append(line) + i += 1 + continue + out.append(line) + i += 1 + if in_titles and not inserted: + if out and not out[-1].endswith("\n"): + out[-1] = out[-1] + "\n" + out.append(key_line + "\n") + inserted = True + if not inserted: + return None + cfg.write_text("".join(out), encoding="utf-8") + else: + suffix = "" if text.endswith("\n") or not text else "\n" + cfg.write_text( + text + suffix + "\n[titles]\n" + key_line + "\n", + encoding="utf-8", + ) + return f"studio.toml [titles] += {title_id}" + + def _studio_title_paths(studio_toml: Path | None = None) -> set[Path]: cfg = studio_toml or find_studio_toml() if cfg is None: @@ -576,6 +716,8 @@ def repo_has_catalog_entry( studio_toml: Path | None = None, ) -> bool: """True if this indexed checkout maps to a retcomm-catalog title.""" + from fill_tokens import repo_match_keys + try: root = entry.resolved() except OSError: @@ -589,12 +731,34 @@ def repo_has_catalog_entry( keys = _catalog_name_keys(cat) if not keys: return False - basename = root.name.lower() - if basename in keys: + + def _hits(label: str) -> bool: + s = (label or "").strip() + if not s: + return False + if s.lower() in keys: + return True + return bool(repo_match_keys(s) & keys) + + if _hits(root.name): return True - name = (entry.name or "").strip().lower() - if name and name in keys: + if _hits(entry.name or ""): return True + # GitHub origin short name (catalog often matches repo slug, not local folder). + try: + from .gitops import _git + + code, url, _ = _git(root, "remote", "get-url", "origin") + if code == 0 and url: + u = url.strip().rstrip("/") + if u.endswith(".git"): + u = u[:-4] + if "github.com" in u.lower(): + tail = u.replace(":", "/").split("github.com/")[-1] + if "/" in tail and _hits(tail.split("/")[-1]): + return True + except Exception: + pass return False diff --git a/tools/new_project_layout/project_studio/cli.py b/tools/new_project_layout/project_studio/cli.py index 87aabf30..cc2a65ac 100644 --- a/tools/new_project_layout/project_studio/cli.py +++ b/tools/new_project_layout/project_studio/cli.py @@ -62,6 +62,8 @@ def _options_from_args(args: argparse.Namespace) -> MigrateOptions: boot_exe=args.boot_exe, players=args.players, zip_prefix=args.zip_prefix, + github_owner=getattr(args, "github_owner", None) or None, + github_repo=getattr(args, "github_repo", None) or None, window_title=args.window_title, enable_recomp_ui=not args.no_recomp_ui, enable_wizard=not args.no_wizard, @@ -152,10 +154,394 @@ def cmd_ops(_: argparse.Namespace) -> int: def cmd_gui(args: argparse.Namespace) -> int: - from project_studio.gui import run_gui + """Launch the native Dear ImGui Studio binary when available.""" + import os + import shutil + import subprocess root = Path(args.root).expanduser().resolve() if args.root else None - return run_gui(initial_root=root) + candidates: list[Path] = [] + env_bin = (os.environ.get("RETCOMM_STUDIO_BIN") or "").strip() + if env_bin: + candidates.append(Path(env_bin)) + here = Path(__file__).resolve() + # tools/new_project_layout/project_studio/cli.py → repo root + repo = here.parents[3] if len(here.parents) > 3 else here.parents[2] + for rel in ( + Path("build") / "RetComM-Studio", + Path("build") / "retcomm-studio", + Path("build-release") / "RetComM-Studio", + Path("out") / "bin" / "RetComM-Studio", + ): + candidates.append(repo / rel) + which = shutil.which("RetComM-Studio") or shutil.which("retcomm-studio") + if which: + candidates.append(Path(which)) + + for cand in candidates: + if cand.is_file() and os.access(cand, os.X_OK): + cmd = [str(cand)] + if root is not None: + os.environ["RETCOMM_STUDIO_INITIAL_ROOT"] = str(root) + return int(subprocess.call(cmd)) + + print( + "RetComM Studio GUI is Dear ImGui (native).\n" + "Build it first:\n" + " cmake -S . -B build && cmake --build build\n" + " ./build/RetComM-Studio\n" + "Or set RETCOMM_STUDIO_BIN to the executable path.", + file=sys.stderr, + ) + return 2 + + +def _index_to_json_dict(index) -> dict: + from project_studio.repo_index import labels_for_repos + + from project_studio.bulkops import filter_indexed_catalog + from project_studio.naming import configured_players + + data = index.to_dict() + labels = labels_for_repos(index.repos) + catalog_hits, _note = filter_indexed_catalog(index) + catalog_paths = {e.path for e in catalog_hits} + repos_out = [] + for entry, label in zip(index.repos, labels): + try: + players = configured_players(entry.resolved()) + except OSError: + players = 2 + repos_out.append( + { + "path": entry.path, + "name": entry.name, + "cue": entry.cue, + "label": label, + "in_catalog": entry.path in catalog_paths, + "players": players, + } + ) + data["repos"] = repos_out + return data + + +def _print_index_json(index) -> int: + print(json.dumps(_index_to_json_dict(index), indent=2)) + return 0 + + +def cmd_repos_list(_: argparse.Namespace) -> int: + from project_studio.repo_index import load_index + + return _print_index_json(load_index()) + + +def cmd_repos_add(args: argparse.Namespace) -> int: + from project_studio.repo_index import add_repo, load_index, looks_like_game_repo + + root = Path(args.path).expanduser().resolve() + if not root.is_dir(): + print(f"error: not a directory: {root}", file=sys.stderr) + return 2 + if not looks_like_game_repo(root) and not args.force: + print( + f"error: does not look like a game repo (pass --force): {root}", + file=sys.stderr, + ) + return 2 + idx = load_index() + add_repo(idx, root, name=args.name or "", cue=args.cue or "") + return _print_index_json(idx) + + +def cmd_repos_remove(args: argparse.Namespace) -> int: + from project_studio.repo_index import load_index, remove_repo + + idx = load_index() + if not remove_repo(idx, args.path): + print(f"error: not in index: {args.path}", file=sys.stderr) + return 2 + return _print_index_json(idx) + + +def cmd_repos_set_cue(args: argparse.Namespace) -> int: + from project_studio.repo_index import load_index, set_repo_cue + + idx = load_index() + entry = set_repo_cue(idx, args.path, args.cue) + if entry is None: + print(f"error: not in index: {args.path}", file=sys.stderr) + return 2 + return _print_index_json(idx) + + +def cmd_repos_set_last(args: argparse.Namespace) -> int: + from project_studio.repo_index import load_index, set_last + + idx = load_index() + set_last(idx, args.path) + return _print_index_json(idx) + + +def cmd_repos_set_flags(args: argparse.Namespace) -> int: + from project_studio.repo_index import load_index, save_index + + idx = load_index() + if args.catalog_only is not None: + idx.catalog_only = str(args.catalog_only).strip() in ("1", "true", "yes", "on") + if args.bulk_jobs is not None: + try: + jobs = int(args.bulk_jobs) + except (TypeError, ValueError): + jobs = idx.bulk_jobs + idx.bulk_jobs = max(1, min(4, jobs)) + if args.log_height is not None: + try: + h = int(args.log_height) + except (TypeError, ValueError): + h = idx.log_height + idx.log_height = max(100, min(800, h)) + save_index(idx) + return _print_index_json(idx) + + +def cmd_repos_filter_catalog(_: argparse.Namespace) -> int: + """JSON paths for indexed repos that map to retcomm-catalog titles.""" + from project_studio.bulkops import filter_indexed_catalog + from project_studio.repo_index import load_index + + hits, note = filter_indexed_catalog(load_index()) + print( + json.dumps( + { + "note": note, + "paths": [e.path for e in hits], + "labels": [e.label() for e in hits], + }, + indent=2, + ) + ) + return 0 + + +def cmd_repos_filter_catalog_contributors(_: argparse.Namespace) -> int: + """JSON paths for catalog repos where the viewer has WRITE+ (gh).""" + from project_studio.bulkops import filter_indexed_catalog_contributors + from project_studio.repo_index import load_index + + hits, note, logs = filter_indexed_catalog_contributors(load_index()) + for line in logs: + print(line, file=sys.stderr) + print( + json.dumps( + { + "note": note, + "paths": [e.path for e in hits], + "labels": [e.label() for e in hits], + "logs": logs, + }, + indent=2, + ) + ) + return 0 + + +def cmd_updates_check(args: argparse.Namespace) -> int: + from project_studio.updater import check_updates, check_updates_on_startup_enabled + + if getattr(args, "startup", False) and not check_updates_on_startup_enabled(): + if args.json: + print( + json.dumps( + { + "ok": True, + "skipped": True, + "message": "Startup update check disabled in config.", + "studio": {"available": False}, + "toolchain": {"available": False}, + }, + indent=2, + ) + ) + else: + print("Startup update check disabled in config.") + return 0 + + def prog(msg: str) -> None: + print(msg, file=sys.stderr) + + result = check_updates(on_progress=prog) + if args.json: + def comp(c) -> dict: + return { + "kind": c.kind, + "current": c.current, + "latest": c.latest, + "available": c.available, + "supported": c.supported, + "message": c.message, + "asset_name": c.asset_name, + } + + print( + json.dumps( + { + "ok": result.ok, + "message": result.message, + "studio": comp(result.studio), + "toolchain": comp(result.toolchain), + }, + indent=2, + ) + ) + else: + print(result.studio.message) + print(result.toolchain.message) + if result.message: + print(result.message) + return 0 if result.ok else 1 + + +def cmd_updates_apply(args: argparse.Namespace) -> int: + from project_studio.updater import apply_updates, check_updates + + def prog(msg: str) -> None: + print(msg, file=sys.stderr) + + result = check_updates(on_progress=prog) + summary, should_exit = apply_updates( + result, + update_studio=not args.toolchain_only, + update_toolchain=not args.studio_only, + on_progress=prog, + ) + print(summary) + if should_exit: + return 0 + return 0 + + +def cmd_updates_ensure_toolchain(args: argparse.Namespace) -> int: + from project_studio.updater import ensure_toolchain, resolve_toolchain_python + + def prog(msg: str) -> None: + print(msg, file=sys.stderr) + + ok, msg = ensure_toolchain(on_progress=prog) + print(f"[{'OK' if ok else 'FAIL'}] {msg}") + py = resolve_toolchain_python() + if py: + print(f"python: {py}") + return 0 if ok else 1 + + +def cmd_new_project(args: argparse.Namespace) -> int: + from project_studio.newproject import ( + NewProjectOptions, + index_new_project, + project_root_for, + run_new_project, + validate_options, + ) + + opts = NewProjectOptions( + name=(args.name or "").strip(), + disc=(args.disc or "").strip(), + parent_dir=(args.dir or ".").strip(), + bios=(getattr(args, "bios", None) or "").strip(), + boot_exe=(getattr(args, "boot_exe", None) or "").strip(), + players=int(getattr(args, "players", 2) or 2), + zip_prefix=(getattr(args, "zip_prefix", None) or "").strip(), + github_owner=(getattr(args, "github_owner", None) or "").strip(), + github_repo=(getattr(args, "github_repo", None) or "").strip(), + description=(getattr(args, "description", None) or "").strip(), + publisher=(getattr(args, "publisher", None) or "").strip(), + year=(getattr(args, "year", None) or "").strip(), + region=(getattr(args, "region", None) or "USA").strip(), + enable_recomp_ui=not bool(getattr(args, "no_recomp_ui", False)), + enable_wizard=not bool(getattr(args, "no_wizard", False)), + enable_netplay=bool(getattr(args, "enable_netplay", False)), + lobby_url=(getattr(args, "lobby_url", None) or "netplay.retcomm.net").strip(), + enable_ci=not bool(getattr(args, "no_ci", False)), + fetch_boxart=not bool(getattr(args, "no_fetch_boxart", False)), + stage_disc=bool(getattr(args, "stage_disc", False)), + do_generate=bool(getattr(args, "generate", False)), + do_build=bool(getattr(args, "enable_build", False)), + create_github=bool(getattr(args, "create_github", False)), + github_visibility=( + getattr(args, "github_visibility", None) or "private" + ).strip(), + psxrecomp_ref=(getattr(args, "psxrecomp_ref", None) or "master").strip(), + recomp_ui_ref=(getattr(args, "recomp_ui_ref", None) or "master").strip(), + recomp_net_ref=(getattr(args, "recomp_net_ref", None) or "").strip(), + rbengine_ref=(getattr(args, "rbengine_ref", None) or "").strip(), + dry_run=bool(getattr(args, "dry_run", False)), + ) + + if bool(getattr(args, "autofill_meta", False)): + from project_studio.discmeta import apply_hit_to_options, lookup_cue + + print("Looking up disc metadata (Redump / libretro / catalog)…", flush=True) + hit = lookup_cue(opts.disc) + for note in hit.notes: + print(f" meta: {note}", flush=True) + filled = apply_hit_to_options(opts, hit, only_empty=True) + if filled: + print(" filled: " + ", ".join(filled), flush=True) + else: + print(f" no empty fields filled (source={hit.source})", flush=True) + + errs = validate_options(opts) + if errs: + for e in errs: + print(f"error: {e}", file=sys.stderr) + return 2 + + def on_line(msg: str) -> None: + print(msg, flush=True) + + r = run_new_project(opts, on_line=on_line) + print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") + if not r.ok: + return 1 + if opts.dry_run: + return 0 + root = project_root_for(opts) + ir = index_new_project(root, name=opts.name, cue=opts.disc) + print(f"[{'OK' if ir.ok else 'FAIL'}] {ir.message}") + return 0 if ir.ok else 1 + + +def cmd_lookup_disc_meta(args: argparse.Namespace) -> int: + from project_studio.discmeta import lookup_cue, lookup_digests + + force = bool(getattr(args, "force_refresh", False)) + if getattr(args, "disc", None): + hit = lookup_cue(args.disc, force_refresh=force) + else: + hit = lookup_digests( + crc32=getattr(args, "crc32", "") or "", + md5=getattr(args, "md5", "") or "", + sha1=getattr(args, "sha1", "") or "", + serial=getattr(args, "serial", "") or "", + force_refresh=force, + ) + if args.json: + print(json.dumps(hit.to_dict(), indent=2)) + else: + print(f"source: {hit.source}") + print(f"name: {hit.name}") + print(f"serial: {hit.serial}") + print(f"region: {hit.region}") + print(f"players: {hit.players}") + print(f"publisher: {hit.publisher}") + print(f"year: {hit.year}") + print(f"description: {(hit.description or '')[:200]}") + print(f"crc32/md5/sha1: {hit.crc32} / {hit.md5} / {hit.sha1}") + for n in hit.notes: + print(f"note: {n}") + return 0 if hit.source != "none" else 1 def _root_or_die(args: argparse.Namespace) -> Path | None: @@ -166,6 +552,105 @@ def _root_or_die(args: argparse.Namespace) -> Path | None: return root +def cmd_git_branches(args: argparse.Namespace) -> int: + """List game + module branch names as JSON for Studio dropdowns.""" + from project_studio.gitops import ( + DEFAULT_PSXRECOMP_URL, + DEFAULT_RBENGINE_URL, + DEFAULT_RECOMP_NET_URL, + DEFAULT_RECOMP_UI_URL, + current_branch, + list_branches, + list_module_branches, + list_remote_head_branches, + resolve_module_dir, + ) + + def prefer_current(names: list[str], cur: str) -> list[str]: + cur = (cur or "").strip() + if not cur: + return names + rest = [n for n in names if n != cur] + return [cur, *rest] + + fetch = bool(getattr(args, "fetch", False)) + root_s = (getattr(args, "root", None) or "").strip() + out: dict = { + "game": [], + "psxrecomp": [], + "recomp-ui": [], + "recomp-net": [], + "rbengine": [], + "current": { + "game": "", + "psxrecomp": "", + "recomp-ui": "", + "recomp-net": "", + "rbengine": "", + }, + } + if root_s: + root = Path(root_s).expanduser().resolve() + if not root.is_dir(): + print(f"error: not a directory: {root}", file=sys.stderr) + return 2 + out["game"] = list_branches(root, remotes=True, fetch=fetch) + out["psxrecomp"] = list_module_branches( + root, "psxrecomp", remotes=True, fetch=fetch, url_fallback=DEFAULT_PSXRECOMP_URL + ) + out["recomp-ui"] = list_module_branches( + root, "recomp-ui", remotes=True, fetch=fetch, url_fallback=DEFAULT_RECOMP_UI_URL + ) + out["recomp-net"] = list_module_branches( + root, + "lib/recomp-net", + nested=True, + remotes=True, + fetch=fetch, + url_fallback=DEFAULT_RECOMP_NET_URL, + ) + out["rbengine"] = list_module_branches( + root, + "lib/retcomm-rbengine", + nested=True, + remotes=True, + fetch=fetch, + url_fallback=DEFAULT_RBENGINE_URL, + ) + cur = out["current"] + cur["game"] = current_branch(root) or "" + for key, path, nested in ( + ("psxrecomp", "psxrecomp", False), + ("recomp-ui", "recomp-ui", False), + ("recomp-net", "lib/recomp-net", True), + ("rbengine", "lib/retcomm-rbengine", True), + ): + sub = resolve_module_dir(root, path, nested=nested) + cur[key] = (current_branch(sub) or "") if sub is not None else "" + # Put live checkouts first so dropdowns open on the active branch. + out["game"] = prefer_current(out["game"], cur["game"]) + out["psxrecomp"] = prefer_current(out["psxrecomp"], cur["psxrecomp"]) + out["recomp-ui"] = prefer_current(out["recomp-ui"], cur["recomp-ui"]) + out["recomp-net"] = prefer_current(out["recomp-net"], cur["recomp-net"]) + out["rbengine"] = prefer_current(out["rbengine"], cur["rbengine"]) + else: + # New-project / no checkout: ls-remote default module URLs. + out["psxrecomp"] = list_remote_head_branches(DEFAULT_PSXRECOMP_URL) + out["recomp-ui"] = list_remote_head_branches(DEFAULT_RECOMP_UI_URL) + out["recomp-net"] = list_remote_head_branches(DEFAULT_RECOMP_NET_URL) + out["rbengine"] = list_remote_head_branches(DEFAULT_RBENGINE_URL) + # Sensible game-branch placeholders when scaffolding. + out["game"] = ["main", "master"] + + # Always offer (default) for nested/ref menus that support it. + for key in ("recomp-net", "rbengine"): + if "(default)" not in out[key]: + out[key] = ["(default)", *out[key]] + + print(json.dumps(out, indent=2)) + return 0 + + def cmd_git_status(args: argparse.Namespace) -> int: from project_studio.gitops import repo_status @@ -261,8 +746,8 @@ def cmd_git_ensure_nested(args: argparse.Namespace) -> int: def cmd_git_set_branch(args: argparse.Namespace) -> int: from project_studio.gitops import ( set_nested_branch, - set_repo_branch, set_submodule_branch, + switch_branch, ) root = _root_or_die(args) @@ -278,7 +763,7 @@ def cmd_git_set_branch(args: argparse.Namespace) -> int: root, args.submodule, args.branch, dry_run=args.dry_run ) else: - r = set_repo_branch( + r = switch_branch( root, args.branch, create=args.create, dry_run=args.dry_run ) print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") @@ -287,6 +772,158 @@ def cmd_git_set_branch(args: argparse.Namespace) -> int: return 0 if r.ok else 1 +def _git_target_flags(args: argparse.Namespace) -> dict[str, bool]: + """Resolve Game / Modules / Nested / psxrecomp targets for a single-root op. + + When no target flags are set, default to the game root (legacy ``git pull`` / + ``git switch --branch``). + """ + game = bool(getattr(args, "game", False)) + modules = bool(getattr(args, "modules", False)) + nested = bool(getattr(args, "nested", False)) + psx = bool(getattr(args, "psxrecomp", False)) + if not (game or modules or nested or psx): + game = True + return { + "game": game, + "modules": modules, + "nested": nested, + "psxrecomp": psx, + } + + +def cmd_git_switch(args: argparse.Namespace) -> int: + from project_studio.gitops import ( + CmdResult, + default_module_paths, + switch_branch, + switch_modules, + switch_psxrecomp, + ) + + root = _root_or_die(args) + if root is None: + return 2 + branch = (getattr(args, "branch", None) or "").strip() + create = bool(getattr(args, "create", False)) + set_tracking = not bool(getattr(args, "no_track", False)) + submodule = (getattr(args, "submodule", None) or "").strip() + psx_branch = (getattr(args, "psxrecomp_branch", None) or "").strip() + ui_branch = (getattr(args, "ui_branch", None) or "").strip() + net_branch = (getattr(args, "net_branch", None) or "").strip() + rb_branch = (getattr(args, "rb_branch", None) or "").strip() + per_module = bool(psx_branch or ui_branch or net_branch or rb_branch) + multi = bool(getattr(args, "game", False)) or ( + sum( + bool(x) + for x in ( + getattr(args, "modules", False), + getattr(args, "nested", False), + getattr(args, "psxrecomp", False), + ) + ) + > 1 + ) + + # Single-path legacy: --submodule PATH [--nested] [--branch] + if submodule and not multi and not per_module and not getattr(args, "game", False): + nested = bool(getattr(args, "nested", False)) + paths = [submodule] + branch_by_path = None + if branch: + branch_by_path = {submodule.strip().replace("\\", "/"): branch} + results = switch_modules( + root, + paths=paths, + nested=nested, + branch_by_path=branch_by_path, + create=create, + set_tracking=set_tracking, + dry_run=args.dry_run, + ) + return _print_module_results(results) + + t = _git_target_flags(args) + results: list[CmdResult] = [] + + if t["game"]: + if not branch: + print("error: --game / game root requires --branch NAME", file=sys.stderr) + return 2 + r = switch_branch(root, branch, create=create, dry_run=args.dry_run) + results.append(CmdResult(r.ok, r.message, r.detail)) + + if t["modules"]: + branch_by_path: dict[str, str] | None = None + paths = _module_paths_from_args(args) + if psx_branch or ui_branch: + branch_by_path = {} + if psx_branch: + branch_by_path["psxrecomp"] = psx_branch + if ui_branch: + branch_by_path["recomp-ui"] = ui_branch + paths = list(branch_by_path.keys()) + elif branch and not t["game"]: + # Legacy: ``git switch --modules --branch X`` applies X to all modules. + want = paths or list(default_module_paths(nested=False)) + branch_by_path = {p.strip().replace("\\", "/"): branch for p in want} + results.extend( + switch_modules( + root, + paths=paths, + nested=False, + branch_by_path=branch_by_path, + create=create, + set_tracking=set_tracking, + dry_run=args.dry_run, + ) + ) + elif t["psxrecomp"]: + use = psx_branch or branch + if not use: + print( + "error: --psxrecomp requires --branch or --psxrecomp-branch", + file=sys.stderr, + ) + return 2 + r = switch_psxrecomp(root, use, create=create, dry_run=args.dry_run) + results.append(CmdResult(r.ok, r.message, r.detail)) + + if t["nested"]: + branch_by_path = None + paths = _module_paths_from_args(args) + if net_branch or rb_branch: + branch_by_path = {} + if net_branch: + branch_by_path["lib/recomp-net"] = net_branch + if rb_branch: + branch_by_path["lib/retcomm-rbengine"] = rb_branch + paths = list(branch_by_path.keys()) + elif branch and not t["modules"] and not t["game"]: + # Legacy: ``git switch --nested --branch X`` applies X to all nested. + want = paths or list(default_module_paths(nested=True)) + branch_by_path = {p.strip().replace("\\", "/"): branch for p in want} + results.extend( + switch_modules( + root, + paths=paths, + nested=True, + branch_by_path=branch_by_path, + create=create, + set_tracking=set_tracking, + dry_run=args.dry_run, + ) + ) + + if not results: + print( + "error: nothing to switch (pass --game / --modules / --nested)", + file=sys.stderr, + ) + return 2 + return _print_module_results(results) + + def cmd_git_update_submodules(args: argparse.Namespace) -> int: from project_studio.gitops import update_submodules @@ -353,92 +990,319 @@ def _print_module_results(results: list) -> int: return 1 if failed else 0 +def _bulk_select_from_args(args: argparse.Namespace) -> list[str] | None: + raw = getattr(args, "select", None) or "" + parts = [p.strip() for p in raw.split(",") if p.strip()] + return parts or None + + +def _bulk_repos_or_die(args: argparse.Namespace): + from project_studio.bulkops import indexed_repos + + repos = indexed_repos(select=_bulk_select_from_args(args)) + if not repos: + print("No indexed repos matched (Add… in GUI, or --select filter).") + return None + return repos + + +def _bulk_targets_from_args(args: argparse.Namespace) -> dict: + game = bool(getattr(args, "game", False)) + modules = bool(getattr(args, "modules", False)) + psx = bool(getattr(args, "psxrecomp", False)) + nested = bool(getattr(args, "nested", False)) + # Default: game root only when nothing specified. + if not (game or modules or psx or nested): + game = True + return { + "game": game, + "modules": modules, + "psxrecomp": psx, + "nested": nested, + } + + +def cmd_git_bulk_status(args: argparse.Namespace) -> int: + from project_studio.bulkops import bulk_status + + repos = _bulk_repos_or_die(args) + if repos is None: + return 2 + return _print_module_results(bulk_status(repos)) + + +def cmd_git_bulk_pull(args: argparse.Namespace) -> int: + from project_studio.bulkops import bulk_pull + + repos = _bulk_repos_or_die(args) + if repos is None: + return 2 + return _print_module_results( + bulk_pull( + repos, + **_bulk_targets_from_args(args), + mode=getattr(args, "mode", None) or "ff-only", + dirty=getattr(args, "dirty", None) or "fail", + dry_run=args.dry_run, + ) + ) + + +def cmd_git_bulk_push(args: argparse.Namespace) -> int: + from project_studio.bulkops import bulk_push + + repos = _bulk_repos_or_die(args) + if repos is None: + return 2 + return _print_module_results( + bulk_push( + repos, + **_bulk_targets_from_args(args), + dry_run=args.dry_run, + ) + ) + + +def cmd_git_bulk_commit(args: argparse.Namespace) -> int: + from project_studio.bulkops import bulk_commit + + repos = _bulk_repos_or_die(args) + if repos is None: + return 2 + t = _bulk_targets_from_args(args) + return _print_module_results( + bulk_commit( + repos, + args.message, + game=t["game"], + modules=t["modules"], + nested=t["nested"], + dry_run=args.dry_run, + ) + ) + + +def cmd_git_bulk_switch(args: argparse.Namespace) -> int: + from project_studio.bulkops import bulk_switch + + repos = _bulk_repos_or_die(args) + if repos is None: + return 2 + t = _bulk_targets_from_args(args) + # For switch, defaulting to game-only when no flags is surprising if they + # only passed --psxrecomp-branch — require at least one explicit target. + if not any( + ( + getattr(args, "game", False), + getattr(args, "modules", False), + getattr(args, "psxrecomp", False), + getattr(args, "nested", False), + ) + ): + print( + "error: pass --game / --modules / --psxrecomp / --nested " + "(which checkouts to switch)", + file=sys.stderr, + ) + return 2 + return _print_module_results( + bulk_switch( + repos, + game=t["game"], + modules=t["modules"], + psxrecomp=t["psxrecomp"], + nested=t["nested"], + game_branch=getattr(args, "branch", None) or "", + psxrecomp_branch=getattr(args, "psxrecomp_branch", None) or "", + recomp_ui_branch=getattr(args, "ui_branch", None) or "", + recomp_net_branch=getattr(args, "net_branch", None) or "", + rbengine_branch=getattr(args, "rb_branch", None) or "", + create=bool(getattr(args, "create", False)), + set_tracking=not bool(getattr(args, "no_track", False)), + dry_run=args.dry_run, + ) + ) + + def cmd_git_pull(args: argparse.Namespace) -> int: - from project_studio.gitops import pull, pull_modules, pull_psxrecomp + from project_studio.gitops import CmdResult, pull, pull_modules, pull_psxrecomp root = _root_or_die(args) if root is None: return 2 - if getattr(args, "psxrecomp", False): - r = pull_psxrecomp(root, dry_run=args.dry_run) - print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") - if r.detail: - print(r.detail) - return 0 if r.ok else 1 - if getattr(args, "modules", False) or getattr(args, "nested", False): - results = pull_modules( - root, - paths=_module_paths_from_args(args), - nested=bool(getattr(args, "nested", False)), - dry_run=args.dry_run, + mode = getattr(args, "mode", None) or "ff-only" + dirty = getattr(args, "dirty", None) or "fail" + t = _git_target_flags(args) + results: list[CmdResult] = [] + if t["game"]: + r = pull(root, mode=mode, dirty=dirty, dry_run=args.dry_run) + results.append(CmdResult(r.ok, r.message, r.detail)) + if t["modules"]: + results.extend( + pull_modules( + root, + paths=_module_paths_from_args(args), + nested=False, + mode=mode, + dirty=dirty, + dry_run=args.dry_run, + ) ) - return _print_module_results(results) - r = pull(root, dry_run=args.dry_run) - print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") - if r.detail: - print(r.detail) - return 0 if r.ok else 1 + elif t["psxrecomp"]: + r = pull_psxrecomp(root, mode=mode, dirty=dirty, dry_run=args.dry_run) + results.append(CmdResult(r.ok, r.message, r.detail)) + if t["nested"]: + results.extend( + pull_modules( + root, + paths=_module_paths_from_args(args), + nested=True, + mode=mode, + dirty=dirty, + dry_run=args.dry_run, + ) + ) + if not results: + print("error: nothing to pull (pass --game / --modules / --nested)", file=sys.stderr) + return 2 + return _print_module_results(results) def cmd_git_commit(args: argparse.Namespace) -> int: - from project_studio.gitops import commit_all, commit_modules + from project_studio.gitops import CmdResult, commit_all, commit_modules root = _root_or_die(args) if root is None: return 2 - if getattr(args, "modules", False) or getattr(args, "nested", False): - results = commit_modules( - root, - args.message, - paths=_module_paths_from_args(args), - nested=bool(getattr(args, "nested", False)), - dry_run=args.dry_run, + t = _git_target_flags(args) + results: list[CmdResult] = [] + if t["game"]: + r = commit_all(root, args.message, dry_run=args.dry_run) + results.append(CmdResult(r.ok, r.message, r.detail)) + if t["modules"]: + results.extend( + commit_modules( + root, + args.message, + paths=_module_paths_from_args(args), + nested=False, + dry_run=args.dry_run, + ) ) - return _print_module_results(results) - r = commit_all(root, args.message, dry_run=args.dry_run) - print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") - if r.detail: - print(r.detail) - return 0 if r.ok else 1 + if t["nested"]: + results.extend( + commit_modules( + root, + args.message, + paths=_module_paths_from_args(args), + nested=True, + dry_run=args.dry_run, + ) + ) + if not results: + print( + "error: nothing to commit (pass --game / --modules / --nested)", + file=sys.stderr, + ) + return 2 + return _print_module_results(results) def cmd_git_push(args: argparse.Namespace) -> int: - from project_studio.gitops import push, push_modules, push_psxrecomp + from project_studio.gitops import ( + CmdResult, + default_module_paths, + push, + push_modules, + push_psxrecomp, + ) root = _root_or_die(args) if root is None: return 2 branch = (getattr(args, "branch", None) or "").strip() - if getattr(args, "psxrecomp", False): - r = push_psxrecomp(root, branch=branch, dry_run=args.dry_run) - print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") - if r.detail: - print(r.detail) - return 0 if r.ok else 1 - if getattr(args, "modules", False) or getattr(args, "nested", False): + t = _git_target_flags(args) + results: list[CmdResult] = [] + if t["game"]: + r = push(root, branch=branch, dry_run=args.dry_run) + results.append(CmdResult(r.ok, r.message, r.detail)) + if t["modules"]: paths = _module_paths_from_args(args) branch_by_path = None if branch and paths and len(paths) == 1: branch_by_path = {paths[0]: branch} elif branch and not paths: - # Apply same branch hint to all default paths (detached rescue). - nested = bool(getattr(args, "nested", False)) - from project_studio.gitops import default_module_paths - - branch_by_path = {p: branch for p in default_module_paths(nested=nested)} - results = push_modules( - root, - paths=paths, - nested=bool(getattr(args, "nested", False)), - branch_by_path=branch_by_path, - dry_run=args.dry_run, + branch_by_path = {p: branch for p in default_module_paths(nested=False)} + results.extend( + push_modules( + root, + paths=paths, + nested=False, + branch_by_path=branch_by_path, + dry_run=args.dry_run, + ) ) - return _print_module_results(results) - r = push(root, branch=branch, dry_run=args.dry_run) - print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") - if r.detail: - print(r.detail) - return 0 if r.ok else 1 + elif t["psxrecomp"]: + r = push_psxrecomp(root, branch=branch, dry_run=args.dry_run) + results.append(CmdResult(r.ok, r.message, r.detail)) + if t["nested"]: + paths = _module_paths_from_args(args) + branch_by_path = None + if branch and paths and len(paths) == 1: + branch_by_path = {paths[0]: branch} + elif branch and not paths and not t["modules"] and not t["game"]: + branch_by_path = {p: branch for p in default_module_paths(nested=True)} + results.extend( + push_modules( + root, + paths=paths, + nested=True, + branch_by_path=branch_by_path, + dry_run=args.dry_run, + ) + ) + if not results: + print( + "error: nothing to push (pass --game / --modules / --nested)", + file=sys.stderr, + ) + return 2 + return _print_module_results(results) + + +def cmd_git_bulk_release(args: argparse.Namespace) -> int: + from project_studio.bulkops import bulk_release + + repos = _bulk_repos_or_die(args) + if repos is None: + return 2 + results = bulk_release( + repos, + version=getattr(args, "version", "") or "", + bump=getattr(args, "bump", "patch") or "patch", + publish=not bool(getattr(args, "no_publish", False)), + reuse_cached_emitters=not bool( + getattr(args, "no_reuse_cached_emitters", False) + ), + dry_run=bool(getattr(args, "dry_run", False)), + skip_missing_workflow=not bool(getattr(args, "strict", False)), + ) + return _print_module_results(results) + + +def cmd_git_bulk_install_ci(args: argparse.Namespace) -> int: + from project_studio.bulkops import bulk_install_ci + + repos = _bulk_repos_or_die(args) + if repos is None: + return 2 + results = bulk_install_ci( + repos, + force=bool(getattr(args, "force", False)), + push_remote=not bool(getattr(args, "no_push", False)), + dry_run=bool(getattr(args, "dry_run", False)), + ) + return _print_module_results(results) def cmd_git_release(args: argparse.Namespace) -> int: @@ -461,6 +1325,96 @@ def cmd_git_release(args: argparse.Namespace) -> int: return 0 if r.ok else 1 +def cmd_git_install_ci(args: argparse.Namespace) -> int: + from project_studio.gitops import install_and_push_release_ci + + root = _root_or_die(args) + if root is None: + return 2 + r = install_and_push_release_ci( + root, + zip_prefix=getattr(args, "zip_prefix", "") or "", + force=bool(getattr(args, "force", False)), + push_remote=not bool(getattr(args, "no_push", False)), + dry_run=args.dry_run, + ) + print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") + if r.detail: + print(r.detail) + return 0 if r.ok else 1 + + +def cmd_build_mingw(args: argparse.Namespace) -> int: + """Linux → Windows MinGW cross-build via scripts/build_windows_mingw.sh.""" + import json + import shutil + import subprocess + + script = _TOOLKIT / "scripts" / "build_windows_mingw.sh" + if not script.is_file(): + print(f"error: missing {script}", file=sys.stderr) + return 2 + + bash = shutil.which("bash") + if not bash: + print("error: bash not found (required for MinGW cross script)", file=sys.stderr) + return 2 + + cmd: list[str] = [bash, str(script)] + if getattr(args, "root", None): + cmd += ["--root", str(Path(args.root).expanduser().resolve())] + if getattr(args, "name", None): + cmd += ["--name", args.name] + if getattr(args, "last", False) or ( + not getattr(args, "root", None) and not getattr(args, "name", None) + ): + cmd.append("--last") + if args.build_dir and args.build_dir != "build-mingw": + cmd += ["--build-dir", args.build_dir] + if getattr(args, "package_only", False): + cmd.append("--package-only") + if getattr(args, "setup_host", False): + cmd.append("--setup-host") + if getattr(args, "package", False) and not getattr(args, "package_only", False): + cmd.append("--package") + if getattr(args, "dynamic", False): + cmd.append("--dynamic") + if getattr(args, "ensure", False) and not getattr(args, "package_only", False): + cmd.append("--ensure") + if getattr(args, "jobs", 0): + cmd += ["--jobs", str(args.jobs)] + if getattr(args, "dry_run", False): + cmd.append("--dry-run") + if getattr(args, "extra", ""): + cmd += ["--extra", args.extra] + + print("+", " ".join(cmd), flush=True) + r = subprocess.run(cmd, check=False) + # Studio Bundle+Export parses the JSON trailer / MINGW_ZIP line. + root = "" + if getattr(args, "root", None): + root = str(Path(args.root).expanduser().resolve()) + zip_path = "" + if root: + dist = Path(root) / "dist" + if dist.is_dir(): + zips = sorted( + dist.glob("*-windows-x64-mingw.zip"), + key=lambda p: p.stat().st_mtime, + reverse=True, + ) + if not zips: + zips = sorted(dist.glob("*.zip"), key=lambda p: p.stat().st_mtime, reverse=True) + if zips: + zip_path = str(zips[0].resolve()) + if zip_path and r.returncode == 0: + print(f"MINGW_ZIP={zip_path}", flush=True) + print(json.dumps({"ok": True, "zip": zip_path}), flush=True) + elif getattr(args, "package_only", False) or getattr(args, "package", False): + print(json.dumps({"ok": False, "zip": "", "error": "no zip produced"}), flush=True) + return int(r.returncode) + + def cmd_build_configure(args: argparse.Namespace) -> int: import shlex @@ -478,11 +1432,67 @@ def cmd_build_configure(args: argparse.Namespace) -> int: extra_args=extra, dry_run=args.dry_run, log=print, + ensure_bios=not bool(getattr(args, "skip_bios", False)), ) print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") return 0 if r.ok else 1 +def cmd_build_ensure_bios(args: argparse.Namespace) -> int: + from project_studio.buildops import ensure_bios_backends + + root = _root_or_die(args) + if root is None: + return 2 + r = ensure_bios_backends( + root, + force=bool(getattr(args, "force", False)), + include_scph1001=not bool(getattr(args, "openbios_only", False)), + dry_run=args.dry_run, + log=print, + ) + print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") + return 0 if r.ok else 1 + + +def cmd_build_generate(args: argparse.Namespace) -> int: + from project_studio.buildops import generate_rom_and_bios + + root = _root_or_die(args) + if root is None: + return 2 + r = generate_rom_and_bios( + root, + disc=getattr(args, "disc", "") or "", + bios=getattr(args, "bios", "") or "", + force_bios=not bool(getattr(args, "no_force_bios", False)), + dry_run=args.dry_run, + log=print, + ) + print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") + if r.detail and not r.ok: + print(r.detail) + return 0 if r.ok else 1 + + +def cmd_build_ensure_emitters(args: argparse.Namespace) -> int: + from project_studio.buildops import ensure_emitters + + root = _root_or_die(args) + if root is None: + return 2 + r = ensure_emitters( + root, + force=bool(getattr(args, "force", False)), + dry_run=args.dry_run, + log=print, + ) + print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") + if r.detail and not r.ok: + print(r.detail) + return 0 if r.ok else 1 + + def cmd_build_compile(args: argparse.Namespace) -> int: from project_studio.buildops import build @@ -511,6 +1521,11 @@ def cmd_build_run(args: argparse.Namespace) -> int: if root is None: return 2 extra = shlex.split(args.args, posix=os.name != "nt") if args.args else [] + + def _log(line: str) -> None: + # Piped into Studio — must flush or activity log stalls until buffer fill. + print(line, flush=True) + r = launch( root, build_dir=args.build_dir, @@ -518,9 +1533,10 @@ def cmd_build_run(args: argparse.Namespace) -> int: env_text=args.env or "", extra_args=extra, dry_run=args.dry_run, - log=print, + log=_log, + wait=True, ) - print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") + print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}", flush=True) return 0 if r.ok else 1 @@ -528,7 +1544,7 @@ def cmd_build_stop(args: argparse.Namespace) -> int: from project_studio.buildops import stop_launch r = stop_launch() - print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}") + print(f"[{'OK' if r.ok else 'FAIL'}] {r.message}", flush=True) return 0 if r.ok else 1 @@ -580,6 +1596,8 @@ def build_parser() -> argparse.ArgumentParser: p.add_argument("--boot-exe", help="Boot EXE basename (e.g. SCUS_944.23)") p.add_argument("--players", type=int, default=2) p.add_argument("--zip-prefix", help="CI/zip prefix") + p.add_argument("--github-owner", help="GitHub owner/org for README download badges") + p.add_argument("--github-repo", help="GitHub repo name for README download badges") p.add_argument("--window-title", help="WINDOW_TITLE override") p.add_argument("--enable-netplay", action="store_true") p.add_argument("--lobby-url", default="ws://netplay.retcomm.net:8765") @@ -618,10 +1636,138 @@ def build_parser() -> argparse.ArgumentParser: p_ops = sub.add_parser("ops", help="List op ids") p_ops.set_defaults(func=cmd_ops) - p_gui = sub.add_parser("gui", help="Open Project Studio GUI") + p_gui = sub.add_parser("gui", help="Open Project Studio GUI (Dear ImGui)") p_gui.add_argument("--root", default=None, help="Optional initial game root") p_gui.set_defaults(func=cmd_gui) + p_repos = sub.add_parser("repos", help="Manage local game-repo index") + repos_sub = p_repos.add_subparsers(dest="repos_cmd", required=True) + p_rl = repos_sub.add_parser("list", help="Print index as JSON") + p_rl.add_argument("--json", action="store_true", default=True, + help="Always JSON (accepted for ImGui runner symmetry)") + p_rl.set_defaults(func=cmd_repos_list) + p_ra = repos_sub.add_parser("add", help="Add a game repo") + p_ra.add_argument("--path", required=True) + p_ra.add_argument("--name", default="") + p_ra.add_argument("--cue", default="") + p_ra.add_argument("--force", action="store_true") + p_ra.add_argument("--json", action="store_true", default=True) + p_ra.set_defaults(func=cmd_repos_add) + p_rr = repos_sub.add_parser("remove", help="Remove a game repo") + p_rr.add_argument("--path", required=True) + p_rr.add_argument("--json", action="store_true", default=True) + p_rr.set_defaults(func=cmd_repos_remove) + p_rsc = repos_sub.add_parser("set-cue", help="Set .cue for an indexed repo") + p_rsc.add_argument("--path", required=True) + p_rsc.add_argument("--cue", required=True) + p_rsc.add_argument("--json", action="store_true", default=True) + p_rsc.set_defaults(func=cmd_repos_set_cue) + p_rsl = repos_sub.add_parser("set-last", help="Remember last-selected repo") + p_rsl.add_argument("--path", required=True) + p_rsl.add_argument("--json", action="store_true", default=True) + p_rsl.set_defaults(func=cmd_repos_set_last) + p_rsf = repos_sub.add_parser("set-flags", help="Update catalog_only / bulk_jobs / log_height") + p_rsf.add_argument("--catalog-only", default=None) + p_rsf.add_argument("--bulk-jobs", default=None) + p_rsf.add_argument("--log-height", default=None) + p_rsf.add_argument("--json", action="store_true", default=True) + p_rsf.set_defaults(func=cmd_repos_set_flags) + + p_rfc = repos_sub.add_parser( + "filter-catalog", + help="List indexed repos that have a retcomm-catalog entry (JSON paths)", + ) + p_rfc.add_argument("--json", action="store_true", default=True) + p_rfc.set_defaults(func=cmd_repos_filter_catalog) + + p_rfcc = repos_sub.add_parser( + "filter-catalog-contributors", + help="Catalog-backed indexed repos with WRITE+ for the current gh user", + ) + p_rfcc.add_argument("--json", action="store_true", default=True) + p_rfcc.set_defaults(func=cmd_repos_filter_catalog_contributors) + + p_upd = sub.add_parser("updates", help="Studio + toolchain updates") + upd_sub = p_upd.add_subparsers(dest="updates_cmd", required=True) + p_uc = upd_sub.add_parser("check", help="Check for updates") + p_uc.add_argument("--json", action="store_true") + p_uc.add_argument( + "--startup", + action="store_true", + help="Honor check_updates_on_startup from studio/hub config (skip when false)", + ) + p_uc.set_defaults(func=cmd_updates_check) + p_ua = upd_sub.add_parser("apply", help="Apply available updates") + p_ua.add_argument("--studio-only", action="store_true") + p_ua.add_argument("--toolchain-only", action="store_true") + p_ua.set_defaults(func=cmd_updates_apply) + p_uet = upd_sub.add_parser( + "ensure-toolchain", + help="Install cmake-clang-v1 if missing (github.com downloads, no API listing)", + ) + p_uet.set_defaults(func=cmd_updates_ensure_toolchain) + + p_np = sub.add_parser( + "new-project", + help="Run setup_project.sh/.ps1 (OS-routed) then index the new repo", + ) + p_np.add_argument("--name", required=True, help="Project folder / display name") + p_np.add_argument("--disc", required=True, help="Redump .cue path") + p_np.add_argument( + "--dir", + default=".", + help="Parent directory for the new repo (default: .)", + ) + p_np.add_argument("--bios", default="", help="Optional SCPH1001.BIN") + p_np.add_argument("--boot-exe", default="") + p_np.add_argument("--players", type=int, default=2) + p_np.add_argument("--zip-prefix", default="") + p_np.add_argument("--github-owner", default="") + p_np.add_argument("--github-repo", default="") + p_np.add_argument("--description", default="") + p_np.add_argument("--publisher", default="") + p_np.add_argument("--year", default="") + p_np.add_argument("--region", default="USA") + p_np.add_argument("--lobby-url", default="netplay.retcomm.net") + p_np.add_argument("--no-recomp-ui", action="store_true") + p_np.add_argument("--no-wizard", action="store_true") + p_np.add_argument("--enable-netplay", action="store_true") + p_np.add_argument("--no-ci", action="store_true") + p_np.add_argument("--no-fetch-boxart", action="store_true") + p_np.add_argument("--stage-disc", action="store_true") + p_np.add_argument("--generate", action="store_true") + p_np.add_argument("--enable-build", action="store_true") + p_np.add_argument("--create-github", action="store_true") + p_np.add_argument( + "--github-visibility", + choices=("private", "public", "internal"), + default="private", + ) + p_np.add_argument("--psxrecomp-ref", default="master") + p_np.add_argument("--recomp-ui-ref", default="master") + p_np.add_argument("--recomp-net-ref", default="") + p_np.add_argument("--rbengine-ref", default="") + p_np.add_argument("--dry-run", action="store_true") + p_np.add_argument( + "--autofill-meta", + action="store_true", + help="Fill empty players/description/publisher/year/region from disc digests", + ) + p_np.set_defaults(func=cmd_new_project) + + p_meta = sub.add_parser( + "lookup-disc-meta", + help="Lookup players/description/publisher/year/region from disc digests", + ) + p_meta.add_argument("--disc", default="", help="Redump .cue to probe") + p_meta.add_argument("--crc32", default="") + p_meta.add_argument("--md5", default="") + p_meta.add_argument("--sha1", default="") + p_meta.add_argument("--serial", default="") + p_meta.add_argument("--force-refresh", action="store_true") + p_meta.add_argument("--json", action="store_true") + p_meta.set_defaults(func=cmd_lookup_disc_meta) + # --- git / GitHub --- p_git = sub.add_parser("git", help="Git / GitHub ops on a game repo") git_sub = p_git.add_subparsers(dest="git_cmd", required=True) @@ -635,6 +1781,23 @@ def build_parser() -> argparse.ArgumentParser: p_gs.add_argument("--json", action="store_true") p_gs.set_defaults(func=cmd_git_status) + p_gbrs = git_sub.add_parser( + "branches", + help="List game/module branch names (JSON) for Studio dropdowns", + ) + p_gbrs.add_argument( + "--root", + default="", + help="Game repo root (omit to ls-remote default module URLs)", + ) + p_gbrs.add_argument( + "--fetch", + action="store_true", + help="git fetch --prune before listing local checkouts", + ) + p_gbrs.add_argument("--json", action="store_true", default=True) + p_gbrs.set_defaults(func=cmd_git_branches) + p_ge = git_sub.add_parser("ensure-submodules", help="Add psxrecomp + recomp-ui") add_git_root(p_ge) p_ge.add_argument("--psxrecomp-branch", default="master") @@ -652,13 +1815,13 @@ def build_parser() -> argparse.ArgumentParser: p_gb = git_sub.add_parser( "set-branch", - help="Set game branch (checkout) or submodule tracking branch", + help="Switch game branch (git switch) or set submodule tracking in .gitmodules", ) add_git_root(p_gb) p_gb.add_argument("--branch", required=True) p_gb.add_argument( "--submodule", - help="Submodule path (e.g. psxrecomp). Omit to checkout game branch.", + help="Submodule path (e.g. psxrecomp). Omit to switch the game working tree.", ) p_gb.add_argument( "--nested", @@ -668,10 +1831,82 @@ def build_parser() -> argparse.ArgumentParser: p_gb.add_argument( "--create", action="store_true", - help="Create/reset game branch (-B) when not using --submodule", + help="Create the game branch (-c) if it does not exist", ) p_gb.set_defaults(func=cmd_git_set_branch) + p_gsw = git_sub.add_parser( + "switch", + help="git switch on game / --modules / --nested (combinable)", + ) + add_git_root(p_gsw) + p_gsw.add_argument( + "--branch", + default="", + help="Game-root branch (with --game / default). " + "With --modules/--nested alone, omit to use each .gitmodules tracking branch.", + ) + p_gsw.add_argument( + "--game", + action="store_true", + help="Switch the game repo root (default when no other target flags)", + ) + p_gsw.add_argument( + "--modules", + action="store_true", + help="Switch game submodules (psxrecomp, recomp-ui)", + ) + p_gsw.add_argument( + "--nested", + action="store_true", + help="Switch nested libs inside psxrecomp (recomp-net, rbengine)", + ) + p_gsw.add_argument( + "--psxrecomp", + action="store_true", + help="Switch the psxrecomp checkout itself", + ) + p_gsw.add_argument( + "--psxrecomp-branch", + default="", + help="psxrecomp branch (with --modules or --psxrecomp)", + ) + p_gsw.add_argument( + "--ui-branch", + default="", + help="recomp-ui branch (with --modules)", + ) + p_gsw.add_argument( + "--net-branch", + default="", + help="lib/recomp-net branch (with --nested)", + ) + p_gsw.add_argument( + "--rb-branch", + default="", + help="lib/retcomm-rbengine branch (with --nested)", + ) + p_gsw.add_argument( + "--submodule", + default="", + help="Single module path (with --nested if inside psxrecomp)", + ) + p_gsw.add_argument( + "--paths", + help="Comma-separated module paths (defaults depend on --modules/--nested)", + ) + p_gsw.add_argument( + "--create", + action="store_true", + help="Create the branch (-c) if it does not exist locally or remotely", + ) + p_gsw.add_argument( + "--no-track", + action="store_true", + help="Do not update .gitmodules branch= when switching modules", + ) + p_gsw.set_defaults(func=cmd_git_switch) + p_gu = git_sub.add_parser("update-submodules", help="git submodule update") add_git_root(p_gu) p_gu.add_argument( @@ -706,9 +1941,14 @@ def build_parser() -> argparse.ArgumentParser: p_gpull = git_sub.add_parser( "pull", - help="git pull --ff-only (game root, --modules, --nested, or --psxrecomp)", + help="git pull (game / --modules / --nested; combinable)", ) add_git_root(p_gpull) + p_gpull.add_argument( + "--game", + action="store_true", + help="Pull the game repo root (default when no other target flags)", + ) p_gpull.add_argument( "--modules", action="store_true", @@ -728,14 +1968,33 @@ def build_parser() -> argparse.ArgumentParser: "--paths", help="Comma-separated module paths (defaults depend on --modules/--nested)", ) + p_gpull.add_argument( + "--mode", + choices=("ff-only", "rebase", "merge", "reset"), + default="ff-only", + help="ff-only (default), rebase, merge (--no-rebase), or reset " + "(fetch + reset --hard upstream = match origin)", + ) + p_gpull.add_argument( + "--dirty", + choices=("fail", "stash", "discard"), + default="fail", + help="If working tree dirty: fail (default), stash, or discard " + "(reset --hard HEAD). Ignored for --mode reset.", + ) p_gpull.set_defaults(func=cmd_git_pull) p_gc = git_sub.add_parser( "commit", - help="git add -A && git commit (game root, --modules, or --nested)", + help="git add -A && git commit (game / --modules / --nested; combinable)", ) add_git_root(p_gc) p_gc.add_argument("-m", "--message", required=True) + p_gc.add_argument( + "--game", + action="store_true", + help="Commit the game repo root (default when no other target flags)", + ) p_gc.add_argument( "--modules", action="store_true", @@ -754,9 +2013,14 @@ def build_parser() -> argparse.ArgumentParser: p_gpush = git_sub.add_parser( "push", - help="git push -u origin HEAD (game root, --modules, --nested, or --psxrecomp)", + help="git push -u origin HEAD (game / --modules / --nested; combinable)", ) add_git_root(p_gpush) + p_gpush.add_argument( + "--game", + action="store_true", + help="Push the game repo root (default when no other target flags)", + ) p_gpush.add_argument( "--modules", action="store_true", @@ -783,6 +2047,157 @@ def build_parser() -> argparse.ArgumentParser: ) p_gpush.set_defaults(func=cmd_git_push) + def add_bulk_select(p: argparse.ArgumentParser) -> None: + p.add_argument( + "--select", + default="", + help="Comma-separated name/path filters (default: all indexed repos)", + ) + p.add_argument("--dry-run", action="store_true") + + def add_bulk_targets(p: argparse.ArgumentParser) -> None: + p.add_argument( + "--game", + action="store_true", + help="Operate on game repo root (default if no target flags)", + ) + p.add_argument( + "--modules", + action="store_true", + help="Operate on psxrecomp + recomp-ui", + ) + p.add_argument( + "--psxrecomp", + action="store_true", + help="Operate on the psxrecomp checkout", + ) + p.add_argument( + "--nested", + action="store_true", + help="Operate on nested libs (recomp-net, rbengine)", + ) + + p_gbs = git_sub.add_parser( + "bulk-status", + help="Status for indexed repos (project_studio_repos.json)", + ) + add_bulk_select(p_gbs) + p_gbs.set_defaults(func=cmd_git_bulk_status) + + p_gbp = git_sub.add_parser( + "bulk-pull", + help="Pull indexed repos (see --mode / --dirty / targets)", + ) + add_bulk_select(p_gbp) + add_bulk_targets(p_gbp) + p_gbp.add_argument( + "--mode", + choices=("ff-only", "rebase", "merge", "reset"), + default="ff-only", + ) + p_gbp.add_argument( + "--dirty", + choices=("fail", "stash", "discard"), + default="fail", + ) + p_gbp.set_defaults(func=cmd_git_bulk_pull) + + p_gbpush = git_sub.add_parser( + "bulk-push", + help="Push indexed repos (game / modules / psxrecomp / nested)", + ) + add_bulk_select(p_gbpush) + add_bulk_targets(p_gbpush) + p_gbpush.set_defaults(func=cmd_git_bulk_push) + + p_gbc = git_sub.add_parser( + "bulk-commit", + help="Commit indexed repos (game / modules / nested)", + ) + add_bulk_select(p_gbc) + add_bulk_targets(p_gbc) + p_gbc.add_argument("-m", "--message", required=True) + p_gbc.set_defaults(func=cmd_git_bulk_commit) + + p_gbsw = git_sub.add_parser( + "bulk-switch", + help="git switch submodule / nested / game branches on indexed repos", + ) + add_bulk_select(p_gbsw) + add_bulk_targets(p_gbsw) + p_gbsw.add_argument( + "--branch", + default="", + help="Game-root branch (with --game)", + ) + p_gbsw.add_argument( + "--psxrecomp-branch", + default="", + help="psxrecomp branch (with --modules or --psxrecomp)", + ) + p_gbsw.add_argument( + "--ui-branch", + default="", + help="recomp-ui branch (with --modules)", + ) + p_gbsw.add_argument( + "--net-branch", + default="", + help="lib/recomp-net branch (with --nested)", + ) + p_gbsw.add_argument( + "--rb-branch", + default="", + help="lib/retcomm-rbengine branch (with --nested)", + ) + p_gbsw.add_argument( + "--create", + action="store_true", + help="Create the branch (-c) if missing", + ) + p_gbsw.add_argument( + "--no-track", + action="store_true", + help="Do not update .gitmodules branch= tracking", + ) + p_gbsw.set_defaults(func=cmd_git_bulk_switch) + + + p_gbr = git_sub.add_parser( + "bulk-release", + help="Dispatch release.yml on selected indexed repos (gh workflow run)", + ) + add_bulk_select(p_gbr) + p_gbr.add_argument("--version", default="", help="Empty = auto-bump per repo") + p_gbr.add_argument( + "--bump", choices=("patch", "minor", "major"), default="patch" + ) + p_gbr.add_argument("--no-publish", action="store_true") + p_gbr.add_argument("--no-reuse-cached-emitters", action="store_true") + p_gbr.add_argument( + "--strict", + action="store_true", + help="Fail hard when release.yml is missing (default: skip)", + ) + p_gbr.set_defaults(func=cmd_git_bulk_release) + + p_gbci = git_sub.add_parser( + "bulk-install-ci", + help="Install/push setup-host release.yml on selected indexed repos", + ) + add_bulk_select(p_gbci) + p_gbci.add_argument( + "--force", + action="store_true", + help="Overwrite an already-filled release.yml", + ) + p_gbci.add_argument( + "--no-push", + action="store_true", + help="Commit locally only (do not push)", + ) + p_gbci.set_defaults(func=cmd_git_bulk_install_ci) + p_gr = git_sub.add_parser("release", help="gh workflow run release.yml") add_git_root(p_gr) p_gr.add_argument("--version", default="", help="Empty = auto-bump") @@ -793,6 +2208,24 @@ def build_parser() -> argparse.ArgumentParser: p_gr.add_argument("--no-reuse-cached-emitters", action="store_true") p_gr.set_defaults(func=cmd_git_release) + p_gci = git_sub.add_parser( + "install-ci", + help="Write psxrecomp setup-release.yml, commit, and push", + ) + add_git_root(p_gci) + p_gci.add_argument("--zip-prefix", default="", help="CI asset zip prefix") + p_gci.add_argument( + "--force", + action="store_true", + help="Overwrite an already-filled release.yml", + ) + p_gci.add_argument( + "--no-push", + action="store_true", + help="Commit locally only (do not push)", + ) + p_gci.set_defaults(func=cmd_git_install_ci) + # --- local cmake build / launch --- p_build = sub.add_parser("build", help="Local CMake configure / build / launch") build_sub = p_build.add_subparsers(dest="build_cmd", required=True) @@ -802,13 +2235,119 @@ def build_parser() -> argparse.ArgumentParser: p.add_argument("--dry-run", action="store_true") p.add_argument("--build-dir", default="build-release") + p_bm = build_sub.add_parser( + "mingw", + help="Linux→Windows MinGW cross-build (local testing; no GitHub CI)", + ) + p_bm.add_argument( + "--root", + default="", + help="Game repository root (default: Studio index --last / --name)", + ) + p_bm.add_argument( + "--name", + default="", + help="Match a Studio-indexed title by name (substring)", + ) + p_bm.add_argument( + "--last", + action="store_true", + help="Use Studio index 'last' project (default when --root/--name omitted)", + ) + p_bm.add_argument("--build-dir", default="build-mingw") + p_bm.add_argument( + "--setup-host", + action="store_true", + help="CI-parity setup-host configure (FORCE_SETUP_HOST + wizard)", + ) + p_bm.add_argument( + "--package", + action="store_true", + help="Run scripts/package_setup_release.sh after build", + ) + p_bm.add_argument( + "--package-only", + action="store_true", + help="Skip configure/build; package existing MinGW build dir into dist/*.zip", + ) + p_bm.add_argument( + "--dynamic", + action="store_true", + help="PSX_STATIC_RUNTIME=OFF (ship SDL2/libgcc DLLs)", + ) + p_bm.add_argument( + "--ensure", + action="store_true", + help="Host ensure-emitters / ensure-bios / generate before cross-build", + ) + p_bm.add_argument("--jobs", type=int, default=0) + p_bm.add_argument("--extra", default="", help="Extra cmake -D args (one shell string)") + p_bm.add_argument("--dry-run", action="store_true") + p_bm.set_defaults(func=cmd_build_mingw) + p_bc = build_sub.add_parser("configure", help="cmake -S . -B ") add_build_root(p_bc) p_bc.add_argument("--build-type", default="Release") p_bc.add_argument("--generator", default=None, help="Empty = auto") p_bc.add_argument("--extra", default="", help="Extra cmake args (shell-quoted)") + p_bc.add_argument( + "--skip-bios", + action="store_true", + help="Do not auto-regen missing OpenBIOS before cmake", + ) p_bc.set_defaults(func=cmd_build_configure) + p_beb = build_sub.add_parser( + "ensure-bios", + help="Regen OpenBIOS (+ SCPH1001 if dump present) under psxrecomp/generated", + ) + add_build_root(p_beb) + p_beb.add_argument( + "--force", + action="store_true", + help="Regen even when generated backends already exist", + ) + p_beb.add_argument( + "--openbios-only", + action="store_true", + help="Skip SCPH1001 even if bios/SCPH1001.BIN exists", + ) + p_beb.set_defaults(func=cmd_build_ensure_bios) + + p_bg = build_sub.add_parser( + "generate", + help="psxrecomp_cli generate: BIOS backends + disc prepare + game C", + ) + add_build_root(p_bg) + p_bg.add_argument( + "--disc", + default="", + help="Source .cue (default: game.toml game.disc / indexed cue)", + ) + p_bg.add_argument( + "--bios", + default="", + help="Optional retail SCPH1001.BIN (omit for OpenBIOS only)", + ) + p_bg.add_argument( + "--no-force-bios", + action="store_true", + help="Skip BIOS regen when backends already exist", + ) + p_bg.set_defaults(func=cmd_build_generate) + + p_bee = build_sub.add_parser( + "ensure-emitters", + help="Build psxrecomp-game + psxrecomp-bios (psxrecomp_cli ensure-emitters)", + ) + add_build_root(p_bee) + p_bee.add_argument( + "--force", + action="store_true", + help="Rebuild even if emitter binaries already exist", + ) + p_bee.set_defaults(func=cmd_build_ensure_emitters) + p_bb = build_sub.add_parser("compile", help="cmake --build (alias: build)") add_build_root(p_bb) p_bb.add_argument("--target", default="psx-runtime") diff --git a/tools/new_project_layout/project_studio/detect.py b/tools/new_project_layout/project_studio/detect.py index 7db869ba..b60c0070 100644 --- a/tools/new_project_layout/project_studio/detect.py +++ b/tools/new_project_layout/project_studio/detect.py @@ -14,6 +14,13 @@ from .models import ( Severity, ) from .naming import boot_exe_from_game_toml, infer_project_name +from .readme_metrics import ( + boxart_png_present, + readme_has_boxart, + readme_has_launcher, + readme_has_metrics, + readme_has_raid, +) def _read(path: Path) -> str: @@ -749,6 +756,47 @@ def audit_project(root: Path) -> AuditReport: ) ) + # README download badges + boxart + RetComM Launcher (idempotent migrate op) + readme_path = root / "README.md" + readme_text = _read(readme_path) if readme_path.is_file() else "" + missing_readme: list[str] = [] + if not readme_path.is_file(): + missing_readme.append("README.md") + else: + if not readme_has_metrics(readme_text): + missing_readme.append("download badges") + if not readme_has_boxart(readme_text): + missing_readme.append("libretro boxart") + if not readme_has_launcher(readme_text): + missing_readme.append("RetComM Launcher section") + if not readme_has_raid(readme_text): + missing_readme.append("R.A.I.D. Discord footer") + if not (root / ".github" / "raid-discord.png").is_file(): + missing_readme.append(".github/raid-discord.png") + if not boxart_png_present(root): + missing_readme.append("launcher_assets/img/boxart.png") + if missing_readme: + checks.append( + CheckResult( + id="readme_metrics", + title="README download metrics / launcher / RAID / boxart", + status=CheckStatus.WARN, + severity=Severity.RECOMMENDED, + detail="Missing: " + ", ".join(missing_readme), + fix_op="patch_readme_metrics", + ) + ) + else: + checks.append( + CheckResult( + id="readme_metrics", + title="README download metrics / launcher / RAID / boxart", + status=CheckStatus.PASS, + severity=Severity.RECOMMENDED, + detail="Download badges, boxart, RetComM Launcher, and R.A.I.D. footer present.", + ) + ) + # Classify layout fails = {c.id for c in checks if c.status == CheckStatus.FAIL} rec_warns = [ diff --git a/tools/new_project_layout/project_studio/models.py b/tools/new_project_layout/project_studio/models.py index 640dbe44..94ad8eb1 100644 --- a/tools/new_project_layout/project_studio/models.py +++ b/tools/new_project_layout/project_studio/models.py @@ -83,6 +83,8 @@ class MigrateOptions: boot_exe: str | None = None players: int = 2 zip_prefix: str | None = None + github_owner: str | None = None + github_repo: str | None = None window_title: str | None = None enable_recomp_ui: bool = True enable_wizard: bool = True diff --git a/tools/new_project_layout/project_studio/naming.py b/tools/new_project_layout/project_studio/naming.py index 0921d3d1..a5e2a0e5 100644 --- a/tools/new_project_layout/project_studio/naming.py +++ b/tools/new_project_layout/project_studio/naming.py @@ -5,7 +5,7 @@ from __future__ import annotations import re from pathlib import Path -from fill_tokens import derive_zip_prefix +from fill_tokens import derive_zip_prefix, sanitize_github_name DEFAULT_LOBBY_HOST = "netplay.retcomm.net" @@ -220,6 +220,8 @@ def build_token_map( enable_wizard: bool = True, enable_netplay: bool = False, has_boxart: bool = False, + github_owner: str | None = None, + github_repo: str | None = None, ) -> dict[str, str]: cmake_name = project_cmake_name(name) title = window_title or window_title_from_name(name) @@ -294,6 +296,10 @@ def build_token_map( "ENV_PREFIX": env_prefix(cmake_name), "EXE_BASENAME": exe_basename(title), "ZIP_PREFIX": zp, + "GITHUB_OWNER": sanitize_github_name( + (github_owner or "").strip() or "TechnicallyComputers" + ), + "GITHUB_REPO": sanitize_github_name((github_repo or "").strip() or name), "DISC_HINT": f"your legally owned {game} disc", "GAME_TITLE": title, "PLAYERS": str(players), diff --git a/tools/new_project_layout/project_studio/newproject.py b/tools/new_project_layout/project_studio/newproject.py new file mode 100644 index 00000000..15315d3b --- /dev/null +++ b/tools/new_project_layout/project_studio/newproject.py @@ -0,0 +1,374 @@ +"""New-project wizard: drive setup_project.sh / .ps1 non-interactively.""" + +from __future__ import annotations + +import os +import platform +import shutil +import subprocess +import threading +from collections.abc import Callable +from dataclasses import dataclass +from pathlib import Path + +from .gitops import CmdResult, switch_modules +from .paths import toolkit_dir + + +@dataclass +class NewProjectOptions: + """Mirrors setup_project.sh / setup_project.ps1 CLI flags.""" + + name: str = "" + disc: str = "" + parent_dir: str = "" + bios: str = "" + boot_exe: str = "" + players: int = 2 + zip_prefix: str = "" + github_owner: str = "" + github_repo: str = "" + description: str = "" + publisher: str = "" + year: str = "" + region: str = "USA" + + enable_recomp_ui: bool = True + enable_wizard: bool = True + # GUI defaults: all on except GitHub; netplay follows players (≥2). + enable_netplay: bool = False + lobby_url: str = "netplay.retcomm.net" + enable_ci: bool = True + fetch_boxart: bool = True + stage_disc: bool = True + do_generate: bool = True + do_build: bool = True + create_github: bool = False + github_visibility: str = "private" # public | private | internal + + psxrecomp_ref: str = "master" + recomp_ui_ref: str = "master" + recomp_net_ref: str = "" # empty = keep psxrecomp pin + rbengine_ref: str = "" # post-setup switch only (script has no flag) + + dry_run: bool = False + + +def setup_script_paths() -> tuple[Path, Path]: + """Return (setup_project.sh, setup_project.ps1) under the toolkit.""" + base = toolkit_dir() + return base / "setup_project.sh", base / "setup_project.ps1" + + +def is_windows() -> bool: + return platform.system().lower().startswith("win") or os.name == "nt" + + +def project_folder_name(opts: NewProjectOptions) -> str: + """Checkout folder = GitHub/catalog install_dir slug (not display name with spaces).""" + from fill_tokens import install_dir_name, sanitize_github_name + + repo = (opts.github_repo or "").strip() + if repo: + return sanitize_github_name(repo) + return install_dir_name(opts.name or "") + + +def project_root_for(opts: NewProjectOptions) -> Path: + parent = Path(opts.parent_dir or ".").expanduser() + if not parent.is_absolute(): + parent = parent.resolve() + else: + parent = parent.resolve() + folder = project_folder_name(opts) + if not folder: + folder = (opts.name or "").strip() or "repo" + return (parent / folder).resolve() + + +def validate_options(opts: NewProjectOptions) -> list[str]: + errs: list[str] = [] + name = (opts.name or "").strip() + disc = (opts.disc or "").strip() + if not name: + errs.append("Project name is required") + if not disc: + errs.append("Disc .cue path is required") + else: + p = Path(disc).expanduser() + if not p.is_file(): + errs.append(f"Disc not found: {disc}") + if opts.bios: + bp = Path(opts.bios).expanduser() + if not bp.is_file(): + errs.append(f"BIOS not found: {opts.bios}") + if opts.players < 1 or opts.players > 8: + errs.append("Players must be 1–8") + if opts.do_build and not opts.do_generate: + errs.append("Build requires Generate") + # Wizard/netplay without UI (and 1P netplay) are auto-corrected at run time. + vis = (opts.github_visibility or "private").strip().lower() + if vis not in ("public", "private", "internal"): + errs.append("GitHub visibility must be public/private/internal") + dest = project_root_for(opts) + if dest.exists(): + if dest.is_file() or (dest.is_dir() and any(dest.iterdir())): + errs.append(f"Destination already exists: {dest}") + return errs + + +def build_command(opts: NewProjectOptions) -> tuple[list[str], dict[str, str]]: + """Build argv + env for the OS-appropriate setup script. + + Always passes ``--yes`` / ``-Yes`` so the GUI/CLI supply every choice. + """ + sh, ps1 = setup_script_paths() + env = os.environ.copy() + env["PSXRECOMP_SETUP_YES"] = "1" + if (opts.recomp_net_ref or "").strip(): + env["RECOMP_NET_REF"] = opts.recomp_net_ref.strip() + + if is_windows(): + if not ps1.is_file(): + raise FileNotFoundError(f"Missing setup script: {ps1}") + powershell = ( + shutil.which("pwsh") + or shutil.which("powershell") + or "powershell" + ) + cmd: list[str] = [ + powershell, + "-NoProfile", + "-ExecutionPolicy", + "Bypass", + "-File", + str(ps1), + "-Disc", + str(Path(opts.disc).expanduser().resolve()), + "-Name", + opts.name.strip(), + "-Yes", + "-Players", + str(int(opts.players)), + "-PsxrecompRef", + (opts.psxrecomp_ref or "master").strip(), + "-RecompUiRef", + (opts.recomp_ui_ref or "master").strip(), + "-GithubVisibility", + (opts.github_visibility or "private").strip().lower(), + ] + parent = (opts.parent_dir or ".").strip() or "." + cmd.extend(["-Dir", str(Path(parent).expanduser().resolve())]) + if opts.bios: + cmd.extend(["-Bios", str(Path(opts.bios).expanduser().resolve())]) + if opts.boot_exe: + cmd.extend(["-BootExe", opts.boot_exe.strip()]) + if opts.zip_prefix: + cmd.extend(["-ZipPrefix", opts.zip_prefix.strip()]) + if opts.github_owner: + cmd.extend(["-GithubOwner", opts.github_owner.strip()]) + if opts.github_repo: + cmd.extend(["-GithubRepo", opts.github_repo.strip()]) + if opts.description: + cmd.extend(["-Description", opts.description.strip()]) + if opts.publisher: + cmd.extend(["-Publisher", opts.publisher.strip()]) + if opts.year: + cmd.extend(["-Year", opts.year.strip()]) + if opts.region: + cmd.extend(["-Region", opts.region.strip()]) + if opts.lobby_url: + cmd.extend(["-LobbyUrl", opts.lobby_url.strip()]) + + def sw(yes: bool, on: str, off: str) -> None: + cmd.append(on if yes else off) + + sw(opts.enable_recomp_ui, "-EnableRecompUi", "-NoRecompUi") + sw(opts.enable_wizard, "-EnableWizard", "-NoWizard") + sw(opts.enable_netplay, "-EnableNetplay", "-NoNetplay") + sw(opts.enable_ci, "-EnableCi", "-NoCi") + sw(opts.fetch_boxart, "-FetchBoxart", "-NoFetchBoxart") + sw(opts.do_generate, "-Generate", "-NoGenerate") + sw(opts.do_build, "-EnableBuild", "-NoBuild") + sw(opts.create_github, "-CreateGithub", "-NoGithub") + if opts.stage_disc: + cmd.append("-StageDisc") + return cmd, env + + if not sh.is_file(): + raise FileNotFoundError(f"Missing setup script: {sh}") + cmd = [ + "sh", + str(sh), + "--yes", + "--disc", + str(Path(opts.disc).expanduser().resolve()), + "--name", + opts.name.strip(), + "--players", + str(int(opts.players)), + "--psxrecomp-ref", + (opts.psxrecomp_ref or "master").strip(), + "--recomp-ui-ref", + (opts.recomp_ui_ref or "master").strip(), + "--github-visibility", + (opts.github_visibility or "private").strip().lower(), + ] + parent = (opts.parent_dir or ".").strip() or "." + cmd.extend(["--dir", str(Path(parent).expanduser().resolve())]) + if opts.bios: + cmd.extend(["--bios", str(Path(opts.bios).expanduser().resolve())]) + if opts.boot_exe: + cmd.extend(["--boot-exe", opts.boot_exe.strip()]) + if opts.zip_prefix: + cmd.extend(["--zip-prefix", opts.zip_prefix.strip()]) + if opts.github_owner: + cmd.extend(["--github-owner", opts.github_owner.strip()]) + if opts.github_repo: + cmd.extend(["--github-repo", opts.github_repo.strip()]) + if opts.description: + cmd.extend(["--description", opts.description.strip()]) + if opts.publisher: + cmd.extend(["--publisher", opts.publisher.strip()]) + if opts.year: + cmd.extend(["--year", opts.year.strip()]) + if opts.region: + cmd.extend(["--region", opts.region.strip()]) + if opts.lobby_url: + cmd.extend(["--lobby-url", opts.lobby_url.strip()]) + if (opts.recomp_net_ref or "").strip(): + cmd.extend(["--recomp-net-ref", opts.recomp_net_ref.strip()]) + + def flag(yes: bool, on: str, off: str) -> None: + cmd.append(on if yes else off) + + flag(opts.enable_recomp_ui, "--enable-recomp-ui", "--no-recomp-ui") + flag(opts.enable_wizard, "--enable-wizard", "--no-wizard") + flag(opts.enable_netplay, "--enable-netplay", "--no-netplay") + flag(opts.enable_ci, "--enable-ci", "--no-ci") + flag(opts.fetch_boxart, "--fetch-boxart", "--no-fetch-boxart") + flag(opts.do_generate, "--generate", "--no-generate") + flag(opts.do_build, "--enable-build", "--no-build") + flag(opts.create_github, "--create-github", "--no-github") + cmd.append("--stage-disc" if opts.stage_disc else "--no-stage-disc") + return cmd, env + + +def run_new_project( + opts: NewProjectOptions, + *, + on_line: Callable[[str], None] | None = None, + cancel_event: threading.Event | None = None, +) -> CmdResult: + """Run setup_project end-to-end; stream lines via ``on_line``.""" + errs = validate_options(opts) + if errs: + return CmdResult(False, "Invalid new-project options", "\n".join(errs)) + + # Match script policy: no UI ⇒ no wizard/netplay; 1P ⇒ no netplay. + if not opts.enable_recomp_ui: + opts.enable_wizard = False + opts.enable_netplay = False + if opts.players < 2: + opts.enable_netplay = False + + try: + cmd, env = build_command(opts) + except FileNotFoundError as exc: + return CmdResult(False, str(exc)) + + if opts.dry_run: + preview = " ".join(cmd) + if on_line: + on_line(f"[dry-run] {preview}") + return CmdResult(True, "dry-run: would run setup_project", preview) + + if on_line: + on_line(f"$ {' '.join(cmd)}") + + try: + proc = subprocess.Popen( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + encoding="utf-8", + errors="replace", + env=env, + cwd=str(Path(opts.parent_dir or ".").expanduser().resolve()), + ) + except OSError as exc: + return CmdResult(False, f"Failed to start setup: {exc}") + + assert proc.stdout is not None + for line in proc.stdout: + if cancel_event is not None and cancel_event.is_set(): + proc.terminate() + return CmdResult(False, "New project cancelled") + text = line.rstrip("\n") + if on_line: + on_line(text) + code = proc.wait() + root = project_root_for(opts) + if code != 0: + return CmdResult( + False, + f"setup_project failed (exit {code})", + str(root), + ) + + # Optional nested rbengine (and net on Windows, where script has no ref flag) + post_notes: list[str] = [] + if root.is_dir(): + nested_branches: dict[str, str] = {} + net = (opts.recomp_net_ref or "").strip() + rb = (opts.rbengine_ref or "").strip() + if net and is_windows(): + nested_branches["lib/recomp-net"] = net + if rb: + nested_branches["lib/retcomm-rbengine"] = rb + if nested_branches: + if on_line: + on_line("== Post-setup nested lib branch switch ==") + for r in switch_modules( + root, + nested=True, + branch_by_path=nested_branches, + paths=list(nested_branches.keys()), + set_tracking=True, + dry_run=False, + ): + post_notes.append(r.message) + if on_line: + on_line(f" [{'OK' if r.ok else 'FAIL'}] {r.message}") + + detail = str(root) + if post_notes: + detail += "\n" + "\n".join(post_notes) + return CmdResult(True, f"Created project at {root}", detail) + + +def index_new_project( + root: Path, + *, + name: str = "", + cue: str = "", +) -> CmdResult: + """Add/update the Studio repo index for a freshly created project.""" + from .bulkops import ( + catalog_title_id_for_root, + upsert_studio_toml_title, + ) + from .repo_index import add_repo, load_index + + if not root.is_dir(): + return CmdResult(False, f"Project root missing: {root}") + idx = load_index() + entry = add_repo(idx, root, name=name or root.name, cue=cue) + notes: list[str] = [entry.path] + tid = catalog_title_id_for_root(root) + if tid: + note = upsert_studio_toml_title(tid, root) + if note: + notes.append(note) + return CmdResult(True, f"Indexed {entry.label()}", "\n".join(notes)) diff --git a/tools/new_project_layout/project_studio/ops.py b/tools/new_project_layout/project_studio/ops.py index 2fa1e2a5..54d5a675 100644 --- a/tools/new_project_layout/project_studio/ops.py +++ b/tools/new_project_layout/project_studio/ops.py @@ -2,6 +2,7 @@ from __future__ import annotations +import json import re import shutil import subprocess @@ -15,6 +16,7 @@ from .naming import ( boot_exe_from_game_toml, build_token_map, entry_pc_from_game_toml, + game_name_from_project, infer_project_name, normalize_lobby_url, players_from_cmake, @@ -221,6 +223,8 @@ def _resolve_tokens(root: Path, options: MigrateOptions) -> dict[str, str]: enable_wizard=options.enable_wizard if options.enable_recomp_ui else False, enable_netplay=enable_netplay if options.enable_recomp_ui else False, has_boxart=has_boxart, + github_owner=options.github_owner, + github_repo=options.github_repo, ) @@ -1080,6 +1084,136 @@ def op_record_framework_pins(root: Path, options: MigrateOptions) -> ApplyResult ) +def _boxart_hints(root: Path, options: MigrateOptions) -> tuple[str, str]: + cue = "" + display = "" + if options.disc: + cue = Path(options.disc).name + cat = root / "catalog_identity.json" + if cat.is_file(): + try: + data = json.loads(cat.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError): + data = {} + if isinstance(data, dict): + rom = data.get("rom_identity") if isinstance(data.get("rom_identity"), dict) else {} + cue = cue or str(rom.get("cue_name") or "") + game = data.get("game") if isinstance(data.get("game"), dict) else {} + display = str(game.get("name") or "") + name = options.project_name or infer_project_name(root) + display = options.window_title or display or game_name_from_project(name) + return cue, display + + +def _ensure_boxart_png(root: Path, options: MigrateOptions) -> list[str]: + """Fetch libretro boxart PNG/TGA when the README PNG is missing. Never raises.""" + png = root / "launcher_assets" / "img" / "boxart.png" + tga = root / "launcher_assets" / "img" / "boxart.tga" + if png.is_file(): + return [] + if options.dry_run: + return ["launcher_assets/img/boxart.png"] + cue, display = _boxart_hints(root, options) + if not cue and not display: + return [] + try: + sys.path.insert(0, str(toolkit_dir())) + from fetch_boxart import fetch_to_paths # type: ignore + except ImportError: + return [] + try: + fetch_to_paths(tga, cue_stem=cue, display_name=display) + except Exception: + return [] + changed: list[str] = [] + if png.is_file(): + changed.append("launcher_assets/img/boxart.png") + if tga.is_file(): + changed.append("launcher_assets/img/boxart.tga") + src = tga.parent / "BOXART_SOURCE.txt" + if src.is_file(): + changed.append("launcher_assets/img/BOXART_SOURCE.txt") + return changed + + +def op_patch_readme_metrics(root: Path, options: MigrateOptions) -> ApplyResult: + """Upsert download badges, libretro boxart, RetComM Launcher, and R.A.I.D. footer.""" + from .readme_metrics import ( + apply_github_about, + boxart_png_present, + render_boxart_block, + render_launcher_block, + render_metrics_block, + render_raid_block, + resolve_github_slug, + upsert_readme_blocks, + ) + + name = options.project_name or infer_project_name(root) + owner, repo = resolve_github_slug(root, options.github_owner, options.github_repo) + zp = options.zip_prefix or derive_zip_prefix(name) + fetched = _ensure_boxart_png(root, options) + display = options.window_title or game_name_from_project(name) + boxart_block = None + if boxart_png_present(root) or ( + options.dry_run and "launcher_assets/img/boxart.png" in fetched + ): + boxart_block = render_boxart_block(display) + + path = root / "README.md" + if path.is_file(): + old = path.read_text(encoding="utf-8", errors="replace") + else: + title = options.window_title or window_title_from_name(name) + old = f"# {title}\n" + new = upsert_readme_blocks( + old, + render_metrics_block(owner, repo, zp), + render_launcher_block(), + render_raid_block(), + boxart=boxart_block, + ) + changed: list[str] = list(fetched) + if new != old: + _write(path, new, options.dry_run) + if "README.md" not in changed: + changed.append("README.md") + + src_img = templates_dir() / "raid-discord.png" + dst_img = root / ".github" / "raid-discord.png" + if src_img.is_file() and not dst_img.is_file(): + if not options.dry_run: + dst_img.parent.mkdir(parents=True, exist_ok=True) + shutil.copy2(src_img, dst_img) + changed.append(".github/raid-discord.png") + + about_ok, about_msg = apply_github_about(owner, repo, dry_run=options.dry_run) + parts: list[str] = [] + if changed: + parts.append( + f"Patched README badges, boxart, RetComM Launcher, and R.A.I.D. footer ({owner}/{repo})" + ) + if fetched: + parts.append("fetched libretro boxart") + if about_ok: + parts.append(about_msg) + else: + parts.append("GitHub About skipped: " + about_msg) + if not changed and not about_ok: + return ApplyResult( + "patch_readme_metrics", + True, + f"README metrics already current ({owner}/{repo}); {about_msg}", + [], + ) + return ApplyResult( + "patch_readme_metrics", + True, + "; ".join(parts), + changed, + ) + + _OPS = { "rename_psxrecomp_submodule": op_rename_psxrecomp_submodule, "ensure_psxrecomp_submodule": op_ensure_psxrecomp_submodule, @@ -1100,6 +1234,7 @@ _OPS = { "annotate_legacy_packaging": op_annotate_legacy_packaging, "probe_disc_refresh": op_probe_disc_refresh, "record_framework_pins": op_record_framework_pins, + "patch_readme_metrics": op_patch_readme_metrics, } diff --git a/tools/new_project_layout/project_studio/plan.py b/tools/new_project_layout/project_studio/plan.py index 8270012c..9204f39e 100644 --- a/tools/new_project_layout/project_studio/plan.py +++ b/tools/new_project_layout/project_studio/plan.py @@ -29,6 +29,7 @@ _OP_ORDER = [ "annotate_legacy_packaging", "probe_disc_refresh", "record_framework_pins", + "patch_readme_metrics", ] _OP_TITLES = { @@ -51,6 +52,7 @@ _OP_TITLES = { "annotate_legacy_packaging": "Annotate legacy prebuilt packaging", "probe_disc_refresh": "Refresh disc identity via probe_disc.py", "record_framework_pins": "Write framework_pins.txt", + "patch_readme_metrics": "Patch README badges, RetComM Launcher, and R.A.I.D. footer", } diff --git a/tools/new_project_layout/project_studio/readme_metrics.py b/tools/new_project_layout/project_studio/readme_metrics.py new file mode 100644 index 00000000..bf771a50 --- /dev/null +++ b/tools/new_project_layout/project_studio/readme_metrics.py @@ -0,0 +1,348 @@ +"""README download-badge + RetComM Launcher blocks for scaffold and migrate.""" + +from __future__ import annotations + +import json +import re +import subprocess +from pathlib import Path + +from fill_tokens import ( + GITHUB_ABOUT_DESCRIPTION, + GITHUB_ABOUT_HOMEPAGE, + sanitize_github_name, +) + +METRICS_BEGIN = "" +METRICS_END = "" +BOXART_BEGIN = "" +BOXART_END = "" +LAUNCHER_BEGIN = "" +LAUNCHER_END = "" +RAID_BEGIN = "" +RAID_END = "" + +BOXART_REL = "launcher_assets/img/boxart.png" + +_METRICS_RE = re.compile( + re.escape(METRICS_BEGIN) + r".*?" + re.escape(METRICS_END) + r"\n?", + re.S, +) +_BOXART_RE = re.compile( + re.escape(BOXART_BEGIN) + r".*?" + re.escape(BOXART_END) + r"\n?", + re.S, +) +_LAUNCHER_RE = re.compile( + re.escape(LAUNCHER_BEGIN) + r".*?" + re.escape(LAUNCHER_END) + r"\n?", + re.S, +) +_RAID_RE = re.compile( + re.escape(RAID_BEGIN) + r".*?" + re.escape(RAID_END) + r"\n?", + re.S, +) +_LEGACY_LAUNCHER_RE = re.compile( + r"^## RetComM Launcher\n.*?(?=^## |\Z)", + re.M | re.S, +) +_LEGACY_RAID_RE = re.compile( + r"(?:\n---\s*)?\n*

\s*\n\s*R\.A\.I\.D\..*\Z", + re.S, +) +_REMOTE_RE = re.compile( + r"github\.com[:/](?P[^/\s]+)/(?P[^/\s]+)", + re.I, +) + +DEFAULT_GITHUB_OWNER = "TechnicallyComputers" +LAUNCHER_REPO = "https://github.com/TechnicallyComputers/RetComM-Launcher" + + +def parse_github_remote(url: str) -> tuple[str, str] | None: + url = (url or "").strip().rstrip("/") + m = _REMOTE_RE.search(url) + if not m: + return None + owner = m.group("owner") + repo = m.group("repo") + if repo.endswith(".git"): + repo = repo[: -len(".git")] + repo = repo.rstrip("/") + if not owner or not repo: + return None + return owner, repo + + +def infer_github_slug(root: Path) -> tuple[str, str] | None: + """Best-effort owner/repo from origin, then catalog homepage.""" + try: + proc = subprocess.run( + ["git", "-C", str(root), "remote", "get-url", "origin"], + capture_output=True, + text=True, + check=False, + ) + except OSError: + proc = None + if proc is not None and proc.returncode == 0: + parsed = parse_github_remote(proc.stdout.strip()) + if parsed: + return parsed + cat = root / "catalog_identity.json" + if cat.is_file(): + try: + data = json.loads(cat.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError): + data = {} + if isinstance(data, dict): + for key in ("homepage", "github", "repository", "url"): + val = data.get(key) + if isinstance(val, str): + parsed = parse_github_remote(val) + if parsed: + return parsed + return None + + +def resolve_github_slug( + root: Path, + owner: str | None = None, + repo: str | None = None, +) -> tuple[str, str]: + o = sanitize_github_name(owner or "") + r = sanitize_github_name(repo or "") + if o and r: + return o, r + inferred = infer_github_slug(root) + if inferred: + return ( + o or sanitize_github_name(inferred[0]), + r or sanitize_github_name(inferred[1]), + ) + return (o or DEFAULT_GITHUB_OWNER, r or sanitize_github_name(root.name)) + + +def apply_github_about( + owner: str, + repo: str, + *, + dry_run: bool = False, +) -> tuple[bool, str]: + """Set GitHub About description + Discord homepage via ``gh repo edit``.""" + slug = f"{sanitize_github_name(owner) or DEFAULT_GITHUB_OWNER}/{sanitize_github_name(repo) or 'repo'}" + cmd = [ + "gh", + "repo", + "edit", + slug, + "--description", + GITHUB_ABOUT_DESCRIPTION, + "--homepage", + GITHUB_ABOUT_HOMEPAGE, + ] + if dry_run: + return True, "dry-run: " + " ".join(cmd) + try: + proc = subprocess.run(cmd, capture_output=True, text=True, check=False) + except OSError as exc: + return False, f"gh not available ({exc})" + if proc.returncode != 0: + err = (proc.stderr or proc.stdout or "").strip() + return False, err or f"gh repo edit exit {proc.returncode}" + return True, f"GitHub About set on {slug}" + + +def render_metrics_block(owner: str, repo: str, zip_prefix: str = "") -> str: + # Per-OS latest badges need an exact asset name. Title zips are + # `{prefix}-{version}-{platform}.zip`, so globs always show 0 on shields.io. + # Keep all-time / latest totals + version; zip_prefix is unused here. + del zip_prefix + owner = sanitize_github_name(owner) or DEFAULT_GITHUB_OWNER + repo = sanitize_github_name(repo) or "repo" + base = f"https://github.com/{owner}/{repo}" + img = "https://img.shields.io/github" + lines = [ + METRICS_BEGIN, + f"[![GitHub downloads (all assets, all releases)]({img}/downloads/{owner}/{repo}/total)]({base}/releases)", + f"[![GitHub downloads (latest release)]({img}/downloads/{owner}/{repo}/latest/total)]({base}/releases/latest)", + f"[![GitHub release]({img}/v/release/{owner}/{repo})]({base}/releases/latest)", + METRICS_END, + ] + return "\n".join(lines) + + +def render_boxart_block(game_name: str) -> str: + alt = (game_name or "Game").strip() or "Game" + alt = alt.replace('"', "'") + return "\n".join( + [ + BOXART_BEGIN, + '

', + f' {alt} box art', + "

", + BOXART_END, + ] + ) + + +def render_launcher_block() -> str: + shots = ( + "https://raw.githubusercontent.com/TechnicallyComputers/" + "RetComM-Launcher/main/docs/screenshots" + ) + return "\n".join( + [ + LAUNCHER_BEGIN, + "## RetComM Launcher", + "", + "You can run this title **standalone** (release zip + the built-in recomp-ui", + "Generate & Build flow), or manage installs, updates, ROM/BIOS wiring, and queued", + "builds more intuitively with", + f"**[RetComM Launcher]({LAUNCHER_REPO})** —", + "the Retro Compilation Manager hub for self-compiling recomps.", + "", + f"[Downloads]({LAUNCHER_REPO}/releases) ·", + f"[Full README & features]({LAUNCHER_REPO}#readme)", + "", + "

", + f' RetComM hub with a background build, next to a title’s recomp-ui launcher', + "

", + "", + "

", + f' Background cmake build with titles queued', + "

", + "", + "RetComM checks for updates, rebuilds with existing build data when possible,", + "shares the portable toolchain used by per-title launchers, and automates", + "BIOS/ROM/save plumbing so you are not stuck repeating each game’s wizard by hand.", + LAUNCHER_END, + ] + ) + + +def render_raid_block() -> str: + return "\n".join( + [ + RAID_BEGIN, + "---", + "", + "

", + " R.A.I.D. — Retro AI Development · a Discord for AI-assisted retro reverse-engineering, decomp & recomp", + "

", + "", + "

", + ' Join the Retro AI Development (R.A.I.D.) Discord', + "

", + RAID_END, + ] + ) + + +def readme_has_metrics(text: str) -> bool: + return "img.shields.io/github/downloads/" in text + + +def readme_has_boxart(text: str) -> bool: + return BOXART_BEGIN in text or BOXART_REL in text + + +def boxart_png_present(root: Path) -> bool: + return (root / BOXART_REL).is_file() + + +def readme_has_launcher(text: str) -> bool: + return "TechnicallyComputers/RetComM-Launcher" in text + + +def readme_has_raid(text: str) -> bool: + return "discord.gg/Ad9BwSzctP" in text or "R.A.I.D. — Retro AI Development" in text + + +def _apply_boxart(text: str, boxart_block: str) -> str: + boxart_block = boxart_block.strip() + "\n" + if _BOXART_RE.search(text): + return _BOXART_RE.sub(boxart_block, text, count=1) + m = _METRICS_RE.search(text) + if m: + rest = text[m.end() :].lstrip("\n") + return text[: m.end()] + "\n" + boxart_block + "\n" + rest + hm = re.match(r"(#[^\n]+\n)", text) + if hm: + rest = text[hm.end() :].lstrip("\n") + return text[: hm.end()] + "\n" + boxart_block + "\n" + rest + return boxart_block + "\n" + text + + +def upsert_boxart_block(text: str, game_name: str) -> str: + if not text.endswith("\n"): + text += "\n" + return _apply_boxart(text, render_boxart_block(game_name)) + + +def inject_readme_boxart(readme: Path, game_name: str) -> bool: + """Insert/replace the README boxart block if ``boxart.png`` exists.""" + readme = Path(readme) + if not readme.is_file() or not boxart_png_present(readme.parent): + return False + old = readme.read_text(encoding="utf-8", errors="replace") + new = upsert_boxart_block(old, game_name) + if new == old: + return False + readme.write_text(new, encoding="utf-8") + return True + + +def upsert_readme_blocks( + text: str, + metrics: str, + launcher: str, + raid: str | None = None, + boxart: str | None = None, +) -> str: + """Insert or replace marked metrics, boxart, launcher, and RAID footer; keep custom body.""" + if not text.endswith("\n"): + text += "\n" + metrics_block = metrics.strip() + "\n" + launcher_block = launcher.strip() + "\n" + raid_block = (raid if raid is not None else render_raid_block()).strip() + "\n" + + if _METRICS_RE.search(text): + text = _METRICS_RE.sub(metrics_block, text, count=1) + elif not readme_has_metrics(text): + m = re.match(r"(#[^\n]+\n)", text) + if m: + text = ( + text[: m.end()] + + "\n" + + metrics_block + + "\n" + + text[m.end() :].lstrip("\n") + ) + else: + text = metrics_block + "\n" + text + + if boxart: + text = _apply_boxart(text, boxart) + + if _LAUNCHER_RE.search(text): + text = _LAUNCHER_RE.sub(launcher_block, text, count=1) + elif _LEGACY_LAUNCHER_RE.search(text): + text = _LEGACY_LAUNCHER_RE.sub(launcher_block + "\n", text, count=1) + elif not readme_has_launcher(text): + insert_at = None + for heading in ("## Legal", "## Quick start", "## Layout", "## Symbols"): + idx = text.find("\n" + heading) + if idx >= 0: + insert_at = idx + 1 + break + if insert_at is None: + text = text.rstrip() + "\n\n" + launcher_block + else: + text = text[:insert_at] + launcher_block + "\n" + text[insert_at:] + + if _RAID_RE.search(text): + text = _RAID_RE.sub(raid_block, text, count=1) + elif _LEGACY_RAID_RE.search(text): + text = _LEGACY_RAID_RE.sub("\n" + raid_block, text, count=1) + elif not readme_has_raid(text): + text = text.rstrip() + "\n\n" + raid_block + return text if text.endswith("\n") else text + "\n" diff --git a/tools/new_project_layout/setup_project.ps1 b/tools/new_project_layout/setup_project.ps1 index f37edaf5..061a43b0 100644 --- a/tools/new_project_layout/setup_project.ps1 +++ b/tools/new_project_layout/setup_project.ps1 @@ -22,6 +22,8 @@ param( [string]$BootExe = "SLUS_01234", [int]$Players = 0, [string]$ZipPrefix = "", + [string]$GithubOwner = "", + [string]$GithubRepo = "", [switch]$EnableRecompUi, [switch]$NoRecompUi, [switch]$EnableNetplay, @@ -142,6 +144,24 @@ if (-not $ZipPrefix) { } } +if (-not $GithubOwner) { + if ($interactive) { + $GithubOwner = Prompt-Line "GitHub owner / org (README download badges)" "TechnicallyComputers" + } else { + $GithubOwner = "TechnicallyComputers" + } +} +$derivedRepo = (python -c "from fill_tokens import sanitize_github_name; import sys; print(sanitize_github_name(sys.argv[1]))" $Name).Trim() +if (-not $GithubRepo) { + if ($interactive) { + $GithubRepo = Prompt-Line "GitHub repo name (README download badges)" $derivedRepo + } else { + $GithubRepo = $derivedRepo + } +} +$GithubOwner = (python -c "from fill_tokens import sanitize_github_name; import sys; print(sanitize_github_name(sys.argv[1]))" $GithubOwner).Trim() +$GithubRepo = (python -c "from fill_tokens import sanitize_github_name; import sys; print(sanitize_github_name(sys.argv[1]))" $GithubRepo).Trim() + if (-not $PSBoundParameters.ContainsKey("Description")) { if ($interactive) { $Description = Prompt-Line "Short game description (optional)" "" } } @@ -246,8 +266,13 @@ $PublisherDisp = if ($Publisher) { $Publisher } else { "-" } $YearDisp = if ($Year) { $Year } else { "-" } $DescriptionMd = if ($Description) { $Description } else { "_Add a short pitch in catalog_identity.json / README._" } -$Root = Join-Path (Resolve-Path $Dir) $Name +# Folder = GitHub/catalog install_dir slug (hyphenated), not display $Name with spaces. +$InstallDirName = $GithubRepo +$Root = Join-Path (Resolve-Path $Dir) $InstallDirName if (Test-Path $Root) { throw "Target already exists: $Root" } +if ($InstallDirName -ne $Name) { + Write-Host "note: project folder is '$InstallDirName' (catalog/GitHub slug; display name stays '$Name')" +} $NetplayBlockFile = Join-Path $env:TEMP "psxrecomp_netplay_block.cmake" $WizardBlockFile = Join-Path $env:TEMP "psxrecomp_wizard_block.cmake" @@ -316,6 +341,8 @@ function Fill-Template([string]$src, [string]$dst) { --set "ENV_PREFIX=$EnvPrefix" ` --set "EXE_BASENAME=$ExeBasename" ` --set "ZIP_PREFIX=$ZipPrefix" ` + --set "GITHUB_OWNER=$GithubOwner" ` + --set "GITHUB_REPO=$GithubRepo" ` --set "DISC_HINT=$DiscHint" ` --set "GAME_TITLE=$WindowTitle" ` --set "PLAYERS=$Players" ` @@ -339,6 +366,7 @@ Write-Host "== New Project Layout ==" Write-Host " repo: $Root" Write-Host " disc: $Disc" Write-Host " zip prefix: $ZipPrefix" +Write-Host " gh slug: $GithubOwner/$GithubRepo" Write-Host " players: $Players" Write-Host " recomp-ui: $useRecompUi" Write-Host " wizard: $useWizard" @@ -564,6 +592,32 @@ print(m.group(1) if m else '') Write-Warning "-Disc is not a .cue; skipped probe autofill." } +if ($doBoxart) { + Write-Host "== Fetching libretro boxart ==" + $cueHint = if ($DiscBasename) { $DiscBasename } else { $GameName } + $prevPy = $env:PYTHONPATH + try { + python $FetchBoxartPy ` + --out (Join-Path $Root "launcher_assets\img\boxart.tga") ` + --cue-stem $cueHint ` + --display-name $GameName + if ($LASTEXITCODE -eq 0) { + $HasBoxart = $true + Set-Content -Encoding UTF8 -Path $BoxartBlockFile -Value ' LAUNCHER_BOXART "${CMAKE_CURRENT_SOURCE_DIR}/launcher_assets/img/boxart.tga"' + Fill-Template (Join-Path $TemplateDir "CMakeLists.txt.in") (Join-Path $Root "CMakeLists.txt") + Write-Host " wired LAUNCHER_BOXART in CMakeLists.txt" + $env:PYTHONPATH = $ScriptDir + python -c "from pathlib import Path; import sys; from project_studio.readme_metrics import inject_readme_boxart; inject_readme_boxart(Path(sys.argv[1]), sys.argv[2])" (Join-Path $Root "README.md") $GameName + Write-Host " injected boxart into README.md" + } else { + Write-Warning "boxart fetch failed — leave LAUNCHER_BOXART commented." + } + } catch { + Write-Warning "boxart fetch failed — leave LAUNCHER_BOXART commented." + } finally { + if ($null -eq $prevPy) { Remove-Item Env:PYTHONPATH -ErrorAction SilentlyContinue } else { $env:PYTHONPATH = $prevPy } + } +} Write-Host "== Sync symbols header ==" Push-Location $Root @@ -571,8 +625,8 @@ try { python tools/sync_symbols.py --game $GameName } catch { Write-Warning "syn Pop-Location git add CMakeLists.txt game.toml codegen_setup.c codegen_setup.h .gitignore VERSION README.md seeds scripts tools mods framework_pins.txt symbols.toml psx_symbols.h 2>$null -if (Test-Path (Join-Path $Root ".github\workflows")) { - git add .github/workflows 2>$null +if (Test-Path (Join-Path $Root ".github")) { + git add .github 2>$null } if (Test-Path (Join-Path $Root "catalog_identity.json")) { git add catalog_identity.json 2>$null @@ -581,7 +635,7 @@ if (Test-Path (Join-Path $Root "disc_probe.json")) { git add disc_probe.json 2>$null } if ($HasBoxart) { - git add launcher_assets/img/boxart.tga launcher_assets/img/BOXART_SOURCE.txt 2>$null + git add launcher_assets/img/boxart.tga launcher_assets/img/boxart.png launcher_assets/img/BOXART_SOURCE.txt 2>$null } $committed = $false try { @@ -606,15 +660,18 @@ if ($createGithub) { "internal" { "--internal" } default { "--private" } } + $ghSlug = "$GithubOwner/$GithubRepo" + $ghDesc = (python -c "from fill_tokens import GITHUB_ABOUT_DESCRIPTION; print(GITHUB_ABOUT_DESCRIPTION)").Trim() + $ghHome = (python -c "from fill_tokens import GITHUB_ABOUT_HOMEPAGE; print(GITHUB_ABOUT_HOMEPAGE)").Trim() try { - gh repo create $Name $vis --source=$Root --remote=origin + gh repo create $ghSlug $vis --source=$Root --remote=origin --description "$ghDesc" --homepage "$ghHome" Write-Host " created origin ($GithubVisibility); push deferred until end" $githubCreated = $true } catch { Write-Warning "gh repo create failed -- if the repo already exists, add origin and push at the end." if (-not (git remote get-url origin 2>$null)) { try { - $ghUrl = (gh repo view $Name --json url -q .url 2>$null) + $ghUrl = (gh repo view $ghSlug --json url -q .url 2>$null) if ($ghUrl) { git remote add origin $ghUrl Write-Host " attached existing origin -> $ghUrl" @@ -625,6 +682,14 @@ if ($createGithub) { $githubCreated = $true } } + if ($githubCreated) { + try { + gh repo edit $ghSlug --description "$ghDesc" --homepage "$ghHome" + Write-Host " GitHub About: R.A.I.D. description + Discord homepage" + } catch { + Write-Warning "gh repo edit (About) failed — set description/homepage by hand." + } + } } } diff --git a/tools/new_project_layout/setup_project.sh b/tools/new_project_layout/setup_project.sh index 8f9ea735..6f7a658f 100755 --- a/tools/new_project_layout/setup_project.sh +++ b/tools/new_project_layout/setup_project.sh @@ -9,11 +9,13 @@ # --stage-disc Copy full cue+bins into repo disc/ (large; optional) # --no-stage-disc Default: probe in place, extract boot EXE only # --psxrecomp-ref / --recomp-ui-ref / --recomp-net-ref / URLs +# --github-owner README download-badge owner (default TechnicallyComputers) +# --github-repo README download-badge repo (default project name) # # Everything else is prompted on a TTY (or passed via flags / --yes defaults): -# name, players (1–8, default 2), zip-prefix, marketing blurb, recomp-ui, -# wizard, netplay, lobby URL (if netplay), CI workflow, fetch-boxart, -# generate, build (if generate), GitHub repo (gh) +# name, players (1–8, default 2), zip-prefix, github owner/repo (README badges), +# marketing blurb, recomp-ui, wizard, netplay, lobby URL (if netplay), CI +# workflow, fetch-boxart, generate, build (if generate), GitHub repo (gh) # # Non-interactive: --yes (or PSXRECOMP_SETUP_YES=1) requires --name and --disc; # boolean opts stay off unless explicitly flagged; lobby URL defaults to @@ -55,6 +57,8 @@ DO_GENERATE="" DO_BUILD="" CREATE_GITHUB="" GITHUB_VISIBILITY="private" +GITHUB_OWNER="" +GITHUB_REPO="" BIOS_PATH="" LOBBY_URL="" DESCRIPTION="" @@ -183,6 +187,8 @@ while [ $# -gt 0 ]; do --create-github) CREATE_GITHUB=1; SET_GITHUB=1; shift ;; --no-github) CREATE_GITHUB=0; SET_GITHUB=1; shift ;; --github-visibility) GITHUB_VISIBILITY=$2; shift 2 ;; + --github-owner) GITHUB_OWNER=$2; shift 2 ;; + --github-repo) GITHUB_REPO=$2; shift 2 ;; --description) DESCRIPTION=$2; SET_DESCRIPTION=1; shift 2 ;; --publisher) PUBLISHER=$2; SET_PUBLISHER=1; shift 2 ;; --year) YEAR=$2; SET_YEAR=1; shift 2 ;; @@ -264,6 +270,28 @@ if [ -z "$ZIP_PREFIX" ]; then fi fi +if [ -z "$GITHUB_OWNER" ]; then + if [ "$YES_MODE" -eq 1 ] || ! is_tty; then + GITHUB_OWNER=TechnicallyComputers + else + prompt_line "GitHub owner / org (README download badges)" GITHUB_OWNER \ + "TechnicallyComputers" + fi +fi +if [ -z "$GITHUB_REPO" ]; then + _derived_repo=$(PYTHONPATH="$SCRIPT_DIR${PYTHONPATH:+:$PYTHONPATH}" \ + python3 -c 'from fill_tokens import sanitize_github_name; import sys; print(sanitize_github_name(sys.argv[1]))' "$NAME") + if [ "$YES_MODE" -eq 1 ] || ! is_tty; then + GITHUB_REPO=$_derived_repo + else + prompt_line "GitHub repo name (README download badges)" GITHUB_REPO "$_derived_repo" + fi +fi +GITHUB_OWNER=$(PYTHONPATH="$SCRIPT_DIR${PYTHONPATH:+:$PYTHONPATH}" \ + python3 -c 'from fill_tokens import sanitize_github_name; import sys; print(sanitize_github_name(sys.argv[1]))' "$GITHUB_OWNER") +GITHUB_REPO=$(PYTHONPATH="$SCRIPT_DIR${PYTHONPATH:+:$PYTHONPATH}" \ + python3 -c 'from fill_tokens import sanitize_github_name; import sys; print(sanitize_github_name(sys.argv[1]))' "$GITHUB_REPO") + # Optional marketing (catalog_identity.json + README) if [ "$SET_DESCRIPTION" -eq 0 ]; then if [ "$YES_MODE" -eq 1 ] || ! is_tty; then @@ -448,11 +476,16 @@ if [ -z "$DESCRIPTION_MD" ]; then DESCRIPTION_MD="_Add a short pitch in catalog_identity.json / README._" fi -ROOT=$(CDPATH= cd -- "$PARENT" && pwd)/"$NAME" +# Folder = GitHub/catalog install_dir slug (hyphenated), not display $NAME with spaces. +INSTALL_DIR_NAME="$GITHUB_REPO" +ROOT=$(CDPATH= cd -- "$PARENT" && pwd)/"$INSTALL_DIR_NAME" if [ -e "$ROOT" ]; then echo "error: target already exists: $ROOT" >&2 exit 1 fi +if [ "$INSTALL_DIR_NAME" != "$NAME" ]; then + echo "note: project folder is '$INSTALL_DIR_NAME' (catalog/GitHub slug; display name stays '$NAME')" >&2 +fi # --- CMake block files ----------------------------------------------------- NETPLAY_BLOCK_FILE=$(mktemp) @@ -527,6 +560,8 @@ fill_template() { --set "ENV_PREFIX=$ENV_PREFIX" \ --set "EXE_BASENAME=$EXE_BASENAME" \ --set "ZIP_PREFIX=$ZIP_PREFIX" \ + --set "GITHUB_OWNER=$GITHUB_OWNER" \ + --set "GITHUB_REPO=$GITHUB_REPO" \ --set "DISC_HINT=$DISC_HINT" \ --set "GAME_TITLE=$WINDOW_TITLE" \ --set "PLAYERS=$PLAYERS" \ @@ -550,6 +585,7 @@ echo "== New Project Layout ==" echo " repo: $ROOT" echo " disc: $DISC" echo " zip prefix: $ZIP_PREFIX" +echo " gh slug: $GITHUB_OWNER/$GITHUB_REPO" echo " players: $PLAYERS" echo " recomp-ui: $ENABLE_RECOMP_UI" echo " wizard: $ENABLE_WIZARD" @@ -578,9 +614,12 @@ fill_template "$TEMPLATE_DIR/VERSION.in" "$ROOT/VERSION" fill_template "$TEMPLATE_DIR/README.md.in" "$ROOT/README.md" fill_template "$TEMPLATE_DIR/symbols.toml.in" "$ROOT/symbols.toml" mkdir -p "$ROOT/seeds" "$ROOT/launcher_assets/img" "$ROOT/scripts" "$ROOT/tools" \ - "$ROOT/mods/preloaded/packages" "$ROOT/assets" + "$ROOT/mods/preloaded/packages" "$ROOT/assets" "$ROOT/.github" cp "$SCRIPT_DIR/sync_symbols.py" "$ROOT/tools/sync_symbols.py" chmod +x "$ROOT/tools/sync_symbols.py" +if [ -f "$TEMPLATE_DIR/raid-discord.png" ]; then + cp "$TEMPLATE_DIR/raid-discord.png" "$ROOT/.github/raid-discord.png" +fi # Empty mod catalog tree (runtime copies mods/preloaded → beside the exe as mods/). cat > "$ROOT/mods/preloaded/README.md" <<'EOF' # Preloaded mods @@ -801,6 +840,11 @@ if [ "$FETCH_BOXART_FLAG" -eq 1 ]; then >"$BOXART_BLOCK_FILE" fill_template "$TEMPLATE_DIR/CMakeLists.txt.in" "$ROOT/CMakeLists.txt" echo " wired LAUNCHER_BOXART in CMakeLists.txt" + PYTHONPATH="$SCRIPT_DIR${PYTHONPATH:+:$PYTHONPATH}" python3 -c \ + 'from pathlib import Path; import sys; from project_studio.readme_metrics import inject_readme_boxart; inject_readme_boxart(Path(sys.argv[1]), sys.argv[2])' \ + "$ROOT/README.md" "$GAME_NAME" \ + && echo " injected boxart into README.md" \ + || echo "warning: README boxart inject failed" >&2 else echo "warning: boxart fetch failed — leave LAUNCHER_BOXART commented." >&2 fi @@ -813,8 +857,8 @@ echo "== Sync symbols header ==" ) git add CMakeLists.txt game.toml codegen_setup.c codegen_setup.h .gitignore VERSION README.md seeds scripts tools mods framework_pins.txt symbols.toml psx_symbols.h || true -if [ -d "$ROOT/.github/workflows" ]; then - git add .github/workflows || true +if [ -d "$ROOT/.github" ]; then + git add .github || true fi if [ -f "$ROOT/catalog_identity.json" ]; then git add catalog_identity.json || true @@ -823,7 +867,7 @@ if [ -f "$ROOT/disc_probe.json" ]; then git add disc_probe.json || true fi if [ "$HAS_BOXART" -eq 1 ]; then - git add launcher_assets/img/boxart.tga launcher_assets/img/BOXART_SOURCE.txt || true + git add launcher_assets/img/boxart.tga launcher_assets/img/boxart.png launcher_assets/img/BOXART_SOURCE.txt || true fi COMMITTED=0 if git -c user.email=setup@localhost -c user.name=setup \ @@ -847,14 +891,20 @@ if [ "${CREATE_GITHUB:-0}" -eq 1 ]; then VIS_FLAG="--private" [ "$GITHUB_VISIBILITY" = "public" ] && VIS_FLAG="--public" [ "$GITHUB_VISIBILITY" = "internal" ] && VIS_FLAG="--internal" - if gh repo create "$NAME" $VIS_FLAG --source="$ROOT" --remote=origin; then + GH_SLUG="$GITHUB_OWNER/$GITHUB_REPO" + GH_DESC=$(PYTHONPATH="$SCRIPT_DIR${PYTHONPATH:+:$PYTHONPATH}" \ + python3 -c 'from fill_tokens import GITHUB_ABOUT_DESCRIPTION; print(GITHUB_ABOUT_DESCRIPTION)') + GH_HOME=$(PYTHONPATH="$SCRIPT_DIR${PYTHONPATH:+:$PYTHONPATH}" \ + python3 -c 'from fill_tokens import GITHUB_ABOUT_HOMEPAGE; print(GITHUB_ABOUT_HOMEPAGE)') + if gh repo create "$GH_SLUG" $VIS_FLAG --source="$ROOT" --remote=origin \ + --description "$GH_DESC" --homepage "$GH_HOME"; then echo " created origin ($GITHUB_VISIBILITY); push deferred until end" GITHUB_CREATED=1 else echo "warning: gh repo create failed — if the repo already exists," >&2 echo " add origin and push manually at the end." >&2 if ! git remote get-url origin >/dev/null 2>&1; then - _gh_url=$(gh repo view "$NAME" --json url -q .url 2>/dev/null || true) + _gh_url=$(gh repo view "$GH_SLUG" --json url -q .url 2>/dev/null || true) if [ -n "$_gh_url" ]; then git remote add origin "$_gh_url" echo " attached existing origin → $_gh_url" @@ -864,6 +914,13 @@ if [ "${CREATE_GITHUB:-0}" -eq 1 ]; then GITHUB_CREATED=1 fi fi + if [ "$GITHUB_CREATED" -eq 1 ]; then + if gh repo edit "$GH_SLUG" --description "$GH_DESC" --homepage "$GH_HOME"; then + echo " GitHub About: R.A.I.D. description + Discord homepage" + else + echo "warning: gh repo edit (About) failed — set description/homepage by hand." >&2 + fi + fi fi fi diff --git a/tools/new_project_layout/templates/README.md.in b/tools/new_project_layout/templates/README.md.in index f978342d..3f31de03 100644 --- a/tools/new_project_layout/templates/README.md.in +++ b/tools/new_project_layout/templates/README.md.in @@ -1,5 +1,11 @@ # @WINDOW_TITLE@ + +[![GitHub downloads (all assets, all releases)](https://img.shields.io/github/downloads/@GITHUB_OWNER@/@GITHUB_REPO@/total)](https://github.com/@GITHUB_OWNER@/@GITHUB_REPO@/releases) +[![GitHub downloads (latest release)](https://img.shields.io/github/downloads/@GITHUB_OWNER@/@GITHUB_REPO@/latest/total)](https://github.com/@GITHUB_OWNER@/@GITHUB_REPO@/releases/latest) +[![GitHub release](https://img.shields.io/github/v/release/@GITHUB_OWNER@/@GITHUB_REPO@)](https://github.com/@GITHUB_OWNER@/@GITHUB_REPO@/releases/latest) + + Static recompilation of **@GAME_NAME@** built on [psxrecomp](https://github.com/mstan/psxrecomp) and [recomp-ui](https://github.com/mstan/recomp-ui). @@ -16,6 +22,31 @@ Static recompilation of **@GAME_NAME@** built on Scaffolded with the New Project Layout. See `psxrecomp/docs/GAME_PROJECT_SETUP.md` for the full flow. + +## RetComM Launcher + +You can run this title **standalone** (release zip + the built-in recomp-ui +Generate & Build flow), or manage installs, updates, ROM/BIOS wiring, and queued +builds more intuitively with +**[RetComM Launcher](https://github.com/TechnicallyComputers/RetComM-Launcher)** — +the Retro Compilation Manager hub for self-compiling recomps. + +[Downloads](https://github.com/TechnicallyComputers/RetComM-Launcher/releases) · +[Full README & features](https://github.com/TechnicallyComputers/RetComM-Launcher#readme) + +

+ RetComM hub with a background build, next to a title’s recomp-ui launcher +

+ +

+ Background cmake build with titles queued +

+ +RetComM checks for updates, rebuilds with existing build data when possible, +shares the portable toolchain used by per-title launchers, and automates +BIOS/ROM/save plumbing so you are not stuck repeating each game’s wizard by hand. + + ## Legal You must own the original game. Disc images under `disc/` are gitignored and @@ -39,12 +70,6 @@ cmake -S . -B build-release -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build build-release --target psx-runtime ``` -`psxrecomp/runtime/runtime.cmake` must exist before configuring. If CMake says -the runtime is missing, the framework submodule is not checked out; run -`git submodule update --init --recursive`, or pass -`-DPSXRECOMP_ROOT=` when intentionally building against a -separate framework checkout. - Zip prefix for CI artifacts: `@ZIP_PREFIX@`. ## Symbols @@ -59,3 +84,15 @@ are authoritative. `framework_pins.txt` is an optional scaffold snapshot; release CI logs SHAs with `record_pins.sh` but builds whatever the gitlinks resolve to. Bump submodules deliberately — do not float on `main`/`master` in release CI. + + +--- + +

+ R.A.I.D. — Retro AI Development · a Discord for AI-assisted retro reverse-engineering, decomp & recomp +

+ +

+ Join the Retro AI Development (R.A.I.D.) Discord +

+ diff --git a/tools/new_project_layout/templates/raid-discord.png b/tools/new_project_layout/templates/raid-discord.png new file mode 100644 index 0000000000000000000000000000000000000000..f10e01938b76146dfb207bba9033c53d62fd5379 GIT binary patch literal 573522 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

6qMzP_!yq1$=+eoj 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 z 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