I've been researching on how to modify the textures of Crazy Taxi 3 for a while now and I have pretty much hit a brick wall.
The game stores its texture assets in
.art files, which, from what I understand, contain several textures in each of them, due to there being many banks of textures. There is also a
Sprites folder containing these files that indicate the same.
A quick Google search led me to believe that this may be the AOL Image Format used in its software, however AOL 9.0 kept throwing errors when trying to open the files. No dice.
After searching more I found that PFS: First Publisher used this extension as well for its clip art. The files do not exactly match the structure documented in this wiki, but every .art file has something that looks like a table of information in that structure at the start, and then possibly image data. I have also observed that the string
GXTX is repeated many times, may suggest that it might be a pointer of the beginning of a new image.
Other than that, I have no idea how this file format may work. It seems like it is uncompressed image data, however after opening it in many programs I have given up and need help.
I have found a great tool called Texturefinder that helped me figure out that these textures are compressed with DXT, however I am unsure which version, as half of a certain texture bank may look great in DXT1, while another half looks jumbled until I switch to DXT3 or 5. The container format possibly has information on which algorithm to use in a table before the images, as at the start of each texture file there is plenty of non-image data, or at least data that this tool can not decide. Here are a few examples of this working in one algorithm vs the other:
So, here is an updated list of what I have gathered:
.artfiles contain the string
GXTXmany times, usually followed by about 12 bytes that have small values (something like
80 00 80 00 00 80 00 00 01 00 05 00), likely an image separator
- The files contain many textures compressed with DXT
- Textures may be compressed with differing forms of DXT (possibly DXT1 and DXT3)
- Textures in banks may have differing widths/heights
- Every texture bank has a sizeable amount of non-image data at the start
- The textures are upside down