Introducing DAT Texture Wizard, a program designed to encompass, simplify, and speed up the entire Melee texture hacking process. It allows you to view, extract, and import textures from and to any file in the game! It also allows you to export/import/add/remove files or folders from your disc, or rebuild it. You can even import files larger than the originals, and perform many other disc operations not available in GCRebuilder. Advanced structural analysis of most files is also available.
Note: My PNG to-from TPL batch script also comes in the download with DTW (this script uses wimgt for image conversions, so it may produce slightly different results during conversion than DTW). You may or may not need this anymore, but basically, it's a powerful, independent TPL texture converter, which utilizes drag-and-drop, so you don't even need to open a cmd window. If you'd like to know more about it you can look in the 'Old post content' below.
Note 2: The "Manual Placements" tab is basically just the incorporation of earlier versions of this program (still useful in a few cases). An explanation of its usage can be found in the mostly-but-not-entirely-outdated guide, How to Hack Any Texture. Or, the "User Guide & Info.txt" file from DTW v2.x.
I've written my own codec for converting most TPL formats to and from PNG. If you'd like to use this in your own projects, shoot me a PM and I'll share the source code.
Thanks go out to those who led to the golden YaGCD, and all others who have researched, discovered, and documented their findings and reverse engineering.
I also want to give a special shout-out and thanks to Achilles1515 , @Michael Ashby, and Claire Miri for supporting me on Patreon! You guys are awesome.
Feedback is appreciated (as well as any bug reports). There are still a LOT of features that could be added. I'll add new functionality based on what you guys would like to see as well as how long it would take to add. Even if you see that someone else is asking for functionality that you'd like, feel free to post anyway so that I know how much demand there is for it.
That's all for now. Enjoy! ^_^
- ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ -
Download: DAT Texture Wizard - v6.1.4 (64-bit)
- ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ -
If you'd like to give back:
Or you can follow me on Patreon.
Download: DAT Texture Wizard - v6.1.4 (64-bit)
- ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ -
If you'd like to give back:
Or you can follow me on Patreon.
Note: My PNG to-from TPL batch script also comes in the download with DTW (this script uses wimgt for image conversions, so it may produce slightly different results during conversion than DTW). You may or may not need this anymore, but basically, it's a powerful, independent TPL texture converter, which utilizes drag-and-drop, so you don't even need to open a cmd window. If you'd like to know more about it you can look in the 'Old post content' below.
Note 2: The "Manual Placements" tab is basically just the incorporation of earlier versions of this program (still useful in a few cases). An explanation of its usage can be found in the mostly-but-not-entirely-outdated guide, How to Hack Any Texture. Or, the "User Guide & Info.txt" file from DTW v2.x.
I've written my own codec for converting most TPL formats to and from PNG. If you'd like to use this in your own projects, shoot me a PM and I'll share the source code.
Thanks go out to those who led to the golden YaGCD, and all others who have researched, discovered, and documented their findings and reverse engineering.
I also want to give a special shout-out and thanks to Achilles1515 , @Michael Ashby, and Claire Miri for supporting me on Patreon! You guys are awesome.
For versions beyond the latest shown here, please see the github changelist: https://github.com/DRGN-DRC/DAT-Texture-Wizard/releases
To v6.1.2 (64-bit: GitHub Release | MediaFire Mirror):
To v6.1.1 (64-bit: GitHub Release | MediaFire Mirror):
To v6.1 (64-bit):
To v6.0 (64-bit):
To 5.5 (64-bit):
* When a disc is loaded, the encoding will be automatically detected. However, since there's no indicator of a specific country/region/encoding in the opening.bnr files themselves, if you open one of those as a standalone file (one not in a disc), then you may need to toggle the encoding manually. "English/EU" is selected by default.
To 5.4 (64-bit | 32-bit):
To 5.3 (64-bit | 32-bit):
To 5.2 (64-bit | 32-bit):
To v5.1 (64-bit | 32-bit):
To v5.0.1 (64-bit | 32-bit):
To v5.0 (64-bit | 32-bit):
*The character port background colors when switching to an alt costume. Can be set manually or automatically on import.
**i.e. those with a width/height > 1024, or not a multiple of 2
***i.e. based on the converted color data. This means that you'll instantly see how the texture actually renders without having to reload the file.
Changelist (from v4.2 (x64 | x86) to 4.3 (x64 | x86)):
Changelist (from v4.1.1 (x64 | x86)):
Changelist (from v4.0):
Changelist (from v3.1):
** describes whether the palette data directly follows the image data in the file
*** the gain for disallowing transparency is better texture colors
Changelist (from v3.0):
From 2.x to 3+:
To v6.1.2 (64-bit: GitHub Release | MediaFire Mirror):
- Fixed some textures not showing up in v6.1.1
- Fixed an error that could occur when attempting to rebuild a previously rebuilt disc
- Fixed a bug preventing some textures from fully populating their Properties tab
- Flag Decoder windows now automatically update flag entry fields in Properties tab
To v6.1.1 (64-bit: GitHub Release | MediaFire Mirror):
- Fixed a small bug that could prevent saving a disc when a rebuilt file already exists
- Small speed-up to texture identification
- "ReadMe.txt" file renamed to "Program Usage.txt"
- Refactoring and code clean-up for GitHub repo creation
To v6.1 (64-bit):
- Now recognizes stage particle effect textures
- Now able to import textures with corrupted color profiles (from GIMP's 'Save color profile' option)
- Added a 'Save Disc As...' option
- Multiple structures of the same kind (particularly, sibling structures) in SA tab now show counts
- Added numbering to Structural Analysis property display of table/array structures
- Added a requested feature to export all textures across multiple files/folders in the Disc File Tree
- Improved sub-directory creation logic when exporting multiple files
- Fixed texture decoding for types 0 & 8 which have odd widths (broken just recently in v6.0)
- Fixed import for the memory card icon texture (broken just recently in v6.0)
- Fixed disc file name rebuild version incrementation for rebuilt disc back-ups
- Fixed the 'Now Scanning...' program status not going away if no textures were found in a file
- Master/Crazy Hand no longer shows the option to 'Generate CSP Trim Colors' (not supported in 20XX)
- Made changing Wrap Mode on the Properties tab more user-friendly (dropdowns instead of hex entry)
- Small fix to 'Collapse Data Space' feature (could erroneously claim 'amount' was larger than struct)
- Fixed a bug in updating single-byte hex/values in DAT files, such as a texture's 'Repeat Mode'
To v6.0 (64-bit):
- Improved texture recognition (recognizes more textures, with less false positives)
- Rewrote palette searching (also fixes replacing a paletted texture with an image of smaller size)
- Expanded support for Ef__Data.dat files (character graphical effects; ice/hit/sparks GFX, etc.)
- Improved texture decoding & file loading performance (over 40% faster!)
- Structural Analysis tab and its functionality completely rewritten:
- Now displays ALL structures within most DAT files (including stages, menu files, etc.)
- Shows known structures and attempts to identify and map unknown structures
- More info displayed per-struct, such as parents/siblings/children, struct length, etc.
- Shows basic file stats such as file size, total pointers, total structs, etc.
- Deep Dive function to show an in-depth analysis of total file composition
- Added a Structure Search feature (click on magnifing glass in the lower left or press CTRL-F)
- Added an 'Analyze Structure' button to the Disc File Tree tab for convenience
- Improved support for stage names/descriptions in 20XXHP, for versions 4.06 and up:
- Names for each set of 15 random neutrals are now dynamically determined from the disc
- New 'Rename Random Neutral Nickname' feature added to rename random neutral stage names
- More convenience folders added (i.e. folders not actually in the disc's file system)
- Added names/descriptions for more stages
- New 'Model' and 'Properties' tabs, with a few basic tools for working with models & textures
- Textures loaded in the DAT Texture Tree are now ordered by file offset by default
- Trailing black/null palette entries removed from palette data and DAT Texture Tree Palette tab
- Loading external banner files no longer unloads previously loaded DAT files and vice verca
- Added a 'Save Banner As' File option since banners are now handled separately from DATs
- The 'dumpPNGs' setting now works with all decoding pipelines (all texture/export types)
- Drastically improved speed of folder-opening functions; e.g. 'Open Last Used Directory'
- Moved the 'Adjust Texture Filters' menu selection to the top of its menu
- "Auto-Update Headers" option now applies to palette data types as well as image data types
- Root/Reference Node & RT info moved from the DAT Texture Tree tab to the Structural Analysis tab
- Fixed Dolphin file name hash generation for certain kinds of type 8, 9, and 10 (paletted) textures
- 'Copy Dolphin Hash to Clipboard' now works even if 'Export using Dolphin Naming Convention' is off
- Features to 'copy offsets to clipboard' now return all offsets when selecting multiple items
- Added another disc shortcut link, "System" (loads last disc, and goes to the System files folder)
- Palette generation upgraded (speed/performance improved); pngquant updated from v2.5.2 to v2.12.0
- Disc File Tree context menu item "View Hex" keyboard/menu shortcut changed from V to H
- Disc File Tree context menu options are now context-sensitive to the currently selected item(s)
- Added a basic renderer/viewer for collision data (Right-click on coll_data -> Render)
- Renamed the DAT Texture Tree's "Display" tab to "Image"
- When using the 'Run in Emulator' feature, Dolphin will now shut down when you close the game
- Fixed the 'Support DTW' window (forgot to include its background image with the compiled build >.<)
- Heavy refactoring (please let me know if you find any bugs!)
To 5.5 (64-bit):
- Support added for SdMenu.dat/.usd, which contain much of Melee's Kanji (Japanese alphabet) textures
- Expanded support for banner file (opening.bnr) decoding/encoding, which:
- Added support for Japanese characters (Hiragana/Katakana) in disc details
- Fixes discs that have Japanese in their disc details not loading all files in the Disc File Tree
- Fixed disc root building/rebuilding for Japanese discs
- Added an encoding selector switch on the Disc Details tab *
- Small general improvements to how the disc details texts are loaded/edited/saved
- Shift+Enter can now be used on the Disc Details tab for "Image Name" to enter line breaks
- Support added for Melee's LbMcGame/LbMcSnap files, which contain memory card save file banners & icons
- Fixed the issue of double-clicking on files/folders in the Disc File Tree's "File" column not detected
* When a disc is loaded, the encoding will be automatically detected. However, since there's no indicator of a specific country/region/encoding in the opening.bnr files themselves, if you open one of those as a standalone file (one not in a disc), then you may need to toggle the encoding manually. "English/EU" is selected by default.
To 5.4 (64-bit | 32-bit):
- Fixed erroneous file-mismatch detection messages (broke in 5.2/5.3)
- Fixed an obscure bug affecting Pokemon Stadium and a few other stage imports
- Fixed saving of higher mipmap levels when using 'Cascade Mipmap Changes'
- Added support for Dolphin 5+ to the "Run in Emulator" feature
- Added palette entry highlighting when selecting/modifying colors
- Offers to skip CSP Trim Color generation if importing many applicable files
- 'Convenience folders' (those not actually in the disc) now included when exporting
- Image Data Length Calculator updated:
- Output now shows in both hex and decimal
- Result Multiplier added; useful to get the total length of multiple textures
To 5.3 (64-bit | 32-bit):
- Larger or smaller DOLs can now be imported. (Disc auto-rebuilds upon saving)
To 5.2 (64-bit | 32-bit):
- '20XX Version' detection support added for the latest 20XXHP
- Automatic Trim Color Generation support added for the latest 20XXHP
- Slight change to how 'Disc Versions' are determined and displayed
- File replacement warning suppressed for files without string tables
- Fixed Dolphin texture hashes not working with some paletted textures
- Feature added to put a texture's Dolphin Hash file name into the clipboard
- Image dimensions validation added for imported GameCube disc banners
- Some improvements to the CCC for Yoshi
- CCC modified to skip palette headers if the texture/palette wasn't copied
- Fixed CCC when used directly from/to discs (as opposed to standalone files)
- Added alternate font color option to settings file for high-contrast themes*
*Details on these settings can be found in the ReadMe.To v5.1 (64-bit | 32-bit):
- Full support added for Mipmap textures!
- New setting: Export textures using Dolphin's file naming convention!
- Fixed _9 imports with palettes (broke in v5.0/5.0.1 only)
- Fixed a bug relating to adding new file(s) to a disc (not replacing)
- Fixed imports via Disc Import Method (broke in v5.0/5.0.1)
- Big performance increase to CMPR (type _14) texture loading
- Small performance improvement on all other texture loading
- No longer auto-switches to Disc tab when saving to disc
- Fixed CCC support for Y.Link's eyes
- All opened Root folders now add to "Open Recent" menu
- Disc Shortcuts w/ a root folder no longer animates banner twice
- Added support to the Trim Color Generator for:
Falcon's Red alts
Male/Female Wireframes
Giga Bowser
- Fixed "Auto-Generate CSP Trim Colors" setting always detected as "on"
- Improved performance (speed) of CSP Trim Color Generator
- Trim Color Generator now unbiased by "blanked" textures
- Fixed importing of files lacking string tables (broke in v5.0/5.0.1)
- Files with recently saved changes now highlight in green
- Small improvement to texture recognition
- The "Blank Texture" feature now zeros out palettes as well
- Fixed a bug in submitting individually-changed palette entries
- Support for multiple monitors added to tooltips
- Warnings for "Invalid Textures" disabled*
- Fixed alignment issue with some rebuilds using 'auto' inter-file padding
- Errors are now output to "Error Log.txt"
- Default format for texture exports can now be set in the settings.ini file
* "Invalid" textures being those with a width/height > 1024, or not a multiple of 2. A warning for the former case will probably be added later for imports. The latter case turns out to not actually be a problem for the game.To v5.0.1 (64-bit | 32-bit):
- Default CSP Trim accent color fixed (was defaulting to the wrong color)
- CSP Trim Color Generation properly clears old data for subsequent runs*
- DOL texture imports fixed (previously broken in just v5.0)
- The Disc Import Method for importing textures now supports DOL textures
- DOL Texture offsets corrected (previously accounting for a file header)
- Warning added for unsaved palette color changes if unloading DAT
- Fixed an obscure bug that could occur if using multiple import methods
*This was only an issue if you edited the same costume manually multiple times in one session. Didn't affect the automatic import mode.To v5.0 (64-bit | 32-bit):
Rewrote all disc rebuilding functionality, which now allows you to:
- Import (replace) multiple files at once. Even larger ones.
- [Optionally] Avoid rebuilding when importing smaller files
- [Optionally] Avoid rebuilding when importing some larger files
- Add new files or directories to an existing disc image
- Rename files or directories in an existing disc image
- Remove files or directories from an existing disc image
- Open a folder of files (a "Root") to build a new disc
- Specify how much padding should be between files
- Only save/rebuild a disc when you hit save (rather than on-import)
- See what is queued to save, via red highlighted files
New tab, "Disc Details"! Which includes:
- Feature to export/import game banners (from disc or standalone file)
- Features to view/modify disc titles and other disc info/descriptions
- Explanations of the various titles/descriptions and their usage
20XX CSS trim* color generation! (+'Auto-Generate Trim Colors' option)
New Tools menu, with a Color Converter and Image Data Length Calculator
Color swatches show next to certain structure values to show their color!
Color Picker tool for hex color entries! (for Ambience, Diffusion, etc.)
Color Picker also available for live editing of palette entries
Warning added in case you might be importing a file over the wrong one
When saving, warns if an ISO is too large for certain loaders
Disc [Texture] Importing Method is now much more efficient
Better Disc [Texture] Import Method error handling (no repeat messages)
Light-red highlighting for textures with nonstandard** dimensions
Added a warning for textures imported that have nonstandard** dimensions
Previews & thumbnails for imported textures now based on the DAT***
Fixed issue where some root/reference node offsets were incorrect
Root/Reference nodes now displayed in a much friendlier message window
Root/Reference nodes in SA tab now displayed in order of file structure
Some offset representations corrected to account for file headers
Improved file name parsing for image type changes on texture imports
Aspect ratio texture filter will now be preserved as originally entered
Changed CCC behavior for Kirby
Eliminated erroneous texture identifications in MnSlChr (CSS file)
Reduced erroneous texture identifications in all other files
Some program initialization optimization
Fixed the issue of ISO File Tree folders inexplicably opening/closing
New convenience feature, "Run In Emulator", to open the ISO in Dolphin
Improved palette recognition & parsing (fixes old custom costume files)
Added "Open Converted File" button to CCC tab
Option added to toggle on/off the disc convenience folders
Many structure properties updated/added or corrected
Structural Analysis tab improvements:
- DAT structural analysis now takes place before texture processing
- Some structures for matAnim_joint root nodes added
- Sibling Texture Structs added
- (^ Makes available more textures via 'Show in Structural Analysis Tab')
- "Pixel Processor Struct" added (part of Material Object structs)
- Vertex Attribute Data Structs added (part of Mesh Structs)
- LOD Struct added (part of Texture Structures)
- Lance Color Struct renamed/rebuilt as 'Texture Environment Struct'
No longer deletes hex temp files if your hex editor is still open
*The character port background colors when switching to an alt costume. Can be set manually or automatically on import.
**i.e. those with a width/height > 1024, or not a multiple of 2
***i.e. based on the converted color data. This means that you'll instantly see how the texture actually renders without having to reload the file.
Changelist (from v4.2 (x64 | x86) to 4.3 (x64 | x86)):
- Fixed alignment issue occurring with some files during ISO rebuild
- Support for number, letter, & symbol textures in the DOL
- Behavior improvements to the DAT Texture Tree's Properties tab
- Removed cases of false color structs appearing in Properties tab
- Now asks to remove 'Recent Files' from the list if they cannot be found
- Fixed issue of new Metroid Labs stage not opening (and similar cases)
- Fixed SA's "Expand All" (some specific structures wouldn't expand)
- Context Menu features added: 'Copy Offset(s) to Clipboard'
- Improved some back-end stuff for temp files & the View Hex feature
Download Mirrors:x64: Google Drive Mirror
x86 (32-bit): Google Drive Mirror
Changelist (from v4.1.1 (x64 | x86)):
- Support for 20XX 4.05 added (plus better 20XX stage file name descriptions)
- Structural Analysis (SA) tab improvements:
- Now shows all sibling Mesh Structures
- Completed proper hierarchical attachments of Child Bones
- Fixed issue of properties not refreshing in GUI with modified values
- Mipmap info added to Image Data Header structures
- Numbering added to Objects
- "Show in DAT Texture Tree" now works for all structs under 'Object'
- Partial stage file support
- Replaced 'Hide...' feature with 'Highlight...' feature in context menu
- 'View Hex' feature added to Disc File Tree (very useful for quick checks)
- Improved texture recognition (eliminates rendering of most of those non-textures)
- Mipmap identification added! (light blue highlighting on mipmapped textures)
Changelist (from v4.1):- Fixed an obscure bug where files opened via right-click context menu or
drag-and-drop onto the exe file would have problems importing a _8, _9,
or _10 texture that doesn't have a palette
- Fixed properties saving for Lance Color Struct (LCS) on the Properties tab
- Fixed LCS offset display on Properties tab (was displaying color struct offset)
- Fixed GUI updating for texture width/height in the DAT Texture Tree
Changelist (from v4.0):
- Fixed issue causing incorrect Color Struct offset/data on the Properties tab
- Added the Lance Color Struct offset/data to the Properties tab
- Added 'Child Bones' to the Structural Analysis tab
Changelist (from v3.1):
- Now allows file imports of larger sizes! (rebuilds ISO automatically for you)
- Rewrote the core of the Disc File Tree generation (which now loads instantly)
- Sort feature added to Disc File Tree (click on File header to sort by offset)
- Modified how disc system files are displayed (now renamed and ordered by offset)
- Fixed extraction -and the GUI's file size reporting- of the FST (Game.toc)
- Wrote brand new image encoding/decoding to mostly replace wimgt*, which:
- Completely preserves palettes on export and import (no re-creation)
- Offers superior palette generation for non-paletted textures that need one
- Fixed alpha channel rendering of _2 type textures
- Fixed alpha channel rendering of _3 type textures
- Loads images faster
- More intelligently determines palette encoding
- Added Palette tab background color toggle (to better see partial transparencies)
- Moved the palette header & data offset displays to the Palette tab
- Added 'Trails Image Data?' info to palette tab**
- Palette types can now be changed in DAT files to allow/disallow transparency***
- Re-enabled a check to warn you if a texture's palette is too big
- Added the 'Structural Analysis' tab (experimental) to view/edit structures
- Renamed 'Texture Structure' tab to 'Properties' and added color struct editing
- Fixed an issue where it would incorrectly think an image data header was changed
- Menu option 'Save to New DAT/USD File' renamed to 'Save As....'
- After using 'Save As...', filepath changed to new file for subsequent changes
- Fixed a bug that caused incorrect display of RGB5A3 palette colors with alpha
- Fixed a bug where the palette type for imported TPLs wasn't read properly
- Added 'Disc Shortcuts' on the Disc File Tree tab for quicker access to things
- Fixed instances where the 'Open Last Used Directory' feature would fail
- Font size now adapts to user's system's font size setting (tested on Win7)
- Increasing/decreasing font size is now an option in the settings file
- Added keyboard navigation to the menus (used via ALT key)
- Added the Disc Operations menu, so those commands are available via keyboard
- Added 'CTRL-S' keyboard shortcut for saving changes
- Fixed cases where the Character Color Converter would fail with Falcon & Ganon
- Fixed "PNG to-from TPL.bat" (had a broken link in the last version)
- Reduced the program by ~23 MB (it's about half its old size)
- Other smaller stuff that would just make this list too long....
* wimgt still used for _14 (CMPR) type textures** describes whether the palette data directly follows the image data in the file
*** the gain for disallowing transparency is better texture colors
Changelist (from v3.0):
- Character Color Converter added!
- Column sorting for DAT Texture Tree tab (click on column headers to sort)
- ISO File Tree support for 20XX 4.0 Beta
- Character files in the ISO File Tree organized into individual folders
- "Structure Offsets" tab renamed to "Texture Structure"
- Scrollbar for Texture Structure tab (appears when needed. yes, like Batman)
- Now shows Texture and Material structure offsets in Texture Structure tab
- Texture properties are now shown and editable in the Texture Structure tab
- Added framework for adding other structures & properties in the future
- Program now moves to the front when you've dragged something onto it
- Improved other drag-'n'-drop handling (mostly backend stuff)
- Fixed an issue that prevented PAL ISOs from being opened
- File naming for exported audio files has been changed slightly*
- Text entries (e.g. for image data headers) turn red when changed
- Fixed the counter incrementing of 'Processing File __....' for bulk imports
*Previously, certain files in the "audio" folder would have "(jp)" added to their name upon exporting, in order to differentiate them from files of the same name within the "us" subfolder. Now, instead, files within the "us" folder have "(us)" added to their name upon exporting. The same is done for the other language folders in the PAL version.From 2.x to 3+:
- Too many to count from DTW 1|2. 3+ is essentially a rebuild, besides core functionality
- 3.0 is the first version to actually display the textures contained within files within the program
- You can find the changelog for everything prior to version 3 in the "The Old Tools" spoiler below
This is completely optional but can be very useful if you work with the TPL format directly.
This functionality demoed above for the converter script can also be used with DTW; so you can right-click on a file, 'Send-to DTW', and the program will open, and then it will open the file you sent to it. This can be a handy alternative to drag-and-dropping a file onto the program or script icons.
To do this, simply download and extract the zip to wherever you'd like to keep these. Then open up the "Installers" folder found inside, and double-click on the script titled "Add 'PNG to-from TPL' to the context menu.bat" or "Add 'DAT Texture Wizard' to the context menu.bat" to run them. The option to send files to DTW or the converter should now be in your context menu. If you move where you keep the program or the converter script, then the links in the context menu will break. To fix them, just re-run the installer. You can also remove the converter from the context menu by running the uninstaller, which is also found in the Installers folder.
This functionality demoed above for the converter script can also be used with DTW; so you can right-click on a file, 'Send-to DTW', and the program will open, and then it will open the file you sent to it. This can be a handy alternative to drag-and-dropping a file onto the program or script icons.
To do this, simply download and extract the zip to wherever you'd like to keep these. Then open up the "Installers" folder found inside, and double-click on the script titled "Add 'PNG to-from TPL' to the context menu.bat" or "Add 'DAT Texture Wizard' to the context menu.bat" to run them. The option to send files to DTW or the converter should now be in your context menu. If you move where you keep the program or the converter script, then the links in the context menu will break. To fix them, just re-run the installer. You can also remove the converter from the context menu by running the uninstaller, which is also found in the Installers folder.
Hi! I'd like to share with you how you can speed up and automate some of the processes for texture hacking and working with TPLs. Because of the uncommon image format (being exclusive to Nintendo), the original method of texture hacking Melee (using TexConv.exe, TCS files, and a hex editor) is a bit involved. And although not super difficult or complex, it can still be really tedious, and certainly confusing to newcomers. So I came up with a few methods that are better. Not only that, but now we have a way to work with PNGs directly (which is my format of choice).
I have two things for you guys:
And both of these provide drag-and-drop functionality, so they’re pretty much amazing.
This is a script I wrote around something I found within a set of utilities called Wimm's SZS Tools. Originally, Wimm's tool is used via manual entry into the command line for a single image (including requiring input for the file, file format and image type options). My script uses this tool, but gives you the ability to simply select the files you want to convert, and drag-and-drop them all onto the script at once (or even better, just right click on the files, and send them to the converter, as seen in the installer spoiler below). For each file, it will look at the file format and image type from the file to determine what to do with it. If it’s a TPL, the script converts it to a PNG, and if it’s a PNG, it will convert it to a TPL, while choosing the correct encoding based on the image type*. For the whole process, an interface doesn’t even open; instead, a few moments later you’ll simply have your converted files in the same folder as the originals.
*It determines the image type (and therefore what encoding to use) by looking at the file name. So it will work fine as long as you kept the standard naming convention. e.g. “txt_0038_14.tga” or “GALE01_d7f59321_0.png”. Although you don’t need the entire default filename; all you really need to keep is the last underscore and number at the end, before the file extension.
Your images and the script don’t need to be in the same folder like with TexConv; they can be anywhere, even on different drives. In fact, you can even use it from Window's right-click context menu (as seen in the "Installing to your context menu's 'Send to' submenu" spoiler), making it easier than ever to convert your images!
Version 2.1:
This is a program I wrote that allows you to quickly overwrite any number of PNG or TPL files into any DAT, all at once. No more opening each file into a hex editor, seeking offsets, and manually copying binary.
If you are unsure how to use this: usage instructions are included in the download, and again, a full guide, covering the whole texture hacking process (using these tools), is available here.
Version 2.1:
Version 1.0:
[Disclaimer: I realize this may still be a little confusing to those who haven’t gotten into texture hacking too much yet. You can find a full guide on how to use these programs in the thread How to Hack Any Texture.]
I have two things for you guys:
1] A script to convert any number of PNGs to TPL format, and vice-versa.
2] A program to take any number of TPLs or PNGs, and overwrite them into any DAT file.
And both of these provide drag-and-drop functionality, so they’re pretty much amazing.
1] PNG to-from TPL.bat - v2.2 (Google download | MediaFire mirror)
This is a script I wrote around something I found within a set of utilities called Wimm's SZS Tools. Originally, Wimm's tool is used via manual entry into the command line for a single image (including requiring input for the file, file format and image type options). My script uses this tool, but gives you the ability to simply select the files you want to convert, and drag-and-drop them all onto the script at once (or even better, just right click on the files, and send them to the converter, as seen in the installer spoiler below). For each file, it will look at the file format and image type from the file to determine what to do with it. If it’s a TPL, the script converts it to a PNG, and if it’s a PNG, it will convert it to a TPL, while choosing the correct encoding based on the image type*. For the whole process, an interface doesn’t even open; instead, a few moments later you’ll simply have your converted files in the same folder as the originals.
*It determines the image type (and therefore what encoding to use) by looking at the file name. So it will work fine as long as you kept the standard naming convention. e.g. “txt_0038_14.tga” or “GALE01_d7f59321_0.png”. Although you don’t need the entire default filename; all you really need to keep is the last underscore and number at the end, before the file extension.
Your images and the script don’t need to be in the same folder like with TexConv; they can be anywhere, even on different drives. In fact, you can even use it from Window's right-click context menu (as seen in the "Installing to your context menu's 'Send to' submenu" spoiler), making it easier than ever to convert your images!
Version 2.2:
- Made the output more readable, for those that set it to not exit upon completion]
- Removed the unnecessary files from the Wiimms Files folder (now named "wiimms")
- Dropped the download/program size from 14.4 MB down to 4.2 MB
- Most of Wiimms Tools are no longer included (all but wimgt) or installable, but are no longer needed
Version 2.1:
- Added support for paletted textures (_8, _9, _10/_a). (All types now supported.)
- Auto-detects whether Wiimms Tools are installed
- Added installer to the Windows right-click context menu
Version 1.1:- Fixed support for _14 (a.k.a. _e) textures
- Added an error message for cases where an image type is not found
Version 1.0:- First public release
2] DAT Texture Wizard.exe - v2.2 (download)
This is a program I wrote that allows you to quickly overwrite any number of PNG or TPL files into any DAT, all at once. No more opening each file into a hex editor, seeking offsets, and manually copying binary.
If you are unsure how to use this: usage instructions are included in the download, and again, a full guide, covering the whole texture hacking process (using these tools), is available here.
- Added a "Placements files" folder for auto-loading Placements files & offsets
- Button to automatically create a placements file based on what's currently given to the program
- Warnings and other help/notice messages now clear upon selecting new files.
- Added a more specific warning if a file is missing its image type
- Added red line highlighting in cases where an image has the wrong formatting
- "Scan folder structure" will now work with folder names that contain only numbers
- Small updates to the user guide
- Pro-tips always show (originally intentionally only showed when you didn't load files via drag-and-drop)
Version 2.1:
- Fixed a bug relating to replacing the transparency and shadow colors for some CSP palettes
- Added a few more Pro-tips
Version 2.0:- Changed the name of the program from TPL Overwriter to DAT Texture Wizard
- Added support for textures with palettes (all types now supported)
- Can select PNG images as well as TPLs for overwrites (includes automatic conversion)
- Automatically hexes magenta and lime green palette colors to transparent and 'shadow', respectively
- Line highlighting for successful/failed overwrites
- Ability to scan for offsets at any time, including AFTER all files have already been selected
- Remembers last used search directory (per session)
- Drag-and-drop file opening feature now sets the default search directory
- Ability to overwrite a texture into multiple locations (e.g. '..._3.png --> 123ab, 456df')
- Added true support for .usd files
- Now will only keep a backup of the dat/usd file if a change is actually made from the original
- Will accept filepaths in double quotes, and offsets may optionally include the preceding "0x"
- Can now also be installed to the Windows right-click context menu (super handy)
- Removed the 'Clear' button (since you can easily do the same thing with 'Ctrl + A, Delete' anyway)
- Bunch of code optimization
- Added an improved user guide in the download, in the 'User Guide & Info.txt' file
- PNG to-from TPL.bat now included in the download (since it's only a 6 KB addition)
Version 1.0:
- First public release
Feedback is appreciated (as well as any bug reports). There are still a LOT of features that could be added. I'll add new functionality based on what you guys would like to see as well as how long it would take to add. Even if you see that someone else is asking for functionality that you'd like, feel free to post anyway so that I know how much demand there is for it.
That's all for now. Enjoy! ^_^
Attachments
-
101.3 KB Views: 21,909
Last edited: