YUY2 detection
This commit is contained in:
parent
de7b38d540
commit
93b0ea7650
|
@ -1,10 +1,12 @@
|
|||
cxbx website: http://www.caustik.com/xbox/
|
||||
|
||||
version: 0.7.8 (08/02/03)
|
||||
version: 0.7.8 (??/??/??)
|
||||
--------------------------------
|
||||
|
||||
- Overlays simulated on PCs that do not support them in hardware.
|
||||
|
||||
- YUY2 overlay capabilities detection improved significantly
|
||||
|
||||
- Fixes to mesh rendering (thanks kingofc!). The "XRay" XDK demo is
|
||||
extremely impressive now (and runs very efficiently), as well as
|
||||
the Gamepad/Rumble demos.
|
||||
|
|
|
@ -294,6 +294,40 @@ HRESULT WINAPI EmuIDirectSound8_SetMixBinHeadroom
|
|||
DWORD dwHeadroom
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSound8_SetPosition
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI EmuIDirectSound8_SetPosition
|
||||
(
|
||||
LPDIRECTSOUND8 pThis,
|
||||
FLOAT x,
|
||||
FLOAT y,
|
||||
FLOAT z,
|
||||
DWORD dwApply
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSound8_SetVelocity
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI EmuIDirectSound8_SetVelocity
|
||||
(
|
||||
LPDIRECTSOUND8 pThis,
|
||||
FLOAT x,
|
||||
FLOAT y,
|
||||
FLOAT z,
|
||||
DWORD dwApply
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSound8_SetAllParameters
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI EmuIDirectSound8_SetAllParameters
|
||||
(
|
||||
LPDIRECTSOUND8 pThis,
|
||||
LPVOID pTodo, // TODO: LPCDS3DLISTENER
|
||||
DWORD dwApply
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSound8_CreateSoundBuffer
|
||||
// ******************************************************************
|
||||
|
|
|
@ -92,31 +92,39 @@ extern bool bXRefFirstPass;
|
|||
enum XRefDataBaseOffset
|
||||
{
|
||||
XREF_XNINIT = 0,
|
||||
XREF_FCLOSEDEVICE = 1,
|
||||
XREF_CLEARSTATEBLOCKFLAGS = 2,
|
||||
XREF_RECORDSTATEBLOCK = 3,
|
||||
XREF_SETDISTANCEFACTORA = 4,
|
||||
XREF_SETDISTANCEFACTORB = 5,
|
||||
XREF_SETROLLOFFFACTOR = 6,
|
||||
XREF_SETDOPPLERFACTOR = 7,
|
||||
XREF_SETBUFFERDATA = 8,
|
||||
XREF_SETCURRENTPOSITION = 9,
|
||||
XREF_SETCURRENTPOSITION2 = 10,
|
||||
XREF_GETCURRENTPOSITION = 11,
|
||||
XREF_GETCURRENTPOSITION2 = 12,
|
||||
XREF_DSOUNDPLAY = 13,
|
||||
XREF_DSOUNDPLAY2 = 14,
|
||||
XREF_DSOUNDSTOP = 15,
|
||||
XREF_DSOUNDSTOP2 = 16,
|
||||
XREF_DSSETBUFFERDATA = 17,
|
||||
XREF_DSSETBUFFERDATA2 = 18,
|
||||
XREF_DSCREATESOUNDBUFFER = 19,
|
||||
XREF_DSCREATESOUNDSTREAM = 20,
|
||||
XREF_DSSTREAMPAUSE = 21,
|
||||
XREF_DSSTREAMSETVOLUME = 22,
|
||||
XREF_DSSETI3DL2LISTENER = 23,
|
||||
XREF_DSSETMIXBINHEADROOM = 24,
|
||||
XREF_GET2DSURFACEDESCB = 25
|
||||
XREF_FCLOSEDEVICE,
|
||||
XREF_CLEARSTATEBLOCKFLAGS,
|
||||
XREF_RECORDSTATEBLOCK,
|
||||
XREF_SETDISTANCEFACTORA,
|
||||
XREF_SETDISTANCEFACTORB,
|
||||
XREF_SETROLLOFFFACTORA,
|
||||
XREF_SETROLLOFFFACTORB,
|
||||
XREF_SETDOPPLERFACTOR,
|
||||
XREF_SETBUFFERDATA,
|
||||
XREF_SETCURRENTPOSITION,
|
||||
XREF_SETCURRENTPOSITION2,
|
||||
XREF_GETCURRENTPOSITION,
|
||||
XREF_GETCURRENTPOSITION2,
|
||||
XREF_DSOUNDPLAY,
|
||||
XREF_DSOUNDPLAY2,
|
||||
XREF_DSOUNDSTOP,
|
||||
XREF_DSOUNDSTOP2,
|
||||
XREF_DSSETBUFFERDATA,
|
||||
XREF_DSSETBUFFERDATA2,
|
||||
XREF_DSCREATESOUNDBUFFER,
|
||||
XREF_DSCREATESOUNDSTREAM,
|
||||
XREF_DSSTREAMPAUSE,
|
||||
XREF_DSSTREAMSETVOLUME,
|
||||
XREF_DSSETI3DL2LISTENER,
|
||||
XREF_DSSETMIXBINHEADROOMA,
|
||||
XREF_DSSETMIXBINHEADROOMB,
|
||||
XREF_DSSETPOSITIONA,
|
||||
XREF_DSSETPOSITIONB,
|
||||
XREF_DSSETVELOCITYA,
|
||||
XREF_DSSETVELOCITYB,
|
||||
XREF_DSSETALLPARAMETERSA,
|
||||
XREF_DSSETALLPARAMETERSB,
|
||||
XREF_GET2DSURFACEDESCB
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -63,6 +63,43 @@ SOOVPA<9> DirectSoundCreate_1_0_3936 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_SetOrientation
|
||||
// ******************************************************************
|
||||
SOOVPA<13> IDirectSound8_SetOrientation_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
13, // Count == 13
|
||||
|
||||
-1, // XRef Not Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirectSound8_SetOrientation+0x06 : fld [ebp+0x20]
|
||||
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #1
|
||||
{ 0x07, 0x45 }, // (Offset,Value)-Pair #2
|
||||
{ 0x08, 0x20 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// IDirectSound8_SetOrientation+0x0C : sub esp, 0x18
|
||||
{ 0x0C, 0x83 }, // (Offset,Value)-Pair #4
|
||||
{ 0x0D, 0xEC }, // (Offset,Value)-Pair #5
|
||||
{ 0x0E, 0x18 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// IDirectSound8_SetOrientation+0x18 : add eax, 0xFFFFFFF8
|
||||
{ 0x18, 0x83 }, // (Offset,Value)-Pair #7
|
||||
{ 0x19, 0xC0 }, // (Offset,Value)-Pair #8
|
||||
{ 0x1A, 0xF8 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirectSound8_SetOrientation+0x1F : neg ecx
|
||||
{ 0x1F, 0xF7 }, // (Offset,Value)-Pair #10
|
||||
{ 0x20, 0xD9 }, // (Offset,Value)-Pair #11
|
||||
|
||||
// IDirectSound8_SetOrientation+0x47 : retn 0x20
|
||||
{ 0x47, 0xC2 }, // (Offset,Value)-Pair #12
|
||||
{ 0x48, 0x20 }, // (Offset,Value)-Pair #13
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetDistanceFactorB
|
||||
// ******************************************************************
|
||||
|
@ -167,6 +204,541 @@ SOOVPA<11> IDirectSound8_SetDistanceFactor_1_0_3936 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetRolloffFactorB
|
||||
// ******************************************************************
|
||||
SOOVPA<13> CDirectSound_SetRolloffFactorB_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
13, // Count == 13
|
||||
|
||||
XREF_SETROLLOFFFACTORB, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetRolloffFactorB+0x04 : or dword ptr [ecx+0x01B4], 0x60
|
||||
{ 0x04, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x05, 0x89 }, // (Offset,Value)-Pair #2
|
||||
{ 0x06, 0xB4 }, // (Offset,Value)-Pair #3
|
||||
{ 0x07, 0x01 }, // (Offset,Value)-Pair #4
|
||||
{ 0x08, 0x00 }, // (Offset,Value)-Pair #5
|
||||
{ 0x09, 0x00 }, // (Offset,Value)-Pair #6
|
||||
{ 0x0A, 0x04 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// CDirectSound_SetRolloffFactorB+0x0B : cmp [esp+0x08], 0
|
||||
{ 0x0B, 0x83 }, // (Offset,Value)-Pair #8
|
||||
{ 0x0C, 0x7C }, // (Offset,Value)-Pair #9
|
||||
{ 0x0D, 0x24 }, // (Offset,Value)-Pair #10
|
||||
{ 0x0E, 0x08 }, // (Offset,Value)-Pair #11
|
||||
|
||||
// CDirectSound_SetRolloffFactorB+0x12 : mov [ecx+0x017C], eax
|
||||
{ 0x12, 0x7C }, // (Offset,Value)-Pair #12
|
||||
{ 0x13, 0x01 }, // (Offset,Value)-Pair #13
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetRolloffFactorA
|
||||
// ******************************************************************
|
||||
SOOVPA<12> CDirectSound_SetRolloffFactorA_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
12, // Count == 11
|
||||
|
||||
XREF_SETROLLOFFFACTORA, // XRef Is Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetRolloffFactorA+0x23 : call [CDirectSound::SetRolloffFactorB]
|
||||
{ 0x23, XREF_SETROLLOFFFACTORB }, // (Offset,Value)-Pair #1
|
||||
|
||||
// CDirectSound_SetRolloffFactorA+0x00 : push esi; push edi
|
||||
{ 0x00, 0x56 }, // (Offset,Value)-Pair #2
|
||||
{ 0x01, 0x57 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// CDirectSound_SetRolloffFactorA+0x07 : fld [esp+0x10]
|
||||
{ 0x07, 0xD9 }, // (Offset,Value)-Pair #4
|
||||
{ 0x08, 0x44 }, // (Offset,Value)-Pair #5
|
||||
{ 0x09, 0x24 }, // (Offset,Value)-Pair #6
|
||||
{ 0x0A, 0x10 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// CDirectSound_SetRolloffFactorA+0x11 : not eax; and eax, 1
|
||||
{ 0x11, 0xF7 }, // (Offset,Value)-Pair #8
|
||||
{ 0x12, 0xD0 }, // (Offset,Value)-Pair #9
|
||||
{ 0x13, 0x83 }, // (Offset,Value)-Pair #10
|
||||
{ 0x14, 0xE0 }, // (Offset,Value)-Pair #11
|
||||
{ 0x15, 0x01 }, // (Offset,Value)-Pair #12
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_SetRolloffFactor
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirectSound8_SetRolloffFactor_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
-1, // XRef Not Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
// TODO: Tentative (may not be SetRolloffFactor)
|
||||
|
||||
{
|
||||
// IDirectSound8_SetRolloffFactor+0x1D : call [CDirectSound::SetRolloffFactorA]
|
||||
{ 0x1D, XREF_SETROLLOFFFACTORA }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSound8_SetRolloffFactor+0x04 : fld [esp+0x0C]
|
||||
{ 0x04, 0xD9 }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x44 }, // (Offset,Value)-Pair #3
|
||||
{ 0x06, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x0C }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirectSound8_SetRolloffFactor+0x0C : push ecx
|
||||
{ 0x0C, 0x51 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// IDirectSound8_SetRolloffFactor+0x12 : add eax, 0xFFFFFFF8
|
||||
{ 0x12, 0x83 }, // (Offset,Value)-Pair #7
|
||||
{ 0x13, 0xC0 }, // (Offset,Value)-Pair #8
|
||||
{ 0x14, 0xF8 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirectSound8_SetRolloffFactor+0x21 : retn 0x0C
|
||||
{ 0x21, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x22, 0x0C }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetMixBinHeadroomB
|
||||
// ******************************************************************
|
||||
SOOVPA<12> CDirectSound_SetMixBinHeadroomB_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
12, // Count == 12
|
||||
|
||||
XREF_DSSETMIXBINHEADROOMB, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetMixBinHeadroomB+0x04 : cmp dword ptr ds:[0xFE820010], 4
|
||||
{ 0x12, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x13, 0x3D }, // (Offset,Value)-Pair #2
|
||||
{ 0x14, 0x10 }, // (Offset,Value)-Pair #3
|
||||
{ 0x15, 0x00 }, // (Offset,Value)-Pair #4
|
||||
{ 0x16, 0x82 }, // (Offset,Value)-Pair #5
|
||||
{ 0x17, 0xFE }, // (Offset,Value)-Pair #6
|
||||
{ 0x18, 0x04 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// CDirectSound_SetMixBinHeadroomB+0x1F : and edx, 7
|
||||
{ 0x1F, 0x83 }, // (Offset,Value)-Pair #8
|
||||
{ 0x20, 0xE2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x21, 0x07 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// CDirectSound_SetMixBinHeadroomB+0x2D : jl +0xD8
|
||||
{ 0x2D, 0x7C }, // (Offset,Value)-Pair #11
|
||||
{ 0x2E, 0xD8 }, // (Offset,Value)-Pair #12
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetMixBinHeadroomA
|
||||
// ******************************************************************
|
||||
SOOVPA<9> CDirectSound_SetMixBinHeadroomA_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
9, // Count == 9
|
||||
|
||||
XREF_DSSETMIXBINHEADROOMA, // XRef Is Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetMixBinHeadroomA+0x19 : call [CDirectSound::SetMixBinHeadroomB]
|
||||
{ 0x19, XREF_DSSETMIXBINHEADROOMB }, // (Offset,Value)-Pair #1
|
||||
|
||||
// CDirectSound_SetMixBinHeadroomA+0x00 : push esi; push edi
|
||||
{ 0x00, 0x56 }, // (Offset,Value)-Pair #2
|
||||
{ 0x01, 0x57 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// CDirectSound_SetMixBinHeadroomA+0x07 : push [esp+0x14]
|
||||
{ 0x07, 0xFF }, // (Offset,Value)-Pair #4
|
||||
{ 0x08, 0x74 }, // (Offset,Value)-Pair #5
|
||||
{ 0x09, 0x24 }, // (Offset,Value)-Pair #6
|
||||
{ 0x0A, 0x14 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// CDirectSound_SetMixBinHeadroomA+0x21 : jz +0x0B
|
||||
{ 0x21, 0x74 }, // (Offset,Value)-Pair #8
|
||||
{ 0x22, 0x0B }, // (Offset,Value)-Pair #9
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_SetMixBinHeadroom
|
||||
// ******************************************************************
|
||||
SOOVPA<12> IDirectSound8_SetMixBinHeadroom_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
12, // Count == 12
|
||||
|
||||
-1, // XRef Not Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// IDirectSound8_SetMixBinHeadroom+0x19 : call [CDirectSound::SetMixBinHeadroomA]
|
||||
{ 0x19, XREF_DSSETMIXBINHEADROOMA }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSound8_SetMixBinHeadroom+0x04 : push [esp+0x0C]
|
||||
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x74 }, // (Offset,Value)-Pair #3
|
||||
{ 0x06, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x0C }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirectSound8_SetMixBinHeadroom+0x08 : mov ecx, eax
|
||||
{ 0x08, 0x8B }, // (Offset,Value)-Pair #6
|
||||
{ 0x09, 0xC8 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// IDirectSound8_SetMixBinHeadroom+0x0E : add eax, 0xFFFFFFF8
|
||||
{ 0x0E, 0x83 }, // (Offset,Value)-Pair #8
|
||||
{ 0x0F, 0xC0 }, // (Offset,Value)-Pair #9
|
||||
{ 0x10, 0xF8 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// IDirectSound8_SetMixBinHeadroom+0x1D : retn 0x0C
|
||||
{ 0x1D, 0xC2 }, // (Offset,Value)-Pair #11
|
||||
{ 0x1E, 0x0C }, // (Offset,Value)-Pair #12
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetPositionB
|
||||
// ******************************************************************
|
||||
SOOVPA<12> CDirectSound_SetPositionB_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
12, // Count == 12
|
||||
|
||||
XREF_DSSETPOSITIONB, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetPositionB+0x0C : movsd; movsd; movsd
|
||||
{ 0x0C, 0xA5 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0D, 0xA5 }, // (Offset,Value)-Pair #2
|
||||
{ 0x0E, 0xA5 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// CDirectSound_SetPositionB+0x0F : or byte ptr [ecx+0x01B4], 0xFF
|
||||
{ 0x0F, 0x80 }, // (Offset,Value)-Pair #4
|
||||
{ 0x10, 0x89 }, // (Offset,Value)-Pair #5
|
||||
{ 0x11, 0xB4 }, // (Offset,Value)-Pair #6
|
||||
{ 0x12, 0x01 }, // (Offset,Value)-Pair #7
|
||||
{ 0x13, 0x00 }, // (Offset,Value)-Pair #8
|
||||
{ 0x14, 0x00 }, // (Offset,Value)-Pair #9
|
||||
{ 0x15, 0xFF }, // (Offset,Value)-Pair #10
|
||||
|
||||
// CDirectSound_SetPositionB+0x28 : retn 0x08
|
||||
{ 0x28, 0xC2 }, // (Offset,Value)-Pair #11
|
||||
{ 0x29, 0x08 }, // (Offset,Value)-Pair #12
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetPositionA
|
||||
// ******************************************************************
|
||||
SOOVPA<10> CDirectSound_SetPositionA_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
10, // Count == 10
|
||||
|
||||
XREF_DSSETPOSITIONA, // XRef Is Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetPositionA+0x35 : call [CDirectSound::SetPositionB]
|
||||
{ 0x35, XREF_DSSETPOSITIONB }, // (Offset,Value)-Pair #1
|
||||
|
||||
// CDirectSound_SetPositionA+0x06 : push esi; push edi
|
||||
{ 0x06, 0x56 }, // (Offset,Value)-Pair #2
|
||||
{ 0x07, 0x57 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// CDirectSound_SetPositionA+0x24 : not eax; and eax, 1
|
||||
{ 0x24, 0xF7 }, // (Offset,Value)-Pair #4
|
||||
{ 0x25, 0xD0 }, // (Offset,Value)-Pair #5
|
||||
{ 0x26, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x27, 0xE0 }, // (Offset,Value)-Pair #7
|
||||
{ 0x28, 0x01 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// CDirectSound_SetPositionA+0x4F : retn 0x14
|
||||
{ 0x4F, 0xC2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x50, 0x14 }, // (Offset,Value)-Pair #10
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_SetPosition
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirectSound8_SetPosition_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
-1, // XRef Not Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// IDirectSound8_SetPosition+0x2D : call [CDirectSound::SetPositionA]
|
||||
{ 0x2D, XREF_DSSETPOSITIONA }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSound8_SetPosition+0x06 : fld [ebp+0x14]
|
||||
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
|
||||
{ 0x07, 0x45 }, // (Offset,Value)-Pair #3
|
||||
{ 0x08, 0x14 }, // (Offset,Value)-Pair #4
|
||||
|
||||
// IDirectSound8_SetPosition+0x0C : sub esp, 0x0C
|
||||
{ 0x0C, 0x83 }, // (Offset,Value)-Pair #5
|
||||
{ 0x0D, 0xEC }, // (Offset,Value)-Pair #6
|
||||
{ 0x0E, 0x0C }, // (Offset,Value)-Pair #7
|
||||
|
||||
// IDirectSound8_SetPosition+0x1B : neg ecx
|
||||
{ 0x1B, 0xF7 }, // (Offset,Value)-Pair #8
|
||||
{ 0x1C, 0xD9 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirectSound8_SetPosition+0x32 : retn 0x14
|
||||
{ 0x32, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x33, 0x14 }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetVelocityB
|
||||
// ******************************************************************
|
||||
SOOVPA<12> CDirectSound_SetVelocityB_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
12, // Count == 12
|
||||
|
||||
XREF_DSSETVELOCITYB, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetVelocityB+0x0C : movsd; movsd; movsd
|
||||
{ 0x0C, 0xA5 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0D, 0xA5 }, // (Offset,Value)-Pair #2
|
||||
{ 0x0E, 0xA5 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// CDirectSound_SetVelocityB+0x0F : or dword ptr [ecx+0x01B4], 0x40
|
||||
{ 0x0F, 0x83 }, // (Offset,Value)-Pair #4
|
||||
{ 0x10, 0x89 }, // (Offset,Value)-Pair #5
|
||||
{ 0x11, 0xB4 }, // (Offset,Value)-Pair #6
|
||||
{ 0x12, 0x01 }, // (Offset,Value)-Pair #7
|
||||
{ 0x13, 0x00 }, // (Offset,Value)-Pair #8
|
||||
{ 0x14, 0x00 }, // (Offset,Value)-Pair #9
|
||||
{ 0x15, 0x40 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// CDirectSound_SetVelocityB+0x28 : retn 0x08
|
||||
{ 0x28, 0xC2 }, // (Offset,Value)-Pair #11
|
||||
{ 0x29, 0x08 }, // (Offset,Value)-Pair #12
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetVelocityA
|
||||
// ******************************************************************
|
||||
SOOVPA<10> CDirectSound_SetVelocityA_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
10, // Count == 10
|
||||
|
||||
XREF_DSSETVELOCITYA, // XRef Is Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetVelocityA+0x35 : call [CDirectSound::SetVelocityB]
|
||||
{ 0x35, XREF_DSSETVELOCITYB }, // (Offset,Value)-Pair #1
|
||||
|
||||
// CDirectSound_SetVelocityA+0x06 : push esi; push edi
|
||||
{ 0x06, 0x56 }, // (Offset,Value)-Pair #2
|
||||
{ 0x07, 0x57 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// CDirectSound_SetVelocityA+0x24 : not eax; and eax, 1
|
||||
{ 0x24, 0xF7 }, // (Offset,Value)-Pair #4
|
||||
{ 0x25, 0xD0 }, // (Offset,Value)-Pair #5
|
||||
{ 0x26, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x27, 0xE0 }, // (Offset,Value)-Pair #7
|
||||
{ 0x28, 0x01 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// CDirectSound_SetVelocityA+0x4F : retn 0x14
|
||||
{ 0x4F, 0xC2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x50, 0x14 }, // (Offset,Value)-Pair #10
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_SetVelocity
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirectSound8_SetVelocity_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
-1, // XRef Not Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// IDirectSound8_SetVelocity+0x2D : call [CDirectSound::SetVelocityA]
|
||||
{ 0x2D, XREF_DSSETVELOCITYA }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSound8_SetVelocity+0x06 : fld [ebp+0x14]
|
||||
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
|
||||
{ 0x07, 0x45 }, // (Offset,Value)-Pair #3
|
||||
{ 0x08, 0x14 }, // (Offset,Value)-Pair #4
|
||||
|
||||
// IDirectSound8_SetVelocity+0x0C : sub esp, 0x0C
|
||||
{ 0x0C, 0x83 }, // (Offset,Value)-Pair #5
|
||||
{ 0x0D, 0xEC }, // (Offset,Value)-Pair #6
|
||||
{ 0x0E, 0x0C }, // (Offset,Value)-Pair #7
|
||||
|
||||
// IDirectSound8_SetVelocity+0x1B : neg ecx
|
||||
{ 0x1B, 0xF7 }, // (Offset,Value)-Pair #8
|
||||
{ 0x1C, 0xD9 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirectSound8_SetVelocity+0x32 : retn 0x14
|
||||
{ 0x32, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x33, 0x14 }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetAllParametersB
|
||||
// ******************************************************************
|
||||
SOOVPA<13> CDirectSound_SetAllParametersB_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
13, // Count == 13
|
||||
|
||||
XREF_DSSETALLPARAMETERSB, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetAllParametersB+0x08 : push 0x0C; pop ecx
|
||||
{ 0x08, 0x6A }, // (Offset,Value)-Pair #1
|
||||
{ 0x09, 0x0C }, // (Offset,Value)-Pair #2
|
||||
{ 0x0A, 0x59 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// CDirectSound_SetAllParametersB+0x13 : or word ptr [ecx+0x01B4], 0x0180
|
||||
{ 0x13, 0x66 }, // (Offset,Value)-Pair #4
|
||||
{ 0x14, 0x81 }, // (Offset,Value)-Pair #5
|
||||
{ 0x15, 0x88 }, // (Offset,Value)-Pair #6
|
||||
{ 0x16, 0xB4 }, // (Offset,Value)-Pair #7
|
||||
{ 0x17, 0x01 }, // (Offset,Value)-Pair #8
|
||||
{ 0x18, 0x00 }, // (Offset,Value)-Pair #9
|
||||
{ 0x1A, 0x80 }, // (Offset,Value)-Pair #10
|
||||
{ 0x1B, 0x01 }, // (Offset,Value)-Pair #11
|
||||
|
||||
// CDirectSound_SetAllParametersB+0x30 : retn 0x08
|
||||
{ 0x30, 0xC2 }, // (Offset,Value)-Pair #12
|
||||
{ 0x31, 0x08 }, // (Offset,Value)-Pair #13
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetAllParametersA
|
||||
// ******************************************************************
|
||||
SOOVPA<10> CDirectSound_SetAllParametersA_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
10, // Count == 10
|
||||
|
||||
XREF_DSSETALLPARAMETERSA, // XRef Is Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// CDirectSound_SetAllParametersA+0x2F : call [CDirectSound::SetAllParametersB]
|
||||
{ 0x2F, XREF_DSSETALLPARAMETERSB }, // (Offset,Value)-Pair #1
|
||||
|
||||
// CDirectSound_SetAllParametersA+0x00 : push esi; push edi
|
||||
{ 0x00, 0x56 }, // (Offset,Value)-Pair #2
|
||||
{ 0x01, 0x57 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// CDirectSound_SetAllParametersA+0x21 : not ecx; and ecx, 1
|
||||
{ 0x21, 0xF7 }, // (Offset,Value)-Pair #4
|
||||
{ 0x22, 0xD1 }, // (Offset,Value)-Pair #5
|
||||
{ 0x23, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x24, 0xE1 }, // (Offset,Value)-Pair #7
|
||||
{ 0x25, 0x01 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// CDirectSound_SetAllParametersA+0x48 : retn 0x0C
|
||||
{ 0x48, 0xC2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x49, 0x0C }, // (Offset,Value)-Pair #10
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_SetAllParameters
|
||||
// ******************************************************************
|
||||
SOOVPA<12> IDirectSound8_SetAllParameters_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
12, // Count == 12
|
||||
|
||||
-1, // XRef Not Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// IDirectSound8_SetAllParameters+0x19 : call [CDirectSound::SetAllParametersA]
|
||||
{ 0x19, XREF_DSSETALLPARAMETERSA }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSound8_SetAllParameters+0x04 : push [esp+0x0C]
|
||||
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x74 }, // (Offset,Value)-Pair #3
|
||||
{ 0x06, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x0C }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirectSound8_SetAllParameters+0x0E : add eax, 0xFFFFFFF8
|
||||
{ 0x0E, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x0F, 0xC0 }, // (Offset,Value)-Pair #7
|
||||
{ 0x10, 0xF8 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// IDirectSound8_SetAllParameters+0x13 : sbb ecx, ecx
|
||||
{ 0x13, 0x1B }, // (Offset,Value)-Pair #9
|
||||
{ 0x14, 0xC9 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// IDirectSound8_SetAllParameters+0x1D : retn 0x0C
|
||||
{ 0x1D, 0xC2 }, // (Offset,Value)-Pair #11
|
||||
{ 0x1E, 0x0C }, // (Offset,Value)-Pair #12
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_DownloadEffectsImage
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirectSound8_DownloadEffectsImage_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
-1, // XRef Not Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirectSound8_DownloadEffectsImage+0x03 : push [ebp+0x18]
|
||||
{ 0x03, 0xFF }, // (Offset,Value)-Pair #1
|
||||
{ 0x04, 0x75 }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x18 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// IDirectSound8_DownloadEffectsImage+0x06 : mov eax, [ebp+0x08]
|
||||
{ 0x06, 0x8B }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x45 }, // (Offset,Value)-Pair #5
|
||||
{ 0x08, 0x08 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// IDirectSound8_DownloadEffectsImage+0x11 : add eax, 0xFFFFFFF8
|
||||
{ 0x11, 0x83 }, // (Offset,Value)-Pair #7
|
||||
{ 0x12, 0xC0 }, // (Offset,Value)-Pair #8
|
||||
{ 0x13, 0xF8 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirectSound8_DownloadEffectsImage+0x24 : retn 0x14
|
||||
{ 0x24, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x25, 0x14 }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSoundCreate_1_0_3936
|
||||
// ******************************************************************
|
||||
|
@ -182,6 +754,16 @@ OOVPATable DSound_1_0_3936[] =
|
|||
"EmuDirectSoundCreate"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::SetOrientation
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_SetOrientation_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSound8_SetOrientation,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirectSound8_SetOrientation"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetDistanceFactorB (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetDistanceFactorB_1_0_3936, 0,
|
||||
|
@ -208,6 +790,146 @@ OOVPATable DSound_1_0_3936[] =
|
|||
"EmuIDirectSound8_SetDistanceFactor"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetRolloffFactorB (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetRolloffFactorB_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetRolloffFactorB (XRef)"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetRolloffFactorA (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetRolloffFactorA_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetRolloffFactorA (XRef)"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::SetRolloffFactor
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_SetRolloffFactor_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSound8_SetRolloffFactor,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirectSound8_SetRolloffFactor"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetMixBinHeadroomB (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetMixBinHeadroomB_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetMixBinHeadroomB (XRef)"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetMixBinHeadroomA (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetMixBinHeadroomA_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetMixBinHeadroomA (XRef)"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::SetMixBinHeadroom
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_SetMixBinHeadroom_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSound8_SetMixBinHeadroom,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirectSound8_SetMixBinHeadroom"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetPositionB (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetPositionB_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetPositionB (XRef)"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetPositionA (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetPositionA_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetPositionA (XRef)"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::SetPosition
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_SetPosition_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSound8_SetPosition,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirectSound8_SetPosition"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetVelocityB (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetVelocityB_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetVelocityB (XRef)"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetVelocityA (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetVelocityA_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetVelocityA (XRef)"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::SetVelocity
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_SetVelocity_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSound8_SetVelocity,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirectSound8_SetVelocity"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetVelocityB (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetAllParametersB_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetAllParametersB (XRef)"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound::SetAllParametersA (XREF)
|
||||
{
|
||||
(OOVPA*)&CDirectSound_SetAllParametersA_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound_SetAllParametersA (XRef)"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::SetAllParameters
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_SetAllParameters_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSound8_SetAllParameters,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirectSound8_SetAllParameters"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::DownloadEffectsImage
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSound8_DownloadEffectsImage,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirectSound8_DownloadEffectsImage"
|
||||
#endif
|
||||
},
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -110,7 +110,7 @@ SOOVPA<15> CDirectSound_SetMixBinHeadroom_1_0_4627 =
|
|||
0, // Large == 0
|
||||
15, // Count == 15
|
||||
|
||||
XREF_DSSETMIXBINHEADROOM, // XRef Is Saved
|
||||
XREF_DSSETMIXBINHEADROOMA, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
|
@ -224,7 +224,7 @@ SOOVPA<12> IDirectSound8_SetMixBinHeadroom_1_0_4627 =
|
|||
|
||||
{
|
||||
// IDirectSound8_SetMixBinHeadroom+0x19 : call [CDirectSound::SetMixBinHeadroom]
|
||||
{ 0x19, XREF_DSSETMIXBINHEADROOM }, // (Offset,Value)-Pair #1
|
||||
{ 0x19, XREF_DSSETMIXBINHEADROOMA }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSound8_SetMixBinHeadroom+0x04 : push [esp+0x0C]
|
||||
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
|
||||
|
@ -383,76 +383,6 @@ SOOVPA<10> IDirectSound8_Release_1_0_4627 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_DownloadEffectsImage
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirectSound8_DownloadEffectsImage_1_0_4627 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
-1, // XRef Not Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirectSound8_DownloadEffectsImage+0x03 : push [ebp+0x18]
|
||||
{ 0x03, 0xFF }, // (Offset,Value)-Pair #1
|
||||
{ 0x04, 0x75 }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x18 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// IDirectSound8_DownloadEffectsImage+0x06 : mov eax, [ebp+0x08]
|
||||
{ 0x06, 0x8B }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x45 }, // (Offset,Value)-Pair #5
|
||||
{ 0x08, 0x08 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// IDirectSound8_DownloadEffectsImage+0x11 : add eax, 0xFFFFFFF8
|
||||
{ 0x11, 0x83 }, // (Offset,Value)-Pair #7
|
||||
{ 0x12, 0xC0 }, // (Offset,Value)-Pair #8
|
||||
{ 0x13, 0xF8 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirectSound8_DownloadEffectsImage+0x24 : retn 0x14
|
||||
{ 0x24, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x25, 0x14 }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_SetOrientation
|
||||
// ******************************************************************
|
||||
SOOVPA<13> IDirectSound8_SetOrientation_1_0_4627 =
|
||||
{
|
||||
0, // Large == 0
|
||||
13, // Count == 13
|
||||
|
||||
-1, // XRef Not Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirectSound8_SetOrientation+0x06 : fld [ebp+0x20]
|
||||
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #1
|
||||
{ 0x07, 0x45 }, // (Offset,Value)-Pair #2
|
||||
{ 0x08, 0x20 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// IDirectSound8_SetOrientation+0x0C : sub esp, 0x18
|
||||
{ 0x0C, 0x83 }, // (Offset,Value)-Pair #4
|
||||
{ 0x0D, 0xEC }, // (Offset,Value)-Pair #5
|
||||
{ 0x0E, 0x18 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// IDirectSound8_SetOrientation+0x18 : add eax, 0xFFFFFFF8
|
||||
{ 0x18, 0x83 }, // (Offset,Value)-Pair #7
|
||||
{ 0x19, 0xC0 }, // (Offset,Value)-Pair #8
|
||||
{ 0x1A, 0xF8 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirectSound8_SetOrientation+0x1F : neg ecx
|
||||
{ 0x1F, 0xF7 }, // (Offset,Value)-Pair #10
|
||||
{ 0x20, 0xD9 }, // (Offset,Value)-Pair #11
|
||||
|
||||
// IDirectSound8_SetOrientation+0x47 : retn 0x20
|
||||
{ 0x47, 0xC2 }, // (Offset,Value)-Pair #12
|
||||
{ 0x48, 0x20 }, // (Offset,Value)-Pair #13
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::SetDistanceFactorA
|
||||
// ******************************************************************
|
||||
|
@ -527,7 +457,7 @@ SOOVPA<11> CDirectSound_SetRolloffFactor_1_0_4627 =
|
|||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
XREF_SETROLLOFFFACTOR, // XRef Is Saved
|
||||
XREF_SETROLLOFFFACTORA, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
|
@ -563,7 +493,7 @@ SOOVPA<11> IDirectSound8_SetRolloffFactor_1_0_4627 =
|
|||
|
||||
{
|
||||
// IDirectSound8_SetRolloffFactor+0x1D : call [CDirectSound::SetRolloffFactor]
|
||||
{ 0x1D, XREF_SETROLLOFFFACTOR }, // (Offset,Value)-Pair #1
|
||||
{ 0x1D, XREF_SETROLLOFFFACTORA }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSound8_SetRolloffFactor+0x04 : fld [esp+0x0C]
|
||||
{ 0x04, 0xD9 }, // (Offset,Value)-Pair #2
|
||||
|
@ -840,9 +770,9 @@ OOVPATable DSound_1_0_4627[] =
|
|||
"EmuIDirectSound8_Release"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::DownloadEffectsImage
|
||||
// IDirectSound8::DownloadEffectsImage (* unchanged since 3936 *)
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_4627,
|
||||
(OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSound8_DownloadEffectsImage,
|
||||
|
||||
|
@ -850,9 +780,9 @@ OOVPATable DSound_1_0_4627[] =
|
|||
"EmuIDirectSound8_DownloadEffectsImage"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::SetOrientation
|
||||
// IDirectSound8::SetOrientation (* unchanged since 3936 *)
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_SetOrientation_1_0_4627,
|
||||
(OOVPA*)&IDirectSound8_SetOrientation_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSound8_SetOrientation,
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ static Xbe::Header *g_XbeHeader = NULL; // XbeHeader
|
|||
static uint32 g_XbeHeaderSize = 0; // XbeHeaderSize
|
||||
static XTL::D3DCAPS8 g_D3DCaps; // Direct3D8 Caps
|
||||
static HBRUSH g_hBgBrush = NULL; // Background Brush
|
||||
static volatile bool g_bThreadInitialized = false;
|
||||
static volatile bool g_bRenderWindowActive = false;
|
||||
static XBVideo g_XBVideo;
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -127,8 +127,6 @@ VOID XTL::EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
|
|||
g_XbeHeader = XbeHeader;
|
||||
g_XbeHeaderSize = XbeHeaderSize;
|
||||
|
||||
g_bThreadInitialized = false;
|
||||
|
||||
// ******************************************************************
|
||||
// * create a thread dedicated to timing
|
||||
// ******************************************************************
|
||||
|
@ -144,9 +142,11 @@ VOID XTL::EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
|
|||
{
|
||||
DWORD dwThreadId;
|
||||
|
||||
g_bRenderWindowActive = false;
|
||||
|
||||
CreateThread(NULL, NULL, EmuRenderWindow, NULL, NULL, &dwThreadId);
|
||||
|
||||
while(!g_bThreadInitialized)
|
||||
while(!g_bRenderWindowActive)
|
||||
Sleep(10);
|
||||
|
||||
Sleep(50);
|
||||
|
@ -320,6 +320,8 @@ static DWORD WINAPI EmuRenderWindow(LPVOID)
|
|||
if(!XTL::EmuDInputInit())
|
||||
EmuCleanup("Could not initialize DirectInput!");
|
||||
|
||||
printf("EmuD3D8 (0x%X): Message-Pump thread is running.\n", GetCurrentThreadId());
|
||||
|
||||
// ******************************************************************
|
||||
// * message processing loop
|
||||
// ******************************************************************
|
||||
|
@ -332,7 +334,7 @@ static DWORD WINAPI EmuRenderWindow(LPVOID)
|
|||
{
|
||||
if(PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
|
||||
{
|
||||
g_bThreadInitialized = true;
|
||||
g_bRenderWindowActive = true;
|
||||
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
|
@ -341,6 +343,8 @@ static DWORD WINAPI EmuRenderWindow(LPVOID)
|
|||
Sleep(10);
|
||||
}
|
||||
|
||||
g_bRenderWindowActive = false;
|
||||
|
||||
EmuCleanup(NULL);
|
||||
}
|
||||
|
||||
|
@ -399,6 +403,8 @@ static LRESULT WINAPI EmuMsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPar
|
|||
// ******************************************************************
|
||||
static DWORD WINAPI EmuUpdateTickCount(LPVOID)
|
||||
{
|
||||
printf("EmuD3D8 (0x%X): Timing thread is running.\n", GetCurrentThreadId());
|
||||
|
||||
timeBeginPeriod(0);
|
||||
|
||||
while(true)
|
||||
|
@ -603,18 +609,6 @@ HRESULT WINAPI XTL::EmuIDirect3D8_CreateDevice
|
|||
}
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * check for YUY2 overlay support
|
||||
// ******************************************************************
|
||||
{
|
||||
HRESULT hRet = g_pD3D8->CheckDeviceFormat(Adapter, DeviceType, (XTL::D3DFORMAT)pPresentationParameters->BackBufferFormat, 0, D3DRTYPE_TEXTURE, D3DFMT_YUY2);
|
||||
|
||||
g_bSupportsYUY2 = SUCCEEDED(hRet);
|
||||
|
||||
if(!g_bSupportsYUY2)
|
||||
EmuWarning("YUY2 overlays are not supported in hardware, could be slow!");
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * Detect vertex processing capabilities
|
||||
// ******************************************************************
|
||||
|
@ -656,6 +650,28 @@ HRESULT WINAPI XTL::EmuIDirect3D8_CreateDevice
|
|||
// ******************************************************************
|
||||
g_pD3DDevice8 = *ppReturnedDeviceInterface;
|
||||
|
||||
// ******************************************************************
|
||||
// * check for YUY2 overlay support
|
||||
// ******************************************************************
|
||||
{
|
||||
D3DDISPLAYMODE DisplayMode;
|
||||
|
||||
if(g_pD3DDevice8->GetDisplayMode(&DisplayMode) != D3D_OK)
|
||||
g_bSupportsYUY2 = FALSE;
|
||||
else
|
||||
{
|
||||
HRESULT hRet = g_pD3D8->CheckDeviceFormat(Adapter, DeviceType, (XTL::D3DFORMAT)DisplayMode.Format, 0, D3DRTYPE_TEXTURE, D3DFMT_YUY2);
|
||||
|
||||
g_bSupportsYUY2 = SUCCEEDED(hRet);
|
||||
|
||||
if(!g_bSupportsYUY2)
|
||||
EmuCleanup("Nigga 0x%.08X", pPresentationParameters->BackBufferFormat);
|
||||
|
||||
if(!g_bSupportsYUY2)
|
||||
EmuWarning("YUY2 overlays are not supported in hardware, could be slow!");
|
||||
}
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * Update Caches
|
||||
// ******************************************************************
|
||||
|
|
|
@ -725,6 +725,110 @@ HRESULT WINAPI XTL::EmuIDirectSound8_SetMixBinHeadroom
|
|||
return DS_OK;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSound8_SetPosition
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI XTL::EmuIDirectSound8_SetPosition
|
||||
(
|
||||
LPDIRECTSOUND8 pThis,
|
||||
FLOAT x,
|
||||
FLOAT y,
|
||||
FLOAT z,
|
||||
DWORD dwApply
|
||||
)
|
||||
{
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
printf("EmuDSound (0x%X): EmuIDirectSound8_SetPosition\n"
|
||||
"(\n"
|
||||
" pThis : 0x%.08X\n"
|
||||
" x : 0x%.08X\n"
|
||||
" y : 0x%.08X\n"
|
||||
" z : 0x%.08X\n"
|
||||
" dwApply : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), pThis, x, y, z, dwApply);
|
||||
EmuSwapFS(); // XBox FS
|
||||
}
|
||||
#endif
|
||||
|
||||
// TODO: Actually do something
|
||||
|
||||
return DS_OK;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSound8_SetPosition
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI XTL::EmuIDirectSound8_SetVelocity
|
||||
(
|
||||
LPDIRECTSOUND8 pThis,
|
||||
FLOAT x,
|
||||
FLOAT y,
|
||||
FLOAT z,
|
||||
DWORD dwApply
|
||||
)
|
||||
{
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
printf("EmuDSound (0x%X): EmuIDirectSound8_SetVelocity\n"
|
||||
"(\n"
|
||||
" pThis : 0x%.08X\n"
|
||||
" x : 0x%.08X\n"
|
||||
" y : 0x%.08X\n"
|
||||
" z : 0x%.08X\n"
|
||||
" dwApply : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), pThis, x, y, z, dwApply);
|
||||
EmuSwapFS(); // XBox FS
|
||||
}
|
||||
#endif
|
||||
|
||||
// TODO: Actually do something
|
||||
|
||||
return DS_OK;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSound8_SetAllParameters
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI XTL::EmuIDirectSound8_SetAllParameters
|
||||
(
|
||||
LPDIRECTSOUND8 pThis,
|
||||
LPVOID pTodo, // TODO: LPCDS3DLISTENER
|
||||
DWORD dwApply
|
||||
)
|
||||
{
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
printf("EmuDSound (0x%X): EmuIDirectSound8_SetAllParameters\n"
|
||||
"(\n"
|
||||
" pThis : 0x%.08X\n"
|
||||
" pTodo : 0x%.08X\n"
|
||||
" dwApply : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), pThis, pTodo, dwApply);
|
||||
EmuSwapFS(); // XBox FS
|
||||
}
|
||||
#endif
|
||||
|
||||
// TODO: Actually do something
|
||||
|
||||
return DS_OK;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSoundBuffer8_SetBufferData
|
||||
// ******************************************************************
|
||||
|
|
|
@ -199,8 +199,10 @@ extern uint32 XRefDataBase[] =
|
|||
-1, // XREF_FCLOSEDEVICE
|
||||
-1, // XREF_CLEARSTATEBLOCKFLAGS
|
||||
-1, // XREF_RECORDSTATEBLOCK
|
||||
-1, // XREF_SETDISTANCEFACTOR
|
||||
-1, // XREF_SETROLLOFFFACTOR
|
||||
-1, // XREF_SETDISTANCEFACTORA
|
||||
-1, // XREF_SETDISTANCEFACTORB
|
||||
-1, // XREF_SETROLLOFFFACTORA
|
||||
-1, // XREF_SETROLLOFFFACTORB
|
||||
-1, // XREF_SETDOPPLERFACTOR
|
||||
-1, // XREF_SETBUFFERDATA
|
||||
-1, // XREF_SETCURRENTPOSITION
|
||||
|
@ -218,7 +220,14 @@ extern uint32 XRefDataBase[] =
|
|||
-1, // XREF_DSSTREAMPAUSE
|
||||
-1, // XREF_DSSTREAMSETVOLUME
|
||||
-1, // XREF_DSSETI3DL2LISTENER
|
||||
-1, // XREF_DSSETMIXBINHEADROOM
|
||||
-1, // XREF_DSSETMIXBINHEADROOMA
|
||||
-1, // XREF_DSSETMIXBINHEADROOMB
|
||||
-1, // XREF_DSSETPOSITIONA
|
||||
-1, // XREF_DSSETPOSITIONB
|
||||
-1, // XREF_DSSETVELOCITYA
|
||||
-1, // XREF_DSSETVELOCITYB
|
||||
-1, // XREF_DSSETALLPARAMETERSA
|
||||
-1, // XREF_DSSETALLPARAMETERSB
|
||||
-1, // XREF_GET2DSURFACEDESCB
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue