Skip to content

Releases: DiscoStarslayer/pcsx2-reliquary

v1.9.4-reliquary

Choose a tag to compare

@github-actions github-actions released this 09 Sep 16:34

New Features

  • DDRIO: Supports dynamically loading libmmmagic.dll and ddrio.dll to allow DDR titles to properly run with real hardware including lights on a snek, litboard ect. Place the dll next to the main executable and enable the option under Python 2 IO's settings tab:
image
  • CUE File: Cue file support added so multi-track titles will now work correctly, also allows you to play bin/cue ripped music CD's in bios
    https://github.com/user-attachments/assets/fd687b1f-a241-413e-aab5-78ec0af30e4f

  • mVU Fixes: Better state handling in COP2 mode with mVU hack enabled in soft-float mode, reduced some additional state around logic differences between vu0 and vu1 for a nice 1-2% perf improvement.

  • PGS: Improvements in aspect ratio calculations, ensure vsync mode selected at boot

  • Synced with latest PCSX2 master, including Advanced Frame Display for improved perceived input latency

image

v1.9.3-reliquary

Choose a tag to compare

@github-actions github-actions released this 08 Sep 23:21

New Features

  • DDRIO: Supports dynamically loading libmmmagic.dll and ddrio.dll to allow DDR titles to properly run with real hardware including lights on a snek, litboard ect. Place the dll next to the main executable and enable the option under Python 2 IO's settings tab:
image
  • CUE File: Cue file support added so multi-track titles will now work correctly, also allows you to play bin/cue ripped music CD's in bios
    https://github.com/user-attachments/assets/fd687b1f-a241-413e-aab5-78ec0af30e4f

  • mVU Fixes: Better state handling in COP2 mode with mVU hack enabled in soft-float mode, reduced some additional state around logic differences between vu0 and vu1 for a nice 1-2% perf improvement.

  • PGS: Improvements in aspect ratio calculations, ensure vsync mode selected at boot

v1.9.2-reliquary

Choose a tag to compare

@github-actions github-actions released this 01 Sep 15:34

Changelog

  • PGS: Properly show GPU usage percentage in OSD
  • PGS: Fix blackwell crashing on windows
  • PGS: Fix incorrect target speed sometimes being set on windows
  • PGS: Update to latest upstream main
  • PGS: Prevent reporting duplicate frames in fps
  • PCSX2: Update to latest upstream as of Sept 1st
  • mVU: Multiple flag setting, priority and ripening fixes for macro mode
  • RetroAchievements: Fix version reporting

v1.9.1-reliquary

Choose a tag to compare

@github-actions github-actions released this 01 Sep 14:22

Changelog

  • PGS: Properly show GPU usage percentage in OSD
  • PGS: Fix blackwell crashing on windows
  • PGS: Fix incorrect target speed sometimes being set on windows
  • PGS: Update to latest upstream main
  • PGS: Prevent reporting duplicate frames in fps
  • PCSX2: Update to latest upstream as of Sept 1st
  • mVU: Multiple flag setting, priority and ripening fixes for macro mode

v1.9.0-reliquary

Choose a tag to compare

@github-actions github-actions released this 01 Sep 13:57

Changelog

  • PGS: Properly show GPU usage percentage in OSD
  • PGS: Fix blackwell crashing on windows
  • PGS: Fix incorrect target speed sometimes being set on windows
  • PGS: Update to latest upstream main
  • PGS: Prevent reporting duplicate frames in fps
  • PCSX2: Update to latest upstream as of Sept 1st
  • mVU: Multiple flag setting, priority and ripening fixes for macro mode

v1.8.5-reliquary

v1.8.5-reliquary Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Aug 06:25
  • Fix Parallel-GS Windows and macOS builds

v1.8.2-reliquary

Choose a tag to compare

@github-actions github-actions released this 14 Aug 15:11
e7ebc07

Description of Changes

Add a low-latency audio sync mode with tight rate control and resampling. The new sync mode keeps the correction window capped at +/-1% target speed, allowing tighter buffers and much lower latency at the cost of sounding like hot garbage during slowdowns.

Through testing, I also noticed that requesting lower latency amounts than what cubeb reports as the minimum actually does result in those latencies being requested.

For instance, on my linux machine I have all my audio devices tuned for low latency playback and is capable of running pulseaudio with only a 64 frame quant (~0.02ms). Cubeb reports 25ms as the minimum floor for the pulse backend which is way too high even for a non-tuned system.

If I ignore that and request 1ms from cubeb anyway, the measured rate ended up being ~120 frames, ~4ms. Significantly better than before.

Currently in PCSX2, TimeStretch is enabled through the SoundTouch library with ::setTempo. This does great work during fast-forward and slowdowns as it keeps the pitch of the audio the same and sounds nice and clean. Problem is, with the current defaults, SoundTouch is configured with a 30ms sequence, 20ms seek window and 10ms overlap. On average this results in ~40ms of delay, even if the rest of the pipeline is set to tight values. In practice, this meant the minimum latency with all minimum values set was ~80ms.

TimeStretch does still sound great however, so when fast-forwarding or slow-mo, pcsx2 will switch to TimeStretch till the game goes back to full speed.

In my testing on linux with all settings set as low as they could go, I was getting a real end-to-end audio latency of about 11ms which is perfect for rhythm titles! Over a few hour play session in Frequency I only got 48 partial underflows. They were not perceptible to me, but more sensitive users may need to increase buffer size.

New Windows Backends

On windows I added two new backend modes. Thank you to @Filoppi for their open PR mozilla/cubeb#740 on cubeb, it made this work much easier.

WASAPI Exclusive Mode: You're likely familiar with this, has high compatibility and very low latency, depending on hardware you can get this below 3ms. Downside is no mixer support, so no volume changing and nothing else on your computer will be able to play audio.

IAudioClient3: More modern audio interface from Microsoft. Needs hardware capable of WaveRT to run in low latency mode. If WaveRT is supported then IAC3 can run at or below 3ms latency as well, without the mixer trade off. Basically exclusive mode without the downsides! If WaveRT is not supported, then it will operate at 10ms latency, same was WASAPI shared mode. Most hardware after 2015 has WaveRT support so this is the preferred mode, but if you have older hardware there is still WASAPI exclusive.

image

v1.8.1-reliquary

Choose a tag to compare

@github-actions github-actions released this 11 Aug 05:05

Description of Changes

Release finalizes the work to lower the current soft-float implementation from upstream into the recompiler. The prior work routed math operations to the interpreter function calls as a POC, this next step implements the operations as proper x86-64 JIT code generation.

These recompilers were tested thoroughly against real hardware, the soft-float interpreter, and through various retail game testing. Special thanks to LoStraniero91 for the help with retail testing and identifying bugs.

I'm not delusional enough to think my soft-float implementation is perfect, and there is still plenty of opportunity to optimize. Already the comment from pstef around their findings for DIV improved that operator performance by ~20% on my machine.

There will be bugs, and I'm happy to snuff them out, but I've been working on this for over a month now so I feel it's a good time to mark it as ready and I'm pretty content with the performance.

NOTE

To help reduce the complexity of the recompiler implementation, I have reduced the options from 3 per core to just a single check per core. Most games that need soft-float only require EE and VU0, very few need VU1. The ones that do should be at or close to full speed if you have a beefy enough CPU (high end Zen 3 or better IMO).

MTVU and mVU Flag hacks are recommended if the game can tolerate it, but I suggest disabling instant VU as that seems to put more load on the VU core depending on the game engine.

THANKS

Again, big thank you to all the PCSX2 maintainers, @GitHubProUser67 for the initial work around accurate soft-float, and all the testers ironing this out.

TESTING

If you identify a bug in this version, try to isolate the following:

  • What core is causing the issue?
  • Does it still occur with Game Fixes and Compatibility Patches disabled?
  • Does it still occur in interpreter mode?

That helps figure out a patch much quicker.

A handful of issues I've run into have been side-effects of Compatibility Patches not playing nice with accurate floats, or game fixes not quite behaving right with the recompiler paths. Many patches/game fixes work around VU quirks, so it's likely many of them can be disabled.

OTHER FIXES

  • OSD options should now work properly with PGS
  • Potential fix for crashes with PGS on windows caused by vulkan compiler bug
  • Update to latest PCSX2 upstream

Enjoy!

v1.8-reliquary

Choose a tag to compare

@github-actions github-actions released this 08 Aug 02:20
93f9659

Description of Changes

Release finalizes the work to lower the current soft-float implementation from upstream into the recompiler. The prior work routed math operations to the interpreter function calls as a POC, this next step implements the operations as proper x86-64 JIT code generation.

These recompilers were tested thoroughly against real hardware, the soft-float interpreter, and through various retail game testing. Special thanks to @LoStraniero91 for the help with retail testing and identifying bugs.

I'm not delusional enough to think my soft-float implementation is perfect, and there is still plenty of opportunity to optimize. Already the comment from @pstef around their findings for DIV improved that operator performance by ~20% on my machine.

There will be bugs, and I'm happy to snuff them out, but I've been working on this for over a month now so I feel it's a good time to mark it as ready and I'm pretty content with the performance.

NOTE

To help reduce the complexity of the recompiler implementation, I have reduced the options from 3 per core to just a single check per core. Most games that need soft-float only require EE and VU0, very few need VU1. The ones that do should be at or close to full speed if you have a beefy enough CPU (high end Zen 3 or better IMO).

MTVU and mVU Flag hacks are recommended if the game can tolerate it, but I suggest disabling instant VU as that seems to put more load on the VU core depending on the game engine.

THANKS

Again, big thank you to all the PCSX2 maintainers, @GitHubProUser67 for the initial work around accurate soft-float, and all the testers ironing this out.

TESTING

If you identify a bug in this version, try to isolate the following:

  • What core is causing the issue?
  • Does it still occur with Game Fixes and Compatibility Patches disabled?
  • Does it still occur in interpreter mode?

That helps figure out a patch much quicker.

A handful of issues I've run into have been side-effects of Compatibility Patches not playing nice with accurate floats, or game fixes not quite behaving right with the recompiler paths. Many patches/game fixes work around VU quirks, so it's likely many of them can be disabled.

OTHER FIXES

  • OSD options should now work properly with PGS
  • Potential fix for crashes with PGS on windows caused by vulkan compiler bug

Enjoy!

v1.7.1-reliquary

Choose a tag to compare

@github-actions github-actions released this 29 Jun 20:10
000589b

This is a large change and likely introduces new, even more sinister bugs. Please experiment but don't be surprised if things are broken!

  • Quick bugfix for The Taxi 2 and enabling multi-threaded VU1 to eek out a bit more perf

Summary

This PR implements soft float from the draft PR here: PCSX2#12001. These changes would not be possible if it wasn't for the foundational work in that PR as well as work from the PCSX2 team, so big thank you to all.

As for my additions, I generated a large EE, VU0 and VU1 fpu test suite and ran it against this 12001 and real hardware. This identified a few more issues with the soft float implementation and I'd like to think the interpreter mode is almost fully accurate at this point, but I'm sure there are other corners not accounted for.

After accuracy, I did a bit of work to force in-lining and reducing other overhead to get interpreter as fast as possible.

I then rolled soft-float into EE FPU, VU0 and VU1 recompiler flows. EE and VU0 integration was relatively painless, and they are quite performant with full softfloat support. Enabling softfloat on EE and VU0 should cover the majority of the bugs caused by 12001 with the exception of bugs relating to graphics.

VU1 was much more challenging to integrate with softfloat correctly, and while it is working correctly for the games I've been testing with, I am much less confident on the accuracy of it. I really ran it through it's paces, but I'm only one person so I can only test so much.

VU1 is also much more demanding on the CPU, even with recomp. I'm running a Ryzen 3900X which is no slouch, but there are certainly faster processors out there today, especially when looking at single thread and latency performance. I was able to just barely make it to 100-120% speed in most games with EE, VU0 and VU1 softfloat enabled. On particular scenes it did drop to 75-85%, a faster cpu may be able to bruteforce that to fully playable speeds across the board.

The more recommended usecase, EE and VU0 soft float, VU1 native, I easily clear 500-800% speed in most games, so I'm quite confident this accuracy bump shouldn't harm playback on most computers, unless you were already pretty close to the limit on a older or low power machine.

This is all optional, so feel free to turn it off if you don't care.

To enable recompiler + softfloat, just check the relevant boxes in the advanced menu.
image

Otherwise, turn on EE, VU0 recomp + softfloat and enjoy stuntman at full speed like how it was always meant to be :)
image