Marvelous thing I just discovered.
There is a bug in RiceVideo, in palette CRC calculation. In brief – a wrong palette is taken for CRC. As the result - a wrong CRC. Since all texture designers used that CRC, I have to emulate this bug to make texture loading. Marvelous.
An explanation of the situation with palette CRC bug in RiceVideo:
The bug affects only 4bit CI textures. When “Full TMEM emulation” option is off, RiceVideo takes wrong, I even can say random, palette to calculate CRC. The consequences can be very bad. CRC becomes content-dependent. That is, the same texture can get different CRC in different situations. Besides, if RiceVideo was used in “Full TMEM emulation off” mode to dump textures, created pack will not work when this option is on, and vice versa.
There is no easy way to fix it. That is, the bug itself is easy to fix, I can point on exact places in the code. However, to fix existing texture packs it is necessary to use the fixed version to dump all textures again, and rename created hires textures using correct CRC. This hardly will be done.
The only thing, which can be done – warn all texture designers not to set full tmem emulation off when dumping textures.
As for GlideHQ, I’m trying to reproduce that behavior in my code and I’m partially succeeded. However, some packs still not work. Probably, it’s not the only rake hidden in RiceVideo code.