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 {
ReplacementAutoPath autoPath = ReplacementAutoPath::RT64;
uint32_t configurationVersion = 2;
uint32_t hashVersion = 2;
uint32_t hashVersion = 3;
};
struct ReplacementHashes {

View File

@ -40,8 +40,7 @@ namespace RT64 {
state->rsp->setViewport((*dl)->w1);
break;
case F3DEX2_G_MV_MATRIX:
assert(false && "Unimplemented move matrix");
*dl = *dl + 1;
state->rsp->forceMatrix((*dl)->w1);
break;
case F3DEX2_G_MV_LIGHT: {
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
// correctness of the texcoord determination can be guaranteed to not cause issues elsewhere.
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.sampleHeight = maxTexcoord.y;
callTile.rawTMEM = false;
callTile.rawTMEM = TMEMHasher::requiresRawTMEM(callTile.loadTile, maxTexcoord.x, maxTexcoord.y);
}
}