Prototype patch that solves bug 11897

Artur Szymiec artur.szymiec at gmail.com
Wed Mar 12 17:55:27 CDT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Artur Szymiec pisze:
> This is a prototype patch that solves bug 11897. It also makes my
> favourite game GTR2 playable under wine. I was right that GTR2
> looping between config dialog and game exe was related to d3d
> adapter GUID.
>
> Best regards Artur
>
> diff --git a/dlls/d3d9/directx.c b/dlls/d3d9/directx.c index
> 8b1db3a..67296c7 100644 --- a/dlls/d3d9/directx.c +++
> b/dlls/d3d9/directx.c @@ -105,7 +105,7 @@ static HRESULT WINAPI
> IDirect3D9Impl_GetAdapterIdentifier(LPDIRECT3D9EX iface, U
> IDirect3D9Impl *This = (IDirect3D9Impl *)iface;
> WINED3DADAPTER_IDENTIFIER adapter_id; HRESULT hr; - + /* dx8 and
> dx9 have different structures to be filled in, with incompatible
> layouts so pass in pointers to the places to be filled via an
> internal
>
> structure */ @@ -119,7 +119,12 @@ static HRESULT WINAPI
> IDirect3D9Impl_GetAdapterIdentifier(LPDIRECT3D9EX iface, U
> adapter_id.Revision         = &pIdentifier->Revision;
> adapter_id.DeviceIdentifier = &pIdentifier->DeviceIdentifier;
> adapter_id.WHQLLevel        = &pIdentifier->WHQLLevel; - +    /*
> Unfortunately correct UID code can't be placed at the moment in
> IWineD3DImpl_GetAdapterIdentifier +       cause simply it breaks
> the Direct sound somehow - app reports no direct sound card !!!) +
> Fixed temprorary for GTR2 && TR_LEGENDS - see BUG 11897 */ +
> FIXME("Filling GUID fields with 0x1 -> need real
> implementation\n"); +
> memset(&pIdentifier->DeviceIdentifier,1,sizeof(GUID)); +
> EnterCriticalSection(&d3d9_cs); hr =
> IWineD3D_GetAdapterIdentifier(This->WineD3D, Adapter, Flags,
> &adapter_id); LeaveCriticalSection(&d3d9_cs); diff --git
> a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index
> 04af700..75a872a 100644 --- a/dlls/wined3d/directx.c +++
> b/dlls/wined3d/directx.c @@ -1596,6 +1596,14 @@ static HRESULT
> WINAPI IWineD3DImpl_GetAdapterIdentifier(IWineD3D *iface, UINT Ad
> *(pIdentifier->Revision) = 0;
>
> /*FIXME: memcpy(&pIdentifier->DeviceIdentifier, ??,
> sizeof(??GUID)); */ +    //GUID mGUID; +    //GUID *pmGUID =
> &pIdentifier->DeviceIdentifier; +    //pmGUID->Data1=0; +
> //pmGUID->Data2=0; +    //pmGUID->Data3=0; +
> //pmGUID->Data4[0]=1; +    //Data4 +
> //memset(&pIdentifier->DeviceIdentifier,1,sizeof(GUID)); if (Flags
> & WINED3DENUM_NO_WHQL_LEVEL) { *(pIdentifier->WHQLLevel) = 0; }
> else {
>
Last patch include some unnecessary changes.
Here is correct one.
diff --git a/dlls/d3d9/directx.c b/dlls/d3d9/directx.c
index 8b1db3a..5bfe707 100644
- --- a/dlls/d3d9/directx.c
+++ b/dlls/d3d9/directx.c
@@ -119,7 +119,12 @@ static HRESULT WINAPI
IDirect3D9Impl_GetAdapterIdentifier(LPDIRECT3D9EX iface, U
     adapter_id.Revision         = &pIdentifier->Revision;
     adapter_id.DeviceIdentifier = &pIdentifier->DeviceIdentifier;
     adapter_id.WHQLLevel        = &pIdentifier->WHQLLevel;
- -
+    /* Unfortunately correct UID code can't be placed at the moment
in IWineD3DImpl_GetAdapterIdentifier
+       cause simply it breaks the Direct sound somehow - app reports
no direct sound card !!!)
+    Fixed temprorary for GTR2 && TR_LEGENDS - see BUG 11897 */
+    FIXME("Filling GUID fields with 0x1 -> need real implementation\n");
+    memset(&pIdentifier->DeviceIdentifier,1,sizeof(GUID));
+
     EnterCriticalSection(&d3d9_cs);
     hr = IWineD3D_GetAdapterIdentifier(This->WineD3D, Adapter, Flags,
&adapter_id);
     LeaveCriticalSection(&d3d9_cs);

- --
- --------------------------------------------------------------------------
Registered User No 397465
Linux Debian 2.6.24.2 AMD Athlon(tm) 64 X2 Dual Core 5000+
Conquer your Desktop! http://www.kde.org/trykde/
Reclaim Your Inbox!   http://www.mozilla.org/products/thunderbird/
- --------------------------------------------------------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFH2F9fbB2ld6kq2MsRAg5xAKCRPBuVmwYKswaz0vpFf8PphePrpACgxVYZ
C6fl8eU9PIcybsuvNvAl5P0=
=gMz5
-----END PGP SIGNATURE-----




More information about the wine-patches mailing list