Merge pull request #354 from magumagu/gx-primitive-mask

Opcode decoding: 0xC0 isn't a valid command.
This commit is contained in:
Tony Wasserka 2014-05-16 15:59:59 +02:00
commit 25e8dc0aed
3 changed files with 6 additions and 6 deletions

View File

@ -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;
} }

View File

@ -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

View File

@ -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();