What's new

Getting the Rice specification straight

X-Fi6

New member
I'm using this as reference
http://bitbucket.org/richard42/mupen64plus-video-rice/src/d678704ba2d7/

"Color indexed textures must be still in palletted BMP format"
Is there a reason for this? Glide64 loads RGBA textures that were originally paletted without any problems. It's up to the plugin to get the texture working ingame.

In fact, the entire page says that textures need to stay in their original colorspaces, yet I don't see the point. If I can make the texture greyscale to save space, and it still loads fine, why did you really put this rule in at all? (Speaking of which, _gs would be a nice proposal)

Glide64 dumps paletted textures as
Internal name#CRC32#Format#Original size#Another CRC32_ciByRGBA

What is the second CRC?

And finally I see conflicting information over _ci and _ciByRGBA.

If we could sort this out, then we'd have a working spec that all the plugins agree to.
 
Last edited:
OP
X-Fi6

X-Fi6

New member
And one last question, why do we need _colorspace in the filename at all?

I say we should leave off the _colorspace entirely except where it's linked (like _rgb and _a), and instead add -<unsigned byte (range of 0-255)> to the end of the filename for a preference order (only if desired) where the plugin is for whatever reason unable to load textures higher up in preference.
 
Last edited:

Richard42

Emulator Developer
The only authoritative documentation on this stuff is the code itself. In my rice video repository, the hi-res texture loading stuff is in the file called TextureFilters.cpp. I looked at it a bit a couple of days ago, there were some comments which indicated that the second CRC value is called a PAL CRC. I didn't go into it any deeper than that, but if someone took the time to read through the code carefully you could figure out how it really works.

I also got the impression that there's no technical reason why the color indexed textures are limited to 8-bit palette BMPs; it's just a sanity check or a limitation of the current code structure.

Changing the spec wouldn't be very good if it broke compatibility with existing texture packs, but if you have proposals for extending the spec to support new things, I would go along with that. Narann is working on code to add mipmaps and anisotropic filtering to our RV plugin as well; he said it looks great.
 

Top