vanshksingh/smelt-3ds-decryptor — explained in plain English
Analysis updated 2026-05-18
Decrypt a 3DS ROM file so it boots correctly in a modern emulator.
Batch process multiple game files at once with drag and drop.
Patch a decrypted ROM's header flag without running a full decryption pass.
Convert a .cia file into a decrypted .cci file that emulators accept.
| vanshksingh/smelt-3ds-decryptor | 98przem/mist | gistya/ox0badf00d | |
|---|---|---|---|
| Stars | 8 | 8 | 8 |
| Language | Swift | Swift | Swift |
| Setup difficulty | easy | easy | moderate |
| Complexity | 1/5 | 3/5 | 4/5 |
| Audience | general | general | developer |
Figures from each repo's GitHub metadata at analysis time.
macOS only, requires legally owned game media and does not include Nintendo's cryptographic keys.
Smelt is a native macOS application for decrypting and patching Nintendo 3DS ROM files so they work correctly in modern emulators such as Azahar, Lime3DS, or Citra. Instead of using command line tools directly, you drag your game files onto a SwiftUI interface and Smelt handles the rest. Under the hood it wraps a set of well known open source command line tools for this ecosystem, called ctrtool, makerom, and ctrdecrypt, and coordinates them for you. Before doing anything, Smelt inspects a file's internal headers to work out whether it is already encrypted, already decrypted, or decrypted but missing a flag that makes emulators misreport it as encrypted. If a ROM is already decrypted but simply missing that flag, causing common emulator errors, Smelt can patch just that flag in milliseconds instead of running a full decryption pass. If a file is genuinely encrypted, Smelt performs the full cryptographic decryption in a temporary sandbox folder and rebuilds a clean output file. The app supports batch processing of multiple files at once through drag and drop, and includes a built in console pane that shows the underlying command line tool output in real time. One notable design choice: Smelt will not produce encrypted output files. The README explains that creating a valid encrypted container would require Nintendo's private cryptographic keys, which the developer does not have and does not provide, so any such output would be rejected by real hardware and emulators anyway. Because of this, Smelt only outputs decrypted files, which are the format modern emulators actually accept, and if you feed it an encrypted file it will extract the contents into a proper decrypted file automatically. To build the app yourself, you clone the repository and run a provided build script, which compiles the SwiftUI application, copies in the required command line tools, and places the finished app in your Downloads folder. The README is explicit that the software is intended only for personal archival and format conversion of game media you legally own, that it contains no proprietary Nintendo keys, and that it displays a license agreement you must accept on first launch. The project credits several members of the 3DS homebrew and preservation community whose tools it builds on, and is released under the MIT license.
A native macOS app that decrypts and patches Nintendo 3DS ROM files via drag-and-drop so they run correctly in modern emulators.
Mainly Swift. The stack also includes Swift, SwiftUI, macOS.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly general.
This repo across BitVibe Labs
Verify against the repo before relying on details.