Merge pull request #164 from LukeUsher/various-fixes

Various fixes
This commit is contained in:
Luke Usher 2017-02-13 19:43:06 +00:00 committed by GitHub
commit d8beebe594
5 changed files with 118 additions and 14 deletions

View File

@ -111,8 +111,13 @@ void RemoveEntryList(xboxkrnl::PLIST_ENTRY pEntry)
xboxkrnl::PLIST_ENTRY _EX_Flink = pEntry->Flink;
xboxkrnl::PLIST_ENTRY _EX_Blink = pEntry->Blink;
_EX_Blink->Flink = _EX_Flink;
_EX_Flink->Blink = _EX_Blink;
if (_EX_Flink != nullptr) {
_EX_Blink->Flink = _EX_Flink;
}
if (_EX_Flink != nullptr) {
_EX_Flink->Blink = _EX_Blink;
}
}
xboxkrnl::PLIST_ENTRY RemoveHeadList(xboxkrnl::PLIST_ENTRY pListHead)

View File

@ -1798,6 +1798,7 @@ OOVPATable D3D8_4361[] = {
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderProgram, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH),

View File

@ -391,6 +391,33 @@ OOVPA_NO_XREF(D3DDevice_SetRenderTarget, 5849, 8)
{ 0xFE, 0x8B },
OOVPA_END;
// ******************************************************************
// * D3D::SetFence
// * SOURCE: Spiderman 2
// ******************************************************************
OOVPA_XREF(D3D_SetFence, 5849, 7, XREF_D3D_SETFENCE, XRefZero)
{ 0x0E, 0x05 },
{ 0x17, 0xC7 },
{ 0x3E, 0x40 },
{ 0x5E, 0x00 },
{ 0x87, 0x4E },
{ 0x98, 0x83 },
{ 0xA8, 0x75 },
OOVPA_END;
// ******************************************************************
// * D3D::BlockOnTime
// * Source: Spiderman 2
// ******************************************************************
OOVPA_XREF(D3D_BlockOnTime, 5849, 6, XREF_D3D_BLOCKONTIME, XRefZero)
{ 0x09, 0x30 },
{ 0x27, 0x07 },
{ 0x7E, 0x2B },
{ 0xA5, 0x20 },
{ 0xD9, 0x56 },
{ 0xF8, 0x47 },
OOVPA_END;
// ******************************************************************
// * D3D_AllocContiguousMemory
// ******************************************************************
@ -591,6 +618,25 @@ OOVPA_NO_XREF(D3DDevice_BlockUntilVerticalBlank, 5849, 7)
{ 0x23, 0xC3 },
OOVPA_END;
// ******************************************************************
// * D3DDevice_SetScreenSpaceOffset
// ******************************************************************
OOVPA_NO_XREF(D3DDevice_SetScreenSpaceOffset, 5849, 8)
// D3DDevice_SetScreenSpaceOffset+0x13 : fstp [esi+0x0EF8]
{ 0x13, 0xD9 }, // (Offset,Value)-Pair #1
{ 0x14, 0x9E }, // (Offset,Value)-Pair #2
{ 0x15, 0xF8 }, // (Offset,Value)-Pair #3
{ 0x16, 0x0E }, // (Offset,Value)-Pair #4
// D3DDevice_SetScreenSpaceOffset+0x33 : jb +0x05
{ 0x33, 0x72 }, // (Offset,Value)-Pair #5
{ 0x34, 0x05 }, // (Offset,Value)-Pair #6
// D3DDevice_SetScreenSpaceOffset+0x46 : retn 0x08
{ 0x46, 0xC2 }, // (Offset,Value)-Pair #7
{ 0x47, 0x08 }, // (Offset,Value)-Pair #8
OOVPA_END;
// ******************************************************************
// * D3DDevice_SetBackMaterial
// ******************************************************************
@ -1346,6 +1392,11 @@ OOVPATable D3D8_5849[] = {
REGISTER_OOVPA(D3DVertexBuffer_Lock2, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 5849, PATCH),
REGISTER_OOVPA(D3D_SetFence, 5849, XREF),
REGISTER_OOVPA(D3DDevice_InsertFence, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_IsFencePending, 5233, PATCH),
REGISTER_OOVPA(D3D_BlockOnTime, 5849, XREF),
REGISTER_OOVPA(D3DDevice_BlockOnFence, 5233, PATCH),
REGISTER_OOVPA(D3D_AllocContiguousMemory, 5849, DISABLED), // Just calls MmAllocateContiguousMemory. Was PATCH
REGISTER_OOVPA(Get2DSurfaceDesc, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture2, 5849, PATCH),
@ -1357,6 +1408,7 @@ OOVPATable D3D8_5849[] = {
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetBackMaterial, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 5849, PATCH),

View File

@ -758,21 +758,34 @@ OOVPA_END;
// ******************************************************************
// * DirectSound::CDirectSound::SetRolloffFactor
// Xbe Explorer generated pattern, derived from address $00439F47 in "SpiderMan 2" :
// 56E8........833DD4........0FB6F0741685F6740B68E03B4400FF15...... 00 0000 005F ? SetRolloffFactor@CDirectSound@DirectSound@@QAGJMK@Z ^ 0002R ? DirectSoundEnterCriticalSection@@YGHXZ ^0009D _g_fDirectSoundInFinalRelease ^ 001DD __imp__RtlLeaveCriticalSection@4 ^ 0046R ? CommitDeferredSettings@CDirectSound@DirectSound@@QAGJXZ ^ 0055D __imp__RtlLeaveCriticalSection@4
// ******************************************************************
OOVPA_XREF(DirectSound_CDirectSound_SetRolloffFactor, 5849, 9,
OOVPA_XREF(DirectSound_CDirectSound_SetRolloffFactor, 5849, 22,
XREF_SETROLLOFFFACTORA,
XRefZero)
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
{ 0x22, 0x05 },
{ 0x2E, 0x08 },
{ 0x35, 0x6C },
{ 0x3A, 0x48 },
{ 0x4A, 0x85 },
{ 0x53, 0xFF },
{ 0x5E, 0x00 },
{ 0x00, 0x56 },
{ 0x01, 0xE8 },
{ 0x06, 0x83 },
{ 0x07, 0x3D },
{ 0x08, 0xD4 },
{ 0x0D, 0x0F },
{ 0x0E, 0xB6 },
{ 0x0F, 0xF0 },
{ 0x10, 0x74 },
{ 0x11, 0x16 },
{ 0x12, 0x85 },
{ 0x13, 0xF6 },
{ 0x14, 0x74 },
{ 0x15, 0x0B },
{ 0x16, 0x68 },
{ 0x17, 0xE0 },
{ 0x18, 0x3B },
{ 0x19, 0x44 },
{ 0x1A, 0x00 },
{ 0x1B, 0xFF },
{ 0x1C, 0x15 },
{ 0x5C, 0xC2 },
OOVPA_END;
// ******************************************************************
@ -1754,6 +1767,7 @@ OOVPATable DSound_5849[] = {
REGISTER_OOVPA(IDirectSoundBuffer8_StopEx, 5849, ALIAS, DirectSound_CDirectSoundBuffer_StopEx),
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 5849, XREF),
REGISTER_OOVPA(IDirectSound8_SetRolloffFactor, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 5344, XREF),
REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 5849, XREF),
REGISTER_OOVPA(IDirectSound8_SetDopplerFactor, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 5849, XREF),

View File

@ -101,6 +101,36 @@ OOVPA_NO_XREF(XGetSectionSize, 5849, 5)
{ 0x08, 0x04 },
OOVPA_END;
//Xbe Explorer generated pattern, derived from address $0027927D in "EA SPORTS™ RUGBY 2005" :
//558BEC83EC14536880153200FF15........8B0D........33DB3BCB7548538D 1F 4046 0124 _timeSetEvent@20 ^ 000ED __imp__RtlEnterCriticalSection@4 ^ 0014D _XapiMmTimerThreadState ^ 003FR _CreateThread@24 ^ 0047D _timeSetEvent@20+0112 ^ 004DR _CloseHandle@4 ^ 005CD __imp__KeWaitForSingleObject@20 ^ 0062D _XapiMmTimerThreadState ^0082D _timeSetEvent@20+010F ^0090D _XapiMmTimerSerialNumber ^0097D _XapiMmTimerSerialNumber ^ 00C0R __allmul ^ 00CCD __imp__KeQueryInterruptTime@0 ^00E7D __imp__KeSetTimerEx@20 ^ 00ECD _XapiMmTimerThreadState ^ 00FBD __imp__KeSetEvent@12 ^0119D __imp__RtlLeaveCriticalSection@4
OOVPA_NO_XREF(timeSetEvent, 5849, 9)
{0x00, 0x55},
{0x01, 0x8B},
{0x02, 0xEC},
{0x04, 0xEC},
{0x08, 0x80},
{0x0D, 0x15},
{0x12, 0x8B},
{0x13, 0x0D},
{0x18, 0x33}
OOVPA_END;
//; Xbe Explorer generated pattern, derived from address $002793A1 in "EA SPORTS™ RUGBY 2005" :
//5657BF8015320057FF15........8B54240C8B0D........0FB7C24885C9743E 1D AD12 006F _timeKillEvent@4 ^ 000AD __imp__RtlEnterCriticalSection@4 ^ 0014D _XapiMmTimerThreadState ^ 003DD __imp__KeCancelTimer@4 ^ 0046D _XapiMmTimerThreadState ^ 0056D __imp__KeSetEvent@12 ^ 0064D __imp__RtlLeaveCriticalSection@4
OOVPA_NO_XREF(timeKillEvent, 5849, 10)
{ 0x00, 0x56 },
{ 0x01, 0x57 },
{ 0x02, 0xBF },
{ 0x09, 0x15 },
{ 0x0E, 0x8B },
{ 0x0F, 0x54 },
{ 0x10, 0x24 },
{ 0x13, 0x0D },
{ 0x18, 0x0F },
{ 0x1F, 0x3E }
OOVPA_END;
// ******************************************************************
// * RaiseException
// ******************************************************************
@ -160,6 +190,8 @@ OOVPATable XAPI_5849[] = {
REGISTER_OOVPA(GetThreadPriority, 5849, PATCH),
REGISTER_OOVPA(SetThreadPriorityBoost, 5849, PATCH),
// REGISTER_OOVPA(GetThreadPriorityBoost, 5849, PATCH),
REGISTER_OOVPA(timeSetEvent, 5849, PATCH),
REGISTER_OOVPA(timeKillEvent, 5849, PATCH),
REGISTER_OOVPA(RaiseException, 5849, PATCH),
REGISTER_OOVPA(XLaunchNewImage, 5558, ALIAS, XLaunchNewImageA),
REGISTER_OOVPA(XInputSetState, 5233, PATCH),