Skip to content

Commit

Permalink
Minor GPU disassembler update
Browse files Browse the repository at this point in the history
  • Loading branch information
hrydgard committed Aug 5, 2017
1 parent 76fd568 commit 35c8a05
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
2 changes: 1 addition & 1 deletion GPU/GPUCommon.cpp
Expand Up @@ -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);

Expand Down
9 changes: 9 additions & 0 deletions GPU/GeDisasm.cpp
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion GPU/ge_constants.h
Expand Up @@ -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
Expand Down

0 comments on commit 35c8a05

Please sign in to comment.