I don't want to spoil too much, so I'll leave it to you the pleasure to guess what ....
As a little hing I'll post here just a screenshot and a selection of ripped textures. Is it too difficult? ;)
Many thanks to Benjamin Dobell and, Glass Echidna who published a very compact and easy-to-use set of routines to decompress the compressed texture formats DXT1 and DXT5. Sadly, the game also uses DXT3 that is not supported by their code, but maybe it won't be impossible to adapt their routines to a third format.
Then, so far, what will work (I still have to polish and publish the new release) will be the dump of the textures of all used formats except DXT3 (that are dumped in their raw format to .bin files).
P.s. all this is in the OpenGL texture routines, but I suppose that also some D3D game could be using compressed textures.
Unreal used S3 Texture Compression. However I am not aware if it required the S3 MeTaL API or it worked under Direct3D and OpenGL (the game has 6 different video renderers if I am not forgetting).
Very coincidentally I was watching a DOOM mystery (MYHOUSE.WAD) a few hours back and now you post DOOM 3 :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
A good news: unexpectedly, the routine that processes the DXT5 textures seems also able to decompress the DXT3 format, so the texture dump is complete for this game!
You were both wrong, I am working to a new game: DoDo3 ;)
Ehm ... in effect the compressed texture hacking routine is not still perfect, it makes a mess with some transparency, but the beginning is promising, isn't it?
After many attempts, it seems that decompressing a DXT1/3/5 texture is way more easy that compress it. What's worse, not only the images can be altered, but in some cases the program could crash! So, it will take a little more patience, but I have to find a reliable DXT1/3/5 compressor. I found one, but maybe there are better ones.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Damn, I made some hard work to make a Win32 build of libsquish, the open source texture compression/decompression library, and the result seemed gorgeous until I saw that the alpha channel is lost? It can't be, I'll check .... anyway the opaque transformation of the flipped texture is great!
At last the compressed textures hacking is starting to work. The yellow circle around the chicken's eye was drawn with paint.exe directly on the ripped texture. The flipped Doom3 logo instead was edited with Gimp because paint has the bad habit of always suppressing the alpha channel.
What's most important is that now the reading of bmp files is done in a single dedicated routine (that I will extend also to D3D textures) taking care of the different flavors of bmp file formats in a single, well tested place.
All this is about to be posted as .rc10
The compression is relative to the internal format and DXT compression formats have numbers from 0x83F0 to 0x83F3, so you could simply enable the OpenGL log and search for the "internalformat=0x83f" string.
The same number is also part of the dumped texture file names, so you could dump the textures and search for ".I83F" in the file name.
On D3D there are probably other formats and numbers ....
Last edit: gho 2025-03-15
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
"OK, I tried the game Dr. Brain: Action Reaction (Unreal engine) with the setting OpenGLDrv.OpenGLRenderDevice and the textures have I8058, so it's not DXT :-(
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I tried several games but I never got the .I83F texture. For some games even DxWnd didn't spit out any textures (Call for Heroes Pompolic Wars).
But when I tried "Darkest Island Part 1" I see that there are textures named"
texture.1024.1024.DXT5.1A864734.bmp
texture.1024.1024.DXT1.A669DCA7.bmp
texture.512.512.DXT3.974CAE54.bmp
So is it possible that DXT textures can have a different name (part of the name) than I83F?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I don't want to spoil too much, so I'll leave it to you the pleasure to guess what ....
As a little hing I'll post here just a screenshot and a selection of ripped textures. Is it too difficult? ;)
Many thanks to Benjamin Dobell and, Glass Echidna who published a very compact and easy-to-use set of routines to decompress the compressed texture formats DXT1 and DXT5. Sadly, the game also uses DXT3 that is not supported by their code, but maybe it won't be impossible to adapt their routines to a third format.
Then, so far, what will work (I still have to polish and publish the new release) will be the dump of the textures of all used formats except DXT3 (that are dumped in their raw format to .bin files).
P.s. all this is in the OpenGL texture routines, but I suppose that also some D3D game could be using compressed textures.
Last edit: gho 2025-03-07
Unreal used S3 Texture Compression. However I am not aware if it required the S3 MeTaL API or it worked under Direct3D and OpenGL (the game has 6 different video renderers if I am not forgetting).
Very coincidentally I was watching a DOOM mystery (MYHOUSE.WAD) a few hours back and now you post DOOM 3 :)
A good news: unexpectedly, the routine that processes the DXT5 textures seems also able to decompress the DXT3 format, so the texture dump is complete for this game!
Hmm I thought it was Messiah...
I see I'm not very good at guessing games.
Last edit: huh 2025-03-07
You were both wrong, I am working to a new game: DoDo3 ;)
Ehm ... in effect the compressed texture hacking routine is not still perfect, it makes a mess with some transparency, but the beginning is promising, isn't it?
After many attempts, it seems that decompressing a DXT1/3/5 texture is way more easy that compress it. What's worse, not only the images can be altered, but in some cases the program could crash! So, it will take a little more patience, but I have to find a reliable DXT1/3/5 compressor. I found one, but maybe there are better ones.
WIP, some screenshots from a badly compressed DXT3 texture and a perfectly compressed DXT1 texture. The images were simply flipped vertically.
Damn, I made some hard work to make a Win32 build of libsquish, the open source texture compression/decompression library, and the result seemed gorgeous until I saw that the alpha channel is lost? It can't be, I'll check .... anyway the opaque transformation of the flipped texture is great!
Consider hosting it once you finish the alpha channel part
WIP: texture highlights ...
At last the compressed textures hacking is starting to work. The yellow circle around the chicken's eye was drawn with paint.exe directly on the ripped texture. The flipped Doom3 logo instead was edited with Gimp because paint has the bad habit of always suppressing the alpha channel.
What's most important is that now the reading of bmp files is done in a single dedicated routine (that I will extend also to D3D textures) taking care of the different flavors of bmp file formats in a single, well tested place.
All this is about to be posted as .rc10
I have a question. Is there any way to indentify if a game uses S3TC (DXT) texture compression?
The log tells the information about the texture format in lines like this one:
The compression is relative to the internal format and DXT compression formats have numbers from 0x83F0 to 0x83F3, so you could simply enable the OpenGL log and search for the "
internalformat=0x83f
" string.The same number is also part of the dumped texture file names, so you could dump the textures and search for "
.I83F
" in the file name.On D3D there are probably other formats and numbers ....
Last edit: gho 2025-03-15
"OK, I tried the game Dr. Brain: Action Reaction (Unreal engine) with the setting OpenGLDrv.OpenGLRenderDevice and the textures have I8058, so it's not DXT :-(
I think Unreal Tournament 1999 has it, enabled with a setting in the .ini
Maybe I wasn't clear .... the texture routines are able to process ALSO the compressed textures, in addition to the non compressed ones.
I tried several games but I never got the .I83F texture. For some games even DxWnd didn't spit out any textures (Call for Heroes Pompolic Wars).
But when I tried "Darkest Island Part 1" I see that there are textures named"
texture.1024.1024.DXT5.1A864734.bmp
texture.1024.1024.DXT1.A669DCA7.bmp
texture.512.512.DXT3.974CAE54.bmp
So is it possible that DXT textures can have a different name (part of the name) than I83F?