🔧 Middleware & SDKs¶
Game development middleware, libraries, and SDK-provided formats used across multiple titles and platforms.
Fast3d/F3dex (N64)¶
SGI's microcode format for defining 3D graphics on the Nintendo 64. Used in Super Mario 64, Paper Mario 64, Banjo-Kazooie, and many other N64 titles.
- n64-fast3d-engine - N64 Fast3D engine implementation.
- noclip.website (Banjo) - F3DEX implementation for Banjo-Kazooie viewer.
- MeltyTool (F3dzex2) - F3DZEX2 format support.
- F3DEX2Decoder - Decoder for F3DEX2 display lists.
- F3D2F3DEX - Converter between F3D variants.
- Hack64 Fast3D Commands - Documentation for Fast3D display list commands.
- CloudModding F3DZEX2 - Documentation for F3DZEX2 format.
- fast64 - Blender plugin for exporting F3D display lists for N64 decompilation projects (Super Mario 64, Ocarina of Time).
- pigment64 - Rust library for converting N64 image data (Intensity, IA, CI, RGBA formats) between native and PNG formats, used by N64 decompilation projects.
- F3DEX3 - Modern, heavily rewritten F3D-family microcode for N64 romhacks; rewrites vertex/lighting code from scratch for higher performance, adds new visual features (simultaneous vertex colors + normals, ambient occlusion), and improves accuracy over F3DEX2.
- RT64 - N64 graphics renderer implementing the RDP/F3D microcode family with enhancements (widescreen, higher resolutions, ray tracing) for emulators and native ports.
- n64rawgfx - Exports and imports uncompressed ("raw") N64 graphics (RGBA, CI, IA, I formats) to/from BMP files, e.g. for Super Mario 64 texture editing.
Havok¶
Physics and animation middleware used in hundreds of games across all platforms.
- Havok IO (Blender) - Havok tool for Blender (replaces legacy HavokMax 3ds Max plugin). Blender add-on that imports
.hkx,.hkt,.hka,.igz, and.pakfiles from Havok XML and binary archives. - Capabilities: builds armatures and keyframed actions from animation data, constructs static meshes from geometry blocks, and unwraps PAK/IGZ containers.
- HavokNoesis - Noesis plugin for Havok format.
- MapEditor - Realtime map editor mod for Venice Unleashed (Battlefield 3).
- HavokPreviewToolsBatch2018 - Batch conversion script for Havok Preview Tool 2018 that can automatically convert Havok HKX/HKT files' format.
- hkxlib - JAXB parser for editing TAGXML formatted Havok files.
- hkxEdit - Visual editor for Havok 2010.2 files based on hkxlib, written in Java.
- TagTools - Tools for editing Havok 2015/2016 binary tag files. Includes TagTools converter and CollisionConverter for converting rigid bodies to static compound shapes with type and flag tags.
- FF16-Model-Importer - Tool to export and import Final Fantasy XVI .mdl file binaries as .gltf or .dae.
- SSE-Fallout-4-Animation-Converter - Tool to convert animations to PS4 format for Skyrim Special Edition and Fallout 4.
- hkxcmd (aerisarn fork) - Tool for working with HKX (Havok animation format) used in Elder Scrolls and Fallout series.
- hkxcmd - Command-line tool for parsing, converting, and modifying Havok HKX animation format files.
- Blender HKX - Blender addon for importing and exporting Havok HKX animation format.
- HavokLib - C++ library for reading, converting, and upgrading/downgrading Havok physics packfiles across versions (5.0.0-2017).
- havok2fbx - Converts Havok files to Autodesk FBX.
JSYSTEM (GameCube/Wii)¶
Nintendo's in-house middleware used to develop GameCube and Wii era games. Used in Pikmin, Pikmin 2, Luigi's Mansion, Super Mario Sunshine, Super Mario Galaxy, Wind Waker, Twilight Princess, Mario Kart: Double Dash, and many other first-party GameCube/Wii titles.
- gclib - Python implementations of several GameCube file formats for ROM hacking.
- Amnoid GC Resources - Documentation and resources for GameCube file formats.
- JStudio (LordNed) - Classes for Wind Waker J* tools.
- J3D-Model-Viewer - Viewer for J3D models.
- Hack.io - Libraries for J3D Era formats.
- noclip.website (JSYSTEM) - In-browser viewer for JSYSTEM formats.
- MeltyTool (JSystem) - JSystem format viewer/exporter.
- SuperBMD - BMD/BDL model converter for GameCube/Wii games.
- p2setoolkit - Toolkit for disassembling/reassembling Pikmin 2 BMS sequenced music files.
- Rain336/JSystem - Rust libraries for parsing Nintendo Wii/GameCube file formats.
- Formats: BCSV, RARC, U8.
- Luma's Workshop (BMD) - BMD/BDL format documentation.
- Wiki.CloudModding (JSYSTEM) - JSYSTEM format documentation.
- blojob - J2DGraph BLO format tool.
- pyblo2-gui - GUI for working with BLO files.
- j3dview - J3DGraph viewer.
- blemd - Blender addon for J3D models.
- J3DUltra - Advanced J3D model tool.
- Jekyll - J3D animation tool.
- RiiStudio - Modern editor for J3D models.
- Tockdom BMD/BDL - BMD/BDL format documentation.
- ibnktool - JAudio instrument bank tool.
- chutools - Collection of tools for JAudio audio assets in Nintendo games, an updated version of XAYRGA's JAMTools.
- Formats: JASE, JBST, IBNK (v1/v2), BMS (disassembler).
- pyjmap - JMap format library.
- jpc_conv - JParticle converter.
- pikmin2-stb - JStudio format tool.
- Yaz0Decoder - Yaz0 compression decoder.
- rarc-rs - Rust library for RARC archives.
- WArchive-Tools - Tools for working with RARC archives.
- RARClib.py - Python library for RARC format.
- yaz0-decode-encode - Yaz0 compression tool.
- BTITool - BTI texture tool.
- GCFontTool - GameCube font tool.
- libbti - BTI texture library.
- RarcPack - RARC archive packer.
- pyjkernel - Python library for JKernel formats.
- WiiExplorer - Wii filesystem explorer.
- ARCTool - Python script to extract RARC, Yaz0, and U8 archives.
- atirut.bdl - JSYSTEM BMD/BDL model importer for Godot Engine.
- wsystool - WAVESYSTEM modification toolkit for JSYSTEM games.
- jampacked - BAA unpacker for JSYSTEM games.
- aurora - Source-level GameCube & Wii GX graphics compatibility layer, used by decompilation and static-recompilation projects to run original GC/Wii rendering code on modern backends (Dawn/WebGPU).
- BMDCubed - Converts skinned COLLADA (.dae) files to the Binary Model Data (BMD) format used by first-party Nintendo GameCube and Wii games.
- j3d-animation-editor - Editor for a variety of J3D animation files.
SEAD (Nintendo EAD/EPD Engine)¶
Decompilation of Nintendo EAD/EPD's internal engine and standard library, used across many first-party Wii U and Switch titles including New Super Mario Bros. U.
- sead - Decompilation of the sead engine/library developed by Nintendo EAD (now EPD), present in New Super Mario Bros. U and other titles. Includes the
aglgraphics library and annw_ptclwrapper for NintendoWareForCafe's Eft particle library.
Mii (RFL/FFL Face Library)¶
Nintendo's Mii avatar creation/rendering libraries, used across the Wii, Wii U, 3DS, and Switch.
- RFL - Decompilation of the Revolution Face Library (RFL), Nintendo's Mii avatar library for the Wii.
- ffl - Decompilation of FFL (Face Library), the successor to RFL used for Mii avatars on Wii U, 3DS, and Switch.
- FFL-Testing - Mii rendering sample and renderer server built on the FFL decompilation. Fork of aboood40091/FFL-Testing with added rendering server functionality.
Katana Engine (Koei Tecmo)¶
Koei Tecmo's in-house engine and asset formats (G1M models, G1T texture archives, G1A/G2A skeletal animations), used across Team Ninja, Omega Force, and Gust titles as well as several external collaborations.
- Project-G1M - Native C++ Noesis plugin for G1M model, G1T texture, and G1A/G2A skeletal animation files. Used across Nioh, Dead or Alive 5/6, the Warriors series (Dynasty/Samurai Warriors, Hyrule Warriors, Fire Emblem Warriors), Atelier, Toukiden, Fire Emblem: Three Houses, and Persona 5 Scramble. Supersedes the same author's Python-based fmt_g1m.
M3G (Mobile 3D Graphics API)¶
Java Mobile 3D Graphics API (JSR-184) used by many J2ME mobile games in the 2000s.
- m3gcore - Core engine implementation (in C) of the M3G (JSR-184) API, originally developed at Nokia Research Center and later released as open source through the Symbian Foundation.
NETLizard (J2ME Game Engine)¶
- netlizard - Parser utility and Qt4 GUI tool for NETLizard 3D J2ME game resource files (models, textures, fonts, text, sprites), reversed from decompiled Java source.
- NETLizard_idTech4 - Converter from NETLizard 3D J2ME game resource files to idTech4 format.
MikuMikuDance¶
Freeware animation program and its associated model and motion formats (.pmx, .pmd, .vmd).
- MikuMikuLibrary - Library for working with MikuMikuDance formats.
- MMD Tools - Blender add-on for importing/exporting MikuMikuDance assets. Supports physics, bone constraints, and motion/pose data.
- MMD Tools Append - Companion extension for MMD Tools that provides material/scene controls, lighting presets, and Rigify helpers.
RenderWare¶
Cross-platform 3D engine and middleware developed by Criterion Games. Powering the Grand Theft Auto trilogy (III, Vice City, San San Andreas), Burnout series, and many other titles.
- librw - Re-implementation of the RenderWare Graphics engine.
- DragonFF - Blender add-on for RenderWare
.dffmodels,.txdtextures,.colcollisions, and.iplmap data. - Blender-3D-RW-Anm-plugin - Import and export RenderWare animations (.anm) into Blender 3D.
- rwio - RenderWare import/export plugin for 3ds Max.
- rwd3d9 - D3D9 extension of RenderWare for GTA III and Vice City.
- RenderWareFile - Library for working with RenderWare binary files.
- RenderWareNET - Library to work with RenderWare 3 formats.
- RWIDE2YTYP - RenderWare .IDE to Five .YTYP and NY .IDE converter.
- rwfury - Python library for reading and writing RenderWare formats.
- Games: GTA III, Vice City, San Andreas
- Formats: DFF (3D models), TXD (textures), IMG (archives), COL (collision), IFP (animation)
- g3DTZ - GAME.DTZ archive extraction utility for GTA: Liberty City Stories and Vice City Stories, supporting both the PSP and PS2 versions.
- GTARW-BlenderMapExport - Blender IPL/IDE map exporter for GTA San Andreas and Vice City, companion to the DragonFF add-on.
CRI¶
CRI Middleware formats (CPK archives, ADX audio, etc.) used in many Japanese games across multiple platforms.
- CriPakTools - Tools for extracting and repacking CRI CPK archives used in many Japanese games.
- CriPakTools (GUI) - GUI version of CriPakTools with additional features including Shift-JIS support, 2GB+ CPK support for PS3, batch mode, compression support, and improved CPK header handling.
- Universal-CPK-Mod-Installer - Universal installer for CPK mod files.
- CriFsV2Lib - Library for working with CRI FileSystem V2 archives.
- AfsLib - Simple, relatively fast library for reading and writing CRIWare AFS archives.
- AfsBatch - Batch AFS packer. Packs each subdirectory in a given directory into an AFS file of the same name.
- CriCodecs - Python frontend for CRI codec tools.
- SonicAudioTools - Toolset for modifying CRIWARE file formats.
- Features: ACB Editor, ACB Finder (link AWB to ACB), ACB Injector, CPK Unpacker.
- Formats: .acb, .awb, .cpk, .adx, .adx2, .csb.
- hca - Efficient, high-quality decoder for CRI's HCA (ADX2) audio format used by many CRIWARE-based games.
- HCADecoder - Original decoder for CRI's HCA (ADX2) audio format, the canonical reference implementation other HCA tools are based on.
- GoldWave_HcaFile - HCA/ACB playback and export plugin for the GoldWave audio editor.
- UsmToolkit - Converts CRI USM video files into user-friendly formats, using ffmpeg and vgmstream. See also UsmToolkitHandler, a companion tool that speeds up the conversion process.
PSB (Persistent Serialized Binary)¶
Serialized data/archive format used by many Japanese visual novel and mobile game engines (M2/Emote, CatSystem2, and others).
- psbfile - Decompiler and rebuilder for the galgame PSB file format.
XNA¶
Microsoft XNA Framework model format used in various Xbox 360 and PC games.
- blender_xna - Blender import plugin for XNA model formats.
- FNA - Accuracy-focused reimplementation of the XNA4 framework for modern platforms, reading original .xnb content files; widely used to port XNA-based games (Terraria, Bastion, Fez, and others).
Sappy (GBA Audio)¶
SDK-provided formats for the Game Boy Advance sound engine. Used in Pokémon Gen III and many other GBA titles.
- gba-mus-ripper - GBA music ripper.
- SapPy - Python-based GBA sound tool.
- agbplay - Music player and music ripper for GBA.
- sappy - GBA sound tool.
- Sappy (Touched) - Fork with additional features.
- shinen-gax-python - Python tools for Shin'en Multimedia's GAX Sound Engine used in Game Boy Advance games. Includes conversion, unpacking, waveform dumping, and song rendering tools. Also supports NAX Sound Engine format.
- gsfopt - GSF (GBA Sound Format) optimizer tool. Optimizes GSF sets by removing unused code/data, converts minigsfs/gsflibs to single GSF files, and includes timing functionality for auto-tagging.
- saptapper - Automated GSF ripper for Game Boy Advance games using the Sappy driver. Extracts music from GBA ROMs automatically.
- deadbeef_GSFdecoder - GSF decoder plugin for DeaDBeeF media player. Enables playback of GSF (GBA Sound Format) files in DeaDBeeF, based on viogsf/VBA-M.
- engine-software-gba-tools - Tools for interacting with music data in GBA games that use the Engine Software (developer) replayer.
RAD Game Tools¶
Middleware provider (Bink video, Granny 3D, Miles Sound System) used in hundreds of games across all platforms.
- Knit - Fully managed C# reader for Granny 2 files used in many games.
- GR2Toolkit - Toolkit for working with Granny 3D (GR2) model format files.
- Granny Converter Library - C++ library for converting Granny2 (.gr2) models and animations to FBX format.
- opengr2 - Open source Granny2 (.gr2) input/output library and tools, with accompanying file format documentation.
- opengr2-rs - Open source Rust parser for Granny2 (.gr2) files.
- opengr2-bevy - Bevy engine file loader for Granny2 (.gr2) files, built on opengr2-rs.
- libbink - GPL-licensed RAD Bink 1 video encoder/decoder reimplementation.
Nintendo SDKs & Hardware¶
Formats and tools generic to Nintendo consoles or SDKs.
Switch¶
- nxdumptool - Generates XCI, NSP, HFS0, ExeFS, and RomFS dumps from Nintendo Switch gamecards and installed titles.
- HACGUI - A comprehensive interface for extracting Nintendo Switch contents, deriving keys, and mounting filesystems (NAND, RomFS, Save).
- nstool - General purpose tool to read and extract Nintendo Switch file formats (NSO, NRO, NCA, etc.).
- TegraRcmSmash - C++ reimplementation of fusee-launcher for Nintendo Switch RCM payloads.
- hactool - Tool to view information about, decrypt, and extract Nintendo Switch file formats including NCA, XCI, PFS0, HFS0, RomFS, ExeFS, save data, and more.
- XCI-Explorer - Tool for viewing contents of Nintendo Switch XCI and NSP files. Features include viewing metadata, exploring partitions, checking NCA hashes, extracting NCA, and modifying certificates.
- LegacySwitchLibraries - Switch file format libraries for Switch Toolbox and other programs.
- exefs_patches - ExeFS patching tool for Nintendo Switch.
- switch-reversing - Reverse engineering resources for Nintendo Switch.
- nxtik - Library and tool for parsing Nintendo Switch .tik (ticket) files.
- NxFileViewer - GUI viewer for the contents of Nintendo Switch container files.
- nsz - Homebrew-compatible NSP/XCI compressor and decompressor for Nintendo Switch game dumps.
- switch-libpulsar - Switch homebrew library to load, parse, and play sounds from BFSAR (binary sound archive) files and related audio file formats.
- hac2l - Modern rewrite of hactool for viewing, decrypting, and extracting Nintendo Switch file formats, especially NCA (Nintendo Content Archive).
- nut - Multi-purpose utility to organize, manage, and install Nintendo Switch NSP, NSZ, XCI and XCZ files, with USB/network install serving for Tinfoil.
- goldbricks - Homebrew Nintendo Switch client for installing NSP packages via USB, GDrive or a nut server.
- nxo-parser - Rust parsers for Nintendo Switch executable formats (NSO/NRO).
- SimpleModManager - Homebrew mod manager for the Nintendo Switch (Atmosphere CFW), organizing LayeredFS mod overlay folders per game title ID.
- NX-Shell - Multi-purpose file manager homebrew for the Nintendo Switch, browsing and previewing images, audio, and archives on the filesystem.
- Goldleaf - Multi-purpose homebrew tool for the Nintendo Switch, browsing/installing NSP and NCA titles and inspecting the filesystem.
iQue Player¶
- iQuePlayer-BootROM - Matching decompilation of the iQue Player (Chinese N64 variant) Boot ROM.
- iQuePlayer-SecureKernel - Reverse engineering of the iQue Player Secure Kernel (SK).
- iQuePlayer-SystemApp - Reverse engineering of the iQue Player System App (SA).
- iQueTool - File manipulator for iQue Player (神游机) file formats.
Wii U¶
- WiiUTools - Collection of Python utilities for working with Wii U file formats including IPK packages, RPX executables, SARC archives, and texture editing (TexHaxU/TexHaxU2).
- wfslib - WFS (WiiU File System) library and tools.
- Cafe-Shader-Studio - Shader editor and viewer for Wii U games.
- GTX-Extractor - Wii U GX2 texture extraction tool. Converts GTX texture files to DDS format for use in modding and asset extraction.
- noclip.website (Wii U Transfer Tool) - In-browser viewer for the Wii U Transfer Tool's scenes, reading the app's NW4R/BRRES assets.
- WiiUZip - Archive manager for Wii U filetypes.
- wiiu-things - Scripts and notes documenting the Wii U FST (filesystem table) format layout.
- nuspacker - Packs files into an installable Wii U content format (NUS package).
- nusserver - Custom Nintendo Update Server (NUS) implementation, companion to nuspacker/nustool.
- wfs-tools - Command-line tools for the Wii U WFS filesystem, built on wfslib. See also wfs-tools-web, a web-based version powered by WebAssembly.
- fuse-wiiu - FUSE filesystem for extracting data from Wii U titles in various formats.
- wiiuqt - Qt-based Wii U NAND tools, built alongside koolkdev's wfs-tools.
- wudump - Dumps raw images from a Wii U game disc. See also disc2app, a fork that extracts decrypted .app/.h3/.tmd/.cert/.tik content instead of a raw dump.
3DS¶
- Project_CTR - A collection of custom Nintendo 3DS tools.
- ctrtool - Read/extract 3DS file formats (CXI, CFA, CCI, CIA).
- makerom - Create 3DS file formats.
- RomFS-Builder - Program to convert a folder in Windows into a 3DS RomFS binary. For use with makerom.
- ctpktool - Tool for exporting/importing CTPK texture package files used in Nintendo 3DS games.
- otptool - Tool for Nintendo OTP (One-Time Programmable) files.
- ctpktool - Tool for working with CTPK texture package files.
- 3dstool - All-in-one tool for extracting and creating 3DS file formats.
- Formats: CIA, CCI, NCCH, NCSD.
- GodMode9 - Full access file browser and manager for Nintendo 3DS handling game file formats and system files.
- NDecrypt - Encryption/decryption utility for Nintendo cartridge images, supporting Nintendo DS, DSi, 3DS, and New 3DS cartridge formats.
- bchtool - Tool for exporting and importing BCH model files used in Nintendo 3DS games.
- txobtool - Tool for exporting and importing CGFX graphics files used in Nintendo 3DS games.
- 3dsconv - Python script converting Nintendo 3DS CCI (.cci/.3ds) cart images to the CIA format, with support for decrypted, NCCH-encrypted, and zerokey-encrypted images.
- pyctr - Python library for reading Nintendo 3DS file formats (NCCH, ExeFS, RomFS, CIA, and more), used by several other 3DS tools.
- custom-install - Installs a CIA title directly to an SD card for the Nintendo 3DS without needing to run an installer on-console.
- rebuild-title-database - Script to rebuild the contents of a Nintendo 3DS title.db Title Database, working alongside save3ds_fuse.
- save-data-copy-tool - Copies Nintendo 3DS save data between gamecard and digital versions of the same game.
- 3DS-rom-tools - Tools and guides for working with Nintendo 3DS game/application formats (.3ds, .cci, .app, .cxi, .cfa, .cia).
- cmd-gen - Experimental script to generate CMD files for Nintendo 3DS SD titles.
- search-3ds - Searches the contents of encrypted/decrypted files used on the Nintendo 3DS system.
- faketik - Generates and installs fake Nintendo 3DS ticket (.tik) files to make missing titles re-appear.
- restore-overwritten-secureinfo - Restores a Nintendo 3DS console's SecureInfo_A/B file from inspect.log data.
- 3ds-bannertool - Tool for creating Nintendo 3DS banners; fork of carstene1ns/3ds-bannertool adding Windows Unicode fixes and a CMake build system.
- gen-title-info-entry - Experimental script to generate the Title Info Entry structure used in a Nintendo 3DS title.db.
- layeredFS - LayeredFS mod for OSX/Linux/UNIX, modified to work from a decompressed code.bin instead of exefs.bin.
- dumptik - Dumps all ticket (.tik) files from a Nintendo 3DS console.
- firmswap - Python implementation of the hardmod downgrade for Nintendo 3DS, working directly with FIRM partition data.
- save-crypto-finder - Determines which titles a collection of encrypted Nintendo 3DS save files belong to, using boot9 and movable.sed.
- videoinject - Tool for injecting/creating Nintendo 3DS moflex video files.
- save3ds - Extract/import/FUSE tool for the Nintendo 3DS common save format (DISA/DIFF), covering save data, extdata, and the title database. Upstream of ihaveamac's save3ds fork.
- 3ds-save-tool - Tools for parsing and extracting files from Nintendo 3DS save (DISA) and extdata (DIFF) containers.
- HomeMenuEditor3DS - Tool for editing the Nintendo 3DS Home Menu layout database, moving/organizing/renaming titles and folders.
- rofs_dumper - Dumps very early Nintendo 3DS ROFS containers.
- png2bclim - Converter between PNG and the Nintendo BCLIM texture format.
- bclimtool - Tool for decoding and encoding the Nintendo BCLIM texture format.
- 3dsconv-c - C port of ihaveamac's 3dsconv, converting Nintendo 3DS CCI cart images to CIA format.
- splashtool - Generates Nintendo 3DS splash screen files in a custom format, with support for compression and common pixel formats.
- Lasagna - LayeredFS patch manager for Luma3DS, organizing romfs/exefs mod overlay folder structures.
- bclyt-stuff - Research and tools for the Nintendo BCLYT layout format, used across 3DS, Wii U, and Switch UI layouts.
- Checkpoint - Fast and simple homebrew save management framework for 3DS and Switch.
- crotools - Collection of tools for the Nintendo 3DS CRO/CRR shared-library binary format.
- 3ds-FUSE - FUSE module for mounting and browsing 3DS-related file formats.
- eshop-analysis - Python script to analyze and parse Nintendo 3DS eShop title-list data.
- Anemone3DS - Theme and splashscreen manager for the Nintendo 3DS, handling BCSTM audio and theme/splash archive formats.
- 3dscrypto-tools - Nintendo 3DS crypto tools: decrypt NCCH, CDN titles/tickets, save images, SpotPass/BOSS containers, and New3DS FIRM ARM9 sections.
- ctrcdnfetch - Downloads title content from the Nintendo CDN for the 3DS without requiring a console, working around post-11.8 server-side checks.
- CECTool - Proof-of-concept tool for injecting data into the 3DS's CEC (StreetPass) message format.
- braindump - Early homebrew tool for dumping 3DS game cartridges and eShop titles. Archived, but has no already-listed direct successor for this specific niche.
- 3DS-Font - Extracts and recreates Nintendo 3DS shared BCFNT font files, for use in the Citra emulator or homebrew projects.
- Ohana3DS-Rebirth - Tool to view, extract, and replace models, textures, and animations from decrypted 3DS ROMs (BCH, CGFX).
- BcmdlImporter - Tool to import DAE, FBX, and OBJ models into Nintendo 3DS BCMDL (CGFX-based) format without external libraries or toolkits.
GameCube & Wii¶
- gc-c-kit - Toolkit for compiling C code using devkitppc and injecting it into a GameCube Executable (DOL). Can be adapted to different GC games.
- WiiTools - Tools for Wii reverse engineering and function identification to help hacking Wii games.
- libansnd - Audio library for Wii and GameCube homebrew with support for ADPCM audio decoding and arbitrary resampling. Supports up to 48 simultaneous voices with hardware ADPCM decoding.
- gc-gcm - Tool for GameCube GCM file format.
- LibGCM - Library for GameCube memory card formats.
- dolreader - Reader for GameCube/Wii DOL executable format.
- gci-bt - GameCube GCI file tool with Bluetooth support.
- Chihuahua - Tool for GameCube/Wii file formats.
- cgrr-gamecube - Tools for GameCube file formats.
- nod - Rust library for reading and writing Nintendo Optical Disc images (GameCube and Wii). Includes nodtool CLI for extraction, conversion, and verification.
- Formats: ISO (GCM), WIA/RVZ, WBFS, CISO, NFS (Wii U VC), GCZ, TGC.
- GCReLink - Tool for unpacking and repacking GameCube and Wii relocatable modules (REL files).
- Dolphin - GameCube and Wii emulator that parses and implements support for GameCube/Wii disc and asset file formats.
- noclip.website (Wii Banners) - Renderer for NW4R LYT UI layouts, used to play back animated Wii channel banners from
banner.binarchives. Parses BRLYT layouts, BRLAN animations, and NW4R bitmap fonts. - FunKii - Command-line downloader for Wii content from the Nintendo CDN, packaging titles into installable WAD files (including DLC handling).
- ida-wii-loaders - IDA Pro loader plugins for the GameCube/Wii REL (relocatable module) and DOL executable file formats.
- DTMText - Converts Dolphin emulator DTM tool-assisted-speedrun movie files to and from a human-editable text format, to support diffing/version-controlling TAS inputs (GameCube, single controller only).
- dolsdk2001 - Decompilation of the 5-23-2001 version of the Dolphin (GameCube) SDK libraries.
- triforce-nand-iso-extract - Converts Triforce (Namco/Sega/Nintendo GameCube-based arcade board) NAND images to ISO files.
- triforce-header-patcher - Verifies Triforce arcade disc images and patches in the correct headers.
- HopperPPC-Plugin - GameCube/Wii .DOL loader and PowerPC (Gecko) disassembly plugin for the Hopper Disassembler.
- open_rvl - Decompilation of the RVL SDK (Nintendo's Wii operating system libraries), archived but a reference for the Wii's system-level formats.
- EGG - Decompilation of Nintendo's EGG library, a Wii-era in-house engine used across multiple first-party Wii games.
- gc-ipl - Open source reimplementation of the GameCube IPL (boot ROM).
- wii-shop-channel - Decompilation of the Wii Shop Channel, reading an existing WAD dump of the channel.
- Kamek - Code injection engine for GameCube and Wii games, compiling and linking custom C++ code against the original DOL/REL executables.
- GeckoLoader - Extends the available code space for Gecko codes on Wii/GameCube games, allowing thousands of lines of Gecko code per game.
- mapdas - Tools for working with Metrowerks symbol map (.map) and Gekko/Dolphin executable (.dol) files.
- Kuribo - Embedded Wii Channel mod loader, installing mods from an SD card. Loads its own .kxe executable format (supporting GCC, Clang, and CodeWarrior) as well as legacy Kamek .kmk executables.
- pyisotools - Python library for working with GameCube ISOs (GCM).
- geckocode-libs - Python library for parsing and editing Gecko Codes for the Wii/GCN.
Nintendo DS / DSi¶
- Nitro Files - Documentation for Nintendo DS file formats.
- narchive - Tool for extracting and creating NARC archives used in DS games.
- TinkeDSi - Viewer and extractor for Nintendo DS/DSi file formats.
- Hatenatools - Python tools for Flipnote Studio (Nintendo DSi) file formats. Supports reading and writing .ppm (Flipnote files), .tmb (thumbnail files), .ugo (user data), and .ntft (image files). Can extract metadata, frames, and audio from Flipnote files.
- apicula - Converter for Nintendo DS .nsbmd 3D model format.
- apicula/wiki/FILETYPES - Documentation for Nintendo DS file types.
- nitro-fs - Nintendo DS filesystem tools.
- nitro-g3d-tools - Tools for Nintendo DS 3D graphics.
- nitroefx - Nintendo DS effect tools.
- NitroEffectMaker - Effect editor for Nintendo DS.
- narc - NARC archive tool for Nintendo DS.
- NitroSDK - Official Nintendo DS SDK.
- NitroSystem - Nintendo DS system library.
- NTRGhidra - Ghidra plugin for Nintendo DS.
- NitroSharp - Nintendo DS file format library.
- nitrog3d - Nintendo DS 3D tools.
- nitrogfx - Nintendo DS graphics tools.
- Ekona - Nintendo DS file format library.
- Nds4j - Java library for Nintendo DS formats.
- REGames Editor - Full-featured editor for Nintendo DS games.
- NitroModel ConverterGUI - Converts between Nintendo DS Nitro model formats (NSBMD/NSBTX from ASS/IMD).
- sdatxtract - Command-line Nintendo DS Sound DATa (SDAT) extraction utility.
- DSlash - Nintendo DS ROM viewing/extraction tool based on ndstrim (GitHub mirror of the original Google Code project).
- Flipnote-Encoder - Cross-platform Flipnote Studio (Nintendo DSi) encoder and signer, producing valid .ppm files.
Nintendo 64¶
- N64Recomp - Tool to statically recompile N64 games into native executables. Converts N64 binaries into C code that can be compiled for any platform.
- AudiobankToC - Scripts for converting between N64 Audiobank bank files and C code. Matches on binary -> C -> binary for banks in OoT.
- seq64 - Full-featured editor for Nintendo 64 music sequencing (Audioseq format). Supports Super Mario 64, Mario Kart 64, and The Legend of Zelda: Ocarina of Time.
- ipl3checksum - Python and Rust library to calculate the IPL3 (boot code) checksum for N64 ROMs, used to validate/patch ROMs in decompilation and recompilation workflows.
- N64-IPL - Matching disassemblies of the N64 boot code (IPL1, IPL2, and IPL3).
- UltraCIC - Reverse-engineered clone of the Nintendo 64 CIC lockout/authentication chip.
- ido-static-recomp - Static recompilation of the SGI IDO 5.3/7.1 C compilers for modern platforms, letting N64 decompilation projects rebuild with the original toolchain to verify byte-matching output.
- ultralib - Reverse engineering and matching decompilation of libultra (the N64 SDK), supporting multiple IDO/GCC compiler and library versions.
- glankk/n64 - Collection of N64 development tools.
- Tools:
gfxdis(F3DEX2 display list disassembler/decompiler),gru(Lua environment for manipulating raw binaries, N64 ROMs, Zelda64 file systems, UPS patches, and GameShark codes),grc(resource compiler for linkable N64 texture objects),ed64rdb/gs(remote debugging and GameShark upload utilities). - gzinject - WAD editing utility primarily used for patching N64 Virtual Console emulators and replacing the embedded ROM, with a documented patch file format.
- ido-rs - Rust programs for handling SGI IDO compiler data formats (st, ucode, binasm), complementing ido-static-recomp above in N64 decompilation toolchains.
SNES / NES¶
- SuperFamiconv - Command-line tool to convert graphics to Super Nintendo format.
- M1TE2 - SNES Mode 1 Tile Editor for generating, editing, and arranging SNES tiles and tilemaps (2bpp/4bpp) with palette support. Designed for Mode 1 but works with any mode needing 2bpp or 4bpp graphics.
- upernes - NES to Super NES recompiler; disassembles NES ROMs and converts 6502 code to SNES 65C816 assembly with hardware emulation.
- nesrecomp - Static recompiler ecosystem for NES games (part of the R.A.I.D. community), converting 6502 ROM code into portable native code, similar in approach to upernes and GB Recompiled above.
- jamulator - Early static recompiler converting NES ROMs into native executables via LLVM (unmaintained, historically notable predecessor to upernes/nesrecomp).
- DiztinGUIsh - Super NES ROM disassembler with tracelog capture/analysis and a focus on collaborative workflow; exports .asm files that reassemble back into the original binary.
- asar - SNES assembler for applying patches to existing ROM images or building new ones from scratch; the long-standing standard assembler used across SNES ROM hacking projects.
- nes-header-info - Tool for parsing and displaying iNES/NES 2.0 header information from NES ROM files.
- SatellaWave - Satellaview (BS-X) server manager/tool exporting broadcast satellite data as BSX-*.bin files playable in bsnes-plus and snes9x, covering channels including Derby Stallion 96.
- BSFlashManager - Tool for managing BS-X / Satellaview memory pack flash cartridges for the SNES, reading and writing the Satellaview's flash memory format.
- bsnes-plus - Debug-oriented fork of bsnes with a tracer, memory/VRAM viewers, and breakpoints, widely used for SNES ROM hacking and reverse engineering.
- snes-tile-tool - SNES tile graphics conversion tool.
- nintendulatordx - Modified version of the Nintendulator NES emulator adding source-level debugging capabilities for NES ROM reverse engineering.
- Dispel - Disassembler for 65816/SNES ROM images.
- snes-assembly-book - 65c816 assembly guide covering opcodes and the inner workings of the SNES, aimed at ROM hacking and reverse engineering.
- NES-Sprite-Editor - Simple sprite editor for NES games.
Game Boy / GBA¶
- cgrr-gameboy - Tools for Game Boy file formats.
- HexManiacAdvance - Hex editor for Game Boy Advance ROMs with scripting support.
- UnkrawerterGBA - Game Boy Advance ROM extractor and converter.
- GB Recompiled - Static recompiler for Game Boy and Game Boy Color ROMs that translates LR35902 assembly directly to portable C code.
- Tilemap-Creator - Tileset and tilemap editor for the Game Boy Advance.
- gba_explorer - Explorer for Game Boy Advance ROMs, browsing and extracting embedded text, graphics, and sound data.
- gba-lz77 - LZ77 compressor/decompressor producing byte-identical output to the GBA's LZ77 implementation, verified against LEGO Island 2 (GBA).
- gba_dumper - Set of utilities for text modifications in GBA ROMs. Since GBA games use homebrew text encodings rather than ASCII, streamlines building a translation table from search matches, dumping translated ROM text, and re-injecting edited strings.
- metroboy - Repository of gate-level simulators and reverse-engineering tools for the original Game Boy hardware.
- gbrom-tutorial - Tutorial for extracting the Game Boy boot ROM from die photographs.
- maskromtool - CAD tool for extracting bits from mask ROM die photographs, used to recover boot ROM and other on-die data.
- ninmonitorroms - Recovered Game Boy debug monitor ROMs, partial ROM images pulled from an official Nintendo Game Boy emulator.
- dmg-schematics - Reverse engineered schematics of the Game Boy's DMG-CPU B chip, including the SM83 CPU core. Successor to the archived DMG-CPU-Inside project.
- gb-schematics - Reverse engineered Game Boy-related hardware schematics.
- nds-slot2 - Nintendo DS slot-2 (GBA slot) reverse engineering documentation.
- gba-cartridge - Experiments documenting how Game Boy Advance cartridges work.
- gameboy-audio-dumper - Dumps Game Boy ROMs and save files over an analog audio connection.
- mgbdis - Game Boy ROM disassembler with RGBDS-compatible output.
- windfish - Tracing disassembler and UI for Game Boy ROMs, integrated with SameBoy for emulation and debugging.
- gbadisasm - Game Boy Advance ROM disassembler.
- luvdis - Pure-Python Game Boy Advance disassembler.
- gbcam-rev-engineer - Tools used to reverse engineer the Game Boy Camera's sensor and communication protocol using an Arduino UNO.
- gbp-decode - Set of functions to decode Game Boy Printer print job data.
- gbcamextract - Extracts photos from Game Boy Camera / Pocket Camera save files, including the Hello Kitty camera variant.
- game-boy-camera-manager - Tool for managing Game Boy Camera data, including both save (SRAM) photos and ROM contents.
- gameboy-rom-parser - Rust parser for (Super) Game Boy (Color) ROM headers.
Cross-Platform Formats & Archives¶
- Nintendo-File-Formats - Documentation for Wii U and Switch file formats.
- Syroot.NintenTools.Bfres - Library for reading/writing Nintendo BFRES model format (Wii U).
- sarc - Rust library for reading and writing Nintendo SARC and SZS (yaz0 compressed SARC) archive formats.
- sarc-extract - Extractor for SARC archive format.
- GARC-Unpack - Unpacker for Nintendo GARC archive format.
- lzarc - Rust library and CLI for working with LZARC compressed archives used in Paper Mario Color Splash.
- Lzarc-Tool - Tool for LZARC compressed archive format.
- msbt2sheets - Converter for MSBT files to spreadsheet format.
- MSBTEditor - MSBT text extractor/replacer for .msbt and .umsbt LE-files.
- umsbt_cmd_extractor - Command extractor for UMSBT files.
- BFRES-Viewer - Viewer for Nintendo BFRES model format files.
- BFRES-Tool - Tool for working with Nintendo BFRES files.
- BFRES-Extractor - Extractor for Nintendo BFRES format files.
- TSCBReader - Reader for TSCB format files.
- KMP-Expander - Expander for KMP format files.
- pymsc - Python library for MSC format files.
- 3dsfont - Toolkit for Nintendo BCFNT and BFFNT font files (3DS, Wii U, Switch).
- darctool - Tool for extracting and creating DARC archive files used in Nintendo games.
- amiitool.net - C# port of amiitool, for decrypting/encrypting Nintendo amiibo NFC tag dumps.
- AmiiboAPI - RESTful API and database of amiibo NFC tag data.
- emuiibo - Virtual amiibo (amiibo emulation) system for Nintendo Switch, evolved from ogniK5377's switch-nfp-mitm.
- ninfs - FUSE filesystem tool to mount Nintendo 3DS and Switch container/filesystem formats (CCI, CDN, CIA, NAND, NCA, RomFS, SD, etc.) for direct file browsing.
- img2nutexb - Converts standard images (PNG, JPG, GIF, DDS, TGA, TIFF, ICO, BMP) to Nutexb, the Namco texture format used in Smash Ultimate and other Switch games.
- nutexb - Rust library for working with Namco Nutexb textures, found in Smash Ultimate and other Switch games.
- bntx - Rust library for working with Nintendo BNTX textures.
- img2bntx - Converts standard images to Nintendo BNTX texture format.
- sarctool - Command-line tool for working with Nintendo SARC archive files.
- msc-debugger - Debugger for MSC bytecode files, the scripting format used in Super Smash Bros. for Wii U character logic.
- msclang - Custom C-to-MSC-bytecode compiler; MSC is the bytecode format used by Super Smash Bros. for Wii U for character logic.
- mscdec - Decompiler that converts MSC bytecode (Super Smash Bros. for Wii U) back to C.
- aamp2xml - Converter for Nintendo AAMP parameter archive files (used across Breath of the Wild and other Nintendo EAD games) to/from XML.
- PyMsyt - Python library wrapping MSYT for editing Nintendo MSBT text files, used across Breath of the Wild and other Nintendo games.
- rust_lzss - Rust library implementing Nintendo's LZSS decompression, used across many Nintendo game formats.
- 3DSkit - Tool to extract and repack many file formats found on Nintendo DS, DSi, 3DS, Wii U, and Switch.
- BFRES-to-FBX-Converter - Windows tool to convert Nintendo BFRES model files to FBX, built on the FBX SDK.
- BFRES-Model-Importer - Script for injecting and replacing models in Nintendo BFRES files (Switch and Wii U), maintaining and extending smb123w64gb's original work.
- BFRES-Shader-Maker - Tool for building BFSHA/BNSH shader binaries from scratch using a given BFRES and GLSL code.
- KCollisionLibrary - Library for reading and editing Nintendo KCL collision file binaries used by various games.
- AampLibrary - Library for editing v1 and v2 Nintendo AAMP parameter archive files.
- MSBTConverter - Tool to convert Nintendo MSBT text files to YAML and back.
- SSBHLib - Library for reading and writing Nintendo SSBH rendering format files (used by Super Smash Bros. Ultimate and other Switch games).
- IONET - .NET library for reading and writing several 3D model formats into a common object model.
- BymlLibrary - Modern C# library for reading/writing Nintendo BYML (Binary YAML) files, versions 2-7, including Tears of the Kingdom's v7 nodes.
- CLMS - C# library for Nintendo LMS (Message Studio) text format files (MSBT, MSBP, MSBF).
- Jungle - Accurate parser/encoder for various Nintendo file formats.
- zbic - Python package implementing the ZBIC compression algorithm used on Nintendo Switch.
- Nintendo-File-Samples - Test set of Nintendo file format samples covering various edge cases, for validating tools against.
- oead - Library for recent Nintendo EAD first-party formats (BOTW/TOTK-era SARC, Yaz0, AAMP, BYML, and more), with Rust core and Python bindings. See also cs-oead for a C# wrapper.
- AinbLibrary - C# library for Nintendo AINB (AI Node Binary) files.
- asb - Base library for parsing and recompiling Nintendo ASB (Animation State Binary) and AINB files.
- txtg - Experimental parser for the Nintendo TexToGo (TXTG) file format.
- AalSharp - C# IO library for BARS and other Nintendo AAL audio resource file formats.
- SarcLibrary - Modern C# reader/writer for Nintendo SEAD/SEPD SARC archives.
- AudioToolkit - IO library for file formats in Nintendo's nw::snd/nn::atk (NintendoWare) audio namespace.
- BntxLibrary - Simple C# IO library for the Nintendo BNTX texture format.
- MessageStudio - Modern C# implementation of Nintendo MessageStudio (LMS) text file formats.
- RstbLibrary - C# IO library for Nintendo Resource Size Table (RSTB/RESTBL) files.
- ssbh_lib - Rust library for reading and writing Nintendo SSBH rendering format files (used by Super Smash Bros. Ultimate and other Switch games).
Sharp X68000 SDKs & Hardware¶
- mdxtools - Collection of tools for handling the MDX music format used on the Sharp X68000.
- wav2adpcm - Converts WAV PCM audio into the Sharp X68000's native ADPCM sound format.
- png2xsp - Converts PNG spritesheets into the Sharp X68000's XSP sprite library data format.
PlayStation SDKs & Hardware¶
Formats and tools generic to PlayStation consoles/SDKs, not tied to a specific game.
- LibOrbisPkg - Library, GUI, and CLI for creating, inspecting, and modifying PS4 PKG, SFO, PFS, and related package/filesystem formats.
- psvpfstools - Set of tools to decrypt the PFS (PlayStation File System) filesystem layer used on PS Vita.
- vita2hos - PlayStation Vita to Horizon OS (Nintendo Switch OS) translation layer (not an emulator), parsing Vita's executable format to run titles under Switch's OS.
- pkg2zip - Decrypts PlayStation Vita PKG files and repackages their contents (apps, DLC, patches, themes, PSM, PSX, PSP) into zip archives.
- PSY-Q SDK Version Finder - GUI tool for PS1 decompilation projects that identifies which Sony PSY-Q SDK version(s) a binary was built with, via color-coded byte-level signature diffing across 10+ SDK releases.
- psp-media-engine-cracking-the-unknown - Research documentation on the PSP's Media Engine, covering its Virtual Mobile Engine (VME), specialized move instructions, bitstream/context handling, local DMACs, VLD unit, and H.264 decoder.
- PsxVram-SDL - PlayStation 1 VRAM viewer.
- uofw - The Unofficial Official FirmWare, a complete reverse engineering project for the latest PSP firmware.
- pspdecrypt - Simple tool to decrypt PSP binaries.
- kirk - IDA Pro processor module for the PSP's KIRK crypto engine.
Xbox SDKs & Hardware¶
Formats and tools generic to the Xbox platform/OS, not tied to a specific game.
- SlimEra - Slim Win32 reference implementations of select DLLs from the Xbox ERA operating system (e.g. D3DCompiler_46.dll, xg_x.dll), intended for research/analysis tooling rather than running full games.
- XDL Compiler - Compiler for XDL, an IDL-like interface definition language (with versioning support) used to generate headers for reversing Xbox ERA OS components.
- XboxAudio2 - XAudio2 wrapper providing XMA2 audio format support for Xbox TitleOS applications.
- dump-xbox-dvd - Dumps original Xbox game discs (XGD) to redump preservation standard using Kreon-firmware optical drives.
- xbox-dvd-compress - Proof-of-concept tools to inspect redump-format Xbox DVD images: extracts embedded authoring-tool version tags and traces the RNG seed used to generate sector padding, as groundwork for compression.
- UnXiP - Extracts XIP archive files from the original Xbox dashboard, based on Voltaic's PIXIT research.
FMOD¶
Audio middleware used in thousands of games for sound bank management and streaming.
- python-fsb5 - Python library and command-line tool for extracting audio from FMOD FSB5 (FMOD Sample Bank) files. Decodes samples to WAV/OGG depending on codec.
- Fmod5Sharp - Managed C# library for decoding FMOD 5 sound banks (FSB5 and .bank files). Extracts individual audio samples and converts them to WAV or OGG.
- Formats: PCM8, PCM16, PCM32, GCADPCM, IMAADPCM, VORBIS, FADPCM.
- See also AssetRipper's fork with additional fixes used by the AssetRipper project.
- Fmod5Sharp (AssetRipper fork) - AssetRipper's maintained fork of SamboyCoding/Fmod5Sharp; a C# decoder for FMOD 5 FSB sound banks used internally by the AssetRipper Unity asset extraction pipeline.
- FMODSoundBankEditor - GUI editor for FSB4 version FMOD sound bank (.fsb) files. Supports viewing, replacing, and exporting audio samples. Primarily developed for Xbox 360 Forza titles.
SpeedTree¶
Procedural vegetation middleware used in many AAA games.
- Spt2Fbx - Converts SpeedTree
.sptfiles (up to v4.1) to.fbxstatic meshes. Drag-and-drop tool that preserves UV sets for diffuse, leaf card dimensions, pivot data, and leaf dimming.
Wwise¶
Audio middleware by Audiokinetic used in many AAA titles for sound bank management.
- bnkextr - C++ command-line tool for extracting WEM audio files from Wwise BNK soundbank containers. Works with any game using Wwise audio middleware.
- BnkExtractor - C# extraction library for Wwise audio containers. Extracts WEM audio files from BNK soundbanks and PCK file packages. Works with any game using Wwise audio middleware.
- Unreal Engine Wwise Extractor - Python script to extract and convert Wwise BNK audio files from Unreal Engine pak files.
- wwiser-utils - Companion utilities for wwiser, covering Wwise SoundBank (.bnk) and .wem audio files.
- ExportUtilityWwise - Console tool that exports Wwise audio events from Unreal Engine-based games (Valorant, Sea of Thieves, and others) to WAV files, automating sound extraction.
Prism3D¶
- Prism3D-file-formats - File formats and tools for games built on the Prism3D engine.