Database replacement version, F3DEX2 force matrix, big texture TMEM check.

This commit is contained in:
Dario 2024-11-11 20:12:44 -03:00
parent 180f663938
commit 049c81dc1e
3 changed files with 4 additions and 5 deletions

View File

@ -44,7 +44,7 @@ namespace RT64 {
struct ReplacementConfiguration { struct ReplacementConfiguration {
ReplacementAutoPath autoPath = ReplacementAutoPath::RT64; ReplacementAutoPath autoPath = ReplacementAutoPath::RT64;
uint32_t configurationVersion = 2; uint32_t configurationVersion = 2;
uint32_t hashVersion = 2; uint32_t hashVersion = 3;
}; };
struct ReplacementHashes { struct ReplacementHashes {

View File

@ -40,8 +40,7 @@ namespace RT64 {
state->rsp->setViewport((*dl)->w1); state->rsp->setViewport((*dl)->w1);
break; break;
case F3DEX2_G_MV_MATRIX: case F3DEX2_G_MV_MATRIX:
assert(false && "Unimplemented move matrix"); state->rsp->forceMatrix((*dl)->w1);
*dl = *dl + 1;
break; break;
case F3DEX2_G_MV_LIGHT: { case F3DEX2_G_MV_LIGHT: {
uint8_t offset = (*dl)->p0(8, 8) * 8; uint8_t offset = (*dl)->p0(8, 8) * 8;

View File

@ -839,10 +839,10 @@ namespace RT64 {
// FIXME: A safety check to only do this on textures that were determined to be big was added until the // FIXME: A safety check to only do this on textures that were determined to be big was added until the
// correctness of the texcoord determination can be guaranteed to not cause issues elsewhere. // correctness of the texcoord determination can be guaranteed to not cause issues elsewhere.
const bool bigTextureCheck = (callTile.sampleWidth > 0x1000) || (callTile.sampleHeight > 0x1000); const bool bigTextureCheck = (callTile.sampleWidth > 0x1000) || (callTile.sampleHeight > 0x1000);
if (bigTextureCheck && !TMEMHasher::requiresRawTMEM(callTile.loadTile, maxTexcoord.x, maxTexcoord.y)) { if (bigTextureCheck) {
callTile.sampleWidth = maxTexcoord.x; callTile.sampleWidth = maxTexcoord.x;
callTile.sampleHeight = maxTexcoord.y; callTile.sampleHeight = maxTexcoord.y;
callTile.rawTMEM = false; callTile.rawTMEM = TMEMHasher::requiresRawTMEM(callTile.loadTile, maxTexcoord.x, maxTexcoord.y);
} }
} }