3522 Commits

Author SHA1 Message Date
Matt Stanley 7097d5367d Merge pull request #767 from RetroPortingToolKit/integrate/marios-hat-master-20261024
Support trusted mod PCM on the guest audio clock and prompt snapshots
2026-10-25 01:21:05 -07:00
Matthew Stanley 97c9aa4018 Keep overlay PCM declarations scoped to the new API 2026-10-25 00:12:00 -07:00
Matthew Stanley 8c87b03241 Verify mod PCM callbacks follow the guest SPU clock 2026-10-25 00:06:40 -07:00
Matthew Stanley f29503ffcd Poll staged user snapshots before interrupt maintenance fast returns 2026-10-25 00:06:40 -07:00
Matthew Stanley 161ef53b20 Add deterministic post-SPU PCM callbacks for trusted mods 2026-10-25 00:06:40 -07:00
Matt Stanley 3db41f83f8 Merge pull request #766 from RetroPortingToolKit/feat/settings-to-builtin-mods-20261024
Move PSX enhancement settings to built-in mods; remove Graphics presets
2026-10-24 20:45:27 -07:00
Matthew Stanley 4734f69306 Internal resolution becomes a built-in host-only mod; drop the sample-rate setting; host-only mod options editable in netplay
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 20:29:37 -07:00
Matthew Stanley 7a786f8e84 Move PSX enhancement settings to built-in host-only mods; remove Graphics presets
CRT Filter, Image Filtering, Enhanced Audio and Rewind become default-off mods (netplay = host_only,
outside the plan fingerprint); Internal resolution gains Auto in place of dynamic resolution.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 19:23:40 -07:00
Matt Stanley e7ed72736a Merge pull request #764 from RetroPortingToolKit/fix/host-input-layer-digital-stick-fold-20261024
Fold the debug host layer's left stick onto the D-pad for digital pads
2026-10-24 18:44:20 -07:00
Matthew Stanley 7ef29ad112 Fold the debug host layer's left stick onto the D-pad for digital pads
set_input layer=host is a default-mapped gamepad; a real one folds ls_* onto the D-pad in digital mode, the layer dropped the stick.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 18:42:06 -07:00
Matt Stanley 4242bd10fd Merge pull request #763 from RetroPortingToolKit/docs/quick-mods-card-only-20261024
Describe [launcher] quick_controls as the Quick Mods card only
2026-10-24 17:59:55 -07:00
Matthew Stanley fc6d99f5d2 Describe [launcher] quick_controls as the Quick Mods card only
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 17:33:26 -07:00
Matthew Stanley 61c2217346 Refresh OpenBIOS emitter fingerprint after merging #760 and #762
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 16:53:04 -07:00
Matt Stanley 9b41a1b712 Merge pull request #762 from RetroPortingToolKit/integrate/tomba2-resident-to-master-20261024
Land Tomba 2 widescreen cull work on master
2026-10-24 16:51:29 -07:00
Matt Stanley e6c59e6c94 Merge pull request #760 from RetroPortingToolKit/feat/launcher-quick-controls-artwork-20261024
Launcher quick controls, regional locked disc and artwork root
2026-10-24 16:51:25 -07:00
Matt Stanley 1d92ae7f39 Merge pull request #759 from RetroPortingToolKit/fix/spu-shadow-cd-activity-gate-20261024
Gate SPU HQ CD bypass on actual CD sample activity
2026-10-24 16:51:16 -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 e673396353 Refresh OpenBIOS emitter fingerprint for widescreen cull ports
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 15:24:29 -07:00
Matthew Stanley 969eaa01ec Recover verified thin terrain faces from zero integer NCLIP
(cherry picked from commit bffd30fe81)
2026-10-24 15:24:21 -07:00
Matthew Stanley 0ca9c3a645 Preserve legacy overlay keys for default camera component order
(cherry picked from commit 5478e5cfd1)
2026-10-24 15:24:21 -07:00
Matthew Stanley 4fca2d27d8 Allow explicit world axes for widescreen visibility cones
(cherry picked from commit 2c6e0a3a20)
2026-10-24 15:24:20 -07:00
Matthew Stanley 42ddce61b5 Preserve wide backdrop composites and guard GTE flag rejection
(cherry picked from commit 6b6402e7f0)
2026-10-24 15:15:46 -07:00
Matthew Stanley 6f37a0edee Widen guarded packed screen-X predicates in native and interpreted code
(cherry picked from commit b0f7b2be8e)
2026-10-24 15:15:42 -07:00
Matthew Stanley ec6b77b3d6 Include windows.h directly in regional_launch.h
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 13:26:15 -07:00
Matthew Stanley 33e01140e4 Merge branch 'fix/spu-shadow-cd-activity-gate-20261024' into feat/launcher-quick-controls-artwork-20261024 2026-10-24 13:10:23 -07:00
Matthew Stanley 0d605e744f Merge branch 'integrate/tombi-eu-to-master-20261024' into fix/spu-shadow-cd-activity-gate-20261024 2026-10-24 13:10:19 -07:00
Matthew Stanley d170737361 Merge remote-tracking branch 'origin/master' into integrate/tombi-eu-to-master-20261024
# Conflicts:
#	runtime/src/mod_runtime.cpp
2026-10-24 13:10:16 -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
Matt Stanley d19d8c7ef4 Merge pull request #736: bounded HD replacement preload
Current-master rebase retains both source-retirement and preload test entry points. Full native runtime build and eight relevant checks pass. Prior combined title regression and owner visual acceptance recorded; owner explicitly authorized this merge.
2026-10-24 12:37:16 -07:00
Matthew Stanley cf015086fa Check the separate pinned and on-demand cache accounting 2026-10-24 12:36:09 -07:00
Matthew Stanley 1553af8c52 Verify pinned preload residency in the real GL cache pressure fixture 2026-10-24 12:36:09 -07:00
Matthew Stanley c3ff07814c Account existing pinned textures across preload retries
Bound reservations against total retained residency, skip decoding pinned images, and report complete repeated loads truthfully. Cover cap reductions and publication retry in both formats. Tracking: beads-eio.3.386.
2026-10-24 12:36:09 -07:00
Matthew Stanley 338bf846cb Account retained preload bytes after publication failure 2026-10-24 12:36:08 -07:00
Shokunin 954e28b051 HD preload: bounded contract, safe threads, explicit partial result
Both preload functions now take an aggregate decoded-byte cap and a thread
cap (runtime: 512 MiB, 4 threads). Each image is probed and its RGBA
reserved against the cap before decoding; per-image limits follow the
pack's decode budget, which is no longer grown to usage (pinned images sit
outside it, and outside the Duck 512-entry cap). The pool (texture_pack_
preload.hpp) joins every started thread on unwinding, survives thread
creation failure, and catches worker exceptions. Images not preloaded are
left to the asynchronous budgeted path instead of being marked failed, and
HdTexturePreloadResult reports loaded / over-cap / failed / worker errors
with a complete-or-partial status. The Beetle async worker no longer lets
allocation failures escape its thread entry.

Tests cover both formats: complete preload, over-cap skip with on-demand
fallback, malformed images, injected worker and thread-creation failures,
and budget reservation bounds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 12:36:08 -07:00
Shokunin 0a9fb8600a HD textures: decode the whole pack into RAM before the game runs
Replacement images were decoded on demand by a single low-priority
worker, so a texture first seen mid-race appeared late and could be
evicted again. When replacements are on, configuring a pack now decodes
every unambiguous image (DuckStation and Beetle formats) across all
cores and pins it in RAM before the game draws; pinned images are never
evicted by the decode budget. Logs the count, size and time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 12:35:57 -07:00
Matt Stanley 6f84a29f60 Merge pull request #717: filtered and indexed HD texture sampling
Current-master rebase retains both adjacent debug commands. Full native runtime build and eight relevant checks pass; prior positive real GL indexed/live-CLUT coverage and owner-accepted combined title gate recorded. Owner explicitly authorized this merge.
2026-10-24 12:35:24 -07:00
Matt Stanley 8c649cd402 Merge pull request #758 from RetroPortingToolKit/fix/hle-sys03-closed-thread-context-20261024
Save SYS03 outgoing context for a closed current thread
2026-10-24 12:32:31 -07:00
Matthew Stanley a149511e41 Add launcher quick controls, regional locked disc and artwork root
Mods declare quick = true for the Quick Mods card; [launcher] quick_controls opts a title in. Regional identity now hashes portably. Based on michaelm-afk's handoff.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 12:31:56 -07:00
Matthew Stanley 4abfd37779 Gate SPU HQ CD bypass on actual CD sample activity
A game can leave the SPU CD-enable bit set through voice-only play, which kept the HQ voice mix bypassed. Reported by michaelm-afk.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 12:31:56 -07:00
Matthew Stanley 541a9b067f Save SYS03 outgoing context for a closed current thread
CloseTh(current); ChangeTh(other) still stores the outgoing registers, as the BIOS exception handler does. Fixes both the HLE scheduler and the LLE fiber bridge. Reported by michaelm-afk.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 12:31:29 -07:00
Matthew Stanley 8ff16e24b3 Exercise indexed replacement sampling and live CLUT changes on real GL 2026-10-24 12:30:31 -07:00
Matthew Stanley 5540098392 Assert native texture STP preservation in HD renderer fixtures 2026-10-24 12:30:30 -07:00
Matthew Stanley c78a9dd4a1 Cover source retirement and indexed texture fallback on current master 2026-10-24 12:30:30 -07:00
yacineolivier-maker f7fed074f1 HD textures: filtered sampling, a cache sized for a whole pack, indexed keys
- Filtered replacement sampling: with any texture filter but nearest, the
  replacement is sampled through its mip chain (textureGrad), the footprint
  clamped to the primitive's own UV bounds so atlas neighbours cannot bleed
  in. Texture windows (repeat) and UVs outside the page keep hd_texel.
- Edge clamp: an out-of-bounds sample clamped to the primitive's UV bounds
  takes the edge's sub-texel position too (keeping the outside fraction read
  a 1 px sliver of the next glyph at sprite borders).
- GL cache: 4096 slots and a PSX_HD_GL_CACHE_MIB budget (default 2048 MiB)
  with a direct-mapped hint table; a 4x pack of one race scene is several
  hundred textures, and the old 256 slot / 128 MiB cache re-uploaded and
  re-mipped them every frame.
- Invalidation: duck_texture_pack_invalidate returns early when a native
  write touches no residency or cache entry (almost every draw under HD
  authority lands on the frame buffer), and retire_unused walks the
  residency lists once instead of once per source.
- Indexed replacements: a TTTTTTTT-index.png key resolves through the palette
  in use at draw time, for packs whose textures are shared by several CLUTs.
- Debug: TCP {"cmd":"hd_uploads","x":..,"y":..} lists the texture uploads
  covering a VRAM point (pack authoring).

Measured with a full HD HUD and course pack for R4: steady 60 fps in races
where the old cache dropped to the high 20s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rkyma8rbyPiccs9n2bkyG6
2026-10-24 12:30:30 -07:00
Matt Stanley ddf1dfdbd4 Merge pull request #716: post effects depth, history and live uniforms
Coherent projection publication and bounded diagnostics; repaired final-pass history advancement and reload clock. Real GL182 checks and combined title regression/visual gate passed. Owner explicitly authorized this merge.
2026-10-24 12:29:29 -07:00
Matt Stanley 38f11cd804 Merge pull request #715: race-free host API present cadence
Atomic/versioned telemetry and presenter-owned reset; explicitly measures host API completion. Focused and combined runtime/title checks passed; owner explicitly authorized this merge.
2026-10-24 12:29:22 -07:00
Matt Stanley 4f754ddc41 Merge pull request #755: configurable widescreen SXY culling
Rebased onto #174, regenerated OpenBIOS fingerprint with the exact emitter and repaired isolated optional-hook fixture linkage; five focused checks pass. Owner explicitly authorized this merge after the combined title regression/visual gate.
2026-10-24 12:29:09 -07:00
Aliet Exposito Garcia 1c4731bb14 feat: add configurable widescreen sxy culling support
Some PlayStation 1 titles implement trivial rejection by folding the sign bits of projected vertex screen coordinates across triangle or quad primitives with a chain of AND instructions. Without adjusting these checks during widescreen presentation, geometry in the newly revealed horizontal area is still rejected by the original 4:3 bounds. Rather than embedding title specific instruction patterns directly into the recompiler, this introduces a generalized `[[widescreen.cull.sxy]]` configuration schema within `game.toml`.

Game configurations can now declare multi vertex trivial rejection sequences by their exact AND instruction words, vertex registers and the branch that consumes the result. The loader derives the expected chain from those words and rejects any other shape. Each AND keeps its original value except for the horizontal sign bit, which survives only while that vertex lies beyond the revealed left edge, so vertical and right side rejection are preserved and 4:3 output is bit identical. Shifted coordinate lower edge comparisons reuse the existing `screen_x_sites` handling through a new `slti rt, x, 0` form instead of adding a separate site family.

Full parity is maintained between recompiled code and the dirty RAM interpreter by sharing the same runtime helper and validating every fold and consumer instruction word on both paths, leaving mismatching overlay variants untouched. This eliminates hardcoded game logic from the recompiler while giving titles clean geometry retention in expanded aspect ratios.
2026-10-24 12:28:38 -07:00
Matt Stanley c4751efcbf Merge pull request #174: function override tier
Reviewed repaired head d486a78acf0fcccbedbae9479551abd28a9802cf; combined regression evidence and owner visual acceptance recorded on review/psx-prs-20261024. Owner explicitly authorized merging the six reviewed ready PRs.
2026-10-24 12:23:27 -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