https://bugs.winehq.org/show_bug.cgi?id=43863
Bug ID: 43863 Summary: Rollcage Redux no longer starts Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: fincer89@hotmail.com Distribution: ---
Created attachment 59442 --> https://bugs.winehq.org/attachment.cgi?id=59442 Rollcage Redux, Wine 2.18, full debug log (WINEDEBUG=+all)
Rollcage Redux doesn't start because Wine is looking for $WINEPREFIX/drive_c/Program Files/Psygnosis/Rollcage/IDXData/{Rollcage.idx,Rollcage.img} files from the user's home directory.
I debugged the issue quite some time. If either of those files are missing from user's home directory ($HOME/), the game just freezes during startup. Manually putting those files to $HOME "fixes" the issue.
I have been able to reproduce the issue with Wine 1.9.24, 2.3 and 2.18, all compiled from source. Error output is exactly the same.
Because I haven't been able to produce this error earlier on my system and due to wide range of Wine versions used, I suspect that possibly some system library file on my system may have had recent changes which break compatibility with multiple Wine versions.
---------------------------------------------------------------- ----------------------------------------------------------------
I am using Arch Linux 64-bit. I can provide /var/log/pacman.log information if needed.
I used a clean 32-bit wineprefix for testing. I did separate testing with POL, too.
Though I am aware POL is not supported here, I think it's still better to supply the following information anyway.
---------------------------------------------------------------- ----------------------------------------------------------------
POL testing
I am able to start the game on PlayOnLinux in some cases using precompiled Wine POL versions & "system" version. Here are some highlights from POL testing:
1)
The game starts if I use PlayOnLinux and "system" Wine version, in this case 2.18 (no staging). However, this is true only if I use Intel HD4000 GPU instead of Nvidia GTX 760M. I have an optimus laptop. With Nvidia, the game freezes and is unable to open the game window. With Intel, the game starts.
2)
The game starts with Intel and Nvidia, if I use PlayOnLinux and precompiled POL Wine 2.18 binaries. However, removing precompiled library files from $HOME/.PlayOnLinux/wine/linux-x86/2.18/lib/ folder doesn't have any effect. What I am trying to achieve is to force POL version of Wine to load system libraries instead, narrowing down the issue as a result. However, I have been unable to get satisfying outcome.
---------------------------------------------------------------- ----------------------------------------------------------------
The game is free and can be downloaded here: http://www.codemonkey.me.uk/downloads/rollcageredux.exe
You need to extract that exe file with "/extract:" parameter because Wine can't handle the Installshield wizard installation procedure correctly at the moment.
I have attached full debug log and short "log" files. No POL used for producing these log files.
---------------------------------------------------------------- ----------------------------------------------------------------
Highlights from the full log (line 375 523 onwards):
143468.262:0008:0009:trace:file:wine_nt_to_unix_file_name L"\home\fincer\rollcage.iDX" not found in /home/fincer/.wine_rollcage/dosdevices/z:/home/fincer 143468.262:0008:0009:trace:heap:RtlFreeHeap (0x110000,70000062,0x1a7550): returning TRUE 143468.262:0008:0009:warn:ntdll:FILE_CreateFile L"\??\Z:\home\fincer\rollcage.iDX" not found (c0000034) 143468.262:0008:0009:warn:file:CreateFileW Unable to create file L"rollcage.iDX" (status c0000034)
https://bugs.winehq.org/show_bug.cgi?id=43863
Pekka Helenius fincer89@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fincer89@hotmail.com
https://bugs.winehq.org/show_bug.cgi?id=43863
--- Comment #1 from Pekka Helenius fincer89@hotmail.com --- Created attachment 59443 --> https://bugs.winehq.org/attachment.cgi?id=59443 Rollcage Redux, Wine 2.18, Page fault message
Same test run as for the full debug log (attached in the previous comment)
https://bugs.winehq.org/show_bug.cgi?id=43863
Pekka Helenius fincer89@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Rollcage Redux no longer |Rollcage Redux no longer |starts |starts because Wine is | |looking for game core files | |at $HOME dir
https://bugs.winehq.org/show_bug.cgi?id=43863
--- Comment #2 from Pekka Helenius fincer89@hotmail.com --- Can anyone reproduce or confirm this bug?
https://bugs.winehq.org/show_bug.cgi?id=43863
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.codemonkey.me.uk | |/downloads/rollcageredux.ex | |e
--- Comment #3 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Pekka Helenius from comment #2)
Can anyone reproduce or confirm this bug?
Does it work if you run it from the executable directory? i.e.:
cd ~/.wine_rollcage/drive_c/Program Files/Psygnosis/Rollcage/Direct3D/ WINEPREFIX=~/.wine_rollcage wine "Rollcage Redux.exe"
FWIW that works for me, except that I then get, after a couple of game logo videos:
wine: Call from 0x7b43c78c to unimplemented function msvcr120.dll.?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@PAV_CancellationTokenState@23@@Z, aborting
which is actually bug 42680, and thus a crash. Native msvc*120 is a workaround but then the game stays black after the aforementioned videos and I see an endless stream of:
0009:fixme:d3dx:d3dx9_effect_init Failed to parse effect, hr 0x80004005.
It turns out that D3DXCreateEffectFromFileW() is passed an "ASCII" effect and it doesn't handle includes correctly. After fixing that the game goes in an endless loop of calls to the stubbed FindNextValidTechnique() (bug 34101). I have written a couple of patches for those d3dx9 bugs and with those the game works for me when using native d3dcompiler_43.dll, although I still need to write tests and the like. Native d3dx9_43.dll should be a workaround for those d3dx9 shortcomings for the time being.
Can you confirm my findings? If so, I'd update this bug to track the D3DXCreateEffectFromFileW() issue, given that there are already bugs for the other issues.
https://bugs.winehq.org/show_bug.cgi?id=43863
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|ntdll |-unknown
https://bugs.winehq.org/show_bug.cgi?id=43863
--- Comment #4 from Gijs Vermeulen gijsvrm@gmail.com --- (In reply to Matteo Bruni from comment #3) I confirm this with wine-3.5. Game works with native msvcr120, msvcp120 and d3dcompiler_43. (No d3dx9 needed anymore after your patches)
https://bugs.winehq.org/show_bug.cgi?id=43863
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |f5b888a708544e8f4c6583d76e4 | |d51d64626da44 Summary|Rollcage Redux no longer |Rollcage Redux needs |starts because Wine is |correct include handling in |looking for game core files |D3DXCreateEffectFromFileExW |at $HOME dir |() Resolution|--- |FIXED Component|-unknown |directx-d3dx9 Status|UNCONFIRMED |RESOLVED
--- Comment #5 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Gijs Vermeulen from comment #4)
(In reply to Matteo Bruni from comment #3) I confirm this with wine-3.5. Game works with native msvcr120, msvcp120 and d3dcompiler_43. (No d3dx9 needed anymore after your patches)
Thank you, retargeting and resolving this bug then.
https://bugs.winehq.org/show_bug.cgi?id=43863
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.6.