Relative bios.cfg / settings picks like bios/SCPH1001.BIN broke after
rebuild when cwd was build/; launcher verify also ignored exe-anchored
resolve. Absolutize sidecars, hydrate from bios.cfg, and resolve in
ae_bios_verify.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep local codegen/FMV cutover/zlib host work while taking upstream
tests, FPS telemetry, and mod-provider wiring.
Co-authored-by: Cursor <cursoragent@cursor.com>
SDL_main.h is a single-header implementation in SDL3. Include it only from the translation unit that owns main so MinGW emits one WinMain instead of one per SDL-using source.
PSXRECOMP_ALLOW_NO_BIOS links an empty backend registry so CI can ship a
launcher without OpenBIOS/SCPH1001 generated C. First-run generate emits
BIOS backends on the user's machine.
Co-authored-by: Cursor <cursoragent@cursor.com>
Only re-arm depth24 cutover blank on long MDEC idle (not every ~15fps
decode gap), and bring back SSE2/NEON IDCT hot paths lost from the dirty tree.
Co-authored-by: Cursor <cursoragent@cursor.com>
Call the game codegen host after BIOS/disc checks so missing generated/
opens Generate & rebuild, and handle relaunch after a successful rebuild.
Co-authored-by: Cursor <cursoragent@cursor.com>
it stops checking the entire PSX disc for full hash check every time the launcher runs, assuming the user's hash checked it when selecting the disc the first time and saving it to settings, so it just validates the file name and size instead, then it shares lifecycle with the launcher and the game to load the game faster, and several optimizations were made to loadstate paths which I think in the end relied on reanchoring host timings to the restored clock that came with the state
Resolve main.cpp comment conflicts (keep MotK NETPLAY/P1 wording and
fail-closed match_caps launch). Point lib/recomp-net at 5336f24 (same
tree as local host-auth delay sync patch).
Co-authored-by: Cursor <cursoragent@cursor.com>
Enabling SCPH-1070 during BIOS boot breaks pad/LoadExe bring-up for
N-player titles. Offline builds arm multitap once fntrace sees game start;
netplay still enables from slot_count >= 3.
Co-authored-by: Cursor <cursoragent@cursor.com>
Games pass MAX_PLAYERS (2..5, default 2) to bake PSX_MAX_PLAYERS. SCPH-1070
multitap maps pads 0–3 on port 1 and pad 4 on port 2. Lobby max_slots and
recomp-net slot_count follow the game player count; MotK stays at 2.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep LAN membership on the local registry/UDP path and online lobbies on the
WebSocket server, return soft-exits to the same room for rematch, accept
guest ephemeral peers, and fail LAN create when the UDP port is busy while
online create auto-selects a free port. Bump recomp-ui for lobby UI updates.
Co-authored-by: Cursor <cursoragent@cursor.com>
Implement list_lan_ips (GetAdaptersAddresses / getifaddrs), bump
recomp-ui for the Host Lobby LAN IP combo, and keep UDP bind on 0.0.0.0.
Co-authored-by: Cursor <cursoragent@cursor.com>
Export service_to_now, rename advance to *_slow for the header inline,
and give g_audio_host_rate C linkage.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove the in-tree launcher implementation and its submodules now that game projects use recomp-ui for launcher support.
Keep Vulkan hidden from the launcher unless a game explicitly sets [video] offer_vulkan = true, and clamp stale Vulkan settings back to OpenGL when it is not offered.
Co-authored-by: Martin Penkava <mpenkava1337@gmail.com>
Add a small generic frame-hook surface for statically linked mod code. Mods can
register C callbacks with mod_register_frame_hook(); the runtime invokes them
after normal input sampling and before presentation/widescreen frame work.
Expose the SDL window symbol with C linkage so linked mod code can integrate
with SDL APIs such as window grab control.
Add opt-in [widescreen.cull] xclip_load_sites: a configured `lw rt,off(rs)`
loading a per-primitive X-reject bound (sltu-compared against ANDI-masked
u16 screen X) routes through psx_ws_xclip_bound() - INT32_MAX while the
margins are revealed (reject disabled; the wide-surface scissor clips the
overflow, wrapped off-left u16 coords pass), vanilla value at 4:3. Matched
native codegen emit and interpreter hook; overlay ABI v18 forwarder (NULL
preserves the vanilla loaded value); codegen ver 8. Parser, codegen and
overlay-mismatch regression coverage.
Split from #49: replaces the xclip_globals RAM poke with a recompile-time
instruction transform so native shards and the interpreter behave identically.