Open MrCheeze opened 4 years ago
The simplest solution for now is to hack the roms headers.
I created patches for all currently known iQue ROMs that replace the blank space in the header with the header information of the corresponding US (if unavailable: Japanese) version. This allows for dumping textures and loading HD assets for iQue games as GLideN64 currently does none of that if no internal ROM name is present.
The workaround in action: iQue ROM Headers
Good to have, and the workarounds do indeed work as expected. But I do still hope that in the future we can have logic to detect these builds in the plugin itself, so that e.g. TASes can be made against the "real" rom.
I can think of a couple ways to do it, but just checking the crc hash should work OK enough in practice, since under the small chance that anyone actually makes an iQue rom hack they can just edit the headers themselves.
A potential solution could be to detect a game based on ucodes being used instead of the header.
The code in RSP.cpp looks for "THE LEGEND OF ZELDA" in the rom header, but the iQue roms do not have this. Instead their headers are almost blank. The mainland release has this as its header:
80 37 12 40 00 00 00 0F 80 00 04 00 00 00 14 4C B1 E1 E0 7B 05 12 69 DD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
While the taiwanese one has this:
80 37 12 40 00 00 00 0F 80 00 04 00 00 00 14 4C 3D 81 FB 3E BD 84 3E 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Not a lot to go on for detecting the rom, although the hashes are still there at least.