YUY2 detection

This commit is contained in:
Aaron Robinson 2003-08-22 00:29:38 +00:00
parent de7b38d540
commit 93b0ea7650
8 changed files with 949 additions and 124 deletions

View File

@ -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.

View File

@ -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
// ******************************************************************

View File

@ -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

View File

@ -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
},
};
// ******************************************************************

View File

@ -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,

View File

@ -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
// ******************************************************************

View File

@ -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
// ******************************************************************

View File

@ -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
};