Commit Graph

1011 Commits

Author SHA1 Message Date
boburning b3abd6df01 fix: keep generated defaults portable with conditional resources 2026-10-24 09:39:02 -07:00
Matthew Stanley e5d92035a9 Review integration: borderless composition workaround
# Conflicts:
#	runtime/include/window_fullscreen.h
#	runtime/tests/test_window_fullscreen.cpp
2026-10-24 09:38:19 -07:00
Matthew Stanley d04fa8f10d Apply TCP debug policy on every game session
Start a newly selected production listener on offline rematch, reuse an existing listener, and cleanly release its transport state when disabled. Balance Winsock ownership and failed starts. Native production runtime and four focused tests pass, including six isolated real listener/bulk-write launch cases. Tracking: beads-eio.3.385.
2026-10-24 09:36:58 -07:00
Matthew Stanley 4979d99ab3 Add opt-in production TCP debugging and bulk RAM writes 2026-10-24 09:36:24 -07:00
Matthew Stanley 2043d8274b Review integration: exclusive multiplayer profiles and local grids
# Conflicts:
#	docs/MOD_PACKAGES.md
#	generated/OpenBIOS.emitter.sha
#	runtime/src/debug_server.c
#	runtime/tests/test_mod_runtime.cpp
2026-10-24 09:35:23 -07:00
Matthew Stanley 9bbd395f58 Review integration: guarded function override lifecycle
# Conflicts:
#	docs/TCP_COMMANDS.md
2026-10-24 09:32:39 -07:00
Matthew Stanley 56b6839602 Reject partial function override activation before session callbacks 2026-10-24 09:31:11 -07:00
Matthew Stanley 98e8bcda23 Review integration: postfx publication and bounded diagnostics
# Conflicts:
#	runtime/CMakeLists.txt
2026-10-24 09:28:59 -07:00
Matthew Stanley d2e1629aca Review integration: review/717-residency-20261024
# Conflicts:
#	runtime/src/debug_server.c
#	runtime/tests/test_duckstation_texture_pack.cpp
2026-10-24 09:28:21 -07:00
Matthew Stanley 7a0ba0e509 Review integration: review/703-encoder-lifecycle-20261024
# Conflicts:
#	docs/TCP_COMMANDS.md
2026-10-24 09:27:56 -07:00
Matthew Stanley e706b9d84f Publish coherent postfx projection and escape bounded diagnostic JSON 2026-10-24 09:26:47 -07:00
Matthew Stanley c5f67a1f4e Cover source retirement and indexed texture fallback on current master 2026-10-24 09:26:46 -07:00
Matthew Stanley dd7f45bb7e Bound recorder pipe writes and child shutdown waits 2026-10-24 09:23:38 -07:00
Matthew Stanley 57c25ece61 Validate current-base multiplayer build and preserve local render telemetry 2026-10-24 09:20:17 -07:00
Henrique Guedes 4cbedf5579 Add function overrides with guarded registration and cycle credit on current runtime 2026-10-24 09:18:57 -07:00
Matthew Stanley 8dcd73de96 Keep recorder production builds working and test the unsupported audio path 2026-10-24 08:52:20 -07:00
Matthew Stanley 7f0f77b9e1 WIP: video recorder, offscreen window, input_route axes
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 08:52:20 -07:00
Matthew Stanley 182ea3d8d3 Merge branch 'review/718-fmv-safety-20261024' into review/psx-prs-20261024
# Conflicts:
#	runtime/src/debug_server.c
2026-10-24 08:52:19 -07:00
Matthew Stanley 6640236dd8 Bound HD movie allocations and join decoder workers at teardown
Reject invalid index products and unsafe paths, cap encoded/decoded residency, recover allocation and partial worker-start failures, release GL movie textures with their context, and serialize diagnostics through the presenter. Real SDL decode/restart/failure test passes and SDL2 C seam compiles warning-free. Guest/present timestamp ownership remains a separate design gate. Tracking: beads-eio.3.388.
2026-10-24 08:51:46 -07:00
Matthew Stanley 400c747c11 Add atomic local four-view split presentation and extra test input ports 2026-10-24 08:46:37 -07:00
Matthew Stanley 9a17832619 Support exclusive roster mods and selectable netplay seat profiles 2026-10-24 08:45:18 -07:00
Matthew Stanley 6b6f0ed8f7 Resolve and show only conditionally selected mod resources 2026-10-24 08:45:07 -07:00
Matthew Stanley d352dc4342 Require original mounted disc geometry alongside content identity 2026-10-24 08:44:24 -07:00
Matthew Stanley bcbd1d4635 Enforce configured original disc content independently of mods 2026-10-24 08:44:23 -07:00
Matthew Stanley d7a2d5dd2a Support Portuguese diacritics in native indexed fonts 2026-10-24 08:44:11 -07:00
Matthew Stanley 6323433e58 Qualify native language sessions and derived file lifecycle 2026-10-24 08:44:11 -07:00
Matthew Stanley 6e0ac7cb10 Add native JSON text and verified Mode-2 language assets 2026-10-24 08:43:46 -07:00
Matthew Stanley 21c6b9c482 Add protected offline local view pair presentation 2026-10-24 08:43:17 -07:00
Matthew Stanley 2fe9f3126e debug: start queued controller input after a native state load 2026-10-24 08:42:32 -07:00
Matthew Stanley 5382f05b16 debug: allow frame-scheduled input routes on guest pad two 2026-10-24 08:42:31 -07:00
Matthew Stanley 6d465307a8 Persist launcher mod edits before Play
Save preferences independently of content preparation and simulation activation. Refs beads-eio.9.166 and MegaManX4Recomp#15.
2026-10-24 08:42:20 -07:00
Matthew Stanley ea7d4d2f58 Migrate stateless mod guards across snapshot configuration changes
Preserve mutable-provider schemas, memory layout and atomic validation. Only declared stateless legacy records can be discarded. Refs beads-eio.9.167.
2026-10-24 08:41:58 -07:00
Matthew Stanley 90c565148b Use ordinary borderless windows with Windows SDL2
Keep native fullscreen separate, preserve window geometry, and qualify both SDL backends. Refs beads-eio.3.354.
2026-10-24 08:41:58 -07:00
Matthew Stanley d326c31b27 Keep independent player views during netplay catch-up 2026-10-24 08:41:57 -07:00
Matthew Stanley 24b54b480b Preserve complete mod plans through lobby START and transport codecs 2026-10-24 08:41:57 -07:00
Matthew Stanley c73110fb0b Capture trusted title host snapshots and reset session resource arenas 2026-10-24 08:41:56 -07:00
Matthew Stanley 25588e01d1 Merge branch 'review/715-cadence-publication-20261024' into review/psx-prs-20261024 2026-10-24 08:33:10 -07:00
Matthew Stanley ff075a4ec5 Merge branch 'review/736-preload-repeat-20261024' into review/psx-prs-20261024
# Conflicts:
#	runtime/include/hd_texture_pack.h
#	runtime/src/duckstation_texture_pack.cpp
#	runtime/src/hd_texture_pack.cpp
#	runtime/tests/test_duckstation_texture_pack.cpp
#	runtime/tests/test_hd_texture_pack.cpp
2026-10-24 08:33:10 -07:00
Matthew Stanley 84ba185176 Publish cadence through shared video telemetry without reader races
Use a bounded atomic snapshot and presenter-owned reset across all backends. Readers sort their own snapshots; report host API completion cadence. Add deterministic and concurrent reader/reset coverage.
2026-10-24 08:32:29 -07:00
Matthew Stanley 214e5cdbe6 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 08:31:16 -07:00
Matthew Stanley a7f7a4bed3 Account retained preload bytes after publication failure 2026-10-24 08:22:57 -07:00
Shokunin 50cbe5f653 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 08:22:57 -07:00
Shokunin b6597c2c80 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 08:22:57 -07:00
Matthew Stanley 099081df51 Merge remote-tracking branch 'review-20261024/pr-736' into review/psx-prs-20261024 2026-10-24 08:08:50 -07:00
Aliet Exposito Garcia 70d80f688c 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 02:29:52 -04:00
Matthew Stanley 910c47602c Merge branch 'master' of https://github.com/RetroPortingToolKit/psxrecomp into fix/held-746-20261022
# Conflicts:
#	runtime/src/main.cpp
2026-10-22 18:01:49 -07:00
Matt Stanley afc82849be Apply Internal resolution and Supersampling live from the in-game menu 2026-10-22 17:59:52 -07:00
Matthew Stanley 674f393e59 Merge remote-tracking branch 'origin/pr-737' into fix/held-737-20261022 2026-10-22 17:37:05 -07:00
Matthew Stanley 62098e320f Separate live allocation probes from scripted dynamic scale counters 2026-10-22 17:33:26 -07:00
Matthew Stanley 570c4c8398 Merge remote-tracking branch 'origin/master' into fix/held-710-20261022 2026-10-22 17:25:02 -07:00