Menu

Guess what's coming next?

gho
2025-03-07
2025-03-16
  • gho

    gho - 2025-03-07

    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
  • BEEN_Nath_58

    BEEN_Nath_58 - 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 :)

     
  • gho

    gho - 2025-03-07

    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!

     
  • huh

    huh - 2025-03-07

    Hmm I thought it was Messiah...
    I see I'm not very good at guessing games.

     

    Last edit: huh 2025-03-07
  • gho

    gho - 2025-03-09

    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?

     
  • gho

    gho - 2025-03-09

    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.

     
  • gho

    gho - 2025-03-11

    WIP, some screenshots from a badly compressed DXT3 texture and a perfectly compressed DXT1 texture. The images were simply flipped vertically.

     
  • gho

    gho - 2025-03-12

    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!

     
    • BEEN_Nath_58

      BEEN_Nath_58 - 2025-03-12

      Damn, I made some hard work to make a Win32 build of libsquish

      Consider hosting it once you finish the alpha channel part

       
  • gho

    gho - 2025-03-12

    WIP: texture highlights ...

     
  • gho

    gho - 2025-03-14

    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

     
    👍
    1
    • huh

      huh - 2025-03-15

      I have a question. Is there any way to indentify if a game uses S3TC (DXT) texture compression?

       
      • gho

        gho - 2025-03-15

        The log tells the information about the texture format in lines like this one:

        opengl32.glTexImage2D: TEXTURE target=0xde1(GL_TEXTURE_2D) level=0 internalformat=0x83f0 format=0x1908 type=0x1401 size=(16x16) border=16
        

        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
        • huh

          huh - 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 :-(

           
  • BEEN_Nath_58

    BEEN_Nath_58 - 2025-03-15

    Is there any way to indentify if a game uses S3TC (DXT) texture compression?

    I think Unreal Tournament 1999 has it, enabled with a setting in the .ini

     
  • gho

    gho - 2025-03-15

    Maybe I wasn't clear .... the texture routines are able to process ALSO the compressed textures, in addition to the non compressed ones.

     
    • huh

      huh - 2025-03-16

      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?

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.