Closed Rosalie241 closed 3 months ago
@Rosalie241 I checked the game from the provided save state. At some moment the game calls gDPSetTileSize command, which set tile uls greater than lrs, so texture width becomes negative. It causes crash either in texture checksum calculation or in OpenGL call. The situation is weird. Probably it is a core issue. I put sanity checks to texture load functions to avoid the crashes, see commit 85bdd452d. Please check if the problem is gone.
BTW, great texture pack!
I can confirm your commit fixes the issue, it'd be odd if it's a core issue but I don't know.
Thank you for checking and fixing it :heart:
An RMG user reported an issue with Donkey Kong 64 where the water turns invisible sometimes after I updated GLideN64, I've decided to try it with Project64 and it happens there aswell, commenting out the code added in the commit fixes it again.
ROM MD5: 295D995852DB7BC9E8F29085E924C835
Mupen64plus and Project64 savestates: wherethewater.zip
so it seems that might not be a core issue, tested it on the latest stable Project64.
so it seems that might not be a core issue, tested it on the latest stable Project64.
Yes, it's my mistake. I reverted the wrong fix and added a proper (hopefully) one: f119c320f9
Confirmed that Paper Mario doesn't crash anymore and the DK64 water is working. The N64 logo in the Zelda games also looked wrong, but anymore.
I've opened #2838 as a workaround for now, which does fix the crash when the strong CRC option is disabled but isn't a proper fix, I do feel it makes sense to not calculate the strong CRC if the option hasn't been enabled but your opinion might differ.
No, the option shouldn't be needed to load in strong CRC dumped textures. The idea is to enable the option whenever a texture artist needs it, dump any problematic textures and deactive it again to maintain compatibility with previous hashes. Strong CRC hashes should work regardless of the option being enabled or not, it should be solely toggled for dumping.
No, the option shouldn't be needed to load in strong CRC dumped textures. The idea is to enable the option whenever a texture artist needs it, dump any problematic textures and deactive it again to maintain compatibility with previous hashes. Strong CRC hashes should work regardless of the option being enabled or not, it should be solely toggled for dumping.
Yes, exactly. If the crash is fixed without regressions in other games, #2838 should be closed.
I can confirm the issues have been fixed, I've also closed the PR I made.
Thank you for looking into it :heart:
An RMG user reported a crash when using a Paper Mario texture pack, after investigating, it crashes in GLideN64.
It happens because
buf.size()
is smaller thanbytesPerLine
inTxUtil::StrongCRC32
:surprisingly, I've also discovered that it happens without crashing too:
Texture pack: https://drive.google.com/file/d/1qi2tvLso7cSnFXrnilN-qoc1fCBW1B9j/view Mupen64plus save state: state.zip ROM MD5:
A722F8161FF489943191330BF8416496
I've opened #2838 as a workaround for now, which does fix the crash when the strong CRC option is disabled but isn't a proper fix, I do feel it makes sense to not calculate the strong CRC if the option hasn't been enabled but your opinion might differ.