Skip to content

Commit

Permalink
Inner interpreter: Add support for the Gran Turismo hack.
Browse files Browse the repository at this point in the history
  • Loading branch information
hrydgard committed Mar 17, 2018
1 parent a966403 commit ad42ec5
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions GPU/GPUCommon.cpp
Expand Up @@ -1391,8 +1391,9 @@ void GPUCommon::Execute_End(u32 op, u32 diff) {
}

void GPUCommon::Execute_TexLevel(u32 op, u32 diff) {
if (diff == 0xFFFFFFFF) return;

// TODO: If you change the rules here, don't forget to update the inner interpreter in Execute_Prim.
if (diff == 0xFFFFFFFF)
return;
gstate.texlevel ^= diff;
if (gstate.getTexLevelMode() != GE_TEXLEVEL_MODE_AUTO && (0x00FF0000 & gstate.texlevel) != 0) {
Flush();
Expand Down Expand Up @@ -1581,6 +1582,13 @@ void GPUCommon::Execute_Prim(u32 op, u32 diff) {
gstate.cmdmem[GE_CMD_TEXSCALEV] = data;
gstate_c.uv.vScale = getFloat24(data);
break;
case GE_CMD_TEXLEVEL:
// Same Gran Turismo hack from Execute_TexLevel
if ((data & 3) != GE_TEXLEVEL_MODE_AUTO && (0x00FF0000 & data) != 0) {
goto bail;
}
gstate.cmdmem[GE_CMD_TEXLEVEL] = data;
break;
case GE_CMD_CALL:
{
// A bone matrix probably. If not we bail.
Expand Down

0 comments on commit ad42ec5

Please sign in to comment.