Merge pull request #782 from jarupxx/OOVPA_lowered

Finalize 90% Complete XAPI, XNET, XONLINE Database
This commit is contained in:
PatrickvL 2017-10-31 00:30:38 +01:00 committed by GitHub
commit 262810b8c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 310 additions and 33 deletions

View File

@ -48,7 +48,7 @@ OOVPA_END;
// ******************************************************************
// * CMiniport_IsFlipPending
// ******************************************************************
OOVPA_NO_XREF(CMiniport_IsFlipPending, 4928, 18)
OOVPA_NO_XREF(CMiniport_IsFlipPending, 4928, 17)
{ 0x00, 0x8B },
{ 0x01, 0x81 },

View File

@ -207,7 +207,10 @@ OOVPA_END;
// ******************************************************************
// * CXnSock::listen
// ******************************************************************
OOVPA_NO_XREF(listen, 3911, 9)
OOVPA_NO_XREF(listen, 3911, 10)
// listen+0x00 : push edi
{ 0x00, 0x57 },
// listen+0x10 : push 0x276D
{ 0x10, 0x68 },
@ -230,7 +233,10 @@ OOVPA_END;
// ******************************************************************
// * CXnSock::ioctlsocket
// ******************************************************************
OOVPA_NO_XREF(ioctlsocket, 3911, 10)
OOVPA_NO_XREF(ioctlsocket, 3911, 11)
// ioctlsocket+0x00 : push ebp
{ 0x00, 0x55 },
// ioctlsocket+0x12 : push 0x276D
{ 0x12, 0x68 },

View File

@ -332,8 +332,9 @@ OOVPA_END;
// * CXnSock::ioctlsocket
// ******************************************************************
//Generic OOVPA as of 4627 and newer.
OOVPA_NO_XREF(ioctlsocket, 4627, 12)
OOVPA_NO_XREF(ioctlsocket, 4627, 13)
{ 0x00, 0x55 },
{ 0x0C, 0x99 },
{ 0x1D, 0x83 },
@ -402,8 +403,9 @@ OOVPA_END;
// * CXnSock::listen
// ******************************************************************
//Generic OOVPA as of 4627 and newer.
OOVPA_NO_XREF(listen, 4627, 12)
OOVPA_NO_XREF(listen, 4627, 13)
{ 0x00, 0x57 },
{ 0x09, 0xBF },
{ 0x1B, 0x83 },

View File

@ -48,7 +48,7 @@ OOVPA_NO_XREF(XNetStartup, 5233, 8)
{ 0x16, 0x00 },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 4831 version
// ******************************************************************
// * CXo::XOnlineLogon
// ******************************************************************
@ -66,7 +66,7 @@ OOVPA_XREF(CXo_XOnlineLogon, 5233, 8,
{ 0xDE, 0xF9 },
{ 0xFE, 0x33 },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 4361 version
// ******************************************************************
// * XOnlineLogon

View File

@ -75,7 +75,7 @@
OOVPATable XONLINES_OOVPAV2[] = {
// XOnline section
REGISTER_OOVPAS(CXo_XOnlineLogon, XREF, 4361, 4627, 4831/*, 5028*/, 5233, 5455, 5558, 5849),
REGISTER_OOVPAS(CXo_XOnlineLogon, XREF, 4361, 4627, 4831/*, 5028, 5233*/, 5455, 5558, 5849),
REGISTER_OOVPAS(XOnlineLogon, PATCH, 4361),
REGISTER_OOVPAS(XoUpdateLaunchNewImageInternal, XREF, 4627, 5659, 5788),

View File

@ -436,6 +436,35 @@ OOVPA_NO_XREF(XInputOpen, 3911, 11)
{ 0x69, 0x57 },
OOVPA_END;
// ******************************************************************
// * XID_fCloseDevice
// ******************************************************************
OOVPA_XREF(XID_fCloseDevice, 3911, 16,
XREF_XID_fCloseDevice,
XRefZero)
{ 0x00, 0x55 },
{ 0x01, 0x8B },
{ 0x02, 0xEC },
{ 0x03, 0x83 },
{ 0x04, 0xEC },
{ 0x05, 0x14 },
{ 0x06, 0x53 },
{ 0x07, 0x56 },
{ 0x08, 0x8B },
{ 0x09, 0xF1 },
{ 0x0A, 0xFF },
{ 0x0B, 0x15 },
{ 0x3E, 0x8D },
{ 0x3F, 0x45 },
{ 0x44, 0x8D },
{ 0x45, 0x45 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XID_fCloseDevice
// ******************************************************************
@ -462,6 +491,7 @@ OOVPA_XREF(XID_fCloseDevice, 3911, 10,
{ 0xA3, 0xC9 },
{ 0xA4, 0xC3 },
OOVPA_END;
#endif
// ******************************************************************
// * XInputClose
@ -472,7 +502,7 @@ OOVPA_XREF(XInputClose, 3911, 1+7,
XRefOne)
// XInputClose+0x05 : call [fCloseDevice]
XREF_ENTRY( 0x05, XREF_XID_fCloseDevice ),
XREF_ENTRY( 0x05, XREF_XID_fCloseDevice ),
// XInputClose+0x00 : mov ecx, [esp+0x04]
{ 0x00, 0x8B },
@ -488,6 +518,28 @@ OOVPA_XREF(XInputClose, 3911, 1+7,
{ 0x0A, 0x04 },
OOVPA_END;
// ******************************************************************
// * XInputGetCapabilities
// ******************************************************************
OOVPA_NO_XREF(XInputGetCapabilities, 3911, 13)
{ 0x00, 0x55 },
{ 0x0F, 0x15 },
{ 0x1E, 0x0F },
{ 0x1F, 0x84 },
{ 0x36, 0x8B },
{ 0x37, 0xFA },
{ 0x38, 0xF3 },
{ 0x39, 0xAB },
{ 0x3A, 0xAA },
{ 0x3B, 0x8A },
{ 0x3C, 0x46 },
{ 0x3D, 0x0B },
{ 0x3E, 0x88 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XInputGetCapabilities
// ******************************************************************
@ -517,6 +569,7 @@ OOVPA_NO_XREF(XInputGetCapabilities, 3911, 14)
{ 0xFB, 0x39 },
{ 0xFC, 0x18 },
OOVPA_END;
#endif
// ******************************************************************
// * XInputGetState
@ -1115,6 +1168,41 @@ OOVPA_NO_XREF(XMountMURootA, 3911, 7) // generic version
{ 0xDE, 0xFF },
OOVPA_END;
// ******************************************************************
// * XMountUtilityDrive
// ******************************************************************
OOVPA_NO_XREF(XMountUtilityDrive, 3911, 26)
{ 0x00, 0x55 },
{ 0x01, 0x8B },
{ 0x02, 0xEC },
{ 0x03, 0x81 },
{ 0x04, 0xEC },
{ 0x05, 0x14 },
{ 0x06, 0x01 },
{ 0x07, 0x00 },
{ 0x08, 0x00 },
{ 0x09, 0x53 },
{ 0x0A, 0x56 },
{ 0x0B, 0x57 },
{ 0x0C, 0x8D },
{ 0x0D, 0x45 },
{ 0x0E, 0xF4 },
{ 0x0F, 0x50 },
{ 0x10, 0x8D },
{ 0x11, 0x45 },
{ 0x12, 0xFC },
{ 0x13, 0x50 },
{ 0x14, 0xFF },
{ 0x15, 0x75 },
{ 0x16, 0x08 },
{ 0x17, 0xE8 },
{ 0x56, 0x83 },
{ 0x57, 0xC4 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XMountUtilityDrive
// ******************************************************************
@ -1128,6 +1216,7 @@ OOVPA_NO_XREF(XMountUtilityDrive, 3911, 7)
{ 0xB3, 0x8B },
{ 0xD0, 0xC0 },
OOVPA_END;
#endif
// ******************************************************************
// * ReadFileEx@20
@ -1205,7 +1294,29 @@ OOVPA_END;
// ******************************************************************
// * timeSetEvent
// ******************************************************************
OOVPA_NO_XREF(timeSetEvent, 3911, 7) // generic version
OOVPA_NO_XREF(timeSetEvent, 3911, 12)
{ 0x00, 0x55 },
{ 0x01, 0x8B },
{ 0x02, 0xEC },
{ 0x03, 0x83 },
{ 0x04, 0xEC },
{ 0x05, 0x14 },
{ 0x06, 0x53 },
{ 0x07, 0x68 },
{ 0x1B, 0xCB },
{ 0x1C, 0x75 },
{ 0x2A, 0x45 },
{ 0x55, 0x53 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * timeSetEvent
// ******************************************************************
OOVPA_NO_XREF(timeSetEvent, 3911, 7)
{ 0x1E, 0x8D },
{ 0x3E, 0x89 },
@ -1215,6 +1326,7 @@ OOVPA_NO_XREF(timeSetEvent, 3911, 7) // generic version
{ 0xBE, 0x32 },
{ 0xDE, 0x89 },
OOVPA_END;
#endif
// ******************************************************************
// * timeKillEvent
@ -1253,6 +1365,7 @@ OOVPA_NO_XREF(timeKillEvent, 3911, 8)
{ 0x6E, 0x00 },
OOVPA_END;
#endif
// ******************************************************************
// * GetOverlappedResult
// ******************************************************************

View File

@ -32,6 +32,7 @@
// *
// ******************************************************************
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XInputOpen
// ******************************************************************
@ -61,7 +62,8 @@ OOVPA_NO_XREF(XInputOpen, 4134, 12)
{ 0x72, 0xC2 },
{ 0x73, 0x10 },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XInputGetState
// ******************************************************************
@ -89,6 +91,7 @@ OOVPA_NO_XREF(XInputGetState, 4134, 12)
{ 0x6E, 0xC2 },
{ 0x6F, 0x08 },
OOVPA_END;
#endif
// ******************************************************************
// * XMountUtilityDrive

View File

@ -62,6 +62,7 @@ OOVPA_NO_XREF(XInputOpen, 4242, 12)
{ 0x54, 0x10 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XID_fCloseDevice
// ******************************************************************
@ -89,7 +90,8 @@ OOVPA_XREF(XID_fCloseDevice, 4242, 11,
{ 0x9F, 0xC9 },
{ 0xA0, 0xC3 },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XInputGetCapabilities
// ******************************************************************
@ -119,7 +121,31 @@ OOVPA_NO_XREF(XInputGetCapabilities, 4242, 14)
{ 0xEE, 0x39 },
{ 0xEF, 0x18 },
OOVPA_END;
#endif
// ******************************************************************
// * XInputGetState
// ******************************************************************
OOVPA_NO_XREF(XInputGetState, 4242, 13)
{ 0x00, 0x53 },
{ 0x01, 0x56 },
{ 0x0A, 0x8B },
{ 0x0B, 0x54 },
{ 0x0C, 0x24 },
{ 0x0D, 0x0C },
{ 0x0E, 0x8B },
{ 0x0F, 0x8A },
{ 0x10, 0xA3 },
{ 0x11, 0x00 },
{ 0x12, 0x00 },
{ 0x13, 0x00 },
{ 0x5B, 0xF3 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 4242 version
// ******************************************************************
// * XInputGetState
// ******************************************************************
@ -147,6 +173,7 @@ OOVPA_NO_XREF(XInputGetState, 4242, 12)
{ 0x6C, 0xC2 },
{ 0x6D, 0x08 },
OOVPA_END;
#endif
// ******************************************************************
// * XInputSetState

View File

@ -32,6 +32,42 @@
// *
// ******************************************************************
// ******************************************************************
// * XMountUtilityDrive
// ******************************************************************
OOVPA_NO_XREF(XMountUtilityDrive, 4432, 27)
{ 0x00, 0x55 },
{ 0x01, 0x8B },
{ 0x02, 0xEC },
{ 0x03, 0x81 },
{ 0x04, 0xEC },
{ 0x05, 0x14 },
{ 0x06, 0x01 },
{ 0x07, 0x00 },
{ 0x08, 0x00 },
{ 0x09, 0x53 },
{ 0x0A, 0x56 },
{ 0x0B, 0x57 },
{ 0x0C, 0x8D },
{ 0x0D, 0x45 },
{ 0x0E, 0xF4 },
{ 0x0F, 0x50 },
{ 0x10, 0x8D },
{ 0x11, 0x45 },
{ 0x12, 0xFC },
{ 0x13, 0x50 },
{ 0x14, 0xFF },
{ 0x15, 0x75 },
{ 0x16, 0x08 },
{ 0x17, 0xE8 },
{ 0x51, 0x68 },
{ 0x52, 0x04 },
{ 0x53, 0x01 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 4432 version
// ******************************************************************
// * XMountUtilityDrive
// ******************************************************************
@ -53,3 +89,4 @@ OOVPA_NO_XREF(XMountUtilityDrive, 4432, 8)
// TODO: Finish signature, toss out function call basically
OOVPA_END;
#endif

View File

@ -48,6 +48,7 @@ OOVPA_NO_XREF(XFormatUtilityDrive, 4627, 7)
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XID_fCloseDevice
// ******************************************************************
@ -64,7 +65,7 @@ OOVPA_XREF(XID_fCloseDevice, 4627, 7,
{ 0x7C, 0x06 },
{ 0x91, 0x89 },
OOVPA_END;
#endif
#if 0 // Moved to 4831
// ******************************************************************
// * XID_fCloseDevice

View File

@ -32,7 +32,30 @@
// *
// ******************************************************************
// ******************************************************************
// * XInputSetState
// ******************************************************************
OOVPA_NO_XREF(XInputSetState, 4831, 14)
{ 0x00, 0x8B },
{ 0x01, 0x4C },
{ 0x02, 0x24 },
{ 0x03, 0x04 },
{ 0x04, 0x8D },
{ 0x05, 0x81 },
{ 0x06, 0xA3 },
{ 0x07, 0x00 },
{ 0x08, 0x00 },
{ 0x09, 0x00 },
{ 0x21, 0x8B },
{ 0x22, 0x40 },
{ 0x30, 0xC2 },
{ 0x31, 0x08 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 4831 version
// ******************************************************************
// * XInputSetState
// ******************************************************************
@ -60,8 +83,37 @@ OOVPA_NO_XREF(XInputSetState, 4831, 12)
{ 0x30, 0xC2 },
{ 0x31, 0x08 },
OOVPA_END;
#endif
// ******************************************************************
// * XID_fCloseDevice
// ******************************************************************
OOVPA_XREF(XID_fCloseDevice, 4831, 16,
XREF_XID_fCloseDevice,
XRefZero)
{ 0x00, 0x55 },
{ 0x01, 0x8B },
{ 0x02, 0xEC },
{ 0x03, 0x83 },
{ 0x04, 0xEC },
{ 0x05, 0x14 },
{ 0x06, 0x53 },
{ 0x07, 0x56 },
{ 0x08, 0x8B },
{ 0x09, 0xF1 },
{ 0x0A, 0xFF },
{ 0x0B, 0x15 },
{ 0x1E, 0x3B },
{ 0x1F, 0xC3 },
{ 0x38, 0x45 },
{ 0x39, 0xF4 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 4831 version
// ******************************************************************
// * XID_fCloseDevice
// ******************************************************************
@ -85,6 +137,7 @@ OOVPA_XREF(XID_fCloseDevice, 4831, 11,
{ 0x95, 0xC9 },
{ 0x96, 0xC3 },
OOVPA_END;
#endif
// ******************************************************************
// * XInputGetState
@ -109,6 +162,29 @@ OOVPA_NO_XREF(XInputGetState, 4831, 12)
{ 0x6A, 0x08 },
OOVPA_END;
// ******************************************************************
// * XInputGetCapabilities
// ******************************************************************
OOVPA_NO_XREF(XInputGetCapabilities, 4831, 13)
{ 0x00, 0x55 },
{ 0x1F, 0x0F },
{ 0x37, 0x8B },
{ 0x38, 0xFA },
{ 0x39, 0xF3 },
{ 0x3A, 0xAB },
{ 0x3B, 0xAA },
{ 0x3C, 0x8A },
{ 0x3D, 0x46 },
{ 0x3E, 0x0B },
{ 0x3F, 0x88 },
{ 0x59, 0x0F },
{ 0x5A, 0xB6 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 4831 version
// ******************************************************************
// * XInputGetCapabilities
// ******************************************************************
@ -125,6 +201,7 @@ OOVPA_NO_XREF(XInputGetCapabilities, 4831, 10)
{ 0x99, 0x55 },
{ 0x9A, 0xD0 },
OOVPA_END;
#endif
// ******************************************************************
// * XGetDeviceEnumerationStatus

View File

@ -50,7 +50,7 @@ OOVPA_NO_XREF(XInitDevices, 5120, 7)
{ 0x70, 0x5F },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 4831 version
// ******************************************************************
// * XInputGetCapabilities
// ******************************************************************
@ -65,7 +65,8 @@ OOVPA_NO_XREF(XInputGetCapabilities, 5233, 8)
{ 0xDA, 0x8D },
{ 0xF9, 0x46 },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XGetDeviceChanges
// ******************************************************************
@ -79,7 +80,8 @@ OOVPA_NO_XREF(XGetDeviceChanges, 5233, 7)
{ 0x52, 0xC8 },
{ 0x60, 0x5F },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 4831 version
// ******************************************************************
// * XInputSetState
// ******************************************************************
@ -93,3 +95,4 @@ OOVPA_NO_XREF(XInputSetState, 5233, 7)
{ 0x28, 0x88 },
{ 0x30, 0xC2 },
OOVPA_END;
#endif

View File

@ -32,7 +32,7 @@
// *
// ******************************************************************
#if 0 // No longer used, replaced by generic 4831 version
// ******************************************************************
// * XInputGetCapabilities
// ******************************************************************
@ -47,6 +47,7 @@ OOVPA_NO_XREF(XInputGetCapabilities, 5455, 8)
{ 0xD7, 0x8D },
{ 0xF6, 0x46 },
OOVPA_END;
#endif
// ******************************************************************
// * XInputGetState
@ -62,6 +63,7 @@ OOVPA_NO_XREF(XInputGetState, 5455, 7)
{ 0x67, 0x15 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 4831 version
// ******************************************************************
// * XID_fCloseDevice
// ******************************************************************
@ -78,7 +80,8 @@ OOVPA_XREF(XID_fCloseDevice, 5455, 7,
{ 0x70, 0xFF },
{ 0x84, 0x89 },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XInputClose
// ******************************************************************
@ -98,6 +101,7 @@ OOVPA_XREF(XInputClose, 5455, 1+8,
{ 0x0A, 0x04 },
{ 0x0B, 0x00 },
OOVPA_END;
#endif
// ******************************************************************
// * XMountAlternateTitleA
@ -119,6 +123,7 @@ OOVPA_NO_XREF(XMountAlternateTitleA, 5455, 11)
{ 0xD0, 0x15 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * timeSetEvent
// ******************************************************************
@ -143,3 +148,4 @@ OOVPA_NO_XREF(timeSetEvent, 5455, 14)
{ 0x34, 0x88 },
{ 0x35, 0x5D },
OOVPA_END;
#endif

View File

@ -95,7 +95,7 @@ OOVPA_NO_XREF(XapiInitProcess, 5659, 8)
{ 0xFE, 0x02 },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 5344 version
// ******************************************************************
// * XLaunchNewImageA
// ******************************************************************
@ -109,6 +109,7 @@ OOVPA_NO_XREF(XLaunchNewImageA, 5558, 7)
{ 0x34, 0x6A },
{ 0x3D, 0x10 },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XapiFiberStartup

View File

@ -52,7 +52,7 @@ OOVPA_NO_XREF(timeSetEvent, 5849, 10)
{0x1A, 0x3B}
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 3911 version
//; Xbe Explorer generated pattern, derived from address $002793A1 in "EA SPORTS<54>ERUGBY 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)
@ -67,6 +67,7 @@ OOVPA_NO_XREF(timeKillEvent, 5849, 10)
{ 0x18, 0x0F },
{ 0x1F, 0x3E }
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 4831 version
// ******************************************************************
// * XGetDeviceEnumerationStatus

View File

@ -168,42 +168,42 @@ OOVPATable XAPILIB_OOVPAV2[] = {
REGISTER_OOVPAS(DeleteFiber, UNPATCHED, 3911),
REGISTER_OOVPAS(GetExitCodeThread, PATCH, 3911),
REGISTER_OOVPAS(GetOverlappedResult, PATCH, 3911),
REGISTER_OOVPAS(GetThreadPriority, PATCH, 3911, 5788),
REGISTER_OOVPAS(GetThreadPriority, PATCH, 3911/*, 5788*/),
REGISTER_OOVPAS(GetTimeZoneInformation, UNPATCHED, 3911),
REGISTER_OOVPAS(GetTypeInformation, XREF, 4134), // TODO: Actually introduced in some unknown XDK between 4134 and 4361
REGISTER_OOVPAS(OutputDebugStringA, PATCH, 3911),
REGISTER_OOVPAS(QueueUserAPC, PATCH, 3911),
REGISTER_OOVPAS(RaiseException, PATCH, 3911),
REGISTER_OOVPAS(SetThreadPriority, PATCH, 3911),
REGISTER_OOVPAS(SetThreadPriorityBoost, PATCH, 3911, 5788),
REGISTER_OOVPAS(SetThreadPriorityBoost, PATCH, 3911/*, 5788*/),
REGISTER_OOVPAS(SignalObjectAndWait, PATCH, 3911),
REGISTER_OOVPAS(SwitchToFiber, UNPATCHED, 3911),
REGISTER_OOVPAS(XAutoPowerDownResetTimer, UNPATCHED, 3911), // Just calls KeSetTimer (from 3911's comment)
REGISTER_OOVPAS(XFormatUtilityDrive, PATCH, 4242),
REGISTER_OOVPAS(XGetDeviceChanges, PATCH, 3911, 5233), // Was PATCH (from 5788's comment)
REGISTER_OOVPAS(XGetDeviceChanges, PATCH, 3911/*, 5233*/), // Was PATCH (from 5788's comment)
REGISTER_OOVPAS(XGetDeviceEnumerationStatus, PATCH, 4831),
REGISTER_OOVPAS(XGetDevices, PATCH, 3911),
REGISTER_OOVPAS(XGetLaunchInfo, UNPATCHED, 3911),
REGISTER_OOVPAS(XID_fCloseDevice, XREF, 3911, 4242, 4627, 4831, 5455),
REGISTER_OOVPAS(XID_fCloseDevice, XREF, 3911/*, 4242, 4627*/, 4831/*, 5455*/),
REGISTER_OOVPAS(XInitDevices, PATCH, 3911, 5120),
REGISTER_OOVPAS(XInputClose, PATCH, 3911, 5455),
REGISTER_OOVPAS(XInputGetCapabilities, PATCH, 3911, 4242, 4831, 5233, 5455),
REGISTER_OOVPAS(XInputClose, PATCH, 3911/*, 5455*/),
REGISTER_OOVPAS(XInputGetCapabilities, PATCH, 3911/*, 4242*/, 4831/*, 5233, 5455*/),
REGISTER_OOVPAS(XInputGetDeviceDescription, PATCH, 4831),
REGISTER_OOVPAS(XInputGetState, PATCH, 3911, 4134, 4242, 4831, 5455),
REGISTER_OOVPAS(XInputOpen, PATCH, 3911, 4134, 4242),
REGISTER_OOVPAS(XInputGetState, PATCH, 3911/*, 4134*/, 4242/*, 4831*/, 5455),
REGISTER_OOVPAS(XInputOpen, PATCH, 3911/*, 4134*/, 4242),
REGISTER_OOVPAS(XInputPoll, PATCH, 3911),
REGISTER_OOVPAS(XInputSetState, PATCH, 3911, 4242, 4831, 5233),
REGISTER_OOVPAS(XLaunchNewImageA, PATCH, 3911, 4721, 5344, 5558),
REGISTER_OOVPAS(XInputSetState, PATCH, 3911, 4242, 4831/*, 5233*/),
REGISTER_OOVPAS(XLaunchNewImageA, PATCH, 3911, 4721, 5344/*, 5558*/),
REGISTER_OOVPAS(XMountAlternateTitleA, PATCH, 3911, 5028, 5455),
REGISTER_OOVPAS(XMountMUA, PATCH, 3911, 4242),
REGISTER_OOVPAS(XMountMURootA, PATCH, 3911, 4242),
REGISTER_OOVPAS(XMountUtilityDrive, PATCH, 3911, 4134, 4432), // TODO: This needs to be verified on 4361, not just 4242! (from 4361's comment)
REGISTER_OOVPAS(XMountUtilityDrive, PATCH, 3911/*, 4134*/, 4432),
REGISTER_OOVPAS(XRegisterThreadNotifyRoutine, PATCH, 3911),
REGISTER_OOVPAS(XSetProcessQuantumLength, PATCH, 4134),
REGISTER_OOVPAS(XUnmountAlternateTitleA, PATCH, 3911),
REGISTER_OOVPAS(XapiFiberStartup, UNPATCHED, 3911),
REGISTER_OOVPAS(timeKillEvent, PATCH, 3911, 5849),
REGISTER_OOVPAS(timeSetEvent, PATCH, 3911, 5455),
REGISTER_OOVPAS(timeKillEvent, PATCH, 3911/*, 5849*/),
REGISTER_OOVPAS(timeSetEvent, PATCH, 3911/*, 5455*/),
};
// ******************************************************************