Difference between revisions of "TxdGen"
Jump to navigation
Jump to search
m (TXD Workshop compatibility notice) |
(preparing for 0.9.8 release) |
||
Line 2: | Line 2: | ||
{{ToolBox | {{ToolBox | ||
| name = TxdGen | | name = TxdGen | ||
− | | version = 0.9 | + | | version = 0.9.8 |
| patrol = no | | patrol = no | ||
| author = Martin Turski (The_GTA) | | author = Martin Turski (The_GTA) | ||
Line 9: | Line 9: | ||
| image = [[Image:Txdgen_overview.png|250px]] | | image = [[Image:Txdgen_overview.png|250px]] | ||
}} | }} | ||
− | '''TxdGen''' is the RenderWare [[texture dictionary]] conversion tool. It supports | + | '''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. |
==Features== | ==Features== | ||
Line 24: | Line 24: | ||
* Mipmap generation. | * Mipmap generation. | ||
* ''black-roads fix'' | * ''black-roads fix'' | ||
+ | * GTA3 mobile TXD support | ||
==Media== | ==Media== | ||
Line 37: | Line 38: | ||
*'''outputRoot:''' directory where the new TXDs should be put into (needs trailing slash!) | *'''outputRoot:''' directory where the new TXDs should be put into (needs trailing slash!) | ||
*'''targetVersion:''' can be GTA3, VC or SA ('''self explanatory''') | *'''targetVersion:''' can be GTA3, VC or SA ('''self explanatory''') | ||
− | *'''targetPlatform:''' can be PC, PS2 or | + | *'''targetPlatform:''' can be PC, PS2, XBOX, s3tc_mobile, PowerVR, ATITC or uncompressed_mobile |
*'''clearMipmaps:''' removes mipmaps that shipped with textures (before doing anything else) | *'''clearMipmaps:''' removes mipmaps that shipped with textures (before doing anything else) | ||
*'''generateMipmaps:''' decides whether mipmaps should be generated or not | *'''generateMipmaps:''' decides whether mipmaps should be generated or not | ||
*'''mipGenMode:''' hint to the mipmap generator for stylized mipmap generation | *'''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) | *'''mipGenMaxLevel:''' integer that denotes the maximum mipmap layer that TxdGen should generate to (main texture is layer 0) | ||
− | |||
*'''improveFiltering:''' enables linear filtering for textures | *'''improveFiltering:''' enables linear filtering for textures | ||
*'''compressTextures:''' decides whether textures should be '''compressed''' if they are not already (to save memory and disk space) | *'''compressTextures:''' decides whether textures should be '''compressed''' if they are not already (to save memory and disk space) | ||
Line 54: | Line 54: | ||
*'''dxtPackedDecompression:''' if true, then rwtools will pack decompressed DXT texels in a close approximate raster format to prefer small size over quality | *'''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) | *'''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: | An Example file: | ||
Line 66: | Line 67: | ||
mipGenMode=default | mipGenMode=default | ||
mipGenMaxLevel=6 | mipGenMaxLevel=6 | ||
− | |||
improveFiltering=true | improveFiltering=true | ||
compressTextures=true | compressTextures=true | ||
Line 78: | Line 78: | ||
dxtPackedDecompression=false | dxtPackedDecompression=false | ||
imgArchivesCompressed=false | imgArchivesCompressed=false | ||
+ | ignoreSerializationRegions=true | ||
</source> | </source> | ||
Line 106: | Line 107: | ||
* Thanks to {{U|aru}} from '''GTAForums''' for XBOX swizzling and unswizzling algorithms (http://gtaforums.com/topic/213907-unswizzle-tool/) | * Thanks to {{U|aru}} from '''GTAForums''' for XBOX swizzling and unswizzling algorithms (http://gtaforums.com/topic/213907-unswizzle-tool/) | ||
* Some parts are inspired by research from {{U|DK22Pac}} | * Some parts are inspired by research from {{U|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. | The licenses (if present) should be bundled with the tool. | ||
Line 115: | Line 118: | ||
==Known Issues== | ==Known Issues== | ||
− | * Generating mipmaps for raw | + | * 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 <code>compressionQuality</code> to 0.5. This will activate TXD Workshop compatibility mode, so that you can still use your favourite TXD editing tool. | * "If I view my alpha textures they look messed up in TXD Workshop!" - to '''workaround''' this issue please set <code>compressionQuality</code> to 0.5. This will activate TXD Workshop compatibility mode, so that you can still use your favourite TXD editing tool. | ||
Revision as of 06:56, 30 March 2015
Current version: | 0.9.8 |
---|---|
Developed by: | Martin Turski (The_GTA) |
Supported games: | GTA III, GTA VC, GTA SA |
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.
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 or SA (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
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.