Skip to content

Releases: whrvt/wine-osu-patches

wine-osu-spectator-10.0-rc4-5

08 Jan 23:02
e7fa615
Compare
Choose a tag to compare

Release info

  • Rebase
  • Add workaround for osu! floating point bug (finally)
  • Shared memory optimizations
  • Compilation fixes and improvements
    • Faster memcpy/memmove/memset patches
    • Prebuilt binary/generic release requires AVX now
  • Update wrapper (wine-osu(-wow64)) to be usable with winetricks
    • e.g. WINE=wine-osu winetricks -q deletemyhomefolder
  • Random tree-wide fixes
  • Make it go faster

For extra information, refer to my comment on the AUR package, and the previous releases' notes.

Installation

If installing from the attached releases, add my public key (should only be required once):
sudo pacman-key --keyserver keys.openpgp.org --recv-keys 0B47490955565BD2 && sudo pacman-key --lsign-key 0B47490955565BD2
before running the install command (can also use paru or another AUR helper):
sudo pacman -U <url-from-below>.pkg.tar.xz

Otherwise, just run e.g. paru -S wine-osu-spectator-wow64 to build and install it from the AUR.

wine-osu-spectator-10.0-rc3-4

25 Dec 16:27
67022f1
Compare
Choose a tag to compare

Release info

  • Added ntsync7 (+esync/fsync), set WINE_DISABLE_FAST_SYNC=1 to use esync/fsync instead
    • Ensure you have ntsync7 installed (e.g. ntsync-dkms AUR package, or build your kernel with it), or else only fsync/esync will work
      • Also make sure it's running, if it's a dkms module (sudo modprobe ntsync)
      • wine: using fast synchronization. will be printed on startup
    • If you don't want any *sync: WINEFSYNC=0, WINEESYNC=0, and WINE_DISABLE_FAST_SYNC=1
    • Thank you @loathingKernel for doing the hard work of rebasing ntsync to Proton 9
  • Removed a few incompatible/hard to rebase patches (goodbye again threaded server)
  • Add bonus WIP WoW64 mr/patch to fix some random 32-bit games
  • etc...

For extra information, refer to my comment on the AUR package, and the previous releases' notes.

Installation

If installing from the attached releases, add my public key (should only be required once):
sudo pacman-key --keyserver keys.openpgp.org --recv-keys 0B47490955565BD2 && sudo pacman-key --lsign-key 0B47490955565BD2
before running the install command (can also use paru or another AUR helper):
sudo pacman -U <url-from-below>.pkg.tar.xz

Otherwise, just run e.g. paru -S wine-osu-spectator-wow64 to build and install it from the AUR.


Merry Christmas :)

wine-osu-spectator-10.0-rc2-3

16 Dec 23:30
0044162
Compare
Choose a tag to compare

Release info

  • Return openglfreak's threaded/shared memory server request patchset
  • Fix logic error in semaphore path for fsync retry optimization (caused long freezes in osu! song select, probably other issues as well)
    • Also don't retry with 0 timeout waits... obvious mistake in hindsight
  • Fix screenshot folder not opening in osu! with WINE_BLOCK_GET_VERSION=1

For extra information, refer to my comment on the AUR package, and the previous releases' notes.

Installation

If installing from the attached releases, add my public key (should only be required once):
sudo pacman-key --keyserver keys.openpgp.org --recv-keys 0B47490955565BD2 && sudo pacman-key --lsign-key 0B47490955565BD2
before running the install command (can also use paru or another AUR helper):
sudo pacman -U <url-from-below>.pkg.tar.xz

Otherwise, just run e.g. paru -S wine-osu-spectator-wow64 to build and install it from the AUR.

wine-osu-spectator-10.0-rc2-2

14 Dec 02:21
3bec479
Compare
Choose a tag to compare

Release info

  • Rebase
  • Remove upstreamed patches
  • Streamline lib32-ffmpeg build dependency with a stripped down package
  • Lower initial dynamic spincount to 8 from 256 to let it settle to an optimal value quicker
  • Random small changes

For extra information, refer to my comment on the AUR package, and the previous releases' notes.

Installation

If installing from the attached releases, add my public key (should only be required once):
sudo pacman-key --keyserver keys.openpgp.org --recv-keys 0B47490955565BD2 && sudo pacman-key --lsign-key 0B47490955565BD2
before running the install command (can also use paru or another AUR helper):
sudo pacman -U <url-from-below>.pkg.tar.xz

Otherwise, just run e.g. paru -S wine-osu-spectator-wow64 to build and install it from the AUR.

wine-osu-spectator-10.0-rc1-1

09 Dec 14:17
033785f
Compare
Choose a tag to compare

Release info

  • Compilation improvements
    • Build with LLVM polly (analogous to GCC's "graphite" optimizations)
    • Improve clang MSVC mode support in some header files, e.g. YieldProcessor() was previously a no-op instead of a proper CPU pause
    • Some other smaller changes to hopefully improve stability/correctness/performance
  • Fixed some display registry issues by removing some old and unnecessary patches
  • Added a keyboard input regression workaround (bug)
  • Improve(?) the dynamic spinning patch
  • Entirely skip winebus.sys/winehid.sys/wineusb.sys/winebth.sys service installation for new prefixes unless the WINE_INSTALL_ROOT_DEVICES is in the environment (I really need to make a README for all of the various tunables/envvars in the patchset...)
  • Remove the rawinput subsystem patchset from before. I still believe it has potential to fix some problems, but it causes more trouble than it's worth in its current state unless you know all its quirks.
  • Some miscellaneous tweaks as usual.

For extra information, refer to my comment on the AUR package, and the previous releases' notes.

Installation

If installing from the attached releases, add my public key (should only be required once):
sudo pacman-key --keyserver keys.openpgp.org --recv-keys 0B47490955565BD2 && sudo pacman-key --lsign-key 0B47490955565BD2
before running the install command (can also use paru or another AUR helper):
sudo pacman -U <url-from-below>.pkg.tar.xz

Otherwise, just run e.g. paru -S wine-osu-spectator-wow64 to build and install it from the AUR.

wine-osu-spectator-9.22-1

23 Nov 08:47
0112a35
Compare
Choose a tag to compare

General release info

  • Rebase to latest wine/staging master
  • Add support for linking with the lld linker's -flto=(full|thin) optimization, and build with full LTO by default
    • This also means that the bfd linker is now optional, as lld itself for the ELF-side was entirely broken previously
    • Some other misc PKGBUILD touchups
  • Finish fsync futex-less acquisition retry optimizations
    • Added semaphore retry and yet more refactoring
  • Add extremely WIP raw input replacement subsystem (s/o to the friend who was ok with me putting out a blasphemous extension of his work)
    • Will activate if you set RAWMOUSE=/dev/input/event<#> and have r/w perms on that path, or for example part of the input group with the permissions set properly
    • Won't work with (e.g.) SDL games currently due to unimplemented GetQueueStatus integration
    • Currently broken on WoW64. I missed that I broke it right before I went to push the release, but the patchset is opt-in anyways. I'd like to put out a release with a less broken implementation within the next week. I'll elaborate more on the motivation and functionality when it's more complete.
  • Some other patches added/removed/tweaked in an attempt to improve stability/smoothness

For extra information, refer to my comment on the AUR package, and the previous releases' notes.

Patches

Staging patches: all, minus eventfd-synchronization (replaced with Proton's impl.)
Other patches: repo at this tag. As usual, a log of all patches is also installed to /opt/wine-osu-spectator(-wow64)/patchlog.txt.

Installation

If installing from the attached releases, add my public key (should only be required once):
sudo pacman-key --keyserver keys.openpgp.org --recv-keys 0B47490955565BD2 && sudo pacman-key --lsign-key 0B47490955565BD2
before running the install command (example URL, can also use paru or another AUR helper instead of sudo pacman):
sudo pacman -U https://github.com/whrvt/wine-osu-patches/releases/download/11-22-2024-51ccd95c-7ba8823e/wine-osu-spectator-wow64-9.22.w1.s7ba8823-1-x86_64.pkg.tar.xz

Otherwise, just run e.g. paru -S wine-osu-spectator-wow64 to build and install it from the AUR.

wine-osu-spectator-9.21-2

13 Nov 02:14
83176ce
Compare
Choose a tag to compare

General release info

  • Rebase to latest wine/staging master
    • Includes the upstreamed "fshack"
  • Further tweak the fsync optimizations a bit to reduce the chance of some possible memory ordering regression
  • Sign prebuilt packages
  • Misc changes

For extra information, refer to my comment on the AUR package, and the previous releases' notes.

Patches

Staging patches: all, minus eventfd-synchronization (replaced with Proton's impl.)
Other patches: repo at this tag. As usual, a log of all patches is also installed to /opt/wine-osu-spectator(-wow64)/patchlog.txt.

Installation

If installing from the attached releases, add my public key (should only be required once):
sudo pacman-key --keyserver keys.openpgp.org --recv-keys 0B47490955565BD2 && sudo pacman-key --lsign-key 0B47490955565BD2
before running the install command (example URL):
sudo pacman -U https://github.com/whrvt/wine-osu-patches/releases/download/11-22-2024-51ccd95c-7ba8823e/wine-osu-spectator-wow64-9.22.w1.s7ba8823-1-x86_64.pkg.tar.xz

Otherwise, just run e.g. paru -S wine-osu-spectator-wow64 to build and install it from the AUR.

wine-osu-spectator-9.21-1

09 Nov 04:36
9399af8
Compare
Choose a tag to compare

General release info

  • Rebase to latest wine/staging master
  • Update generic builds from -march=x86-64 -mtune=generic to -march=nocona -mtune=core-avx2, which is the same as what Proton is built with
  • Switch back to clang + llvm-mingw-msvcrt for compilation due to some annoying missing features with clang's MSVC mode, shouldn't affect runtime performance at all
  • Clean up and refine the USD time thread patch to better match the behavior of Windows
  • Add a patch to use MONITORX/MWAITX if available and spin (if necessary) before falling back to a full futex wait to reduce contention/increase successful object acquires in fsync
    • These instructions are available on AMD processors since Bulldozer, but Intel processors should still see some benefit from the spinloop
  • Remove AC: Odyssey-specific fsync hacks and other game-specific fsync hacks that were in Proton's fsync
  • Add a dubious patch to use the get_async_keyboard_state instead of the non-async, thread-specific keyboard state to reduce blocking/overhead
    • Also try using AVX512 instructions to set the key up/key down state instead of a for loop if available (probably worthless, but it reduced cycle count/time by some non-zero amount)
    • This might break some applications which needed the thread-specific non-async keyboard state, but I've yet to find an example of that
  • Clean up a lot of environment-variable-dependent patches to be less messy and cache the results instead of calling getenv multiple times (like cursor-clip-hack.patch and the osu! direct rendering/childwindow hacks)
  • Add a WINE_DISABLE_RAWINPUT env var (not active by default, obviously) if you want to completely disable rawinput events, to reduce overhead if you're not using rawinput at all

Curious if anyone using this package will run into regressions related to the fsync changes. I tried to test them extensively with a synthetic test suite, but I can't be sure that every game/app will have the same behavior. I'm hoping its an improvement for most cases, as my benchmark was showing.

For extra information, refer to my comment on the AUR package, and the previous releases' notes.

Patches

Staging patches: all, minus eventfd-synchronization (replaced with Proton's impl.) and ntdll-HashLinks (replaced with pending upstream)
Other patches: repo at this tag. As usual, a log of all patches is also installed to /opt/wine-osu-spectator(-wow64)/patchlog.txt.

Release wine-osu-spectator-9.20-3

02 Nov 07:23
27799b3
Compare
Choose a tag to compare
9.20-3 patchset

rebase; add fix for osu breaking with WINE_BLOCK_GET_VERSION=1 (Perform-a-magic-trick-to-allow-osu-to-work-w.patch); add some fsync optimizations/build fixes for clang

Release wine-osu-spectator-9.20-2

28 Oct 04:21
b638715
Compare
Choose a tag to compare

General release info

  • Rebase to latest wine/staging master
  • Removed ntsync due to unpredictable system hangs/kernel panics, brought back Proton fsync/esync
  • Other stuff I can't remember because I've been busy with other stuff...

For extra information, refer to my comment on the AUR package, and the previous releases' notes.

Patches

Staging patches: all, minus eventfd-synchronization (replaced with Proton's impl.)
Other patches: repo at this tag. As usual, a log of all patches is also installed to /opt/wine-osu-spectator(-wow64)/patchlog.txt.