http://bugs.winehq.org/show_bug.cgi?id=3747
------- Additional Comments From tomek.fizyk@op.pl 2007-10-02 04:25 ------- You were right Vitaliy. I've changed the IDirectInputAImpl_Initialize() function in the dinput_main.c to return DI_NOTATTACHED when it's beeing called for the third time (I assumed this would be the call when the app is configuring the joystick - it was correct assumption;) and the game finally ran (yey:D).
But... Unfortunately it encounters another problems, which will require another bug reports, I think... In-game sound is only available when in winecfg I set the audio hardware acceleration to "emulation" - in any other case the game can't find the sound device (OSS - no sound except for the CDA and introduction video, ALSA - the game freezes when playing first in-menu sound or first in-game sound in Demo version). Another problem is that the game crashes when starting up the gameplay in hw accelerated mode - only the software renderer works (and it's quite fast on my system even in 1280x1024;). What is weird to me is that the hw graphics device the game detects is called "Direct Draw HAL" instead of "Direct3D HAL" or something like that.
Kaj-Michael, can you change the dlls/dinput/dinput_main.c file, recompile wine and check if the game behaves the same?
The changes I've made to the dinput_main.c (I've added lines that are commented as "added this") are (from line 365):
int icounter = 0; //added this static HRESULT WINAPI IDirectInputAImpl_GetDeviceStatus(LPDIRECTINPUT7A iface, REFGUID rguid) { IDirectInputImpl *This = (IDirectInputImpl *)iface;
FIXME("(%p)->(%s): stub\n",This,debugstr_guid(rguid));
icounter++; //added this if(icounter > 2) //added this return DI_NOTATTACHED; //added this return DI_OK; }