Switch-Toolbox/README.md

168 lines
6.4 KiB
Markdown
Raw Normal View History

2019-10-11 18:50:08 +00:00
# Switch-Toolbox
2019-11-18 07:14:41 +00:00
A tool to edit many formats of Nintendo Switch, 3DS and Wii U.
2019-10-11 18:50:08 +00:00
2020-03-22 00:32:32 +00:00
# Download
https://github.com/KillzXGaming/Switch-Toolbox/releases/tag/EXPERIMENTAL_LATEST
2019-10-11 18:50:08 +00:00
## Discord
https://discord.gg/eyvGXWP
## Features
This tool currently features:
- BFRES
2019-11-18 07:14:41 +00:00
- Fully supports Wii U and Switch
- Model importing (DAE, FBX, OBJ, and CSV)
- Material editing (Render info, texture mapping, parameters, etc.)
2019-10-11 18:50:08 +00:00
- Material copying
2019-11-18 07:14:41 +00:00
- Animation and model sub section can be exported / imported
- Can delete, add, replace individual objects from an FMDL
2019-10-11 18:50:08 +00:00
- Can create new sub sections and data
2019-11-18 07:14:41 +00:00
- Can preview skeletal, SRT, param, texture pattern, and bone visual animations. (param animations vary)
- Can export and import fully rigged models with bone support
- Can convert gif files to texture pattern animations, very WIP atm
2019-10-11 18:50:08 +00:00
2019-11-18 07:14:41 +00:00
Can edit formats:
2019-10-11 18:50:08 +00:00
- BFRES
- BNTX
2019-10-23 22:04:08 +00:00
- BFLYT
- BFLAN
2019-10-11 18:50:08 +00:00
- NUTEXB
- XTX
- GTX
- SARC
- BARS
- KCL
- BFLIM
- GFPAK
- BEA
2019-11-18 07:14:41 +00:00
- AAMP (Switch, 3DS and Wii U)
- BYAML/BYML (Switch, 3DS and Wii U)
- PTCL (Switch, 3DS and Wii U)
2019-10-11 18:50:08 +00:00
- TMPK
2019-11-18 07:14:41 +00:00
- PAK / IGA (Crash Bandicoot / Crash Team Racing)
- IGZ Textures (Crash Bandicoot / Crash Team Racing)
2019-10-11 18:50:08 +00:00
- BFFNT (Textures only)
2019-11-18 07:14:41 +00:00
Can preview:
2019-10-11 18:50:08 +00:00
- BCRES
2019-11-18 07:14:41 +00:00
* Models, materials, and textures.
2019-10-11 18:50:08 +00:00
- BFSHA
2019-11-18 07:14:41 +00:00
* Can view options, samplers, attributes, and uniform blocks.
2019-10-11 18:50:08 +00:00
- BNSH
2019-11-18 07:14:41 +00:00
* Can extract shader vertex and fragment shaders from variations/programs.
2019-10-11 18:50:08 +00:00
- SHARCFB and SHARC
2019-11-18 07:14:41 +00:00
* Basic preview of some shader program data.
* Can edit both v1 and v2 AAMP (Wii U and Switch)
2019-10-11 18:50:08 +00:00
- EFC
2019-11-18 07:14:41 +00:00
* Can preview effect tables and link PTCL.
2019-10-11 18:50:08 +00:00
- NUT
2019-11-18 07:14:41 +00:00
* Can preview NTWU, NTP3, and NTWD variants. Editing will be implemented soon.
2019-10-11 18:50:08 +00:00
- MSBT
2019-11-18 07:14:41 +00:00
* Very basic previewing.
2019-10-11 18:50:08 +00:00
- MP3, OGG, IDSP, HPS, WAV, BFWAV, BFSTM, BCWAV, BCWAV
2019-11-18 07:14:41 +00:00
* Can listen to audio and convert between certain formats. Thanks to VGAudio and CSCore
2019-10-11 18:50:08 +00:00
- NARC
- SP2 (Team Sonic Racing)
- GFMDL
- TEX (3DS)
- NUSHDB (Switch Namco Shaders)
- SDF (Snow Drop Engine)
- NCA
- NSP
- IStorage
- NXARC
- LZARC
- IGA .pak
- RARC
- GMX (TPHD Models)
- MKAGPDX Model .bin files
- MKAGPDX Archive .pac files
2019-11-18 07:14:41 +00:00
- ME01 and SA01 archives
- Luigi's Mansion 2: Dark Moon (archives, models, and textures)
2019-10-11 18:50:08 +00:00
- TPL
- TXE
- BTI
- G1T
2019-11-18 07:14:41 +00:00
- CMB (OoT3D, MM3D, LM3DS)
- CTXB (OoT3D, MM3D, LM3DS)
- GAR (OoT3D, MM3D, LM3DS)
- ZSI (OoT3D, MM3D)
2019-10-11 18:50:08 +00:00
- BinGZ (Hyrule Warriors)
- PAC (Sonic Forces)
2019-11-18 07:14:41 +00:00
- GameCube ISOs (file system)
2019-10-11 18:50:08 +00:00
## Tutorials
https://github.com/KillzXGaming/Switch-Toolbox/wiki
## Issues or Requests
https://github.com/KillzXGaming/Switch-Toolbox/issues
## Building
2019-11-18 07:14:41 +00:00
To build make sure you have Visual Studio installed (I use 2017, older versions may not work) and open the solution (.sln), then build the solution as release. It should compile properly on the latest.
2019-10-11 18:50:08 +00:00
2019-11-18 07:14:41 +00:00
In the event that the tool cannot compile, check references. All the libraries used are stored in Switch-Toolbox/Lib folder.
2019-10-11 18:50:08 +00:00
## Credits
2020-02-08 19:06:01 +00:00
- Smash Forge Devs (SMG, Ploaj, jam1garner, smb123w64gb, etc.) for some code ported over, specifically animation stuff, ETC1 encoder and some rendering.
- Ploaj for a base on the DAE writer.
2019-10-11 18:50:08 +00:00
- Assimp devs for their massive asset library!
2019-11-18 07:14:41 +00:00
- Wexos (helped figure out a few things, i.e. format list to assign each attribute)
2019-10-11 18:50:08 +00:00
- JuPaHe64 for the base 3D renderer.
2019-11-18 07:14:41 +00:00
- Every File Explorer devs (Gericom) for Yaz0 and bitmap font stuff.
- exelix for BYAML, SARC and KCL library.
- Syroot for helpful IO extensions and libraries.
2020-01-15 01:55:24 +00:00
- GDKChan for SPICA library (used for BCH), PICA shaders stuff used with BCRES, structs for BCRES, and some DDS decode methods.
- AboodXD for some foundation stuff with exelix's SARC library, Wii U (GPU7) and Switch (Tegra X1) textures swizzling, reading/converting uncompressed types for DDS, and documentation for GTX, XTX, and BNTX. Library for Yaz0 made by AboodXD and helped port it to the tool.
2019-11-18 07:14:41 +00:00
- MelonSpeedruns for Switch Toolbox logo.
- BrawlBox team for brawl libraries used for BRRES parsing.
2019-10-11 18:50:08 +00:00
- Sage of Mirrors for SuperBMDLib.
- Ambrosia for BTI and TXE support.
2019-11-18 07:14:41 +00:00
- Kuriimu for some IO and file parsing help.
- Skyth and Radfordhound for PAC documentation.
2019-11-21 14:35:26 +00:00
- Ac_K for ASTC decoder c# port from Ryujinx.
- pkNX and kwsch for Fnv hashing and useful pkmn code/structure references.
- Dragonation for useful code on the structure for some flatbuffers in pokemon switch
2020-03-05 01:38:50 +00:00
- mvit and Rei for help with gfpak hash strings and also research for formats.
2019-10-11 18:50:08 +00:00
## Resources
2019-11-18 07:14:41 +00:00
- [TreeView Icons by icons8](https://icons8.com/)
2019-10-11 18:50:08 +00:00
- Smash Forge (Currently placeholders)
## Documentation (File Formats)
- http://mk8.tockdom.com/wiki/
- https://wiki.oatmealdome.me/Category:File_formats
- https://github.com/Kinnay/Nintendo-File-Formats/wiki
- http://Avsys.xyz/wiki/Category:File_Formats
## Libraries
2019-11-18 07:14:41 +00:00
- [SuperBMDLib](https://github.com/Sage-of-Mirrors/SuperBMD)
- [BrawlLib (for BRRES section conversion)](https://github.com/libertyernie/brawltools)
- [exelix (SARC, KCL, and BYML libraries)](https://github.com/exelix11/EditorCore/tree/master/FileFormatPlugins)
- [ZstdNet (compression)](https://github.com/skbkontur/ZstdNet)
2019-10-11 18:50:08 +00:00
- [Be.HexEditor by Bernhard Elbl](https://sourceforge.net/projects/hexbox/)
2019-11-18 07:14:41 +00:00
- [GL Editor Framework by jupahe64](https://github.com/jupahe64/GL_EditorFramework)
2019-10-11 18:50:08 +00:00
- [WeifenLuo for docking suite](http://dockpanelsuite.com/)
2019-11-18 07:14:41 +00:00
- [SF Graphics by SMG (experimental)](https://github.com/ScanMountGoat/SFGraphics) (currently just a placeholder for shader workflow and some useful things)
- [NAudio (Audio & MIDI Library)](https://github.com/naudio/NAudio)
2019-10-11 18:50:08 +00:00
- [VGAudio](https://github.com/Thealexbarney/VGAudio)
- [CSCore](https://github.com/filoe/cscore)
- [Assimp](https://bitbucket.org/Starnick/assimpnet/src/master/)
- [OpenTK](https://github.com/opentk/opentk)
- [BezelEngineArchive Library](https://github.com/KillzXGaming/BEA-Library-Editor)
- [Syroot BinaryData](https://gitlab.com/Syroot/BinaryData)
- [Syroot Maths](https://gitlab.com/Syroot/Maths)
2019-11-18 07:14:41 +00:00
- [Syroot BFRES Library (Wii U)](https://gitlab.com/Syroot/NintenTools.Bfres)
2019-10-11 18:50:08 +00:00
- [LibHac](https://github.com/Thealexbarney/LibHac)
2019-11-21 14:35:26 +00:00
- [ASTC Decoder](https://github.com/Ryujinx/Ryujinx/blob/b2b736abc2569ab5d8199da666aef8d8394844a0/Ryujinx.Graphics/Graphics3d/Texture/AstcDecoder.cs)
2019-10-11 18:50:08 +00:00
## Helpful Tools
2019-11-18 07:14:41 +00:00
- [Kuriimu](https://github.com/IcySon55/Kuriimu)
2019-10-11 18:50:08 +00:00
License
in Switch_Toolbox\Lib\Licenses
Please note if you do not want your library used or if i'm missing credits!