Echelon9 / cxbx-shogun

shogun's mirrored branch of the Cxbx original Xbox emulator
GNU General Public License v2.0
33 stars 7 forks source link

Support D3DDevice_GetCreationParameters() on 4361 #8

Closed Echelon9 closed 10 years ago

Echelon9 commented 10 years ago

GetCreationParameters() is not currently supported in the HLEDatabase on titles built with the 4361 version of the D3D library.

Earlier 4034 libraries have an OOVP pattern for this function. That OOVP pattern appears reasonably stable across releases, as it has been adopted unchanged for 5233, 5558 and 5849.

Testing

Will involve confirming the follow offsets and values match:

// ******************************************************************
// * IDirect3DDevice8_GetCreationParameters
// ******************************************************************
SOOVPA<7> IDirect3DDevice8_GetCreationParameters_1_0_4034 =
{
    0,  // Large == 0
    7,  // Count == 7

    -1, // Xref Not Saved
    0,  // Xref Not Used

    {
        { 0x06, 0x8B },
        { 0x0E, 0x8B },
        { 0x16, 0x4E },
        { 0x1E, 0x83 },
        { 0x26, 0x00 },
        { 0x2E, 0x5E },
        { 0x36, 0xC9 },
    }
};

A successful outcome should like similar to the following in KrnlDebug.txt output:

HLE: 0x001008A0 -> EmuIDirect3DDevice8_GetCreationParameters
...
EmuD3D8 (0xD80): EmuIDirect3DDevice8_GetCreationParameters
(
   pParameters               : 0x0105F110
);