https://bugs.winehq.org/show_bug.cgi?id=42985
Bug ID: 42985 Summary: unimplemented function USER32.dll.GetPhysicalCursorPos Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: user32 Assignee: wine-bugs@winehq.org Reporter: fincer89@hotmail.com Distribution: ---
Created attachment 58122 --> https://bugs.winehq.org/attachment.cgi?id=58122 ROTTR, unimplemented function USER32.dll.GetPhysicalCursorPos
Rise of the Tomb Raider (x64 Steam game) needs User32 function "GetPhysicalCursorPos" which is currently unimplemented. Please see the attached log file for details.
The error message occurs once user has clicked "Play" button on the ROTTR game launcher. The game tries to launch but fails and can't open its main window.
ROTTR is a 64-bit Steam DX11 game.
--------------------------------------------
Tested using the latest Wine (Staging) git version. Latest applied commit at the time of writing was b6a4b2f593503a105dde01e7bd11ffdde243117a (winemac: Track whether a view has ever had an OpenGL context attached.)
https://bugs.winehq.org/show_bug.cgi?id=42985
Fincer fincer89@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends on| |40450
https://bugs.winehq.org/show_bug.cgi?id=42985
Fincer fincer89@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fincer89@hotmail.com
https://bugs.winehq.org/show_bug.cgi?id=42985
Gijs Vermeulen acescopezz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |acescopezz@gmail.com
--- Comment #1 from Gijs Vermeulen acescopezz@gmail.com --- Please change it from "depends on bug 40450" to "block bug 40450"
https://bugs.winehq.org/show_bug.cgi?id=42985
Fincer fincer89@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |40450 Depends on|40450 |
https://bugs.winehq.org/show_bug.cgi?id=42985
--- Comment #2 from Fincer fincer89@hotmail.com --- Done.
https://bugs.winehq.org/show_bug.cgi?id=42985
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com Summary|unimplemented function |Rise of the Tomb Raider |USER32.dll.GetPhysicalCurso |needs unimplemented |rPos |function | |USER32.dll.GetPhysicalCurso | |rPos
https://bugs.winehq.org/show_bug.cgi?id=42985
--- Comment #3 from Fincer fincer89@hotmail.com --- The game launches with commit 133835 ([PATCH] user32: add GetPhysicalCursorPos/SetPhysicalCursorPos stubs (try 2))
but get's stuck immediately. The main window is invisible and stays like that until it's killed. Terminal output is printing one single message (truly, nothing else):
... fixme:win:GetPhysicalCursorPos (0x6f2e2c0) semi-stub: forwarding to GetCursorPos fixme:win:GetPhysicalCursorPos (0x6f2e2c0) semi-stub: forwarding to GetCursorPos fixme:win:GetPhysicalCursorPos (0x6f2e2c0) semi-stub: forwarding to GetCursorPos ...
Size of the output log file was several gigabytes until I decided to kill ROTTR.exe process after several minutes of waiting.
Commit link:
https://source.winehq.org/patches/data/133835
Wine Staging Git 2.8, compiled from source.
https://bugs.winehq.org/show_bug.cgi?id=42985
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW
--- Comment #4 from Austin English austinenglish@gmail.com --- (In reply to Fincer from comment #3)
The game launches with commit 133835 ([PATCH] user32: add GetPhysicalCursorPos/SetPhysicalCursorPos stubs (try 2))
but get's stuck immediately. The main window is invisible and stays like that until it's killed. Terminal output is printing one single message (truly, nothing else):
... fixme:win:GetPhysicalCursorPos (0x6f2e2c0) semi-stub: forwarding to GetCursorPos fixme:win:GetPhysicalCursorPos (0x6f2e2c0) semi-stub: forwarding to GetCursorPos fixme:win:GetPhysicalCursorPos (0x6f2e2c0) semi-stub: forwarding to GetCursorPos ...
Size of the output log file was several gigabytes until I decided to kill ROTTR.exe process after several minutes of waiting.
Commit link:
https://source.winehq.org/patches/data/133835
Wine Staging Git 2.8, compiled from source.
A cut/paste error causes and infinite loop. Try https://source.winehq.org/patches/data/133879 instead
https://bugs.winehq.org/show_bug.cgi?id=42985
--- Comment #5 from Fincer fincer89@hotmail.com --- Thanks a lot! That fixes the GetPhysicalCursorPos loop issue you mentioned.
The next missing implementation is "USER32.dll.PhysicalToLogicalPoint"
Once I try to launch the game, Wine complains
wine: Call from 0x7bc6255c to unimplemented function USER32.dll.PhysicalToLogicalPoint, aborting
and then ROTTR.exe quits.
I'll open a new issue for that.
https://bugs.winehq.org/show_bug.cgi?id=42985
Fincer fincer89@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |43039
https://bugs.winehq.org/show_bug.cgi?id=42985
--- Comment #6 from Austin English austinenglish@gmail.com --- (In reply to Fincer from comment #5)
Thanks a lot! That fixes the GetPhysicalCursorPos loop issue you mentioned.
The next missing implementation is "USER32.dll.PhysicalToLogicalPoint"
Once I try to launch the game, Wine complains
wine: Call from 0x7bc6255c to unimplemented function USER32.dll.PhysicalToLogicalPoint, aborting
and then ROTTR.exe quits.
I'll open a new issue for that.
Cool, thanks for testing. I'll send a patch for that once the first once is accepted.
In the meantime, you could try running this script https://github.com/Winetricks/winezeug/blob/master/mscodescan.pl to see if it finds any other missing imports. If you do, just post the output in the bug, don't file bugs for each one (the game may never actually call them, but it's useful to see).
https://bugs.winehq.org/show_bug.cgi?id=42985
--- Comment #7 from Fincer fincer89@hotmail.com --- Thanks for the hint and fast stub implementation!
Sorry for troubling you but I tried mscodescan perl script and couldn't figure out how to use it with ROTTR.exe. I get a list of MS exe's/dll's in ROTTR application folder but it doesn't either list ROTTR.exe or accept it as input. I guess I miss something very simple thing in my command but a short "how to" would be good here (a command example is sufficient).
https://bugs.winehq.org/show_bug.cgi?id=42985
--- Comment #8 from Austin English austinenglish@gmail.com --- (In reply to Fincer from comment #7)
Thanks for the hint and fast stub implementation!
Sorry for troubling you but I tried mscodescan perl script and couldn't figure out how to use it with ROTTR.exe. I get a list of MS exe's/dll's in ROTTR application folder but it doesn't either list ROTTR.exe or accept it as input. I guess I miss something very simple thing in my command but a short "how to" would be good here (a command example is sufficient).
Do: cd "/home/fincer/steam_64/drive_c/Program Files (x86)/Steam" perl ~/mscodescan.pl
IIRC it doesn't not show all missing stubs, I'm mostly curious if there are any more it can find though.
https://bugs.winehq.org/show_bug.cgi?id=42985
--- Comment #9 from Fincer fincer89@hotmail.com --- Thanks! I additionally uncommented several lines before running mscodescan.pl script (It didn't give any sensible output before that)
I ran the script as you instructed. You can find per-file analysis for all ROTTR dll/exe Imports in the archive below. I don't know if it's what you wanted though I hope so. I couldn't figure out how to restrict the output to exclude all but Stubs.
What's interesting is that it seems ROTTR.exe doesn't directly call for these USER32-related unimplemented functions, according to quick analysis of NxApp_GoldMaster.dll file (./steamapps/common/Rise of the Tomb Raider/NxApp_GoldMaster.dll).
Please let me know if you need any additional analysis/output.
ROTTR Imports (tar.gz): https://www.dropbox.com/s/j9zd05hsetqoko4/rottr-imports.tar.gz?dl=1
https://bugs.winehq.org/show_bug.cgi?id=42985
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |2e9ca4626e2bedb5b8a0123a1c7 | |0d591f5e9d57c Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #10 from Austin English austinenglish@gmail.com --- Fixed by https://source.winehq.org/git/wine.git/commitdiff/2e9ca4626e2bedb5b8a0123a1c...
https://bugs.winehq.org/show_bug.cgi?id=42985
Fincer fincer89@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |43050
https://bugs.winehq.org/show_bug.cgi?id=42985
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.9.