Removed small-large distinction in OOVPA declarations
This commit is contained in:
parent
ab487cd788
commit
8018f9ea00
|
@ -36,8 +36,8 @@
|
|||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern SOOVPA<11> D3DDevice_SetTextureState_TexCoordIndex_3925;
|
||||
extern SOOVPA<15> D3DDevice_SetRenderState_CullMode_3925;
|
||||
extern LOOVPA<11> D3DDevice_SetTextureState_TexCoordIndex_3925;
|
||||
extern LOOVPA<15> D3DDevice_SetRenderState_CullMode_3925;
|
||||
|
||||
extern OOVPATable D3D8_3925[];
|
||||
extern uint32 D3D8_3925_SIZE;
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern SOOVPA<14> D3DDevice_SetRenderState_CullMode_4034;
|
||||
extern LOOVPA<14> D3DDevice_SetRenderState_CullMode_4034;
|
||||
|
||||
extern OOVPATable D3D8_4034[];
|
||||
extern uint32 D3D8_4034_SIZE;
|
||||
|
|
|
@ -788,7 +788,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_Clear
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF_LARGE(D3DDevice_Clear, 4034, 9)
|
||||
OOVPA_NO_XREF(D3DDevice_Clear, 4034, 9)
|
||||
// D3DDevice_Clear+0x0000 : sub esp, 38h
|
||||
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern SOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4134;
|
||||
extern LOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4134;
|
||||
|
||||
extern OOVPATable D3D8_4134[];
|
||||
extern uint32 D3D8_4134_SIZE;
|
||||
|
|
|
@ -224,7 +224,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_Clear
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF_LARGE(D3DDevice_Clear, 4134, 9)
|
||||
OOVPA_NO_XREF(D3DDevice_Clear, 4134, 9)
|
||||
// D3DDevice_Clear+0x0000 : sub esp, 38h
|
||||
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern SOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4361;
|
||||
extern LOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4361;
|
||||
|
||||
extern OOVPATable D3D8_4361[];
|
||||
extern uint32 D3D8_4361_SIZE;
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern SOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4627;
|
||||
extern LOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4627;
|
||||
|
||||
extern OOVPATable D3D8_4627[];
|
||||
extern uint32 D3D8_4627_SIZE;
|
||||
|
|
|
@ -1116,7 +1116,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_Clear
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF_LARGE(D3DDevice_Clear, 4627, 9)
|
||||
OOVPA_NO_XREF(D3DDevice_Clear, 4627, 9)
|
||||
// D3DDevice_Clear+0x0000 : sub esp, 38h
|
||||
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
|
||||
|
@ -1136,7 +1136,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_ClearB
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF_LARGE(D3DDevice_ClearB, 4627, 9)
|
||||
OOVPA_NO_XREF(D3DDevice_ClearB, 4627, 9)
|
||||
// D3DDevice_Clear+0x0000 : sub esp, 38h
|
||||
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern SOOVPA<13> D3DDevice_SetRenderState_CullMode_5233;
|
||||
extern LOOVPA<13> D3DDevice_SetRenderState_CullMode_5233;
|
||||
|
||||
extern OOVPATable D3D8_5233[];
|
||||
extern uint32 D3D8_5233_SIZE;
|
||||
|
|
|
@ -134,7 +134,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_Clear
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF_LARGE(D3DDevice_Clear, 5233, 8)
|
||||
OOVPA_NO_XREF(D3DDevice_Clear, 5233, 8)
|
||||
{ 0x1D, 0x8A },
|
||||
{ 0x3C, 0x8B },
|
||||
{ 0x5B, 0x00 },
|
||||
|
|
|
@ -36,8 +36,8 @@
|
|||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern SOOVPA<13> D3DDevice_SetRenderState_CullMode_LTCG_5849;
|
||||
extern SOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_LTCG_5849;
|
||||
extern LOOVPA<13> D3DDevice_SetRenderState_CullMode_LTCG_5849;
|
||||
extern LOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_LTCG_5849;
|
||||
|
||||
extern OOVPATable D3D8LTCG_5849[];
|
||||
extern uint32 D3D8LTCG_5849_SIZE;
|
||||
|
|
|
@ -870,7 +870,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_Clear
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF_LARGE(D3DDevice_Clear_LTCG, 5849, 9)
|
||||
OOVPA_NO_XREF(D3DDevice_Clear_LTCG, 5849, 9)
|
||||
// D3DDevice_Clear+0x0000 : sub esp, 38h
|
||||
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
// ******************************************************************
|
||||
// * XnInit
|
||||
// ******************************************************************
|
||||
OOVPA_XREF_LARGE(XnInit, 4627, 18,
|
||||
OOVPA_XREF(XnInit, 4627, 18,
|
||||
|
||||
XREF_XNINIT,
|
||||
XRefZero)
|
||||
|
@ -128,7 +128,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * socket
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF_LARGE(socket, 4627, 20)
|
||||
OOVPA_NO_XREF(socket, 4627, 20)
|
||||
|
||||
// socket+0x13 : push 0x276D
|
||||
{ 0x0013, 0x68 }, // (Offset,Value)-Pair #1
|
||||
|
|
|
@ -608,14 +608,8 @@ static inline void EmuInstallPatch(xbaddr FunctionAddr, void *Patch)
|
|||
|
||||
static inline void GetOovpaEntry(OOVPA *oovpa, int index, OUT uint32 &offset, OUT uint08 &value)
|
||||
{
|
||||
if (oovpa->Type == Large) {
|
||||
offset = (uint32) ((LOOVPA<1>*)oovpa)->Lovp[index].Offset;
|
||||
value = ((LOOVPA<1>*)oovpa)->Lovp[index].Value;
|
||||
}
|
||||
else {
|
||||
offset = (uint32) ((SOOVPA<1>*)oovpa)->Sovp[index].Offset;
|
||||
value = ((SOOVPA<1>*)oovpa)->Sovp[index].Value;
|
||||
}
|
||||
offset = (uint32)((LOOVPA<1>*)oovpa)->Lovp[index].Offset;
|
||||
value = ((LOOVPA<1>*)oovpa)->Lovp[index].Value;
|
||||
}
|
||||
|
||||
// locate the given function, searching within lower and upper bounds
|
||||
|
@ -815,8 +809,8 @@ void VerifyHLEOOVPA(HLEVerifyContext *context, OOVPA *oovpa)
|
|||
uint32 curr_offset;
|
||||
GetOovpaEntry(oovpa, p, curr_offset, dummy_value);
|
||||
if (!(curr_offset > prev_offset)) {
|
||||
HLEError(context, "%s[%d] : Offset (0x%x) must be larger then previous offset (0x%x)",
|
||||
(oovpa->Type = Large) ? "Lovp" : "Sovp", p, curr_offset, prev_offset);
|
||||
HLEError(context, "Lovp[%d] : Offset (0x%x) must be larger then previous offset (0x%x)",
|
||||
p, curr_offset, prev_offset);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -55,27 +55,14 @@ template <class BaseClass, typename MFT> inline void *MFPtoFP(MFT pMemFunc)
|
|||
|
||||
#pragma pack(1)
|
||||
|
||||
enum OOVPAType : uint16 {
|
||||
Small, // Meaning, use SOVP, in which Offset is an uint08
|
||||
Large, // Meaning, use LOVP, in which Offset is an uint16
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * Optimized (Offset, Value)-Pair Array
|
||||
// ******************************************************************
|
||||
struct OOVPA
|
||||
{
|
||||
// This OOVPA field (OOVPAType Type) indicates weither
|
||||
// this struct needs to be cast to SOOVPA or LOOVPA,
|
||||
// for OOVPATYPE.Small vs .Large
|
||||
// SOOVPA uses bytes for offset in the {Offset, Value}-pairs.
|
||||
// LOOVPA uses words for offset in the {Offset, Value}-pairs.
|
||||
// The value field in the {Offset, Value}-pairs is of type byte.
|
||||
OOVPAType Type : 1;
|
||||
|
||||
// This OOVPA field (uint16 Count) indicates the number of
|
||||
// {Offset, Value}-pairs present in the Sovp or Lovp array,
|
||||
// available after casting this OOVPA to SOOVPA or LOOVPA.
|
||||
// {Offset, Value}-pairs present in the Lovp array,
|
||||
// available after casting this OOVPA to LOOVPA.
|
||||
// (This Count INCLUDES optional leading {Offset, XREF_*-enum}-
|
||||
// pairs - see comment at XRefCount.)
|
||||
uint16 Count : 15;
|
||||
|
@ -92,19 +79,12 @@ struct OOVPA
|
|||
// (Also, see comments at XRefZero and XRefOne.)
|
||||
uint08 XRefCount;
|
||||
|
||||
// Define SOVP and LOVP here to reduce type definition complexity.
|
||||
// Define LOVP here to reduce type definition complexity.
|
||||
// (Otherwise, if defined in the template classes, that would mean
|
||||
// that for each template instance, the type is redefined. Let's
|
||||
// avoid that.)
|
||||
|
||||
// Small (byte-sized) {Offset, Value}-pair(s)
|
||||
struct SOVP
|
||||
{
|
||||
uint08 Offset;
|
||||
uint08 Value;
|
||||
};
|
||||
|
||||
// Large (word-sized) {Offset, Value}-pair(s)
|
||||
// {Offset, Value}-pair(s)
|
||||
struct LOVP
|
||||
{
|
||||
uint16 Offset;
|
||||
|
@ -141,25 +121,8 @@ template <uint16 COUNT> struct LOOVPA
|
|||
OOVPA::LOVP Lovp[COUNT];
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * Small Optimized (Offset,Value)-Pair Array
|
||||
// ******************************************************************
|
||||
template <uint16 COUNT> struct SOOVPA
|
||||
{
|
||||
OOVPA Header;
|
||||
|
||||
// Small (Offset,Value)-Pair(s)
|
||||
OOVPA::SOVP Sovp[COUNT];
|
||||
};
|
||||
|
||||
#define OOVPA_XREF_LARGE(Name, Version, Count, XRefSaveIndex, XRefCount) \
|
||||
LOOVPA<Count> Name##_##Version = { { /*OOVPAType*/Large, Count, XRefSaveIndex, XRefCount }, {
|
||||
|
||||
#define OOVPA_XREF(Name, Version, Count, XRefSaveIndex, XRefCount) \
|
||||
SOOVPA<Count> Name##_##Version = { { /*OOVPAType*/Small, Count, XRefSaveIndex, XRefCount }, {
|
||||
|
||||
#define OOVPA_NO_XREF_LARGE(Name, Version, Count) \
|
||||
OOVPA_XREF_LARGE(Name, Version, Count, XRefNoSaveIndex, XRefZero)
|
||||
LOOVPA<Count> Name##_##Version = { { Count, XRefSaveIndex, XRefCount }, {
|
||||
|
||||
#define OOVPA_NO_XREF(Name, Version, Count) \
|
||||
OOVPA_XREF(Name, Version, Count, XRefNoSaveIndex, XRefZero)
|
||||
|
|
Loading…
Reference in New Issue