https://bugs.winehq.org/show_bug.cgi?id=43480
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Keywords| |download Summary|Peavey Revalver IV crashes |Peavey Revalver IV (Amp | |modeling software) crashes | |due to missing Win7+ Touch | |Input API (stubs) URL| |https://revalver.peavey.com | |/assets/download/r4_win_x64 | |_160830.zip Component|-unknown |user32 CC| |focht@gmx.net
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
The issue is also present in the 32-bit app version. The app late-binds some Win7+ Touch Input API but has no proper error handling for missing imports. It crashes when calling one of these API where no stubs exist. The trace log doesn't reveal this from the crash location, the app has to be debugged.
Relevant part of trace log:
--- snip --- $ pwd /home/focht/Downloads/wineprefix64/drive_c/Program Files/Peavey Electronics/ReValver 4
$ WINEDEBUG=+tid,+seh,+relay wine ./ReValver\ 4\ x64.exe >>log.txt 2>&1 ... 0032:Call KERNEL32.GetModuleHandleA(140fef094 "user32.dll") ret=140108915 0032:Ret KERNEL32.GetModuleHandleA() retval=7f0efa2a0000 ret=140108915 0032:Call KERNEL32.GetProcAddress(7f0efa2a0000,14100d530 "RegisterTouchWindow") ret=140108921 0032:Ret KERNEL32.GetProcAddress() retval=7f0efa2add14 ret=140108921 0032:Call KERNEL32.GetModuleHandleA(140fef094 "user32.dll") ret=140108915 0032:Ret KERNEL32.GetModuleHandleA() retval=7f0efa2a0000 ret=140108915 0032:Call KERNEL32.GetProcAddress(7f0efa2a0000,14100d544 "GetTouchInputInfo") ret=140108921 0032:Ret KERNEL32.GetProcAddress() retval=00000000 ret=140108921 0032:Call KERNEL32.GetModuleHandleA(140fef094 "user32.dll") ret=140108915 0032:Ret KERNEL32.GetModuleHandleA() retval=7f0efa2a0000 ret=140108915 0032:Call KERNEL32.GetProcAddress(7f0efa2a0000,14100d558 "CloseTouchInputHandle") ret=140108921 0032:Ret KERNEL32.GetProcAddress() retval=00000000 ret=140108921 0032:Call KERNEL32.GetModuleHandleA(140fef094 "user32.dll") ret=140108915 0032:Ret KERNEL32.GetModuleHandleA() retval=7f0efa2a0000 ret=140108915 0032:Call KERNEL32.GetProcAddress(7f0efa2a0000,14100d570 "GetGestureInfo") ret=140108921 0032:Ret KERNEL32.GetProcAddress() retval=00000000 ret=140108921 0032:Call user32.RegisterTouchWindow(00010078,00000000) ret=140340525 0032:fixme:win:RegisterTouchWindow (0x10078 00000000): stub 0032:Ret user32.RegisterTouchWindow() retval=00000000 ret=140340525 ... 0032:Call gdi32.SetMapMode(000a004a,00000001) ret=14036a256 0032:Ret gdi32.SetMapMode() retval=00000001 ret=14036a256 0032:Call user32.GetWindowRect(00010078,0023d3c0) ret=140327e56 0032:Ret user32.GetWindowRect() retval=00000001 ret=140327e56 0032:trace:seh:NtRaiseException code=c0000005 flags=0 addr=(nil) ip=0 tid=0032 0032:trace:seh:NtRaiseException info[0]=0000000000000000 0032:trace:seh:NtRaiseException info[1]=0000000000000000 0032:trace:seh:NtRaiseException rax=000000000023d3e0 rbx=0000000000000000 rcx=0000000000010078 rdx=0000000000000000 0032:trace:seh:NtRaiseException rsi=000000000023f4a0 rdi=00000000000a004a rbp=000000000023d450 rsp=000000000023d3d8 0032:trace:seh:NtRaiseException r8=000000000023d468 r9=000000000023f498 r10=00000000000001e0 r11=00000000000000d7 0032:trace:seh:NtRaiseException r12=0000000000040054 r13=00000000003d87d0 r14=000000000004004f r15=0000000000010078 0032:trace:seh:RtlVirtualUnwind type 1 rip 14036a305 rsp 23d3e0 0032:trace:seh:dump_unwind_info **** func 369ca0-36a799 --- snip ---
The following stubs are missing, not being resolved:
* GetTouchInputInfo * CloseTouchInputHandle * GetGestureInfo
Even if not referenced I would add:
* UnregisterTouchWindow
for consistency too.
https://msdn.microsoft.com/en-us/library/windows/desktop/dd317318(v=vs.85).a...
One Win7+ Touch Input API is already there -> RegisterTouchWindow
https://msdn.microsoft.com/en-us/library/windows/desktop/dd317326(v=vs.85).a...
Added with: https://source.winehq.org/git/wine.git/commitdiff/6458aca761f56dffcdf117e814... ("user32: Add a stub for RegisterTouchWindow.")
Tidbit: The app seems to be Wine aware.
--- snip --- ... 0032:Call KERNEL32.GetModuleHandleA(140fef0a0 "ntdll") ret=1401474a1 0032:Ret KERNEL32.GetModuleHandleA() retval=7bc80000 ret=1401474a1 0032:Call KERNEL32.GetProcAddress(7bc80000,140fef0a8 "wine_get_version") ret=1401474b6 0032:Ret KERNEL32.GetProcAddress() retval=7bc90228 ret=1401474b6 ... --- snip ---
$ sha1sum r4_win_x64_160830.zip 37ca7030812854cc8c4e18da3af57db1b0d24c2c r4_win_x64_160830.zip
$ du -sh r4_win_x64_160830.zip 245M r4_win_x64_160830.zip
$ wine --version wine-2.13-94-g5d9a4c4dbd
Regards