Commit Graph

1509 Commits

Author SHA1 Message Date
Matthew Stanley cf2bdbb6fc gte: fov_scale uses scaled H in PGXP clipper, keeps H=0, off in netplay; RTP ring keeps canonical H
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-04 10:55:58 -07:00
Matthew Stanley b6a659ca4a Merge origin/master into review/pr494-fix
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-04 10:43:41 -07:00
Matt Stanley 9aacc1f01e Merge pull request #479 from RetroPortingToolKit/fix/netplay-off-host-relay-include
runtime: keep the host relay out of offline builds
2026-10-04 10:35:36 -07:00
Matt Stanley a9098f7c98 Merge pull request #488 from FractalEngineer/fix/netplay-disabled-online-stubs
runtime: fix missing online-player lobby symbols in netplay-disabled builds
2026-10-04 10:35:23 -07:00
Matthew Stanley cd9981cda8 Clip proven native-wide world faces across camera and screen planes 2026-10-03 23:51:14 -07:00
Matthew Stanley 3b1f9319f3 Preserve movie clears and packed VRAM during depth24 scanout 2026-10-03 23:51:14 -07:00
Matthew Stanley 553e0e7c57 Clarify Windows diagnostic stack capture implementation 2026-10-03 23:51:14 -07:00
Matthew Stanley fb31d94730 Bound static code validation cost and shorten Windows diagnostic suspension 2026-10-03 23:51:13 -07:00
Matthew Stanley 22883ef052 Use upstream batched texture windows and inactive interpreter hook seams 2026-10-03 23:51:13 -07:00
Matthew Stanley 11ff1107c1 Preserve upstream input policy and adapt integration fixtures 2026-10-03 23:46:26 -07:00
Matthew Stanley d2c8f03e76 Add guarded native draw replay, motion interpolation and stable world filtering 2026-10-03 23:46:25 -07:00
Matthew Stanley 030cb00c45 Keep upstream PGXP session fixture linked with mask APIs 2026-10-03 23:46:24 -07:00
Matthew Stanley 64bd153bc7 Merge commit '128684b6a3526120aa26394f2bd553f991ee03e8' into pr/medievil-quality-upstream 2026-10-03 23:26:54 -07:00
Yves 2ad2725548 gte: add opt-in projection-distance scaling
Adapted from the original feature commits, retaining their author credit:
[82695b75](https://github.com/FractalEngineer/psxrecomp/commit/82695b75d79610ca7a99783adf9dd5195edfcdd0)
[5633e868](https://github.com/FractalEngineer/psxrecomp/commit/5633e86878611a14d3a78e8f9708452a07bc7238)
[bbd01ccf](https://github.com/FractalEngineer/psxrecomp/commit/bbd01ccfc91c1d9ebe199dad071df64e5b13d06d)
[39d478db](https://github.com/FractalEngineer/psxrecomp/commit/39d478db83132815c2c8c593fc719c4bf67301b0)

Source scope and current-master validation: docs/internal/upstream/gte-projection-distance-scale.md

Co-authored-by: Yves <calibratedbeats@gmail.com>
2026-10-04 05:54:03 +08:00
Yves 88e8d59de3 runtime: fix missing online-player lobby symbols in netplay-disabled builds
Adapted from the original feature commits, retaining their author credit:
[ce63101f](https://github.com/FractalEngineer/psxrecomp/commit/ce63101f0f964845d51fb7d4b1fc96ab35192509)

Source scope and current-master validation: docs/internal/upstream/netplay-disabled-online-stubs.md

Co-authored-by: Yves <calibratedbeats@gmail.com>
2026-10-04 05:54:03 +08:00
Matthew Stanley 900e18b306 Expose visible widescreen reveal separately from culling guards 2026-10-02 20:44:37 -07:00
Matthew Stanley 977c25dba3 Support explicitly owned adaptive screen masks and centred HUD packets 2026-10-02 20:42:00 -07:00
Matthew Stanley d44bdfc6fd tests: stub the masked-reject and NCLIP-branch callbacks in the overlay harness
MinGW's linker requires every forwarder overlay_loader.c references.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 20:06:33 -07:00
Matthew Stanley 6674024285 Merge master into feat/medievil-native-wide-guards
Reconciled with #470 (PGXP): gpu.c precise vertices take PGXP only under geometry correction and count it, then native-wide edge recovery; the PGXP triangle stat stays PGXP-only. Stubs and tests from both kept; stamps recomputed.
2026-10-02 20:00:23 -07:00
Matthew Stanley 42053afc17 Merge master into up/screen-x-edge16
recompiler/CMakeLists.txt: keep both new codegen test targets (this PR and #468).
2026-10-02 19:43:43 -07:00
Matt Stanley dec516c08b Merge pull request #476 from Alexbeav/up/netplay-start-failure-text
netplay: say why a start failed
2026-10-02 19:42:52 -07:00
Matthew Stanley a423f74f7c tests: pgxp_session builds on MinGW (no POSIX setenv/unsetenv)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 19:36:57 -07:00
Matthew Stanley 40af8a428c Merge master into feat/pgxp
Master moved the textured-dot test stubs into gpu_exec_stubs.inc; the PGXP stubs move there too. pgxp_note_rect_bypass stub takes (int). Stamps recomputed.
2026-10-02 19:30:59 -07:00
Matthew Stanley 30a4072c25 Merge master into feat/max-detail
Stamps recomputed with tools/bios_emitter_fingerprint.cmake after #480's restamp.
2026-10-02 19:22:24 -07:00
Matt Stanley bb5284bf78 Merge pull request #459 from Alexbeav/up/interp-refused-game-text-2
interp: keep interpreting through game text that dispatch refuses
2026-10-02 19:21:42 -07:00
Matthew Stanley 54826826a6 tests: define the draw-distance clamp flag in the refused-game-text fixture
#459's fixture predates #468; fixture_link stubs the undefined data symbol as a function, which reads non-zero and aborts.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 19:21:09 -07:00
Matt Stanley 921d0b021d Merge pull request #467 from RetroPortingToolKit/feat/vs-split
GL: texture window per vertex; opt-in batching across texture windows
2026-10-02 19:20:52 -07:00
Matt Stanley adf2b8a01c Merge pull request #461 from Alexbeav/up/launcher-quit-keeps-settings
launcher: keep settings changed and dismissed with quit
2026-10-02 19:20:48 -07:00
Matt Stanley 0347edd577 Merge pull request #455 from Alexbeav/up/settings-paths-relative
runtime: keep a portable game folder portable (relative settings paths)
2026-10-02 19:20:44 -07:00
Matt Stanley a1a755c7d6 Merge pull request #453 from Alexbeav/up/interp-cop0-before-charge
interp: read cop0 before the instruction's own cycle charge
2026-10-02 19:20:39 -07:00
Matt Stanley fa7105db9f Merge pull request #481 from RetroPortingToolKit/fix/mdec-never-decoded-snapshot
mdec: keep "never decoded" never across a snapshot load
2026-10-02 18:45:50 -07:00
Matt Stanley 6b9a2d49ac Merge pull request #482 from RetroPortingToolKit/fix/bundle-tinycc-license
release: ship TinyCC's LGPL-2.1 notice with the bundled tcc
2026-10-02 18:30:02 -07:00
Matt Stanley 32464ef6f0 Merge pull request #458 from Alexbeav/up/dma-gpu-list-cpu-hold
dma: hold the cpu while a kicked gpu linked-list walk runs
2026-10-02 18:25:35 -07:00
Matthew Stanley a95d8c77ee Merge remote-tracking branch 'origin/master' into feat/guarded-packed-wide-cull 2026-10-02 16:51:02 -07:00
Matthew Stanley 1ed0dfd22d Recover saturated winding at guarded native-wide rendering branches 2026-10-02 16:47:59 -07:00
Matthew Stanley 3787120488 Recover saturated horizontal projections in opt-in native-wide rendering 2026-10-02 16:00:02 -07:00
Matthew Stanley 04375fd453 release: ship TinyCC's LGPL-2.1 notice with the bundled tcc
Closes #474. The win64 binary zip carries no license file; stage the notice beside tcc.exe and in licenses/, and make the zip verifier require both.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 15:49:13 -07:00
Matthew Stanley 439423af03 mdec: keep "never decoded" never across a snapshot load
Fixes the false FMV flag after every snapshot load made before the first video (#475 cause 1); v1 payloads still load. Drops the unread host-frame stamp.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 15:44:09 -07:00
Matthew Stanley 02e1246a3b runtime: keep the host relay out of offline builds
1982e7dc included recomp_net/host_relay.h unguarded, so PSX_NETPLAY=OFF builds fail to compile (optional_netplay_auth caught it).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 15:40:36 -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 c29e934308 Add guarded packed-coordinate culling for native-wide adapters 2026-10-02 14:12:20 -07:00
Alexandros Mandravillis 57f0505bd2 Widen lui and bltz screen_x_sites: a screen X kept in the high half
A renderer that keeps a screen X as SX << 16 tests the right edge against
a lui-held W << 16 and the left edge with bltz on the shifted value. No
explicit [widescreen.cull] kind fits either: bltz_sites compares the whole
register with -margin, and a lui at a screen_x site was a build error.

screen_x_sites now also takes
  lui rt, W        -> rt = (W + margin) << 16
  bltz x, outside  -> taken while SX < -margin   (x = SX << 16)
Both are the identity at 4:3. The helpers are defined for native code and
for overlay shards; their math is in ws_cull_edge.h. The two prototypes are
written only for a config that lists screen_x_sites, so the generated code
of every other title is unchanged.
2026-10-02 21:27:15 +03:00
Alexandros Mandravillis 1d98dd5d30 netplay: a failed start from the launcher returns to the room
A match started from the launcher closed the program when the start failed, with the reason on a console the player does not see. It now ends through netplay_soft_exit, keeps the sentence for the status line and goes back to the room before the scheduler runs, so the game is not booted offline. No session is open at that point, so no BYE is sent. A command-line start still exits with code 1.
2026-10-02 19:13:57 +03:00
Alexandros Mandravillis c1a9e52894 netplay: say why a start failed
A failed start printed "built without recomp-net, or bind/peer invalid" for every cause. A player whose system held the UDP port read first that the build had no netplay.

The library answers a refused bind, a listen address it cannot read and a peer address it cannot use with the same -1. main.cpp now does those steps again (it reads the listen address as the library does, looks up a name, binds without address reuse) and reports the system's answer. The sentence names a cause only when the system does: address in use, access denied (a port range Windows keeps for Hyper-V or WSL, a port below 1024 elsewhere), address not available. Any other error gets the number and the system's text. The peer address is named only when the listen address opened and the peer address cannot be read. The build is named only when it has no netplay.

The sentences are in netplay_exit_reason.c with unit cases; a source guard checks the wiring in main.cpp.
2026-10-02 19:13:57 +03: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