GTE: Implement NCDS (but incorrectly)
This commit is contained in:
@ -26,16 +26,30 @@ public:
|
||||
void ExecuteInstruction(Instruction inst);
|
||||
|
||||
private:
|
||||
template<u32 index>
|
||||
s32 TruncateMAC(s64 value);
|
||||
|
||||
template<u32 index>
|
||||
u8 TruncateRGB(s32 value);
|
||||
|
||||
template<u32 index>
|
||||
void SetIR(s32 value, bool lm);
|
||||
|
||||
void SetMAC(u32 index, s64 value);
|
||||
void SetIR(u32 index, s32 value, bool lm);
|
||||
void SetIR0(s32 value);
|
||||
void SetOTZ(s32 value);
|
||||
void PushSXY(s32 x, s32 y);
|
||||
void PushSZ(s32 value);
|
||||
void PushRGB(u8 r, u8 g, u8 b, u8 c);
|
||||
s32 Divide(s32 dividend, s32 divisor);
|
||||
s32 SaturateDivide(s32 result);
|
||||
|
||||
static s64 VecDot(const s16 A[3], const s16 B[3]);
|
||||
static s64 VecDot(const s16 A[3], s16 B_x, s16 B_y, s16 B_z);
|
||||
|
||||
void RTPS(const s16 V[3], bool sf);
|
||||
void NCDS(const s16 V[3], bool sf, bool lm);
|
||||
|
||||
void Execute_RTPS(Instruction inst);
|
||||
void Execute_RTPT(Instruction inst);
|
||||
@ -43,8 +57,11 @@ private:
|
||||
void Execute_SQR(Instruction inst);
|
||||
void Execute_AVSZ3(Instruction inst);
|
||||
void Execute_AVSZ4(Instruction inst);
|
||||
void Execute_NCDS(Instruction inst);
|
||||
|
||||
Regs m_regs = {};
|
||||
};
|
||||
|
||||
#include "gte.inl"
|
||||
|
||||
} // namespace GTE
|
||||
Reference in New Issue
Block a user