Minor GPU disassembler update

This commit is contained in:
Henrik Rydgård 2017-08-05 18:15:01 +02:00
parent 76fd568d8c
commit 35c8a05d29
3 changed files with 11 additions and 2 deletions

View file

@ -334,7 +334,7 @@ const CommonCommandTableEntry commonCommandTable[] = {
{ GE_CMD_UNKNOWN_FD, FLAG_EXECUTE, 0, &GPUCommon::Execute_Unknown },
{ GE_CMD_UNKNOWN_FE, FLAG_EXECUTE, 0, &GPUCommon::Execute_Unknown },
// Appears to be debugging related or something? Hit a lot in GoW.
{ GE_CMD_UNKNOWN_FF, 0 },
{ GE_CMD_NOP_FF, 0 },
};
size_t commonCommandTableSize = ARRAY_SIZE(commonCommandTable);

View file

@ -102,6 +102,15 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer, int bufsize) {
snprintf(buffer, bufsize, "NOP");
break;
// Pretty sure this is some sort of NOP to eat some pipelining issue,
// often seen after CALL instructions.
case GE_CMD_NOP_FF:
if (data != 0)
snprintf(buffer, bufsize, "NOP_FF: data= %06x", data);
else
snprintf(buffer, bufsize, "NOP_FF");
break;
case GE_CMD_BASE:
snprintf(buffer, bufsize, "BASE: %06x", data);
break;

View file

@ -273,7 +273,7 @@ enum GECommand {
GE_CMD_UNKNOWN_FC = 0xFC,
GE_CMD_UNKNOWN_FD = 0xFD,
GE_CMD_UNKNOWN_FE = 0xFE,
GE_CMD_UNKNOWN_FF = 0xFF,
GE_CMD_NOP_FF = 0xFF,
};
enum GEBufferFormat