Skip to content

emarron/ffxiv-tex-converter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Required python libraries

pip install kaitaistruct
pip install numpy
pip install tqdm

run.py

ffxiv-tex-converter, FFXIV TEX FILE CONVERTER

options:
  -h, --help            show this help message and exit
  --directory -D, -d -D
                        Initial directory to be processed.
  --command -C, -c -C   dds-to-tex, tex-to-dds
  --parallel, --no-parallel, -p
                        multicore processing
  --multiplier -M, -m -M
                        if using multicore processing, job multiplier per core. default = 5
  • Accepts nested directory structures.
  • Supports BGRA, BGRX, BC1 (DXT1), BC2 (DXT3), BC3 (DXT5), and BC7, A8, L8, BGRA4.

Usage examples:

given directory "dog" has dds files I want to convert to FFXIV tex files.

Run this command: python run.py -d dog -c dds-to-tex

I want to run it faster: python run.py -d dog -c dds-to-tex -p -m 10

It will output to "dog_tex" directory.

given directory "cat" has FFXIV tex files I want to convert to DDS files.

Run this command: python run.py -d cat -c tex-to-dds

I want to run it faster: python run.py -d cat -c tex-to-dds -p -m 10

It will output to "cat_dds" directory.

Why should I use this over TexTools?

  • TexTools breaks mipmaps. Either by falsely calculating the offset, or just erasing the end of the file.
  • TexTools doesn't support writing many files at once.
  • Textools can't interact with most game textures. TexTools only interacts with character and housing textures.

When should I use TexTools Texture Importer?

  • If mipmaps don't bother you, go ahead.
  • If you want to write directly to the game files. Please don't.
  • If you are working on a file, and you want to immediately see results USE PENUMBRA IMPORT.

Penumbra Import

  • Penumbra also has a BC7/BC3/BGRA8 import
  • Use this if you don't need to batch convert or use an esoteric file type.

I personally still use TexTools for a lot of stuff. Please don't perpetuate cultish behavior around mod tools. It's weird.

parsers

dds.ksy

  • kaitai struct to read dds header, body. body reading is only rudimentary to reach EOF.
  • Read Microsoft DDS_Header Docs for more info.

dds.py

  • kaitai generated parser of dds for python. I did have to modify some Enum to be IntFlag instead, as the compiler did not do that for me. Just an FYI if you re-compile the dds.ksy for python you might have to redo that.
  • Read Microsoft DDS_Header Docs for more info.

tex.ksy

  • kaitai struct to read tex header, body. body reading is only rudimentary to reach EOF.
  • See Penumbra/TexTools/Lumina source code for more info.

tex.py

*same as the dds.py info really.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published