Scarlet and its related libraries are aiming to provide functionality to convert, export and import various types of game data. They are written in C# and based on the .NET Framework.
This project is still incomplete and work-in-progress. Functionality will change, be added or removed, and all interfaces, calling conventions, etc. should be considered subject to change.
- General
- Compilation
- Visual Studio Community 2013 (or higher)
- Scarlet: Common main library (required)
- Scarlet.IO.ImageFormats: Library for image file format conversion (requires Scarlet)
- Scarlet.IO.ContainerFormats: Library for container/archive management (requires Scarlet)
- Scarlet.IO.CompressionFormats: Library for handling compressed data (requires Scarlet)
- ScarletTestApp (ScarletConvert): Sample converter application implementation (requires all the above)
File formats that can be loaded and exported/extracted by the libraries as of this commit contain the following:
- Images
- BTGA (ex. various Lego games, 3DS)
- CTXB (various Nintendo 3DS games)
- DDS (DXTx and PVRx; ex. Skullgirls 2nd Encore, PS Vita)
- DMPBM (ex. Shin Megami Tensei: Devil Survivor Overclocked)
- GBIX (ex. K-ON! Houkago Live, PSP version)
- GXT (various PlayStation Vita games)
- KSLT (ex. Dead or Alive Xtreme 3: Venus, possibly more Koei Tecmo games)
- NMT (ex. Disgaea 4, PS Vita version, possibly more Nippon Ichi Software games)
- SHTX (ex. Danganronpa Another Episode)
- SHTXFS (ex. Danganronpa Another Episode)
- STEX (ex. Etrian Odyssey IV, Shin Megami Tensei IV, possibly more Atlus games)
- TEX (various Capcom games)
- TID (ex. Hyperdimension Neptunia ReBirth 1, PC and PS Vita versions, possibly more Idea Factory/Compile Heart/Felistella games)
- TIPS (ex. Uchuu no Stellvia, PS2 version; image-type TIPS files only)
- TMX (various Atlus games)
- TX2 (ex. Phantom Brave, PS2 version, various other Nippon Ichi Software games)
- TXF (ex. Disgaea 4, PS3 version, possibly more Nippon Ichi Software games)
- TXG (ex. Sakurasou no Pet na Kanojo, PSP version)
- XGTL (wrapper around multiple TXGs)
- CBG (wrapper around XGTL)
- XGTL (wrapper around multiple TXGs)
- TXP (ex. Z.H.P: Unlosing Ranger vs Darkdeath Evilman, Disgaea 2 PSP, Disgaea Infinite, possibly more Nippon Ichi Software games on PSP)
- VTXP (ex. Punchline, PS Vita; not the same as, nor related to TXP above)
- Containers
- FADEBABE (ex. Akiba's Trip, original PSP version, namely DATA1.DAT)
- FMDX (ex. K-ON! Houkago Live, PSP version)
- GAR v2 and v5 (ex. The Legend of Zelda: Majora's Mask 3D, Ever Oasis)
- NISPACK (various Nippon Ichi Software games)
- NSAC (ex. Disgaea 4, PS Vita version, possibly more Nippon Ichi Software games)
- PSPFS_V1 (ex. Phantom Brave, PSP version, possibly more Nippon Ichi Software games)
- Stellvia DATs (Uchuu no Stellvia, PS2 version)
- UKArc/PAC (ex. Dengeki Bunko: Fighting Climax, PS Vita version)
- ZAR v1 (ex. The Legend of Zelda: Ocarina of Time 3D)
- Compression
- DR 1/2/AE (Danganronpa 1, 2 and Another Episode, PS Vita)
- Grezzo LzS (ex. The Legend of Zelda: Majora's Mask 3D)
- GZip (generic; also ex. Dengeki Bunko: Fighting Climax, PS Vita version)
- NIS LZS (ex. Disgaea 4, PS3 and PS Vita versions)
- Nintendo DS LZSS-0x10 (generic; also ex. Shin Megami Tensei: Devil Survivor Overclocked)
Note that support for these is not 100% complete (especially Capcom TEX is lacking), as well as the unintentional bias towards NIS games.
Syntax: ScarletTestApp.exe <inputs ...> [options]
<inputs ...>
: Any number of files or directories to be converted, separated by spaces[options]
:--output | -o
: Specify output directory--keep | -k
: Do not overwrite existing output files
Example: ScarletTestApp.exe "C:\Temp\files\" "C:\Temp\testfile.gxt" "C:\Temp\testfile2.nmt" --output "C:\Temp\output\"
- PVRTC texture decompression code ported from PowerVR Graphics Native SDK, Copyright (c) Imagination Technologies Ltd.
- see \Scarlet\Drawing\Compression\PVRTC.cs and LICENSE.md
- BC7 texture decompression code ported from detex by Harm Hanemaaijer
- see \Scarlet\Drawing\Compression\BC7.cs and LICENSE.md
- Includes NetRevisionTool by Yves Goergen for injecting Git revision information
- Initial VTXP and BTGA format notes and original Danganronpa decompression code by BlackDragonHunt
- Texture swizzle logic reverse-engineering and original C implementation by FireyFly
- ZAR v1 and GAR v2 container support adapted from documentation and/or code by Twili and ShimmerFairy respectively
- Sample files, testing and moral support by Ehm