Does not work with osu!lazer
I am aware there has already been an issue created, but since that was back in 2019 I decided to create another, tried both x64 and x86 loaders, but neither work. This will soon be a huge issue since osu! will move to using osu!lazer as the main client which will make this program (and using touchpads for osu) practically useless
(Thanks for confirming that it’s still an ongoing issue.)
Ah I don't actively play osu! anymore so I haven't been keeping up to date on development, but I will try to fix this. Looks like fundamentally it still uses OpenTK and the raw input APIs so I imagine (read: hope) there isn't too much work to do. I am busy with real life stuff this month though so it will probably be a while until I can get around to this.
Okay, so it turns out this is a rabbit hole of WTF, so here goes my findings:
- osu!lazer is now using SDL2 as the default backend instead of osuTK (that's bad)
- it seems that despite using SDL, if you have "raw input" checked, it still uses the osuTK mouse input handler (https://github.com/ppy/osu-framework/blob/b97c26a684dc8ded5a349d24f8664a4f4b8c42a4/osu.Framework/Platform/DesktopGameHost.cs#L133, that's good)
- however, osuTK uses its own SDL2 backend instead of the Windows backend if it detects that SDL2 is in use (https://github.com/ppy/osuTK/blob/af2001898abd6eed7cacf5f82e830eab931b3d90/src/osuTK/Platform/Factory.cs#L54, that's bad)
- there's a flag to force the game to run on osuTK (https://github.com/ppy/osu/blob/1a200148e5c4fac46bdcd1daa28589db12169395/osu.Desktop/Program.cs#L25, that's good)
- the flag doesn't seem to work for selecting the osuTK input backend, and the SDL2 backend does not actually use raw input but rather WM_MOUSEMOVE messages (https://github.com/ppy/osuTK/blob/af2001898abd6eed7cacf5f82e830eab931b3d90/src/osuTK/Platform/SDL2/Sdl2InputDriver.cs#L94, that's bad)
mfw: https://youtu.be/Krbl911ZPBA?t=25
Most likely, unless osu! starts supporting raw input for real instead of faking it on top of WM_MOUSEMOVE, AbsoluteTouchEx will not work without significant changes.