Merge pull request #354 from magumagu/gx-primitive-mask
Opcode decoding: 0xC0 isn't a valid command.
This commit is contained in:
commit
25e8dc0aed
|
@ -201,7 +201,7 @@ void DecodeStandard(u32 bufferSize)
|
||||||
|
|
||||||
// draw primitives
|
// draw primitives
|
||||||
default:
|
default:
|
||||||
if (Cmd & 0x80)
|
if ((Cmd & 0xC0) == 0x80)
|
||||||
{
|
{
|
||||||
u8 vatIndex = Cmd & GX_VAT_MASK;
|
u8 vatIndex = Cmd & GX_VAT_MASK;
|
||||||
u8 primitiveType = (Cmd & GX_PRIMITIVE_MASK) >> GX_PRIMITIVE_SHIFT;
|
u8 primitiveType = (Cmd & GX_PRIMITIVE_MASK) >> GX_PRIMITIVE_SHIFT;
|
||||||
|
@ -283,7 +283,7 @@ bool CommandRunnable(u32 iBufferSize)
|
||||||
|
|
||||||
// draw primitives
|
// draw primitives
|
||||||
default:
|
default:
|
||||||
if (Cmd & 0x80)
|
if ((Cmd & 0xC0) == 0x80)
|
||||||
minSize = 3;
|
minSize = 3;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace OpcodeDecoder
|
||||||
#define GX_CMD_CALL_DL 0x40
|
#define GX_CMD_CALL_DL 0x40
|
||||||
#define GX_CMD_INVL_VC 0x48
|
#define GX_CMD_INVL_VC 0x48
|
||||||
|
|
||||||
#define GX_PRIMITIVE_MASK 0x78
|
#define GX_PRIMITIVE_MASK 0x38
|
||||||
#define GX_PRIMITIVE_SHIFT 3
|
#define GX_PRIMITIVE_SHIFT 3
|
||||||
#define GX_VAT_MASK 0x07
|
#define GX_VAT_MASK 0x07
|
||||||
|
|
||||||
|
|
|
@ -201,7 +201,7 @@ u32 FifoCommandRunnable(u32 &command_size)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (cmd_byte & 0x80)
|
if ((cmd_byte & 0xC0) == 0x80)
|
||||||
{
|
{
|
||||||
// check if we can read the header
|
// check if we can read the header
|
||||||
if (buffer_size >= 3)
|
if (buffer_size >= 3)
|
||||||
|
@ -346,7 +346,7 @@ static void Decode()
|
||||||
|
|
||||||
// draw primitives
|
// draw primitives
|
||||||
default:
|
default:
|
||||||
if (cmd_byte & 0x80)
|
if ((cmd_byte & 0xC0) == 0x80)
|
||||||
{
|
{
|
||||||
// load vertices (use computed vertex size from FifoCommandRunnable above)
|
// load vertices (use computed vertex size from FifoCommandRunnable above)
|
||||||
u16 numVertices = DataReadU16();
|
u16 numVertices = DataReadU16();
|
||||||
|
@ -434,7 +434,7 @@ static void DecodeSemiNop()
|
||||||
|
|
||||||
// draw primitives
|
// draw primitives
|
||||||
default:
|
default:
|
||||||
if (cmd_byte & 0x80)
|
if ((cmd_byte & 0xC0) == 0x80)
|
||||||
{
|
{
|
||||||
// load vertices (use computed vertex size from FifoCommandRunnable above)
|
// load vertices (use computed vertex size from FifoCommandRunnable above)
|
||||||
u16 numVertices = DataReadU16();
|
u16 numVertices = DataReadU16();
|
||||||
|
|
Loading…
Reference in New Issue