Skip to content

Releases: RetroPortingToolKit/psxrecomp

Nightly 20261005 (3358f81e25)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Oct 14:46

Automated nightly source snapshot of master at 3358f81.

The attached archives contain the full tree including submodules
(lib/recomp-net, lib/retcomm-rbengine), which GitHub's auto-generated
source archives leave out. Set up a game project from it with the
scripts in tools/new_project_layout/ -- see docs/GAME_PROJECT_SETUP.md.

This tag moves every night; do not pin to it.

Changes since previous nightly (a916ed5)

  • 3358f81 Let titles audit withheld plugin packages; SPU upload wraps like hardware
  • 9114265 Add shared seamless-loading kit: resident disc packs and guest services
  • e9da6ab Reconcile PGXP field rebase with exact agreement; fix merged test links
  • 559f501 Drop duplicated merge test helpers; link gpu_timeline into DMA fixture
  • 4e8652f Make host disc reads see the effective modded disc
  • 6426b25 Preserve restored handoff and snapshot host-call continuations
  • d240180 Revert #487: recomp-net header block and update_cmake tool
  • 564607e release: preserve the .exe suffix when selecting Windows release binaries
  • 88e8d59 runtime: fix missing online-player lobby symbols in netplay-disabled builds
  • f7f0ad1 Refresh existing BIOS backends and fingerprints with the pinned emitter
  • 09d388a Match original-disc release overlays to PGXP runtime flavor
  • 5f780a8 Add native draw replay and projection interpolation; fix foreground wall classification
  • 9c1e716 Preserve PGXP mod selection through renderer initialization
  • 02e1246 runtime: keep the host relay out of offline builds
  • a408bd8 Render passes: roll precision-tracking shadows back with the machine
  • 227cb93 PGXP: shift the SXY FIFO shadows on an SXYP write
  • dae2493 overlay config hash: append mod_instruction_sites and cull_scale only when used
  • 0aebc62 optional_netplay_auth: netplay-off main.cpp needs no recomp_net headers
  • e4b3e3d sdl3_main_single_include: allow standalone test executables with their own main
  • 8f814a3 wide_overlay_band_scissor: guard the draw-area clamp in wide_band_scissor_x
  • 521cbea gl_internal_scale_guards: flat batch queues with its backdrop gate
  • 295aee7 overlay_pair_dedup_harness: stub psx_mod_instruction
  • cf443af ws_cull_edge_interp_test: stub mod instruction hooks
  • cf6ac8a Runtime tests: link gpu_timeline where needed, no-debug ring stub, guards for span replay
  • 72e6d7e PGXP: carry vertex fields through bitwise ops, keep depth, fix in-place aliasing
  • 534dcd5 PGXP: always-on ring of refused perspective-depth lookups (TCP pgxp_miss_ring)
  • ce22e54 TCP pgxp_shadow: read PGXP shadow slots by address or register
  • 36bea23 PGXP: census which check refuses a precise-word depth lookup
  • 9594b3d Mod catalog: stage sibling runtimes one after another
  • af4dc23 PGXP variant: stage the clone's mod catalog after the base target's
  • bf91728 Widescreen: full-width overlays to within W/64 of each edge
  • cfd13c0 Widescreen: needles and dial hands inside a HUD widget squash with it
  • 95fed96 Widescreen: a full-display-width primitive is an overlay, not UI
  • d614395 Debug server: window_size resizes the game window for window-shaped checks
  • 495549c CLI: build emitters incrementally whenever framework sources are present
  • f9cafa7 Mod runtime: named plugin counters (psx_mod_counter_add, mod_counters)
  • 03f914b Motion kit: ROTATION kind for bare 3x3 rotations
  • bd2c3b8 Offline builds: host relay status only with recomp-net linked
  • 642cd48 Render passes: motion kit and per-frame driver for frame-rate plugins; porting guide
  • 3935ae8 Render passes: spans run their calls with the full trampoline; phase 0 is the flipped image
  • 61bc68e Render passes: FLIP_SHOWN mode for games that flip each frame as soon as it is drawn
  • b27be21 Frontend: --hidden-window never blocks on a modal or file picker
  • 1e6ef85 Frontend: --hidden-window runs the full presenter in a never-shown window
  • 5297bd7 Render passes: replay a span of a compiled guest function (psx_mod_run_guest_span)
  • 9c0c98b Render passes: spans run their calls with the full trampoline; phase 0 is the flipped image
  • a6c3728 Render passes: FLIP_SHOWN mode for games that flip each frame as soon as it is drawn
  • 8b1bcfe Frontend: --hidden-window never blocks on a modal or file picker
  • 7d1ad2e Frontend: --hidden-window runs the full presenter in a never-shown window
  • 1c86297 Render passes: replay a span of a compiled guest function (psx_mod_run_guest_span)
  • 6b27a1a Merge fix: guest-function hooks carry the filter slot
  • b9f9ba2 Support guarded mod callbacks and verified disc extents for combined content
  • 071847a Preserve mod completion context across nested native calls and vblank
  • b210446 Support native-wide presentation diagnostics and verified external mod media
  • 7b2962e Preserve background composite lifetime and park visual validation
  • 4dfc7b9 Add guarded native-wide background polygon composites

v0.3.3-alpha - overlay guard bounds and XA EOF fixes

Choose a tag to compare

@mstan mstan released this 03 Sep 20:13
2da25c1

What's Changed

  • runtime: overlay_region_floor game.toml key (follow-up to #160) by @Alexbeav in #242
  • runtime: give ten cross-language globals C linkage in main.cpp (MSVC) by @TechnicallyComputers in #246
  • runtime: port PR #247 exact NCLIP fixes to master by @mstan in #249
  • audio: schedule SPU IRQ samples by guest clock; prime the SPU scheduler before the first sample deadline by @Alexbeav in #239
  • Port rbengine wrong-base PR subset to master by @mstan in #250
  • runtime: bound automatic freeze dumps by @Alexbeav in #254
  • Fix game startup crash when compiled with MSVC by @TheRealBiggs in #252
  • runtime: preserve queued uploads after depth24 scanout by @Alexbeav in #255
  • runtime: make local rewind opt-in, and give it a settings key (recomp-ui #38 adds on/off toggle) by @TechnicallyComputers in #253
  • upstream by @TechnicallyComputers in #262
  • upstream by @TechnicallyComputers in #263
  • upstream by @TechnicallyComputers in #264
  • Fix cdrom_set_disc_scex not being called with correct value by @TheRealBiggs in #265
  • build: let CMake own the runtime executable name by @TechnicallyComputers in #257
  • build: find dependencies the hermetic toolchain can actually compile by @TechnicallyComputers in #258
  • upstream by @TechnicallyComputers in #268
  • Fix PAL timing by @TheRealBiggs in #266
  • Multi-disc: per-disc identity, launcher roster, and stop copying dumps into projects by @TechnicallyComputers in #259
  • cosim: key checkpoints on retired-instruction count, not guest cycles by @Alexbeav in #270
  • tools: keep prepare_disc working on Python 3.9 by @Alexbeav in #275
  • tools: restore Unix modes when unpacking the toolchain zip by @Alexbeav in #276
  • tools: support SYSTEM.CNF-less discs via the BIOS PSX.EXE boot path by @Alexbeav in #274
  • codegen+runtime: stop executing stale static code when a game overlays its own text by @Alexbeav in #271
  • recompiler: sync GTE read-helper classification with runtime accessor semantics by @Alexbeav in #272
  • runtime: pace frames the GL renderer elides a swap for by @kerokline in #273
  • runtime: slice GPU linked-list DMA by @Alexbeav in #277
  • cdrom: model timed tray cycle for reinsert by @Alexbeav in #279
  • runtime: correct CD-ROM seek and read handoff by @Alexbeav in #282
  • Preserve an explicit RECOMP_UI_ROOT by @Alexbeav in #284
  • Make zero-BIOS registries portable to MSVC by @Alexbeav in #285
  • Revert PR #282 after Ape texture regression by @mstan in #287
  • Center 24-bit scanout from the display range by @Alexbeav in #283
  • Fix display cadence refresh on monitor moves by @mstan in #288
  • Hardening Deployments == self-build: fail loudly on marker skew instead of looping generate+build by @TechnicallyComputers in #291
  • runtime: cheap SPUCNT gate for the sample-event scheduler (~2x on MMIO-polling screens) by @kerokline in #292
  • runtime: present-time scanline post-process (host display enhancement) by @kerokline in #290
  • EMI to overlay extract, cached/mapped lookup table, "resident-occupant" memo by @kerokline in #289
  • tools: one shared overlay release staging for every title by @mstan in #294
  • overlay: ABI v22 game_text_native_ok shim (107 shards failed to link) by @mstan in #295
  • dma: charge DMA2 linked-list walks what the validated model charged by @TechnicallyComputers in #299
  • Revert "dma: charge DMA2 linked-list walks what the validated model charged" by @TechnicallyComputers in #300
  • mods: the framework stages the title's catalog too (5 titles could not package) by @mstan in #305
  • release: ONE staging implementation for both platforms (2 titles had no Linux release path) by @mstan in #308
  • controller: re-clamp lock_mode across the launcher round-trip (defense-in-depth; root cause in recomp-ui) by @mstan in #298
  • tools: throttle a live title's CPU to reproduce a weaker host by @mstan in #297
  • Stage overlay dispatch preamble with toolchain by @mstan in #310
  • Make packaged overlay toolchain self-contained by @mstan in #311
  • runtime: controller host shortcut for fast-forward ([hotkeys] fast_forward_pad) by @kerokline in #307
  • overlays: parallel static compile, linear resume-wrapper pass, split output by @kerokline in #296
  • Vulkan header staging and netplay diagnostic by @mstan in #315
  • Migration Hardening: Vulkan: stage headers rather than drop the renderer; make ENABLE_NETPLAY_IF_PRESENT stop failing silently by @TechnicallyComputers in #293
  • dma: preserve live linked-list reads with word-cost timing by @Alexbeav in #304
  • chore: repo hygiene — purge dead scratch tooling, relocate root docs/fixtures/BIOS profiles by @mstan in #314
  • gpu: polyline terminator never in the first two vertices by @kerokline in #313
  • Integrate overlay guard bounds and XA EOF fixes by @mstan in #316
  • recompiler: the overlay guard word is a delay-slot source, never a block leader (17/67 Ape shards) by @mstan in #303
  • feat(cdrom): deliver CDIRQ_DATA_END on Mode 2 Form 2 XA audio EOF and support overlay cross-compilation by @theanch92 in #312

New Contributors

Full Changelog: v0.3.2-alpha...v0.3.3-alpha

v0.3.2-alpha - single-context temporal blending

Choose a tag to compare

@mstan mstan released this 27 Aug 20:35

Replaces OpenGL temporal frame blending's shared presentation thread/context with renderer-thread presentation, keeping SDL_GL_SwapWindow ownership on the original render thread. Also ships cadence and context-ownership regression coverage plus the release packager fix for OpenGL system DLL validation.

v0.3.1-alpha - OpenGL default CLI hotfix

Choose a tag to compare

@mstan mstan released this 21 Jul 00:37

Developer CLI hotfix release.

Critical fix:

  • OpenGL is now the default renderer at runtime via a central DEFAULT_VIDEO_RENDERER constant.

  • CLI-generated game.toml and psxrecomp-toml output now explicitly emit:

    [video]
    renderer = opengl

  • Added a structural guard test so future generated projects or runtime defaults cannot silently fall back to the slow software renderer.

This supersedes v0.3.0-alpha, where fresh generated projects could omit [video] and accidentally run the Windows software/SDL renderer path, presenting as roughly 30 FPS despite the interpreter/AOT performance fixes.

Included from v0.3.0-alpha:

  • Interpreter fallback hotpath improvements plus AOT overlay sharding/dedup work.
  • Tomba 2 warm-cache boot-death fix.
  • Stricter overlay ABI/codegen cache discrimination and production diagnostics.
  • Local validation on current master with cold OpenGL hybrid runs for Tomba 1, Tomba 2, Ape Escape, and Mega Man X6.

Download psxrecomp-cli-windows-x86_64.zip, extract it, and run psxrecomp.exe build with your disc image and SCPH1001.BIN. The command writes generated game and BIOS C source, game.toml, CMake files, and build scripts.

SHA256(psxrecomp-cli-windows-x86_64.zip): CFA7B5EBBF38CEA37BA06074D749B835F9274F141E6DF235406ADE6003C59291

v0.3.0-alpha - interpreter hotpath + AOT sharding CLI

Choose a tag to compare

@mstan mstan released this 20 Jul 23:26

SUPERSEDED: use v0.3.1-alpha instead.

v0.3.0-alpha's CLI-generated projects could omit [video] renderer = opengl and accidentally run the slow software renderer path. v0.3.1-alpha fixes the runtime default and generated game.toml output.

--- original notes ---Developer CLI release. Highlights: - Merges interpreter fallback hotpath improvements with AOT overlay sharding/dedup work. - Fixes the fail-open overlay alias-body re-entry path that caused Tomba 2 warm-cache boot death. - Adds stricter overlay ABI/codegen cache discrimination and production diagnostics for post-mortem debugging. - Improves additive overlay capture/autocompile robustness and GCC shard generation behavior. - Validated locally on current master with cold OpenGL hybrid runs for Tomba 1, Tomba 2, Ape Escape, and Mega Man X6. Download psxrecomp-cli-windows-x86_64.zip, extract it, and run psxrecomp.exe build with your disc image and SCPH1001.BIN. The command writes generated game and BIOS C source, game.toml, CMake files, and build scripts. The CLI is self-contained. Compiling the generated project requires CMake, Ninja, a C/C++ compiler, and SDL2 development files. Game-specific work may still be required. SHA256(psxrecomp-cli-windows-x86_64.zip): B79A5C4612460C4DD0E3550D47FC15D26E5D2796FE6302A02D79CB2822938BCA

v0.2.0-alpha - media-to-source CLI

Pre-release

Choose a tag to compare

@mstan mstan released this 20 Jul 07:03

Developer CLI release.

Download psxrecomp-cli-windows-x86_64.zip, extract it, and run psxrecomp.exe build with your disc image and SCPH1001.BIN. The command writes generated game and BIOS C source, game.toml, CMake files, and build scripts.

The CLI is self-contained. Compiling the generated project requires CMake, Ninja, a C/C++ compiler, and SDL2 development files. Game-specific work may still be required.

v0.1.0-alpha - BIOS-only framework package

Choose a tag to compare

@mstan mstan released this 18 May 05:28

PSXRecomp v0.1.0-alpha

Initial public BIOS-only framework release package.

Highlights:

  • Packages the PSXRecomp v4 BIOS runtime as PSXRecomp.exe.
  • Prompts for a user-provided SCPH1001.BIN BIOS on first launch.
  • Saves the selected BIOS path in bios.cfg next to the executable.
  • Adds Xbox-style controller support through SDL/XInput.
  • Adds configurable controller mapping via input.ini.
  • Includes the recent Tomba-driven renderer/runtime fixes for the BIOS logo,
    menu text seams, dialog/pause panel seams, terrain shading, and shaded
    textured primitives.

This package does not include a PS1 BIOS, game disc image, generated game code,
save data, or copyrighted Sony/game assets.