Commit Graph

1494 Commits

Author SHA1 Message Date
Matthew Stanley 66cc81fe63 TCP input injection for port 2 (set_input/press/clear_input port=2)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 16:19:30 -07:00
Matthew Stanley cd2566cdd9 Netplay presentation packages: stay active in netplay, guarded; render passes on live netplay frames
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 16:17:13 -07:00
Matthew Stanley c638648b59 Merge remote-tracking branch 'origin/master' into feat/high-frame-rate 2026-10-02 15:55:58 -07:00
Matt Stanley 973d93a907 Merge pull request #456 from Alexbeav/up/bios-scph5500-5501-2
bios: add the SCPH-5500 and SCPH-5501 profiles
2026-10-02 15:35:49 -07:00
Matt Stanley 7f72d7ed7b Merge pull request #452 from Alexbeav/up/changethread-self-clears-pc
traps: clear pc after a same-thread changethread
2026-10-02 15:35:45 -07:00
Matt Stanley eff6000d18 Merge pull request #454 from Alexbeav/up/cmake-ccache-windows-only
cmake: only look for ccache.exe on windows hosts
2026-10-02 15:35:38 -07:00
Matt Stanley 00121e5def Merge pull request #463 from Alexbeav/up/sdl-main-guard-standalone-test
tests: let the sdl_main guard skip the stand-alone fullscreen test
2026-10-02 15:35:34 -07:00
Matthew Stanley a408bd8368 Render passes: roll precision-tracking shadows back with the machine
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:41:53 -07:00
Matthew Stanley 227cb93500 PGXP: shift the SXY FIFO shadows on an SXYP write
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:35:39 -07:00
Matthew Stanley e4b3e3d7cd sdl3_main_single_include: allow standalone test executables with their own main
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:25:14 -07:00
Matthew Stanley 8f814a37ba wide_overlay_band_scissor: guard the draw-area clamp in wide_band_scissor_x
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:25:00 -07:00
Matthew Stanley 521cbeaa52 gl_internal_scale_guards: flat batch queues with its backdrop gate
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:24:34 -07:00
Matthew Stanley 295aee77e7 overlay_pair_dedup_harness: stub psx_mod_instruction
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:24:16 -07:00
Matthew Stanley cf443afb3d ws_cull_edge_interp_test: stub mod instruction hooks
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:23:39 -07:00
Matthew Stanley cf6ac8a580 Runtime tests: link gpu_timeline where needed, no-debug ring stub, guards for span replay
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:21:53 -07:00
Matthew Stanley 72e6d7e01d PGXP: carry vertex fields through bitwise ops, keep depth, fix in-place aliasing
Hook every GPR-writing ALU op; rebase onto the 11-bit GP0 field. Spider-Man ORs clip flags into SXY2 before storing it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:21:52 -07:00
Matthew Stanley 534dcd5df3 PGXP: always-on ring of refused perspective-depth lookups (TCP pgxp_miss_ring)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 12:00:42 -07:00
Matthew Stanley ce22e54e89 TCP pgxp_shadow: read PGXP shadow slots by address or register
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 11:57:55 -07:00
Matthew Stanley 36bea23bd2 PGXP: census which check refuses a precise-word depth lookup
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 11:45:15 -07:00
Matthew Stanley 9594b3d79b Mod catalog: stage sibling runtimes one after another
Siblings sharing an output directory (PGXP clones, Tomba 2's regions) raced each other's mods/bundled wipe under -j2.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 11:33:29 -07:00
Matthew Stanley af4dc2309e PGXP variant: stage the clone's mod catalog after the base target's
Both wrote one mods/bundled concurrently under -j2 and the wipe failed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 11:32:36 -07:00
Matthew Stanley bf91728a93 Widescreen: full-width overlays to within W/64 of each edge
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 11:26:28 -07:00
Matthew Stanley cfd13c0b0a Widescreen: needles and dial hands inside a HUD widget squash with it
Triangles and rotated quads in the HUD rank that lie inside the admitted pieces they overlap join that widget (Spider-Man's compass arrow stretched while its ring squashed).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 11:24:51 -07:00
Matthew Stanley 95fed96743 Widescreen: a full-display-width primitive is an overlay, not UI
Letterbox bars squashed as HUD left the revealed margins showing the frame's clear colour. Also link gpu_timeline.c into the GPU exec tests (broken since b2104464).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 11:19:28 -07:00
Matthew Stanley d614395470 Debug server: window_size resizes the game window for window-shaped checks
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 11:14:58 -07:00
Matthew Stanley e3133d27d8 Merge feat/render-pass-kit (ROTATION, counters, offline build fix)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 10:33:50 -07:00
Matthew Stanley f9cafa7318 Mod runtime: named plugin counters (psx_mod_counter_add, mod_counters)
Same API as the V8:2 branch's b2104464, for every frame-rate plugin.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 10:32:23 -07:00
Matthew Stanley 03f914be6f Motion kit: ROTATION kind for bare 3x3 rotations
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 10:29:52 -07:00
Matthew Stanley bd2c3b8c62 Offline builds: host relay status only with recomp-net linked
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 10:24:36 -07:00
Matthew Stanley 8e655d97ab Merge feat/render-pass-kit (motion kit, frame driver)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 10:17:29 -07:00
Matthew Stanley 642cd48f7d Render passes: motion kit and per-frame driver for frame-rate plugins; porting guide
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 10:16:55 -07:00
Matthew Stanley 3935ae8cab Render passes: spans run their calls with the full trampoline; phase 0 is the flipped image
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 10:12:19 -07:00
Matthew Stanley 61bc68e533 Render passes: FLIP_SHOWN mode for games that flip each frame as soon as it is drawn 2026-10-02 10:12:18 -07:00
Matthew Stanley b27be21d1e Frontend: --hidden-window never blocks on a modal or file picker 2026-10-02 10:12:18 -07:00
Matthew Stanley 1e6ef854c5 Frontend: --hidden-window runs the full presenter in a never-shown window 2026-10-02 10:12:17 -07:00
Matthew Stanley 5297bd7a00 Render passes: replay a span of a compiled guest function (psx_mod_run_guest_span)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 10:12:17 -07:00
Matthew Stanley 9c0c98bd96 Render passes: spans run their calls with the full trampoline; phase 0 is the flipped image
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 09:31:14 -07:00
Matthew Stanley a6c3728c22 Render passes: FLIP_SHOWN mode for games that flip each frame as soon as it is drawn 2026-10-02 09:11:43 -07:00
Matthew Stanley 8b1bcfe43a Frontend: --hidden-window never blocks on a modal or file picker 2026-10-02 09:03:05 -07:00
Matthew Stanley 7d1ad2ec19 Frontend: --hidden-window runs the full presenter in a never-shown window 2026-10-02 09:00:38 -07:00
Matthew Stanley 1c86297e3b Render passes: replay a span of a compiled guest function (psx_mod_run_guest_span)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 08:56:48 -07:00
Matthew Stanley 6b27a1a952 Merge fix: guest-function hooks carry the filter slot 2026-10-02 08:44:21 -07:00
Matthew Stanley 81b449d7c9 Merge V8:2 framework branch (b9f9ba23) into master for render passes
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 08:36:58 -07:00
Matt Stanley 641537be82 Merge pull request #473 from RetroPortingToolKit/fix/unsplit-shared-hud
Netplay: show complete shared timers in both unsplit views
2026-10-01 16:44:43 -07:00
Matthew Stanley 5e413cbd84 netplay: duplicate shared HUD counters into both unsplit views 2026-10-01 16:43:56 -07:00
Alex Vanderveen 1982e7dcb5 netplay: host relay for online rooms (amends §108 "online is always SFU")
An online room this build hosts asks the lobby server for transport "host"
(match_caps.relay): the host carries the match on its own UDP port and
guests dial it; the server's relay (SFU) is the fallback when a guest's
probe fails (recomp-net-server WS_LOBBY.md "Host relay"). The mechanics are
recomp-net's recomp_net/host_relay.h, pinned here (lib/recomp-net b0751b7);
this engine's own lobby-client copy gets the same glue as rnet_lobby_client:
the cap (emitted only when asked), the launch's transport ->
PsxLobbyJoinInfo.transport_host (force_input_relay 0; the host accepts
first / hubs instead of dialling the guest's LAN address), each seat's
published path / path_fresh, host_relay_step() from psx_lobby_pump, and
unmap on leave / disconnect.

psx_netplay: transport_host takes the LAN / hub path instead of the "MotK
online needs the SFU" rule. main.cpp: relay_host_get/set + relay_status
for recomp-ui (Network Settings / MATCH SETTINGS / ROOM "Match Relay"),
transport_host on the launch and into PsxNetplayConfig, and the
host==guest-advertise SFU inference skipped on a host launch; all under
RECOMP_LAUNCHER_HAS_HOST_RELAY so older recomp-ui pins still build.

Compile-checked against workspace recomp-ui 58604b0 (MOTK scratch
configure: full build and link).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-01 19:10:30 -04:00
Alex Vanderveen 35d604ab80 netplay: matches the Retro hub negotiates -- ingest_launch and --netplay-query
The hub holds the lobby seat; the game settles everything itself
(retcomm-launcher docs/NETPLAY_HANDOFF.md):
- psx_lobby_ingest_record replays the hub's seat/room/launch messages
  through handle_server_json, so fill_launch answers as in-game.
- --netplay-query answers what this build's lobby would send: disc_fp,
  set_ready (BIOS offer), start (default caps; settled from a room).
- set_ready/start builders and the host start-caps settle are factored out
  unchanged and shared by in-game PLAY and the query.
- A handed-off match ends the process (the hub holds the room).

Two CTR processes from records, local relay: all 80 live digests equal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 19:10:30 -04:00
Matthew Stanley 2163035e9a netplay local viewport: projection renderer, hi-res half present, state gate
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-01 16:02:08 -07:00
Matthew Stanley 881c94a869 widescreen: netplay local viewport keeps the display's pixel aspect
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-01 15:30:39 -07:00
Matthew Stanley 3b41a81365 netplay: debug-server input override drives headless peers
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-01 15:07:43 -07:00