You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
All RE Engine games with REFramework crash on ARM64 Proton, dinput GetDeviceState needs hybrid_patchable #10167
I'm not a developer. This was diagnosed by FEX developers in FEX-Emu/FEX#5833 and they said the fix belongs in Proton.
Proton version: Proton 11.0 (ARM64) build proton-11.0-2-rc7, and Proton Experimental (ARM64). Same crash on both. Hardware: AYN Odin 3 Ultra, Qualcomm Dragonwing Q8, Adreno 830, aarch64 Kernel: 7.2.0-rc7
Any RE Engine game using REFramework (Resident Evil 2/3/4/7/Village, Devil May Cry 5, Monster Hunter Rise, Street Fighter 6, Dragon's Dogma 2, Monster Hunter Wilds, and others). REFramework uses the same hook code for every game it supports. Tested on Monster Hunter Rise (1446780).
The issue is that when REFramework (dinput8.dll only) is installed, the game crashes with STATUS_ILLEGAL_INSTRUCTION shortly after REFramework initializes. The game runs fine without the mod. The cause, per the FEX developers REFramework installs an x86-64 inline hook on IDirectInputDevice::GetDeviceState. Under ARM64EC that function is ARM64 code, so the hook breaks. Functions that x86-64 code hooks need to be marked hybrid_patchable so an x86-64 stub exists.
Needed change
In Wine, dlls/dinput/device.c, dinput_device_GetDeviceState is not marked DECLSPEC_CHPE_PATCHABLE. dinput8.dll is built from these same sources. DXVK already fixed its side (dxgi swapchain methods): doitsujin/dxvk#5851. That fix is in Proton Experimental's DXVK but not in Proton 11.0-2's.
Activity