Add reporting for unsupported GE commands.

And clean up some disasm for a couple others.
This commit is contained in:
Unknown W. Brackets 2013-05-12 10:15:13 -07:00
parent 5ecacd6bc8
commit 39c0e6c096
2 changed files with 36 additions and 6 deletions

View File

@ -938,6 +938,33 @@ void GLES_GPU::ExecuteOp(u32 op, u32 diff) {
}
break;
#ifndef USING_GLES2
case GE_CMD_LOGICOPENABLE:
if (data != 0)
ERROR_LOG_REPORT(G3D, "Unsupported logic op enabled: %x", data);
break;
case GE_CMD_LOGICOP:
if (data != 0)
ERROR_LOG_REPORT(G3D, "Unsupported logic op: %06x", data);
break;
case GE_CMD_ANTIALIASENABLE:
if (data != 0)
WARN_LOG_REPORT(G3D, "Unsupported antialias enabled: %06x", data);
break;
case GE_CMD_TEXLODSLOPE:
if (data != 0)
WARN_LOG_REPORT(G3D, "Unsupported texture lod slope: %06x", data);
break;
case GE_CMD_TEXLEVEL:
if (data != 0)
WARN_LOG_REPORT(G3D, "Unsupported texture level bias settings: %06x", data);
break;
#endif
default:
GPUCommon::ExecuteOp(op, diff);
break;

View File

@ -473,8 +473,8 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) {
case GE_CMD_TRANSFERSRCPOS:
{
u32 x = (data & 1023)+1;
u32 y = ((data>>10) & 1023)+1;
u32 x = (data & 1023);
u32 y = ((data>>10) & 1023);
if (data & 0xF00000)
sprintf(buffer, "Block transfer src rect TL: %i, %i (extra %x)", x, y, data >> 20);
else
@ -484,8 +484,8 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) {
case GE_CMD_TRANSFERDSTPOS:
{
u32 x = (data & 1023)+1;
u32 y = ((data>>10) & 1023)+1;
u32 x = (data & 1023);
u32 y = ((data>>10) & 1023);
if (data & 0xF00000)
sprintf(buffer, "Block transfer dest rect TL: %i, %i (extra %x)", x, y, data >> 20);
else
@ -849,7 +849,7 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) {
break;
case GE_CMD_TEXMODE:
sprintf(buffer, "TexMode %06x (%s)", data, data & 1 ? "swizzle" : "no swizzle");
sprintf(buffer, "TexMode %06x (%s, %d levels, %s)", data, data & 1 ? "swizzle" : "no swizzle", (data >> 16) & 7, (data >> 8) & 1 ? "separate cluts" : "shared clut");
break;
case GE_CMD_TEXFORMAT:
@ -929,7 +929,10 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) {
break;
case GE_CMD_STENCILOP:
sprintf(buffer, "Stencil op: %06x", data);
{
const char *stencilOps[] = { "KEEP", "ZERO", "REPLACE", "INVERT", "INCREMENT", "DECREMENT", "unsupported1", "unsupported2" };
sprintf(buffer, "Stencil op: fail=%s, pass/depthfail=%s, pass=%s", stencilOps[data & 7], stencilOps[(data >> 8) & 7], stencilOps[(data >> 16) & 7]);
}
break;
case GE_CMD_STENCILTEST: