No description
Find a file
DanielSvoboda 0d33f4ead1
Updater Fix/Improvements (#606)
* Updater Fix/Improvements

In SetAccessRule():
A call to the Directory.SetAccessControl method was added to apply the changes made to the DirectorySecurity object. Additionally, the function does not handle possible exceptions that may occur during code execution. This version of the function attempts to set the access rule for the specified directory and, if an error occurs during the process, prints an error message on the screen. This helps to identify and fix possible problems that may occur during code execution.

In Install():
The function checks if the destination directory exists before attempting to delete it. Additionally, a destDir variable was created to store the path of the 'destination directory' and a destFile variable to store the path of the 'destination file'. This makes the code a little more readable.

In Application_Idle():
A MessageBox.Show was included to display a dialog box with the message "Updates are available. Do you want to update now?" and two buttons: "Yes" and "No". If the user clicks on the "Yes" button, the UpdateNotifcationClick method is called to start the update process. Otherwise, the dialog box is closed and no action is taken.

The dialog box will only be shown once for each available update, as the UsePrompt variable is set to false after the dialog box is shown for the first time.

when trying to update, updater.exe crashed and presented the following error, as shown in the print below:
unhandled exception: Unable to create a file that already exists.

* Updater Fix/Improvements
2023-05-26 17:07:09 -04:00
BrawlboxHelper "Fix" for some Sparks of Hope textures (#548) 2022-11-29 18:32:03 -05:00
docs Add doc folder 2019-03-23 13:46:50 -04:00
File_Format_Library Add latest code 2023-05-21 13:17:25 -04:00
packages Fix for csv parsing 2020-05-03 18:44:06 -04:00
Switch_Toolbox_Library Fix compression header LZ77 11 wii (#608) 2023-05-25 20:05:37 -04:00
Toolbox Updater Fix/Improvements (#606) 2023-05-26 17:07:09 -04:00
Updater Updater Fix/Improvements (#606) 2023-05-26 17:07:09 -04:00
.gitignore Update retro formats to support Metroid Prime Remastered 2023-02-16 17:25:43 -05:00
appveyor.yml Update appveyor.yml 2023-04-17 17:08:12 -04:00
File_Format_Library.zip RARC : Add rewritten code ported from reborn project 2021-11-28 14:28:18 -05:00
GL_EditorFramework.dll Update one more time 2020-03-08 19:16:13 -04:00
GL_EditorFramework.dll.config Update one more time 2020-03-08 19:16:13 -04:00
GL_EditorFramework.dll.zip Update appveyor reference 2020-03-08 19:15:28 -04:00
LICENSE Create LICENSE 2019-07-27 10:55:56 -04:00
README.md Update README.md 2023-04-22 13:50:19 -04:00
Toolbox.sln Update sln version 2020-05-09 20:06:09 -04:00

Switch-Toolbox

A tool to edit many formats of Nintendo Switch, 3DS and Wii U.

Download

https://github.com/KillzXGaming/Switch-Toolbox/releases

Keep in mind this tool is still very experimental. If something breaks from a commit, you can download manually from here. Just select a commit, go to artifacts tab and download the zip. Also be sure to report anything that breaks to issues here on github.

Discord

https://discord.gg/eyvGXWP

Support

If you'd like to support me, you can donate!

Features

This tool currently features:

  • BFRES
    • Fully supports Wii U and Switch
    • Model importing (DAE, FBX, OBJ, and CSV)
    • Material editing (Render info, texture mapping, parameters, etc.)
    • Material copying
    • 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 animations vary)
    • Can export and import fully rigged models with bone support
    • Can convert gif files to texture pattern animations, very WIP atm

Can edit formats:

  • BFRES
  • BNTX
  • BFLYT
  • BFLAN
  • NUTEXB
  • XTX
  • GTX
  • SARC
  • BARS
  • KCL
  • BFLIM
  • GFPAK
  • BEA
  • AAMP (Switch, 3DS and Wii U)
  • BYAML/BYML (Switch, 3DS and Wii U)
  • PTCL (Switch, 3DS and Wii U)
  • TMPK
  • PAK / IGA (Crash Bandicoot / Crash Team Racing)
  • IGZ Textures (Crash Bandicoot / Crash Team Racing)
  • BFFNT (Textures only)

Can preview:

  • BCRES
    • Models, materials, and textures.
  • BFSHA
    • Can view options, samplers, attributes, and uniform blocks.
  • BNSH
    • Can extract shader vertex and fragment shaders from variations/programs.
  • SHARCFB and SHARC
    • Basic preview of some shader program data.
    • Can edit both v1 and v2 AAMP (Wii U and Switch)
  • EFC
    • Can preview effect tables and link PTCL.
  • NUT
    • Can preview NTWU, NTP3, and NTWD variants. Editing will be implemented soon.
  • MSBT
    • Very basic previewing.
  • MP3, OGG, IDSP, HPS, WAV, BFWAV, BFSTM, BCWAV, BCWAV
    • Can listen to audio and convert between certain formats. Thanks to VGAudio and CSCore
  • 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
  • ME01 and SA01 archives
  • Luigi's Mansion 2: Dark Moon (archives, models, and textures)
  • TPL
  • TXE
  • BTI
  • G1T
  • CMB (OoT3D, MM3D, LM3DS)
  • CTXB (OoT3D, MM3D, LM3DS)
  • GAR (OoT3D, MM3D, LM3DS)
  • ZSI (OoT3D, MM3D)
  • BinGZ (Hyrule Warriors)
  • PAC (Sonic Forces)
  • GameCube ISOs (file system)

Tutorials

https://github.com/KillzXGaming/Switch-Toolbox/wiki

Issues or Requests

https://github.com/KillzXGaming/Switch-Toolbox/issues

Building

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.

In the event that the tool cannot compile, check references. All the libraries used are stored in Switch-Toolbox/Lib folder.

Credits

  • 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.
  • Assimp devs for their massive asset library!
  • Wexos (helped figure out a few things, i.e. format list to assign each attribute)
  • JuPaHe64 for the base 3D renderer.
  • 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.
  • 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.
  • MelonSpeedruns for Switch Toolbox logo.
  • BrawlBox team for brawl libraries used for BRRES parsing.
  • Sage of Mirrors for SuperBMDLib.
  • Ambrosia for BTI and TXE support.
  • Kuriimu for some IO and file parsing help.
  • Skyth and Radfordhound for PAC documentation.
  • 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
  • mvit and Rei for help with gfpak hash strings and also research for formats.
  • QuickBMS for some compression code ported (LZ77 WII)

Resources

Documentation (File Formats)

Libraries

Helpful Tools

License in Switch_Toolbox\Lib\Licenses

Please note if you do not want your library used or if i'm missing credits!