2019-03-23 18:05:47 +01:00
# Switch-Toolbox
2019-03-25 02:05:26 +01:00
A tool to edit many formats of Nintendo Switch and Wii U.
2019-03-23 18:05:47 +01:00
2019-03-23 18:17:47 +01:00
## Changelog 1.0 Experimental / BETA
https://docs.google.com/spreadsheets/d/16JLhGBJL5U5hpKWspL-pzYIaRL23X1YKEmia6pbsGbc/edit#gid=1386834576
2019-03-23 18:05:47 +01:00
2019-03-29 02:05:08 +01:00
## Releases
https://github.com/KillzXGaming/Switch-Toolbox/releases
2019-03-25 01:30:18 +01:00
2019-03-23 18:05:47 +01:00
## Features
This tool currently features:
- BFRES
2019-03-25 02:05:26 +01:00
- Fully supports Wii U and Switch.
2019-03-23 18:05:47 +01:00
- Model importing (dae, fbx, obj, and csv)
- Material editing (Render info, texture mapping, parameters, etc)
2019-03-23 18:17:47 +01:00
- Material copying
2019-03-23 18:05:47 +01:00
- Animation and model sub section can be exported/imported.
- Can delete, add, replace individual objects from an fmdl.
- Can create new sub sections and data
- Can preview skeletal, SRT, param, texture pattern, and bone visual animations. (Param ones will vary)
2019-03-23 18:17:47 +01:00
- Can export and import fully rigged models with bone support.
- Can convert gif files to texture pattern animations. Very WIP atm.
2019-05-03 22:04:14 +02:00
Can Edit Formats
- BFRES
2019-03-23 18:05:47 +01:00
- BNTX
2019-05-03 22:04:14 +02:00
- NUTEXB
2019-04-30 23:03:53 +02:00
- XTX
2019-06-30 02:21:39 +02:00
- GTX
2019-03-23 18:05:47 +01:00
- SARC
- BARS
- KCL
2019-04-25 03:26:05 +02:00
- BFLIM
2019-03-23 18:05:47 +01:00
- GFPAK
- BEA
2019-05-03 22:04:14 +02:00
- AAMP (Wii U and Switch)
2019-05-09 00:18:13 +02:00
- BYAML/BYML (Wii U, 3DS, and Switch)
- PTCL (Wii U, 3DS, and Switch)
2019-05-03 22:04:14 +02:00
- TMPK
Can Preview
2019-07-06 18:26:55 +02:00
- BFFNT (Textures only)
2019-05-12 20:56:47 +02:00
- BCRES
- Models, materials, and textures.
2019-03-23 18:05:47 +01:00
- BFSHA
- Can view options, samplers, attributes, and uniform blocks.
- BNSH
- Can extract shader vertex and fragment shaders from variations/programs
2019-03-23 18:17:47 +01:00
- SHARCFB and SHARC
- Basic preview of some shader program data.
2019-05-03 21:58:03 +02:00
- Can edit both v1 and v2 AAMP (Wii U and Switch)
2019-04-25 03:25:45 +02:00
- EFC
- Can preview effect tables and link PTCL.
- NUT
- Can preview NTWU, NTP3, and NTWD variants. Editng will be soon
- MSBT
- Very basic previewing.
2019-03-23 18:17:47 +01:00
- MP3, OGG, IDSP, HPS, WAV, BFWAV, BFSTM, BCWAV, BCWAV
2019-03-23 18:18:12 +01:00
- Can listen to audio and convert between certain formats. Thanks to VGAudio and CSCore
2019-06-30 02:21:39 +02:00
- NARC
- SP2 (Team Sonic Racing)
- GFMDL
- TEX (3DS)
- NUSHDB (Switch Namco Shaders)
- SDF (Snow Drop Engine)
- NCA
- NSP
- IStorage
- NXARC
- LZARC
- IGA .pak
2019-07-06 18:26:55 +02:00
- RARC
- GMX (TPHD Models)
2019-06-30 02:21:39 +02:00
- MKAGPDX Model .bin files
2019-07-06 18:26:55 +02:00
- MKAGPDX Archive .pac files
- ME01 and SA01 archives.
2019-06-30 02:21:39 +02:00
2019-06-30 02:24:57 +02:00
## Tutorials
https://github.com/KillzXGaming/Switch-Toolbox/wiki
## Issues or Requests
https://github.com/KillzXGaming/Switch-Toolbox/issues
2019-03-23 18:05:47 +01:00
## Building
To build make sure you have Visual Studio installed (I use 2017, older versions may not work) and open the .sln. Then build the solution as release. It should compile properly on the latest.
In the event that the tool cannot compile, check references. All the libraries are stored in Switch-Toolbox/Lib folder.
2019-06-30 02:24:57 +02:00
## Credits
2019-05-12 20:56:47 +02:00
- Smash Forge Devs (SMG, Ploaj, jam1garner, smb123w64gb, etc) for some code ported over. Specifically animation stuff and some rendering.
2019-03-23 18:05:47 +01:00
- Assimp devs for their massive asset library!
- Wexos (helped figure out a few things, ie format list to assign each attribute)
- JuPaHe64 for the base 3D renderer.
- Every File Explorer devs (Gericom) for Yaz0 stuff
- Exelix for Byaml, Sarc and KCL library
- Syroot for helpful IO extensions and libraries
2019-05-12 20:56:47 +02:00
- GDKChan for PICA shaders stuff used with bcres, structs for bcres, and some DDS decode methods
2019-05-23 01:53:47 +02:00
- 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
2019-03-23 18:05:47 +01:00
- MelonSpeedruns for logo.
2019-05-24 21:15:35 +02:00
- BrawlBox team for brawl libaries used for brres parsing.
2019-07-11 23:25:25 +02:00
- Sage of Mirrors for SuperBMDLib.
2019-03-23 18:05:47 +01:00
2019-06-30 02:24:57 +02:00
## Resources
2019-03-23 18:05:47 +01:00
- [Treeview Icons by icons8 ](https://icons8.com/ )
- Smash Forge (Currently placeholders)
2019-06-30 02:24:57 +02:00
## Documentation (File Formats)
2019-06-30 02:21:39 +02:00
- 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
2019-06-30 02:24:57 +02:00
## Libraries
2019-07-11 23:25:25 +02:00
- [SuperBMDLib] (https://github.com/Sage-of-Mirrors/SuperBMD)
2019-05-24 21:15:35 +02:00
- [Brawl Lib (for brres section conversion) ](https://github.com/libertyernie/brawltools )
2019-03-23 18:05:47 +01:00
- [Exelix (Sarc, kcl, and byml libraries) ](https://github.com/exelix11/EditorCore/tree/master/FileFormatPlugins )
- [ZstdNet (Compression) ](https://github.com/skbkontur/ZstdNet )
- [Be.HexEditor by Bernhard Elbl ](https://sourceforge.net/projects/hexbox/ )
- GL EditorFramwork by jupahe64
- [WeifenLuo for docking suite ](http://dockpanelsuite.com/ )
- [SF Graphics by SMG (Experimental ](https://github.com/ScanMountGoat/SFGraphics ) (currently just a placeholder for shader workflow and some useful things)
- [Audio & MIDI library ](https://github.com/naudio/NAudio )
- [VGAudio ](https://github.com/Thealexbarney/VGAudio )
2019-03-23 18:17:47 +01:00
- [CSCore ](https://github.com/filoe/cscore )
2019-03-23 18:05:47 +01:00
- [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 )
- [Syroot Bfres Library (Wii U) ](https://gitlab.com/Syroot/NintenTools.Bfres )
2019-06-30 02:21:39 +02:00
- [LibHac ](https://github.com/Thealexbarney/LibHac )
2019-03-23 18:05:47 +01:00
License
in Switch_Toolbox\Lib\Licenses
Please note if you do not want your library used or if i'm missing credits!