557 Commits

Author SHA1 Message Date
Matthew Stanley c9dabd0d95 Integrate validated SH1 widescreen and save-request fixes 2026-10-25 12:50:36 -07:00
Matt Stanley 48faa24e72 Merge pull request #757 from RetroPortingToolKit/integrate/tombi-eu-to-master-20261024
Merge Tombi EU integration branch into master
2026-10-24 16:51:07 -07:00
Matthew Stanley a6b9c2cac0 Export in-overlay shard forward declarations so clang accepts dllexport definitions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 14:02:05 -07:00
Matthew Stanley effb75e63d Scaffold: keep the disc probe running when marketing fields are empty
Windows PowerShell 5.1 drops empty native arguments, leaving --description without a value.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 12:42:28 -07:00
Matthew Stanley e3ddd8c426 Merge Tombi EU integration branch into master
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 12:08:24 -07:00
Matthew Stanley 3f3cfb7571 Integrate EU RC4 runtime and overlay tooling changes
Import the supplied developer handoff against 03e635e8. Include regional capability controls, texture validation, SHA acceleration with portable fallback, SPU CD/XA correction, and overlay export/staging fixes. Validated with rebuilt EU runtime, guarded AOT audit and focused regressions.
2026-10-21 16:54:05 -07:00
Matthew Stanley 56a6cfe782 Add one shared title release command with a required channel
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 20:46:47 -07:00
Matthew Stanley 9e0548137a Default Playtest Diagnostics on except in public releases (PSX_PUBLIC_RELEASE)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 18:18:34 -07:00
Matthew Stanley 038ed4a078 Require Playtest Diagnostics to ship off by default
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 17:42:01 -07:00
Matt Stanley bc574c5700 Isolate runtime publication and wall-time diagnostics from held mod selector stack 2026-10-19 14:07:22 -07:00
Matt Stanley 0b1f1a70e6 Merge current master and qualified review fixes into PR #651 2026-10-19 13:09:36 -07:00
Matt Stanley e4ec3926f0 Merge current master and qualified review fixes into PR #645 2026-10-19 13:08:28 -07:00
Matt Stanley 93c2c7c098 Merge current master and qualified review fixes into PR #403 2026-10-19 13:08:14 -07:00
Matt Stanley aa36c8bfe4 Merge current master and qualified review fixes into PR #402 2026-10-19 13:08:01 -07:00
Matt Stanley b4be0aa0f7 Merge current master and qualified review fixes into PR #392 2026-10-19 13:07:47 -07:00
Zap0xfce2 d749a58901 fix(tools): regen_bios.sh also finds ../build-recompiler from build_emitters.sh 2026-10-19 16:36:52 +02:00
Matthew Stanley db596520ab Record real renderer activity and explicit playtest verification coverage 2026-10-18 20:55:22 -07:00
Matthew Stanley 947f1da5de Audit the current Windows offline toolchain picker title 2026-10-17 15:16:39 -07:00
Matthew Stanley a9a19e70f5 Omit launcher state and demo ROM fixtures from setup SDKs 2026-10-17 15:04:02 -07:00
Matthew Stanley db147e2c04 Recognize macOS executables when auditing diagnostics packages 2026-10-17 14:56:19 -07:00
Matthew Stanley 48f8dbe0da Merge private overlay capture path isolation into MediEvil diagnostics 2026-10-17 14:22:00 -07:00
Matthew Stanley 019d6e8ade Keep replay overlay captures within the private output directory 2026-10-17 14:21:41 -07:00
Matthew Stanley 78e7e7636d Merge private native overlay replay payload copies into MediEvil setup compatibility 2026-10-17 14:20:12 -07:00
Matthew Stanley 6ef2a85119 Preserve packaged native overlay payloads in isolated diagnostic replay 2026-10-17 14:19:43 -07:00
Matthew Stanley 2c92ac3ff1 Restore native POSIX setup tools and platform release validation 2026-10-17 14:17:16 -07:00
Matthew Stanley 444264f2aa Restore retail-only setup packaging and audit diagnostic release ZIPs 2026-10-17 14:04:52 -07:00
Matthew Stanley 4a7a8d54ac Keep diagnostic display independent and stage setup replay helper 2026-10-17 13:13:02 -07:00
Matthew Stanley 09221b8263 Share bounded playtest diagnostics and isolated verified replay 2026-10-17 13:04:46 -07:00
Matt Stanley 035af4e444 Merge pull request #592 from RetroPortingToolKit/feat/linux-tcc
Linux releases bundle TinyCC (built from source) with musl headers
2026-10-13 01:31:14 -07:00
Shokunin 3fee0ae7be Linux tcc: build without the legacy bounds-checking runtime (glibc 2.34+)
tcc 0.9.27's lib/bcheck.c uses __malloc_hook, removed in glibc 2.34, so
the pinned build failed on Ubuntu 24.04 (lib/bcheck.c:738). Shards never use
-b; the build now passes BCHECK_O= unconditionally, keeping every other
libtcc1.a object. The bundle smoke also clears LIBRARY_PATH, CC and
GCC_EXEC_PREFIX and checks shards import no bounds-checking symbols.
Verified: linux_tcc_bundle_smoke_test passes on Ubuntu 24.04 x86_64
(glibc 2.39, gcc + libc6-dev installed, so host headers exist but are not
used) and on Steam Runtime sniper (glibc 2.31).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 00:02:09 -07:00
Matthew Stanley f34c15f18b Keep AOT dispatch observations separate from callable roots 2026-10-12 17:06:57 -07:00
Matthew Stanley a5d332e6b7 runtime: always-on wall-time rings, stale-toolchain guard, announce published shards
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 13:28:09 -07:00
Matthew Stanley c0b037db58 aot: cross_image_call_roots - jal targets other images call are roots of the image holding them
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 03:06:37 -07:00
Matthew Stanley a519f5e740 aot: cross_image_call_roots - jal targets other images call are roots of the image holding them
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 03:06:37 -07:00
Matthew Stanley d6d680f2b9 aot: tests, docs and test registration for prepared images
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 02:40:12 -07:00
Matthew Stanley b28af43b95 aot: tests, docs and test registration for prepared images
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 02:40:12 -07:00
Matthew Stanley 7b88260fe5 aot: prepared_files (bpe_container), file_aliases, disc_set, generic exclusions
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 02:25:28 -07:00
Matthew Stanley 493b4498a9 aot: prepared_files (bpe_container), file_aliases, disc_set, generic exclusions
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 02:25:23 -07:00
Matthew Stanley 5237ff01fc Scaffold: commit game_options.toml; keep multi-disc probe files tracked
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-11 23:35:39 -07:00
Matthew Stanley 94ac3d37a8 update_disc_set: write in-project disc paths relative with '/'
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-11 23:34:13 -07:00
Matthew Stanley fa83aeb064 Fix Windows scaffold: BOM-less writes, native Python, configuring cmake for builds
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-11 23:30:47 -07:00
Shokunin 9714fb678a Linux tcc bundle: hermetic includes and a real-shard smoke test
- compile_overlays: the bundle layout now compiles with -nostdinc and only
  the bundle's own headers (tcc's include/, then musl's libc-include/), so a
  host with libc6-dev cannot change what a shard compiles against.
- runtime/tests/test_linux_tcc_bundle_smoke.py (ctest
  linux_tcc_bundle_smoke_test): stages the bundle exactly as a release does
  (pinned tcc 0.9.27 built from source, musl 1.2.5 headers, runtime
  headers), compiles an emitter-shaped overlay shard through
  compile_overlays' own tcc path (preamble shim, call_by_address rewrite,
  exports) for PGXP flavors 0 and 2 with PATH emptied, loads the .so and
  checks overlay_abi() and the exported function. Linux x86_64 only (skips
  77 elsewhere). Passes in the Steam Runtime sniper SDK image.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:38:53 -07:00
Shokunin 7e869d7741 Linux tcc: adapt musl's va_list to tcc's stdarg.h
Found by the clean-box smoke: every shard failed with "';' expected (got
va_list)". With the adaptation, 26 overlay shards compile on a Debian box
with no compiler and no libc headers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:38:48 -07:00
Shokunin 32f6aa7315 Linux releases bundle TinyCC (built from source) with musl headers
tinycc publishes no Linux binary, so Linux release toolchains had no tcc and
a player without a compiler -- every Steam Deck: SteamOS has none and a
read-only root -- kept overlays interpreted. stage_toolchain now builds the
pinned, unmodified tcc 0.9.27 source on the packaging machine and stages it
as overlay_toolchain/tcc/ (tcc, libtcc1.a, tcc's include/) with musl 1.2.5's
MIT-licensed C headers in libc-include/ (both sources SHA-256 pinned).

compile_overlays.py recognises that layout and calls tcc with -B<dir>
-nostdlib -isystem <dir>/libc-include <dir>/libtcc1.a, so nothing from the
player's system is needed; shard libc symbols resolve against the game's
glibc at dlopen. Windows and system tcc invocations are unchanged. The
TinyCC notice names the Linux build and the musl headers.

Tests: test_release_stage_cache.py (Linux pins, notice, bundle args).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:38:48 -07:00
Alex Vanderveen 2a4824fcb8 ci: check_bios_stamps defaults to the stamps present, not a fixed retail list
The default demanded SCPH1001.emitter.sha, which is gitignored (retail output
is generated from a dump, never committed), so every game's release CI failed
with 'SCPH1001.emitter.sha missing' on a clean checkout. Default to every
generated/*.emitter.sha; naming a stem still requires it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 16:22:12 -04:00
Matthew Stanley 7dfef44598 Reconcile current master with validated X4 co-op support for PR23 playtest 2026-10-10 20:49:35 -07:00
Shokunin 1751c6973b Netplay rb: PSX_RB_SNAP_AUDIT replay-determinism log + diff tool
Per ring save, the section CRCs (and small sections in hex) of the
boot_state blob, marked live or replay. tools/rb_snap_audit_diff.py
checks a seat's replay against its own live save and seats against each
other, naming the first differing section and bytes. Off unless set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 20:40:50 -07:00
Matthew Stanley 95010e1a2e Omit unused Windows pip launchers from Linux release toolchains 2026-10-08 11:37:57 -07:00
Matthew Stanley eba5b86325 Integrate latest shared runtime with serial renderer and resident loading work
# Conflicts:
#	runtime/CMakeLists.txt
#	runtime/runtime.cmake
#	runtime/src/gpu.c
#	runtime/src/gpu_gl_renderer.c
#	runtime/src/memory.c
#	runtime/tests/run_gl_texture_filter.py
#	runtime/tests/test_gpu_gp0_history_guard.py
#	runtime/tests/test_savestate_status_protocol.py
2026-10-08 05:40:53 -07:00
Shokunin 771ded8167 ci: require only the tracked OpenBIOS backend in release checks
#575 stopped tracking generated/SCPH1001_*, but check_generated.sh and the
game-release template still required them, failing title release packaging.
SCPH1001 is now optional/local: complete -> noted, absent -> skipped with a
note, partial -> error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 03:34:56 -07:00