http://bugs.winehq.org/show_bug.cgi?id=35954
Bug ID: 35954 Summary: Dead Space on Steam crashes on start. Product: Wine Version: 1.7.16 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: teegee@gmail.com
Created attachment 48027 --> http://bugs.winehq.org/attachment.cgi?id=48027 Console output
Dead Space crashes on startup with page fault. The attached output is generated as follows:
[rob] ~/.local/share/wineprefixes/deadspace/drive_c/Program Files/Steam/SteamApps/common/Dead Space> wine Dead\ Space.exe > /tmp/dead-space.out 2>&1
This was installed via Steam in a clean wine prefix. The wine version is recent git master (22c2d81a) on openSuse 13.1 64bit (but only using 32 bit for wine). Other Steam games work OK, for example Far Cry 3.
The game (or steam) installs DirectX on each startup -- I'm not sure if that is good or not..
Can someone see what my problem could be by looking at the terminal output?
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #1 from Bruno Jesus 00cpxxx@gmail.com --- *** Bug 35955 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #2 from Rob Kramer teegee@gmail.com --- (In reply to Bruno Jesus from comment #1)
*** Bug 35955 has been marked as a duplicate of this bug. ***
Oops sorry -- I got some sort of 504 gateway error when submitting this the first time.
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #3 from Ken Sharp imwellcushtymelike@gmail.com --- Have you tried using any of the DirectX workarounds with Winetricks? http://wiki.winehq.org/winetricks
Also, is there a downloadable demo that has the same problem?
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #4 from Rob Kramer teegee@gmail.com --- (In reply to Ken Sharp from comment #3)
Have you tried using any of the DirectX workarounds with Winetricks? http://wiki.winehq.org/winetricks
I've tried installing dx9/10 via winetricks -- no difference.. Does my log indicate a DX problem?
Also, is there a downloadable demo that has the same problem?
Not that I know of, I'm afraid..
https://bugs.winehq.org/show_bug.cgi?id=35954
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |http://store.steampowered.c | |om/app/17470/ CC| |focht@gmx.net Summary|Dead Space on Steam crashes |Dead Space (Steam) crashes |on start. |on startup
--- Comment #5 from Anastasius Focht focht@gmx.net --- Hello folks,
I tested the game, it works very well out of the box.
The game requires the standard pair of DirectX and MS VC++ runtimes, see '17470_install.vdf' in app folder. There are no 'winetricks' recipes needed, everything needed will be automagically installed.
The repeated install of DirectX runtime on each startup is a known problem (at least for me), it happens with various Steam games.
The DirectX runtime installer can't overwrite a dll that is locked by the Steam client/launcher in memory.
You can check 'c:\windows\logs\DirectX.log'.
--- snip --- ... 04/17/14 11:03:38: dxupdate: DirectXUpdateGetSetupInformation(): Section [4.09.00.0904.0-4.09.00.0904.0_WinXP] is being installed. 04/17/14 11:03:38: dxupdate: Extracted file C:\windows\system32\DirectX\DX7536.tmp\xinput1_3_x86.cat from cab 04/17/14 11:03:38: dxupdate: Extracted file C:\windows\system32\DirectX\DX7536.tmp\xinput1_3.dll from cab 04/17/14 11:03:38: dxupdate: Extracted file C:\windows\system32\DirectX\DX7536.tmp\xinput1_3_x86.inf from cab 04/17/14 11:03:38: dxupdate: Extracted file C:\windows\system32\DirectX\DX7536.tmp\xinput1_3_x86_xp.inf from cab 04/17/14 11:03:38: dxupdate: Files: 5 04/17/14 11:03:38: dxupdate: Size: 498688 04/17/14 11:03:38: dxupdate: DirectXUpdateInstallPlugIn(): Installing: xinput1_3_x86_xp.inf - [x86_Install] 04/17/14 11:03:38: dxupdate: Target file: 'C:\windows\system32\xinput1_3.dll' Target file is Version 9.18.944.0 Source file is Version 9.18.944.0 04/17/14 11:03:38: dxupdate: InUse: C:\windows\system32\xinput1_3.dll. 04/17/14 11:03:38: dxupdate: CabCallback(): Unable to copy C:\windows\system32\DirectX\DX7536.tmp\xinput1_3.dll. 04/17/14 11:03:38: dxupdate: ExecuteInf(): SetupInstallFromInfSection() failed, error = 183. 04/17/14 11:03:38: dxupdate: ExecuteInf(): Unable to install C:\windows\system32\DirectX\DX7536.tmp\xinput1_3_x86_xp.inf:[x86_Install]. The file may be damaged. 04/17/14 11:03:38: dxupdate: DirectXUpdateInstallPlugIn(): ExecuteInf() failed. 04/17/14 11:03:38: dsetup32: CSetup::InstallPlugIn(): DirectXUpdateInstallPlugIn() failed. 04/17/14 11:03:38: dsetup32: CSetup::SetupForDirectX(): InstallPlugIn() failed. 04/17/14 11:03:38: dsetup32: start finalizing: phase: 5 - 5, total: 0 - 2 04/17/14 11:03:38: dsetup32: Installation ended with value -9 = Internal or unsupported error --- snip ---
In many cases it's 'xinput1_3.dll'. This kind of error is also encountered on Windows (lots of reports). A reboot in between starts will fix it because the locked dll will be replaced on next Windows startup.
There are multiple ways to handle this problem (apart from adding support for SP_COPY_IN_USE_NEEDS_REBOOT to Wine itself):
1) install DX runtime without starting Steam in the Steam WINEPREFIX (make sure you don't auto-run Steam services)
-> app folder -> 'installers' -> 'DirectX'
--- snip --- $ wine DXSETUP.exe /silent --- snip ---
2) remove the dll from 'system32' folder (or 'SysWOW64' on 64-bit prefix) prior running Steam in the prefix
3) fake successful installation by adding registry key (see '17470_install.vdf' where the registry key is located -> 'DirectX' DWORD:1)
This works well if you have multiple games in the same Steam prefix with DirectX runtime already installed (by other games).
Anyway, I can't confirm the problem. You most likely have a broken (Steam) WINEPREFIX or a broken Wine package.
$ wine --version wine-1.7.16-199-ga6e53ea
Regards
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #6 from Rob Kramer teegee@gmail.com --- Hi Anastasius,
Thanks for your report. Your DX tricks work, in that the game doesn't try to reinstall each time. It still crashes though..
If I reinstall in an empty prefix, this time using system wine, the crash is exactly the same. I even ran the DXSETUP.exe and vcredist_x86_en.exe found in the deadspace installers directory, before starting the game for the first time, while steam was not running.
export WINEPREFIX=/home/rob/.local/share/wineprefixes/deadspacex export WINEARCH=win32
~> wine --version wine-1.7.16
~> winetricks --version 20140326
~> winecfg [ set virtual desktop, win 7 ]
~> winetricks --no-isolate steam
[ Activate steam (new computer, blah) ] [ Install game ] [ Play ]
Crash, as per bug report..
Just to test that I hadn't completely screwed up something, I installed a game called 'Frozen Synapse' in the same prefix (it was free on steam for the weekend). That runs totally fine..
If only the log/dump would tell me where to start looking as to what is wrong on my machine..
Cheers!
Rob
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello Rob,
unfortunately there is not much to see from your backtrace and I can't reproduce the crash, runs fine here.
You have to provide a full relay log.
Something like this from your Steam prefix (make sure Steam is _not_ running prior):
--- snip --- $ WINEDEBUG=+tid,+seh,+relay wine ./steam.exe -no-dwrite -applaunch 17470 -windowed >>log.txt 2>&1 --- snip ---
and attach the resulting file to the bug (compress and split if too large).
Regards
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #8 from Rob Kramer teegee@gmail.com --- Created attachment 48258 --> http://bugs.winehq.org/attachment.cgi?id=48258 Full relay log
Hi Anastasius,
Here's full relay log of the problem. Just search for 'page fault', unless you have a better way to find the crash in 55M of logging :)
I cut the log down a lot, since I was afraid my steam password might be in there somewhere (I cut it somewhere after the last mention of my username). And 570M would be a bit large..
Cheers!
Rob
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello Rob,
can you create the relay log additionally with '+dinput' debug channel again?
--- snip --- $ WINEDEBUG=+tid,+seh,+relay,+dinput wine ./steam.exe -no-dwrite -applaunch 17470 -windowed >>log.txt 2>&1 --- snip ---
Thanks.
Regards
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #10 from Rob Kramer teegee@gmail.com --- Created attachment 48259 --> http://bugs.winehq.org/attachment.cgi?id=48259 Relay and dinput log
Sure! See new attachment.. (relay + dinput log)
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #11 from Anastasius Focht focht@gmx.net --- Hello Rob,
two obvious things ...
1) 'HKLM\System\CurrentControlSet\Control\DeviceClasses' is missing on your system.
This shouldn't be a problem because Wine doesn't implement PnP device manager yet. Native 'xinput1_3' seems to populate subkeys there for whatever reason (XInputGetState, XInputGetCapabilities). You could try to create an empty key to have at least rule out this possibility.
--- snip --- 0020:Call advapi32.RegOpenKeyExW(80000002,7e06ffc0 L"System\CurrentControlSet\Control\DeviceClasses",00000000,00020019,0033f318) ret=7e04954e 0020:Ret advapi32.RegOpenKeyExW() retval=00000002 ret=7e04954e --- snip ---
2) Joystick input device.
--- snip --- 0020:trace:dinput:IDirectInputAImpl_EnumDevices - checking device 3 ('Wine Linux joystick driver') ... 0020:trace:dinput:find_joystick_devices Found a joystick on /dev/input/js0: Microsoft Wired Keyboard 600 (js) 0020:trace:dinput:joydev_enum_deviceA Enumerating the linux Joystick device: /dev/input/js0 (Microsoft Wired Keyboard 600 (js)) 0020:Call ole32.CoInitialize(00000000) ret=008f68bc ... 0020:trace:dinput:IDirectInput7AImpl_CreateDeviceEx (0x9236f90)->({9e573ed9-7734-0000-8d4a-23903fb6bdf7}, (null), 0x3c9f1b0, (nil)) 0020:trace:dinput:mousedev_create_device 0x9236f90 {9e573ed9-7734-0000-8d4a-23903fb6bdf7} (null) 0x3c9f1b0 0 0020:trace:dinput:keyboarddev_create_device 0x9236f90 {9e573ed9-7734-0000-8d4a-23903fb6bdf7} (null) 0x3c9f1b0 0 0020:trace:dinput:joydev_create_device 0x9236f90 {9e573ed9-7734-0000-8d4a-23903fb6bdf7} (null) 0x3c9f1b0 0 0020:trace:dinput:joydev_create_device 0x9236f90 {9e573ed9-7734-0000-8d4a-23903fb6bdf7} (null) 0x3c9f1b0 0 0020:trace:dinput:alloc_device {9e573ed9-7734-0000-8d4a-23903fb6bdf7} 0x9236f90 0x33f0ac 0 --- snip ---
I have only two input devices: mouse and keyboard. You could try to temporarily remove the joystick device and see if it helps.
Regards
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #12 from Rob Kramer teegee@gmail.com --- Hi Anastasius,
- 'HKLM\System\CurrentControlSet\Control\DeviceClasses' is missing on
your system.
Added the key -- no difference (i.e. crash)
- Joystick input device.
Huh, I don't even have a joystick. I just removed the device node for now (no idea why it's being populated), and the game works!!
Fantastic, thank you so much :)
I'll figure out how to remove the js0 device permanently, and update the Dead Space app db entry accordingly.
In case this is a Wine bug and you (or anyone) is interested in patching this, I can recompile from git and test your patches.
Cheers!
Rob
--- snip --- 0020:trace:dinput:IDirectInputAImpl_EnumDevices - checking device 3 ('Wine Linux joystick driver') ... 0020:trace:dinput:find_joystick_devices Found a joystick on /dev/input/js0: Microsoft Wired Keyboard 600 (js) 0020:trace:dinput:joydev_enum_deviceA Enumerating the linux Joystick device: /dev/input/js0 (Microsoft Wired Keyboard 600 (js)) 0020:Call ole32.CoInitialize(00000000) ret=008f68bc ... 0020:trace:dinput:IDirectInput7AImpl_CreateDeviceEx (0x9236f90)->({9e573ed9-7734-0000-8d4a-23903fb6bdf7}, (null), 0x3c9f1b0, (nil)) 0020:trace:dinput:mousedev_create_device 0x9236f90 {9e573ed9-7734-0000-8d4a-23903fb6bdf7} (null) 0x3c9f1b0 0 0020:trace:dinput:keyboarddev_create_device 0x9236f90 {9e573ed9-7734-0000-8d4a-23903fb6bdf7} (null) 0x3c9f1b0 0 0020:trace:dinput:joydev_create_device 0x9236f90 {9e573ed9-7734-0000-8d4a-23903fb6bdf7} (null) 0x3c9f1b0 0 0020:trace:dinput:joydev_create_device 0x9236f90 {9e573ed9-7734-0000-8d4a-23903fb6bdf7} (null) 0x3c9f1b0 0 0020:trace:dinput:alloc_device {9e573ed9-7734-0000-8d4a-23903fb6bdf7} 0x9236f90 0x33f0ac 0 --- snip ---
I have only two input devices: mouse and keyboard. You could try to temporarily remove the joystick device and see if it helps.
Regards
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #13 from Bruno Jesus 00cpxxx@gmail.com --- It's a kernel bug that your keyboard is detected as a joystick: https://bugzilla.kernel.org/show_bug.cgi?id=37982
http://bugs.winehq.org/show_bug.cgi?id=35954
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW See Also| |https://bugzilla.kernel.org | |/show_bug.cgi?id=37982 Summary|Dead Space (Steam) crashes |Dead Space (Steam) crashes |on startup |on startup (some Microsoft | |keyboard and mouse devices | |are incorrectly recognised | |as joystick, reporting | |nonsense caps/data) Ever confirmed|0 |1
--- Comment #14 from Anastasius Focht focht@gmx.net --- Hello Rob,
--- quote --- Huh, I don't even have a joystick. I just removed the device node for now (no idea why it's being populated), and the game works!! --- quote ---
you probably have this one: 'Microsoft Wired Keyboard 600'
There is a kernel bug reported here: https://bugzilla.kernel.org/show_bug.cgi?id=37982 ("Microsoft Wired Keyboard 600 create a spurious joystick device.")
These devices report nonsense data when being incorrectly recognized as joy devices (hid).
Maybe Wine should blacklist all input devices with vendor id == 0x045e (Microsoft) to be safe ... j/k :)
Well, at least those that are obviously invalid:
--- snip --- 0020:trace:dinput:JoystickWGenericImpl_GetCapabilities 0x923f4e4->(0x3c9f1b4) 0020:trace:dinput:_dump_DIDEVCAPS dwSize: 44 0020:trace:dinput:_dump_DIDEVCAPS dwFlags: 00000001 0020:trace:dinput:_dump_DIDEVCAPS dwDevType: 00000214 UNKNOWN 0020:trace:dinput:_dump_DIDEVCAPS dwAxes: 8 0020:trace:dinput:_dump_DIDEVCAPS dwButtons: 57 0020:trace:dinput:_dump_DIDEVCAPS dwPOVs: 1 0020:trace:dinput:_dump_DIDEVCAPS dwFFSamplePeriod: 0 0020:trace:dinput:_dump_DIDEVCAPS dwFFMinTimeResolution: 0 0020:trace:dinput:_dump_DIDEVCAPS dwFirmwareRevision: 0 0020:trace:dinput:_dump_DIDEVCAPS dwHardwareRevision: 0 0020:trace:dinput:_dump_DIDEVCAPS dwFFDriverVersion: 0 --- snip ---
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/987622
https://bbs.archlinux.org/viewtopic.php?id=142469
http://ryort.wordpress.com/2011/12/04/udev-and-the-microsoft-digital-media-k...
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/390959
The root cause is of course 'upstream'.
Regards
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #15 from Bruno Jesus 00cpxxx@gmail.com --- (In reply to Anastasius Focht from comment #14)
...
Well, at least those that are obviously invalid:
--- snip --- 0020:trace:dinput:JoystickWGenericImpl_GetCapabilities 0x923f4e4->(0x3c9f1b4) 0020:trace:dinput:_dump_DIDEVCAPS dwSize: 44 0020:trace:dinput:_dump_DIDEVCAPS dwFlags: 00000001 0020:trace:dinput:_dump_DIDEVCAPS dwDevType: 00000214 UNKNOWN 0020:trace:dinput:_dump_DIDEVCAPS dwAxes: 8 0020:trace:dinput:_dump_DIDEVCAPS dwButtons: 57 0020:trace:dinput:_dump_DIDEVCAPS dwPOVs: 1 0020:trace:dinput:_dump_DIDEVCAPS dwFFSamplePeriod: 0 0020:trace:dinput:_dump_DIDEVCAPS dwFFMinTimeResolution: 0 0020:trace:dinput:_dump_DIDEVCAPS dwFirmwareRevision: 0 0020:trace:dinput:_dump_DIDEVCAPS dwHardwareRevision: 0 0020:trace:dinput:_dump_DIDEVCAPS dwFFDriverVersion: 0 --- snip ---
Do you have any idea on how to detect it's invalid? Is it due to the unknown device type?
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #16 from Anastasius Focht focht@gmx.net --- Hello Bruno,
--- quote --- Do you have any idea on how to detect it's invalid? Is it due to the unknown device type? --- quote ---
Well, the 'unknown' message is actually a bug in Wine's '_dump_DIDEVCAPS' helper. You can't simply compare 'dwDevType' with DIDEVTYPE_* constants when:
1) DIRECTINPUT_VERSION decides about how the low byte is interpreted (either DIDEVTYPE_* or DI8DEVTYPE_*)
2) subtype is included (high byte) -> you need GET_DIDEVICE_TYPE() for low byte extraction
I was thinking about that big number of axis and buttons ... but that seems not reliable enough for identifying invalid joy devices. For example there are of various joysticks/game pads with 8+ axis (DIJOFS_X, DIJOFS_Y, DIJOFS_Z, DIJOFS_RX, DIJOFS_RY, DIJOFS_RZ, DIJOFS_SLIDER0, DIJOFS_SLIDER1).
MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sd... (list in remarks section).
Regards
http://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #17 from Bruno Jesus 00cpxxx@gmail.com --- Created attachment 48281 --> http://bugs.winehq.org/attachment.cgi?id=48281 fix dinput debug
(In reply to Anastasius Focht from comment #16)
Hi, Anastasius.
Well, the 'unknown' message is actually a bug in Wine's '_dump_DIDEVCAPS' helper. You can't simply compare 'dwDevType' with DIDEVTYPE_* constants when: ...
Do you think the attached patch would solve this debug problem?
https://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #18 from Austin English austinenglish@gmail.com --- This is your friendly reminder that there has been no bug activity for over a year. Is this still an issue in current (1.7.51 or newer) wine?
https://bugs.winehq.org/show_bug.cgi?id=35954
--- Comment #19 from Rob Kramer teegee@gmail.com --- (In reply to Austin English from comment #18)
This is your friendly reminder that there has been no bug activity for over a year. Is this still an issue in current (1.7.51 or newer) wine?
I can't really test if it is still a problem (hardware changed). Feel free to close the bug..
- Rob
https://bugs.winehq.org/show_bug.cgi?id=35954
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |ABANDONED
--- Comment #20 from Austin English austinenglish@gmail.com --- (In reply to Rob Kramer from comment #19)
(In reply to Austin English from comment #18)
This is your friendly reminder that there has been no bug activity for over a year. Is this still an issue in current (1.7.51 or newer) wine?
I can't really test if it is still a problem (hardware changed). Feel free to close the bug..
- Rob
Thanks, marking abandoned.
https://bugs.winehq.org/show_bug.cgi?id=35954
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #21 from Austin English austinenglish@gmail.com --- Closing.