TxdGen
Jump to navigation
Jump to search
Current version: | 0.9.8 |
---|---|
Developed by: | Martin Turski (The_GTA) |
Supported games: | GTA III, GTA VC, GTA SA, Manhunt |
Type: | Texture Dictionary generator |
TxdGen is the RenderWare texture dictionary conversion tool. It supports every known official Rockstar Games TXD archive (PC, PS2, XBOX, PowerVR, ATITC, ...). It scans for TXD files in a source directory and converts them into a desired format into a target directory.
To run this tool you need the Visual Studio 2013 redistributable, x86 version. You can get it from here
Features
- Supports all PC TXD formats
- Supports all known raster formats (RGBA, RGB, DXTn, 1555, 565, 4444, etc)
- Outputs TXD in actually working PS2, PC and XBOX format
- Lossless conversion between formats!
- User-friendly configuration file!
- Texture compression on demand!
- Debug output on common errors
- Automatic processing of IMG archives (version 1 and 2)
- DXTn compression!
- XBOX IMG (de-)compression!
- Mipmap generation.
- black-roads fix
- GTA3 mobile TXD support
Media
- Video tutorial on how to generate PS2 textures
- Showing off 'SanAndreas Retextured 3' on PS2 hardware
- Optimizing GTA3 Textures (PC)
- Mipmapping San Andreas (PC)
Configuration settings
The conversion parameters are specified in the txdgen.ini file.
- outputDebug: boolean whether to dump texture debug into a new "debug_output/" directory
- gameRoot: directory where the TXDs, that should be converted, are located (needs trailing slash!); make sure it exists
- outputRoot: directory where the new TXDs should be put into (needs trailing slash!)
- targetVersion: can be GTA3, VC, SA or MH (self explanatory)
- targetPlatform: can be PC, PS2, XBOX, s3tc_mobile, PowerVR, ATITC or uncompressed_mobile
- clearMipmaps: removes mipmaps that shipped with textures (before doing anything else)
- generateMipmaps: decides whether mipmaps should be generated or not
- mipGenMode: hint to the mipmap generator for stylized mipmap generation
- mipGenMaxLevel: integer that denotes the maximum mipmap layer that TxdGen should generate to (main texture is layer 0)
- improveFiltering: enables linear filtering for textures
- compressTextures: decides whether textures should be compressed if they are not already (to save memory and disk space)
- compressionQuality: floating point (0..1) that toggles the quality for compression/optimization (only effective if compressTextures=true)
- palRuntimeType: decides the technique that should be used for palettization/compression; can be NATIVE or PNGQUANT
- dxtRuntimeType: chooses between NATIVE or SQUISH S3TC compression algorithms
- warningLevel: integer that toggles the warning throughput of the TXD parser (the higher the more warnings)
- ignoreSecureWarnings: boolean whether to ignore warnings that do not crash the engine
- reconstructIMGArchives: boolean which decides whether IMG archives should be reconstructed in the target directory
- fixIncompatibleRasters: if this parameter is true then TxdGen attempts to change raster parameters to prevent game engine crashes
- dxtPackedDecompression: if true, then rwtools will pack decompressed DXT texels in a close approximate raster format to prefer small size over quality
- imgArchivesCompressed: if true, then compressed IMG archives will be decompressed upon reading and files inside IMG archives will be compressed on writing (required for XBOX GTA Vice City and GTA III)
- ignoreSerializationRegions: if true, then the converter will ignore RenderWare block length fields while deserializing anything (just like Criterion's implementation)
An Example file:
[Main]
gameRoot=C:/Program Files (x86)/Rockstar Games/GTA San Andreas/
outputRoot=txdgen_out/
targetVersion=SA
targetPlatform=PS2
clearMipmaps=false
generateMipmaps=true
mipGenMode=default
mipGenMaxLevel=6
improveFiltering=true
compressTextures=true
compressionQuality=0.5
palRuntimeType=PNGQUANT
dxtRuntimeType=SQUISH
warningLevel=1
ignoreSecureWarnings=true
reconstructIMGArchives=true
fixIncompatibleRasters=true
dxtPackedDecompression=false
imgArchivesCompressed=false
ignoreSerializationRegions=true
D3DFORMAT compatibility list
Raw colors
- D3DFMT_A8R8G8B8
- D3DFMT_X8R8G8B8
- D3DFMT_R8G8B8
- D3DFMT_R5G6B5
- D3DFMT_X1R5G5B5
- D3DFMT_A1R5G5B5
- D3DFMT_A4R4G4B4
- D3DFMT_A8B8G8R8
- D3DFMT_X8B8G8R8
- D3DFMT_P8
Compressed colors
- D3DFMT_DXT1
- D3DFMT_DXT2 (no compression/decompression)
- D3DFMT_DXT3
- D3DFMT_DXT4 (only decompression)
- D3DFMT_DXT5
Credits
- Uses a fork of rwtools by aap (https://github.com/aap/rwtools)
- Uses the libimagequant library (http://pngquant.org/lib/)
- Uses the libsquish library (https://code.google.com/p/libsquish/)
- Uses the lzo library (http://www.oberhumer.com/opensource/lzo/)
- Thanks to aru from GTAForums for XBOX swizzling and unswizzling algorithms (http://gtaforums.com/topic/213907-unswizzle-tool/)
- Some parts are inspired by research from DK22Pac
- Uses the PowerVR SDK (http://www.imgtec.com/tools/powervr-tools/)
- Uses the ATI_Compress library (http://developer.amd.com/tools-and-sdks/archive/legacy-cpu-gpu-tools/ati_compress/)
The licenses (if present) should be bundled with the tool.
See also
External References
Reviews
- http://br.fenixzone.com/foro/index.php?topic=20804.0 - Review by user "Rachel Sexton"; great comparison images; mipmapping
- http://mixmods.blogspot.de/2016/02/mipmapping.html - Review by Junior_Djir"; great comparison images; mipmapping
- https://forum.revival-gaming.net/index.php?page=Thread&threadID=381607 - Review by user "Ethan_Aoki"; German/Deutsch
Shout-outs
- http://ashslowgameblog.blog.fc2.com/blog-entry-1525.html - shout-out by visionary Ashley Slow (know her mods from my MTA days)
Good examples
- http://ashslowgameblog.blog.fc2.com/blog-entry-1808.html - Ashley's advice regarding black-roads fix
- SA Mipmapped Roads (BR), GTA3 mipmapped textures (RU), GTAVC mipmapped textures (RU)
Known Issues
- Generating mipmaps for raw GTA 3 textures has improved but is not perfect yet.
- "If I view my alpha textures they look messed up in TXD Workshop!" - to workaround this issue please set
compressionQuality
to 0.5. This will activate TXD Workshop compatibility mode, so that you can still use your favourite TXD editing tool.