FUSE filesystem Python scripts for Nintendo console files

Overview

ninfs

ninfs (formerly fuse-3ds) is a FUSE program to extract data from Nintendo game consoles. It works by presenting a virtual filesystem with the contents of your games, NAND, or SD card contents, and you can browse and copy out just the files that you need.

Windows, macOS, and Linux are supported.

Supported types

  • Nintendo 3DS
    • CTR Cart Image (".3ds", ".cci")
    • CDN contents ("cetk", "tmd", and contents)
    • CTR Importable Archive (".cia")
    • Executable Filesystem (".exefs", "exefs.bin")
    • Nintendo 3DS NAND backup ("nand.bin")
    • NCCH (".cxi", ".cfa", ".ncch", ".app")
    • Read-only Filesystem (".romfs", "romfs.bin")
    • SD Card Contents ("Nintendo 3DS" from SD)
    • Installed SD Title Contents ("*.tmd" and "*.app" files)
    • 3DSX Homebrew (".3dsx")
  • Nintendo DS / DSi
    • Nintendo DSi NAND backup ("nand_dsi.bin")
    • Nintendo DS ROM image (".nds", ".srl")
  • iQue Player
    • iQue Player NAND backup (read-only) ("nand.bin")
  • Nintendo Switch
    • Nintendo Switch NAND backup ("rawnand.bin")

Example uses

  • Mount a NAND backup and browse CTRNAND, TWLNAND, and others, and write back to them without having to extract and decrypt them first.
  • Browse decrypted SD card contents. Dump installed games and saves, or copy contents between two system's SD contents.
  • Extract a game's files out of a CIA, CCI (".3ds"), NCCH, RomFS, raw CDN contents, just by mounting them and browsing its files. Or use the virtual decrypted file and start playing the game in Citra right away.

Setup

For 3DS types, The ARM9 bootROM is required. You can dump it using boot9strap, which can be set up by 3DS Hacks Guide. To dump the bootROM, hold START+SELECT+X when you boot up your 3DS. It is checked in order of:

  • --boot9 argument (if set)
  • BOOT9_PATH environment variable (if set)
  • %APPDATA%\3ds\boot9.bin (Windows-specific)
  • ~/Library/Application Support/3ds/boot9.bin (macOS-specific)
  • ~/.3ds/boot9.bin
  • ~/3ds/boot9.bin

boot9_prot.bin can also be used in all of these locations.

"~" means the user's home directory. "~/3ds" would mean /Users/username/3ds on macOS and C:\Users\username\3ds on Windows.

CDN, CIA, and NCCH mounting may need SeedDB for mounting NCCH containers of newer games (2015+) that use seeds.
SeedDB is checked in order of:

  • --seeddb argument (if set)
  • SEEDDB_PATH environment variable (if set)
  • %APPDATA%\3ds\seeddb.bin (Windows-specific)
  • ~/Library/Application Support/3ds/seeddb.bin (macOS-specific)
  • ~/.3ds/seeddb.bin
  • ~/3ds/seeddb.bin

Python 3.6.1 or later is required.

Windows

Windows 8.1 or later is required.

Installer

An installer is provided in releases. It includes both ninfs and WinFsp, which is installed if required.

Standalone release

A standalone zip is also provided in releases. WinFsp must be installed separately.

Install with existing Python

  • Install the latest version of Python 3. The x86-64 version is preferred on 64-bit Windows.
    • Python from the Microsoft Store can also be used. If this is used, python3 must be used instead of py -3. This version has some limitations however, such as not being able to mount to directories.
  • Install the latest version of WinFsp.
  • Install ninfs with py -3 -m pip install --upgrade https://github.com/ihaveamac/ninfs/archive/2.0.zip

macOS

Versions of macOS supported by Apple are highly recommended. macOS Sierra is the oldest version that should work. macFUSE is required.

No standalone build is available at the moment.

Install with existing Python

  • Install the latest version of Python 3. The recommended way is Homebrew. You can also use an installer from python.org or a tool like pyenv.
  • Install the latest version of FUSE for macOS.
  • Install ninfs with python3 -m pip install --upgrade https://github.com/ihaveamac/ninfs/archive/2.0.zip

Linux

Arch Linux

(NOTE: git versions out of date while build process stabilizes)
ninfs is available in the AUR: normal, with gui, git, git with gui

Other distributions

  • Recent distributions (e.g. Ubuntu 18.04 and later) should have Python 3.6.1 or later pre-installed, or included in its repositories. If not, you can use an extra repository (e.g. deadsnakes's PPA for Ubuntu), build from source, or use a tool like pyenv.
  • Most distributions should have libfuse enabled/installed by default. Use your package manager if it isn't.
  • Install ninfs with python3 -m pip install --upgrade --user https://github.com/ihaveamac/ninfs/archive/2.0.zip
    • --user is not needed if you are using a virtual environment.
  • You can add a desktop entry with python3 -m ninfs --install-desktop-entry. If you want to install to a location other than the default ($XDG_DATA_HOME), you can add another argument with a path like /usr/local/share.
  • To use the GUI, tkinter needs to be installed. On Debian-/Ubuntu-based systems this is python3-tk. On Fedora this is python3-tkinter.

Usage

Graphical user interface

A GUI can be used by specifying the type to be gui (e.g. Windows: py -3 -mninfs gui, *nix: python3 -mninfs gui). The GUI controls mounting and unmounting.

Command line

Run a mount script by using "mount_ " (e.g. mount_cci game.3ds mountpoint). Use -h to view arguments for a script.

If it doesn't work, the other way is to use -mninfs (e.g. Windows: py -3 -mninfs cci game.3ds mountpoint, *nix: python3 -mninfs cci game.3ds mountpoint).

Windows users can use a drive letter like F: as a mountpoint, or use * and a drive letter will be automatically chosen.

Developer-unit contents are encrypted with different keys, which can be used with --dev with CCI, CDN, CIA, NANDCTR, NCCH, and SD.

Unmounting

  • Windows: Press Ctrl + C in the command prompt/PowerShell window.
  • macOS: Two methods:
    • Right-click on the mount and choose "Eject “drive name”".
    • Run from terminal: diskutil unmount /path/to/mount
  • Linux: Run from terminal: fusermount -u /path/to/mount

Examples

  • 3DS game card dump:
    mount_cci game.3ds mountpoint
  • Contents downloaded from CDN:
    mount_cdn cdn_directory mountpoint
  • CDN contents with a specific decrypted titlekey:
    mount_cdn --dec-key 3E3E6769742E696F2F76416A65423C3C cdn_directory mountpoint
  • CIA:
    mount_cia game.cia mountpoint
  • ExeFS:
    mount_exefs exefs.bin mountpoint
  • 3DS NAND backup with essential.exefs embedded:
    mount_nandctr nand.bin mountpoint
  • 3DS NAND backup with an OTP file (Counter is automatically generated):
    mount_nandctr --otp otp.bin nand.bin mountpoint
  • 3DS NAND backup with OTP and CID files:
    mount_nandctr --otp otp.bin --cid nand_cid.bin nand.bin mountpoint
  • 3DS NAND backup with OTP file and a CID hexstring:
    mount_nandctr --otp otp.bin --cid 7468616E6B7334636865636B696E6721 nand.bin mountpoint
  • DSi NAND backup (Counter is automatically generated):
    mount_nandtwl --console-id 5345445543454D45 nand_dsi.bin mountpoint
  • DSi NAND backup with a Console ID hexstring and specified CID hexstring:
    mount_nandtwl --console-id 5345445543454D45 --cid 576879446F657344536945786973743F nand_dsi.bin mountpoint
  • DSi NAND backup with a Console ID file and specified CID file:
    mount_nandtwl --console-id ConsoleID.bin --cid CID.bin nand_dsi.bin mountpoint
  • iQue Player NAND backup:
    mount_nandbb nand.bin mountpoint
  • Switch NAND backup:
    mount_nandhac --keys prod.keys rawnand.bin mountpoint
  • Switch NAND backup in multiple parts:
    mount_nandhac --keys prod.keys -S rawnand.bin.00 mountpoint
  • Switch NAND encrypted partition dump:
    mount_nandhac --keys prod.keys --partition SYSTEM SYSTEM.bin mountpoint
  • NCCH container (.app, .cxi, .cfa, .ncch):
    mount_ncch content.cxi mountpoint
  • RomFS:
    mount_romfs romfs.bin mountpoint
  • Nintendo 3DS directory from an SD card:
    mount_sd --movable movable.sed "/path/to/Nintendo 3DS" mountpoint
  • Nintendo 3DS directory from an SD card with an SD key hexstring:
    mount_sd --sd-key 504C415900000000504F4B454D4F4E21 "/path/to/Nintendo 3DS" mountpoint
  • Nintendo DS ROM image (NDS/SRL, mount_nds also works):
    mount_srl game.nds mountpoint
  • 3DSX homebrew application:
    mount_threedsx boot.3dsx mountpoint

Useful tools

  • wwylele's 3ds-save-tool can be used to extract game saves and extra data (DISA and DIFF, respectively).
    • wwylele's save3ds is a tool to interact with 3DS save files and extdata. Extracting and importing works on all platforms. The FUSE part only works on macOS and Linux.
  • OSFMount for Windows can mount FAT12/FAT16/FAT32 partitions in NAND backups.

Related tools

  • roothorick's BUSEHAC is a Linux driver for encrypted Nintendo Switch NANDs.
  • Maschell's fuse-wiiu can be used to mount Wii U contents.
  • koolkdev's wfslib has wfs-fuse to mount the Wii U mlc dumps and usb devices.

License/Credits

Special thanks to @Jhynjhiruu for adding support for iQue Player NAND backups.

Special thanks to @Stary2001 for help with NAND crypto (especially TWL), and @d0k3 for SD crypto.

OTP code is from Stary2001/3ds_tools, and is under the MIT license.

Comments
  • Mount Switch nand partition after mount with Hekate USB Tools

    Mount Switch nand partition after mount with Hekate USB Tools

    Hi,

    I am trying to mount any partition of my Switch nand (eMMC & emuMMC) on my M1 Mac, with no succes so far. The Switch is mounted and accessible on my Mac at /dev/disk4 via Hekate USB tools (in read-only mode).

    The issue I encounter is the following (some paths have been 'anonymised' but they have been checked):

    >> /Library/Frameworks/Python.framework/Versions/3.10/bin/mount_nandhac --keys /Users/xxxxxx/....../prod.keys /dev/disk4 /Users/xxxxxx/Mounts/switch -o allow_other 
    [HAC] Found and using openssl lib.
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.10/bin/mount_nandhac", line 33, in <module>
        sys.exit(load_entry_point('ninfs==2.0a9', 'console_scripts', 'mount_nandhac')())
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/ninfs/main.py", line 134, in main
        exit(mount(basename(argv[0])[6:].lower()))
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/ninfs/main.py", line 90, in mount
        return module.main(prog=prog)
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/ninfs/mount/nandhac.py", line 290, in main
        with open(a.image, mode) as f:
    PermissionError: [Errno 13] Permission denied: '/dev/disk4'
    

    I have tried to run the command as root as well and it does not help. I also tried to disable SIP ('csrutil disable') with no luck. I installed the dmg image and created a symbolic link of /dev/disk4 somewhere accessible: same permission error. I also tried same manipulations with full read-write mode in Hekate, still the same issue.

    I am able to dump an image of the 'hekate eMMC GPP Media' media using Mac disk utility. I am also able to properly mount the SD card using Hekate USB tools.

    Am I missing something here? Any idea of what I can do to better debug the issue?

    Here is my setup :

    • macOS 12.5.1 (21G83) - Kernel: Darwin 21.6.0
    • Hekate v5.8.0
    • ninfs==2.0a9
    • Python 3.10.6 (v3.10.6:9c7b4bd164

    Thanks in advance for your help

    opened by simondubrulle 11
  • Add new configuration directory

    Add new configuration directory

    Maybe I should add a specific one? Some config files could go here. Don't know exactly what though.

    • Windows: %APPDATA%\fuse3ds
    • macOS: ~/Library/Application Support/fuse3ds (or maybe use the one below too)
    • Linux: ~/.config/fuse3ds
    enhancement 
    opened by ihaveamac 9
  • Crash when trying to mount 3DS nand backup (from Dev/Panda console)

    Crash when trying to mount 3DS nand backup (from Dev/Panda console)

    Hey, hello !

    I tried to mount a 3DS nand dump (from a 3DS "Panda" dev console), and i didn't managed to get ninfs work with it.

    I tried to use the mount command that use the otp/cid inside the nand dump, and i also tried to pass directly the otp and cid files manually. I also used the boot9 file extracted from the same console. So, i think i maybe have a bug here. Maybe linked to the fact that this dump is from a dev console?

    Console output :

    mount_nandctr --boot9 /Users/march/Desktop/Preservation_devkit_dump/Panda_3DS_XXXXXXXXX_23-12-2019/XXXXXXXXX_boot9_00.bin --otp /Users/march/Desktop/Preservation_devkit_dump/Panda_3DS_XXXXXXXXX_23-12-2019/otp --cid /Users/march/Desktop/Preservation_devkit_dump/Panda_3DS_XXXXXXXXX_23-12-2019/nand_cid /Users/march/Desktop/Preservation_devkit_dump/Panda_3DS_XXXXXXXXX_23-12-2019/XXXXXXXXX_sysnand_00.bin 3ds1
    ninfs v1.7b2 - https://github.com/ihaveamac/ninfs
    Traceback (most recent call last):
      File "/usr/local/bin/mount_nandctr", line 8, in <module>
        sys.exit(main())
      File "/usr/local/lib/python3.7/site-packages/ninfs/main.py", line 124, in main
        exit(mount(basename(argv[0])[6:].lower()))
      File "/usr/local/lib/python3.7/site-packages/ninfs/main.py", line 80, in mount
        return module.main(prog=prog)
      File "/usr/local/lib/python3.7/site-packages/ninfs/mount/nandctr.py", line 470, in main
        boot9=a.boot9)
      File "/usr/local/lib/python3.7/site-packages/ninfs/mount/nandctr.py", line 79, in __init__
        self.crypto.setup_keys_from_otp(otp_data)
      File "/usr/local/lib/python3.7/site-packages/ninfs/pyctr/crypto.py", line 165, in wrapper
        return method(self, *args, **kwargs)
      File "/usr/local/lib/python3.7/site-packages/ninfs/pyctr/crypto.py", line 501, in setup_keys_from_otp
        raise CorruptOTPError(f'expected: {otp_hash.hex()}; result: {otp_hash_digest.hex()}')
    pyctr.crypto.CorruptOTPError: expected: 1851eb7a858b75830XXXXXXXXXX7a05fcfbd93332325bd55; result: 64ecc94315509dc1aXXXXXXXXXXXXXXXb7f32b83e5d659a9246d604bf46521983
    

    Thanks for the help !

    Michel

    opened by March-M 7
  • Doesn't work with titlekey-decrypted CDN contents.

    Doesn't work with titlekey-decrypted CDN contents.

    You can mount each content file (00000000[.app] etc) using the NCCH method, but I'm not sure if that is optimal, especially if it has lots of content files, like DLC does.

    opened by mariomadproductions 7
  • First stable release checklist

    First stable release checklist

    I think fuse-3ds is now developed enough for a full stable release. But before I make a release called "1.0", I need all the features to be tested, and on all supported platforms, to make sure no obvious bugs stay in (like they have in the past).

    Any help is appreciated! Testing all the features on 3 platforms is a lot of work for one person.

    Please test on Python 3.6.5 if possible, which is the latest and is preferred, but 3.6.1+ is supported. If you're on Windows, you can also use the latest standalone exe in releases.

    These platforms are supported:

    • Windows (7 SP1, 8.1, 10)
    • macOS (El Capitan, Sierra, High Sierra)
      • Older ones may work (tested as low as 10.6 Snow Leopard) but these are my primary focus.
    • Linux (any modern one should do)

    When posting if a feature works or not, please post the operating system, fuse-3ds version, and (if not standalone exe) Python version used (py -3 -VV or python3 -VV).

    Things to try

    • Any mount works on...
      • [x] Windows 32-bit (me)
      • [x] Windows 64-bit (me)
      • [x] macOS (me)
      • [x] Linux
        • Arch Linux: @knight-ryu12
    • All GUI functions work on...
      • [x] Windows (me)
        • Note that drag&drop doesn't work on 32-bit Python at the moment. Still works in the standalone executable.
        • Windows 7 32-bit: me
        • Windows 7 64-bit: me
        • Windows 10 64-bit: me
      • [x] macOS (me)
      • [x] Linux
        • Arch Linux: @knight-ryu12

    Mount types

    CCI

    • [x] Files read correctly
      • Windows: me
      • macOS: me

    CDN

    • [x] Files read correctly
      • Windows: me
      • Ubuntu 18.04: me
    • [x] Works with existing cetk file
      • Windows: me
      • Ubuntu 18.04: me
    • [x] Works with provided titlekey (has priority over cetk if it exists)
      • Windows: me
      • Ubuntu 18.04: me

    CIA

    • [x] Encrypted files read correctly
      • Arch Linux: @knight-ryu12
      • Windows: me
      • macOS: me
    • [x] Decrypted files read correctly
      • Arch Linux: @knight-ryu12
      • Windows: me
      • macOS: me

    ExeFS

    • [x] Files read correctly
      • Windows: me
    • [x] Code is decompressed without errors (assuming original .code is not corrupted)
      • Arch Linux: @knight-ryu12
      • Windows: me

    NAND (3DS & DSi) (remember to use -o allow_root or -o allow_other on Linux/macOS, and a directory as mount point on Windows)

    • [x] Files read correctly
      • macOS: me
      • Windows: me
    • [x] Writes to existing files works
      • Windows: me
      • macOS: me
    • Mounting FAT partition works on...
      • [x] Windows (try OSFMount) (me)
      • [x] macOS (use hdiutil or double-click from Finder) (me)
      • [x] Linux
        • Arch Linux: @knight-ryu12
    • Writing in FAT partition works on...
      • [x] Windows (me)
      • [x] macOS (me)
      • [x] Linux
        • Arch Linux: @knight-ryu12

    NCCH

    • [x] Encrypted files read correctly
      • Windows: me
      • macOS: me
    • [x] Zero-key encrypted files read correctly
      • Windows: me
      • macOS: me
    • [x] Decrypted files read correctly
      • Windows: me
      • macOS: me
    • [x] decrypted.cxi of encrypted game works with an application that expects a decrypted file
      • macOS: me
      • Windows: me

    RomFS

    • [x] Files read correctly
      • Windows: me

    SD

    • [x] Files read correctly
      • macOS: me
      • Windows: me
    • Writes to existing files works on...
      • [x] Windows (me)
      • [x] macOS (me)
        • Changing file size while writing in the middle doesn't work properly: #17
      • [x] Linux
        • Arch Linux: someone else
    • Creating new files works on...
      • [x] Windows (me)
      • [x] macOS (me)
      • [x] Linux
        • Arch Linux: @knight-ryu12

    3DSX

    • [x] Files read correctly
      • Windows: me
      • macOS: me

    Titledir

    • [x] Files read correctly
      • macOS: me
      • Windows: me
    help wanted 
    opened by ihaveamac 7
  • Mounting some images does not work and produces the same error message

    Mounting some images does not work and produces the same error message

    Mounting some cxi, cia, and NAND backup files produce an error message saying

    AttributeError: 'CTRCartImageMount' object has no attribute 'f'

    In addition, the images do not mount. The game images are decrypted with GM9, and a correct boot9.bin, boot9_prot.bin, nandcid.bin, otp.bin, and seeddb.bin are provided.

    I have gotten other files to work, but never a NAND backup.

    MacOS 10.2.6, Python 3.6.4

    opened by SuperOkazaki 7
  • ninfs failed to «AttachConsole(6500)»

    ninfs failed to «AttachConsole(6500)»

    I was going to extract FE:E Shadows of Valentia to get the romfs folder, but I get this error. Log file: ninfs-error_2021-05-06_19-45-45.log What is wrong with it? Is it a bug? Or maybe there's something wrong with my end? Thanks in advance

    opened by ihaveawindows 6
  • Add A .desktop File for Linux

    Add A .desktop File for Linux

    It would be nice to have a way to launch the GUI application on Linux without needing to use terminal. Would you be able to provide a fuse3ds.desktop file? You can have it automatically install to ~/.local/share/applications.

    Here is a guide to creating a .desktop file.

    enhancement 
    opened by CuriousTommy 6
  • Problem Decrypted.cxi (Bug)

    Problem Decrypted.cxi (Bug)

    Hi!

    I found one bug: if you try to extract a decrypted.cxi smaller than 1 Gb the extraction keeps going on and the file you are copying becomes bigger and bigger...

    One hint: Is it possible to add a feature that you can simply decrypt whole ROM in a 3ds format for example?

    Thanks!

    GM

    opened by GitMathHub 6
  • No boot9/etc. file created on mac

    No boot9/etc. file created on mac

    Installed via python3 -mpip install ninfs==2.0a3, launched with ninfs in Terminal. Seems to load up fine - but there's no folder named .3ds in either ~/ or /, and I don't see it in the module files in /usr/local/lib/whatever either. Not sure what's up, it's probably just somewhere I'm not expecting.

    Distro: OS X 10.14.6 Python: Python 3.9.1 Ninfs: ninfs v2.0a3 on Python 3.9.1

    opened by RikerW 5
  • ninfs seems to have issues decrypting sector0x96

    ninfs seems to have issues decrypting sector0x96

    I mounted 2 different nand backups(one with an a9lh key2 set as key2 in secret sector and the other has a normal secret sector) and both of the secret sectors from the mounted nands we're incorrect.

    bug needs testing 
    opened by ItsPizzaTime1501 5
  • DSi NAND Write Protected

    DSi NAND Write Protected

    Hello. I am trying to edit my DSi NAND, and when I check "Allow writing," Windows throws an error saying this disk is write protected. I have tried multiple versions and multiple NAND dumps, running as admin, and using both my console ID and a nocash footer NAND, and nothing allows the DSi NAND file to be written to

    opened by YoshiFan501 0
  • Better multithreading

    Better multithreading

    All of the mount types run with threads disabled (except SD). I'm curious how well performance would be if I can better support multithreaded reading. This would probably benefit SSD users the most. This would require some changes in pyctr for the readers to support reading from multiple file objects too.

    enhancement 
    opened by ihaveamac 0
  • Use a more accessible gui toolkit

    Use a more accessible gui toolkit

    Tkinter doesn't support screen reader functionality, so another one should be used. It seems wxWidgets/wxPython has the best support out of the popular gui toolkits for Python.

    Related: https://github.com/ihaveamac/custom-install/issues/61

    enhancement 
    opened by ihaveamac 0
  • Windows ARM64 support

    Windows ARM64 support

    WinFSP should already support x86 and x86-64 programs on ARM64 but I haven't tested that. I should do that and also make a proper ARM64 release. That depends on cx-Freeze and probably NSIS supporting it too.

    Python 3.11 has had an experimental ARM64 build since 3.11.0a5.

    enhancement 
    opened by ihaveamac 1
Releases(v2.0a9)
  • v2.0a9(Mar 25, 2022)

    • Mac application is now signed and notarized by Apple
    • Fix not showing all drive letters in the Windows GUI mount, only A and B
    • Always set write bit in mounts (except SD)
      • This makes it easier to deal with files that have been copied out of the mount, since chmod won't be required to set the write bit.
    • Include Internet Access Policy for Little Snitch
    • Fix DMG build not properly copying the application
    • Update WinFSP url

    This release is far from finished! It only has minimal testing. Some features are missing completely, some may not work correctly or at all.

    This is a release that is the result of many internal changes under the hood over a year, and there are still more that are coming, before and after 2.0's full release. Testing this release is highly appreciated. Please file issues on GitHub. Support is provided on my server on Discord (info, invite link) or the thread on GBATemp. Thanks!

    Installation

    Windows

    The installer includes ninfs and WinFsp. This is the easiest way to use the application.

    The standalone release can be downloaded as ninfs-2.0a9-win32.zip below the notes. Extract and run ninfsw.exe (or ninfs.exe to have a console attached).

    ninfs can also be used as a Python module below.

    macOS

    macOS users need macFUSE.

    The standalone release can be downloaded as ninfs-2.0a9-macos.dmg below the notes. Open the disk image, optionally copy to the Applications folder, and run ninfs.

    ninfs can also be used as a Python module below.

    Linux

    Install as a pip module like below. To use the gui, make sure tkinter is installed. This is python3-tk on Debian/Ubuntu and python3-tkinter on Fedora.

    Arch Linux: (AUR git package still needs updates, please wait...)

    BSD/etc.

    No idea. It might work! I would like to make sure ninfs works on these systems too, so feel free to file issues or make PRs for compatibility with BSD or other systems that support libfuse.

    fusepy should support FreeBSD and OpenBSD. For anything else you should consider adding support to refuse.

    Python module installation

    Python 3.6.1 or later is required. Version on PyPI

    Windows

    • py -3 -mpip install ninfs==2.0a9

    macOS

    • python3 -mpip install ninfs==2.0a9

    Linux

    • python3 -mpip install --user ninfs==2.0a9
      • --user is not required if you are using a virtualenv.

    A little something extra...

    If my tools have helped you in some way then please consider supporting me on Patreon, PayPal, or Ko-Fi.

    Source code(tar.gz)
    Source code(zip)
    ninfs-2.0a9-macos.dmg(25.53 MB)
    ninfs-2.0a9-win32-installer.exe(14.90 MB)
    ninfs-2.0a9-win32.zip(14.70 MB)
  • v2.0a8(Jan 30, 2022)

    This is the eighth alpha release for ninfs 2.0 with some important fixes and changes.

    • Fix inclusion of haccrypto in standalone macOS build that broke the Switch NAND mount
    • Show directory mount for NAND types on Windows (#89)
    • Show option to use dev keys in advanced options (#87)

    This release is far from finished! It only has minimal testing. Some features are missing completely, some may not work correctly or at all.

    This is a release that is the result of many internal changes under the hood over a year, and there are still more that are coming, before and after 2.0's full release. Testing this release is highly appreciated. Please file issues on GitHub. Support is provided on my server on Discord (info, invite link) or the thread on GBATemp. Thanks!

    Installation

    Windows

    The installer includes ninfs and WinFsp. This is the easiest way to use the application.

    The standalone release can be downloaded as ninfs-2.0a8-win32.zip below the notes. Extract and run ninfsw.exe (or ninfs.exe to have a console attached).

    ninfs can also be used as a Python module below.

    macOS

    macOS users need macFUSE.

    The standalone release can be downloaded as ninfs-2.0a8-macos.dmg below the notes. Open the disk image, optionally copy to the Applications folder, and run ninfs.

    ninfs can also be used as a Python module below.

    Linux

    Install as a pip module like below. To use the gui, make sure tkinter is installed. This is python3-tk on Debian/Ubuntu and python3-tkinter on Fedora.

    Arch Linux: (AUR git package still needs updates, please wait...)

    BSD/etc.

    No idea. It might work! I would like to make sure ninfs works on these systems too, so feel free to file issues or make PRs for compatibility with BSD or other systems that support libfuse.

    fusepy should support FreeBSD and OpenBSD. For anything else you should consider adding support to refuse.

    Python module installation

    Python 3.6.1 or later is required. Version on PyPI

    Windows

    • py -3 -mpip install ninfs==2.0a8

    macOS

    • python3 -mpip install ninfs==2.0a8

    Linux

    • python3 -mpip install --user ninfs==2.0a8
      • --user is not required if you are using a virtualenv.

    A little something extra...

    If my tools have helped you in some way then please consider supporting me on Patreon, PayPal, or Ko-Fi.

    Source code(tar.gz)
    Source code(zip)
    ninfs-2.0a8-macos.dmg(28.05 MB)
    ninfs-2.0a8-win32-installer.exe(14.90 MB)
    ninfs-2.0a8-win32.zip(16.35 MB)
  • v2.0a7(Jan 27, 2022)

    This is the seventh alpha release for ninfs 2.0.

    • Universal binary for macOS, providing native Apple Silicon support
    • New "Installed SD Title Contents" mount, which works directly on decrypted SD titles (such as those inside the SD mount). Choose the TMD file inside /title/(tidhigh)/(tidlow)/content.
    • Add icon_small.png and icon_large.png inside ExeFS mounts
    • Other internal updates and changes

    This release is far from finished! It only has minimal testing. Some features are missing completely, some may not work correctly or at all.

    This is a release that is the result of many internal changes under the hood over a year, and there are still more that are coming, before and after 2.0's full release. Testing this release is highly appreciated. Please file issues on GitHub. Support is provided on my server on Discord (info, invite link) or the thread on GBATemp. Thanks!

    Installation

    Windows

    The installer includes ninfs and WinFsp. This is the easiest way to use the application.

    The standalone release can be downloaded as ninfs-2.0a7-win32.zip below the notes. Extract and run ninfsw.exe (or ninfs.exe to have a console attached).

    ninfs can also be used as a Python module below.

    macOS

    macOS users need macFUSE.

    The standalone release can be downloaded as ninfs-2.0a7-macos.dmg below the notes. Open the disk image, optionally copy to the Applications folder, and run ninfs.

    ninfs can also be used as a Python module below.

    Linux

    Install as a pip module like below. To use the gui, make sure tkinter is installed. This is python3-tk on Debian/Ubuntu and python3-tkinter on Fedora.

    Arch Linux: (AUR git package still needs updates, please wait...)

    BSD/etc.

    No idea. It might work! I would like to make sure ninfs works on these systems too, so feel free to file issues or make PRs for compatibility with BSD or other systems that support libfuse.

    fusepy should support FreeBSD and OpenBSD. For anything else you should consider adding support to refuse.

    Python module installation

    Python 3.6.1 or later is required. Version on PyPI

    Windows

    • py -3 -mpip install ninfs==2.0a7

    macOS

    • python3 -mpip install ninfs==2.0a7

    Linux

    • python3 -mpip install --user ninfs==2.0a7
      • --user is not required if you are using a virtualenv.

    A little something extra...

    If my tools have helped you in some way then please consider supporting me on Patreon, PayPal, or Ko-Fi.

    Source code(tar.gz)
    Source code(zip)
    ninfs-2.0a7-macos.dmg(24.69 MB)
    ninfs-2.0a7-win32-installer.exe(14.90 MB)
    ninfs-2.0a7-win32.zip(16.35 MB)
  • v2.0a6(Jun 22, 2021)

    This is the sixth alpha release for ninfs 2.0, with some important fixes.

    • Fix Nintendo Switch NAND mount not working properly with 32-bit Python on Windows (which the standalone build uses)
      • This was an issue in haccrypto and has since been fixed in 0.1.1: https://github.com/luigoalma/haccrypto/commit/52f636fa2b3ec9aeb3197bad84ca7f20428959b8
    • Show partitions in Nintendo DSi NAND mount again (#82)
    • Properly support the "Quit" menu option on macOS and Command-Q (#81)

    This release is far from finished! It only has minimal testing. Some features are missing completely, some may not work correctly or at all.

    This is a release that is the result of many internal changes under the hood over a year, and there are still more that are coming, before and after 2.0's full release. Testing this release is highly appreciated. Please file issues on GitHub. Support is provided on my server on Discord (info, invite link) or the thread on GBATemp. Thanks!

    Note about Windows 7

    Due to Microsoft discontinuing support for Windows 7, this platform is no longer supported. As soon as the standalone release is updated to use Python 3.9, it will not start. It should still work when used as a Python module, but issues specific to Windows 7 may not be fixed.

    Installation

    Windows

    The installer includes ninfs and WinFsp. This is the easiest way to use the application.

    The standalone release can be downloaded as ninfs-2.0a6-win32.zip below the notes. Extract and run ninfsw.exe (or ninfs.exe to have a console attached).

    ninfs can also be used as a Python module below.

    macOS

    macOS users need FUSE for macOS.

    The standalone release can be downloaded as ninfs-2.0a6-macos.dmg below the notes. Open the disk image, optionally copy to the Applications folder, and run ninfs.

    ninfs can also be used as a Python module below.

    Linux

    Install as a pip module like below. To use the gui, make sure tkinter is installed. This is python3-tk on Debian/Ubuntu and python3-tkinter on Fedora.

    Arch Linux: (AUR git package still needs updates, please wait...)

    BSD/etc.

    No idea. It might work! I would like to make sure ninfs works on these systems too, so feel free to file issues or make PRs for compatibility with BSD or other systems that support libfuse.

    fusepy should support FreeBSD and OpenBSD. For anything else you should consider adding support to refuse.

    Python module installation

    Python 3.6.1 or later is required. Version on PyPI

    Windows

    • py -3 -mpip install ninfs==2.0a6

    macOS

    The 10.6 variant of Python is not supported for Nintendo Switch NAND/NANDHAC types.

    • python3 -mpip install ninfs==2.0a6

    Linux

    • python3 -mpip install --user ninfs==2.0a6
      • --user is not required if you are using a virtualenv.

    A little something extra...

    If my tools have helped you in some way then please consider supporting me on Patreon, PayPal, or Ko-Fi.

    Source code(tar.gz)
    Source code(zip)
    ninfs-2.0a6-macos.dmg(23.45 MB)
    ninfs-2.0a6-win32-installer.exe(14.70 MB)
    ninfs-2.0a6-win32.zip(16.14 MB)
  • v2.0a5(May 10, 2021)

    This is the fifth alpha release for ninfs 2.0, with a new type and the return of the macOS standalone build.

    This release is far from finished! It only has minimal testing. Some features are missing completely, some may not work correctly or at all.

    This is a release that is the result of many internal changes under the hood over a year, and there are still more that are coming, before and after 2.0's full release. Testing this release is highly appreciated. Please file issues on GitHub. Support is provided on my server on Discord (info, invite link) or the thread on GBATemp. Thanks!

    Note about Windows 7

    Due to Microsoft discontinuing support for Windows 7, this platform is no longer supported. As soon as the standalone release is updated to use Python 3.9, it will not start. It should still work when used as a Python module, but issues specific to Windows 7 may not be fixed.

    Additions and other changes

    • A new type was introduced: iQue Player NAND backups (nandbb). Currently read-only. Thanks to @Jhynjhiruu for implementing this! #77
    • The macOS standalone build is back and uses PyInstaller. It no longer automatically starts with Terminal. It also works when launched inside the DMG unlike before.
      • It is not ready for Apple Silicon / M1 devices! If you're using one, you might need to install Python, then install ninfs as a package with pip instead. (Or run from the repo.)
      • It's still not signed, so Gatekeeper will get in the way. On Big Sur you might need to control-click and choose "Open" twice to get the option to open it.
    • Centralize all mount info into a module called mountinfo to make adding new types easier in the future. See DEVELOPMENT.md for details.
    • Fix total size display
    • Relax pyctr requirement to >=0.4,<0.5 (meaning any 0.4.X version)

    Installation

    Windows

    The installer includes ninfs and WinFsp. This is the easiest way to use the application.

    The standalone release can be downloaded as ninfs-2.0a5-win32.zip below the notes. Extract and run ninfsw.exe (or ninfs.exe to have a console attached).

    ninfs can also be used as a Python module below.

    macOS

    macOS users need FUSE for macOS.

    The standalone release can be downloaded as ninfs-2.0a5-macos.dmg below the notes. Open the disk image, optionally copy to the Applications folder, and run ninfs.

    ninfs can also be used as a Python module below.

    Linux

    Install as a pip module like below. To use the gui, make sure tkinter is installed. This is python3-tk on Debian/Ubuntu and python3-tkinter on Fedora.

    Arch Linux: (AUR git package still needs updates, please wait...)

    BSD/etc.

    No idea. It might work! I would like to make sure ninfs works on these systems too, so feel free to file issues or make PRs for compatibility with BSD or other systems that support libfuse.

    fusepy should support FreeBSD and OpenBSD. For anything else you should consider adding support to refuse.

    Python module installation

    Python 3.6.1 or later is required. Version on PyPI

    Windows

    • py -3 -mpip install ninfs==2.0a5

    macOS

    The 10.6 variant of Python is not supported for Nintendo Switch NAND/NANDHAC types.

    • python3 -mpip install ninfs==2.0a5

    Linux

    • python3 -mpip install --user ninfs==2.0a5
      • --user is not required if you are using a virtualenv.

    A little something extra...

    If my tools have helped you in some way then please consider supporting me on Patreon, PayPal, or Ko-Fi.

    Source code(tar.gz)
    Source code(zip)
    ninfs-2.0a5-macos.dmg(23.45 MB)
    ninfs-2.0a5-win32-installer.exe(15.43 MB)
    ninfs-2.0a5-win32.zip(16.02 MB)
  • v2.0a4(Mar 9, 2021)

    This is the fourth alpha release for ninfs 2.0, with even more fixes and improvements.

    This release is far from finished! It only has minimal testing. Some features are missing completely, some may not work correctly or at all.

    This is a release that is the result of many internal changes under the hood over a year, and there are still more that are coming, before and after 2.0's full release. Testing this release is highly appreciated. Please file issues on GitHub. Support is provided on my server on Discord (info, invite link) or the thread on GBATemp. Thanks!

    Note about Windows 7

    Due to Microsoft discontinuing support for Windows 7, this platform is no longer supported. As soon as the standalone release is updated to use Python 3.9, it will not start. It should still work when used as a Python module, but issues specific to Windows 7 may not be fixed.

    Fixes and other changes

    • ExeFS: Only try to decompress .code if it exists
    • GUI: Don't try to set window icon on non-Windows platforms (might be fixed for Linux/etc later)
    • NCCH: Fix volume name display, breaking the mount on Windows and macOS
    • GUI: Fix importing fusepy and displaying error if it fails
    • CDN: Actually use decrypted titlekey specified with --dec-key (was completely non-functional)
    • Require pyctr==0.4.6 (only relevant to non-standalone build users)

    Installation

    Windows

    The installer includes ninfs and WinFsp. This is the easiest way to use the application.

    The standalone release can be downloaded as ninfs-2.0a4-win32.zip below the notes. Extract and run ninfsw.exe (or ninfs.exe to have a console attached).

    ninfs can also be used as a Python module below.

    macOS

    macOS users need FUSE for macOS.

    No standalone build is provided yet. cx_Freeze was giving me problems. Sorry! I really want to fix this soon but decided to focus more of my time on the core application first.

    For the time being, install it as a Python module below.

    Linux

    Install as a pip module like below. To use the gui, make sure tkinter is installed. This is python3-tk on Debian/Ubuntu and python3-tkinter on Fedora.

    Arch Linux: (AUR git package still needs updates, please wait...)

    BSD/etc.

    No idea. It might work! I would like to make sure ninfs works on these systems too, so feel free to file issues or make PRs for compatibility with BSD or other systems that support libfuse.

    fusepy should support FreeBSD and OpenBSD. For anything else you should consider adding support to refuse.

    Python module installation

    Python 3.6.1 or later is required. Version on PyPI

    Windows

    • py -3 -mpip install ninfs==2.0a4

    macOS

    The 10.6 variant of Python is not supported for Nintendo Switch NAND/NANDHAC types.

    • python3 -mpip install ninfs==2.0a4

    Linux

    • python3 -mpip install --user ninfs==2.0a4
      • --user is not required if you are using a virtualenv.

    A little something extra...

    If my tools have helped you in some way then please consider supporting me on Patreon, PayPal, or Ko-Fi.

    Source code(tar.gz)
    Source code(zip)
    ninfs-2.0a4-win32-installer.exe(15.46 MB)
    ninfs-2.0a4-win32.zip(16.09 MB)
  • v2.0a3(Oct 26, 2020)

    This is the third alpha release for ninfs 2.0, with more fixes and improvements.

    This release is far from finished! It only has minimal testing. Some features are missing completely, some may not work correctly or at all.

    This is a release that is the result of many internal changes under the hood over a year, and there are still more that are coming, before and after 2.0's full release. Testing this release is highly appreciated. Please file issues on GitHub. Support is provided on my server on Discord (info, invite link) or the thread on GBATemp. Thanks!

    Note about Windows 7

    Due to Microsoft discontinuing support for Windows 7, this platform is no longer supported. As soon as the standalone release is updated to use Python 3.9, it will not start. It should still work when used as a Python module, but issues specific to Windows 7 may not be fixed.

    Fixes and other changes

    • GUI: Fix opening URLs in "About" window

    • GUI: Check if libfuse works

    • nandctr: Fix keyslot for sector0x96 (#58)

    • GUI: Add manual seed input for cdn, cia, and ncch (#31)

    • cdn: Rewrite to use pyctr.type.cdn (#67)

    • nandhac: Add nandnx alias

    • GUI: Add Python version to "About" window

    • GUI: Ask before closing if any mounts exist

    • RomFS: Fix mounting from filename (pyctr issue)

    • ExeFS: Fix mounting from filename (pyctr issue)


    Installation

    Windows

    The installer includes ninfs and WinFsp. This is the easiest way to use the application.

    The standalone release can be downloaded as ninfs-2.0a3-win32.zip below the notes. Extract and run ninfsw.exe (or ninfs.exe to have a console attached).

    ninfs can also be used as a Python module below.

    macOS

    macOS users need FUSE for macOS.

    No standalone build is provided yet. cx_Freeze was giving me problems. Sorry! I really want to fix this soon but decided to focus more of my time on the core application first.

    For the time being, install it as a Python module below.

    Linux

    Install as a pip module like below. To use the gui, make sure tkinter is installed. This is python3-tk on Debian/Ubuntu and python3-tkinter on Fedora.

    Arch Linux: (AUR git package still needs updates, please wait...)

    BSD/etc.

    No idea. It might work! I would like to make sure ninfs works on these systems too, so feel free to file issues or make PRs for compatibility with BSD or other systems that support libfuse.

    fusepy should support FreeBSD and OpenBSD. For anything else you should consider adding support to refuse.

    Python module installation

    Python 3.6.1 or later is required. Version on PyPI

    Windows

    • py -3 -mpip install ninfs==2.0a3

    macOS

    The 10.6 variant of Python is not supported for Nintendo Switch NAND/NANDHAC types.

    • python3 -mpip install ninfs==2.0a3

    Linux

    • python3 -mpip install --user ninfs==2.0a2
      • --user is not required if you are using a virtualenv.

    A little something extra...

    If my tools have helped you in some way then please consider supporting me on Patreon, PayPal, or Ko-Fi.

    Source code(tar.gz)
    Source code(zip)
    ninfs-2.0a3-win32-installer.exe(26.91 MB)
    ninfs-2.0a3-win32.zip(27.39 MB)
  • v2.0a2(Sep 19, 2020)

    This is the second alpha release for ninfs 2.0, featuring an installer for Windows.

    This release is far from finished! It only has minimal testing. Some features are missing completely, some may not work correctly or at all.

    This is a release that is the result of many internal changes under the hood over a year, and there are still more that are coming, before and after 2.0's full release. Testing this release is highly appreciated. Please file issues on GitHub. Support is provided on my server on Discord (info, invite link) or the thread on GBATemp. Thanks!

    Windows Installer

    An installer is available for Windows. This includes WinFsp, which is automatically installed if it isn't already. It also can add a Start Menu entry, and add the installation directory to PATH for command line usage.

    A standalone zip is still available.

    Note about Windows 7

    Due to Microsoft discontinuing support for Windows 7, this platform is no longer supported. As soon as the standalone release is updated to use Python 3.9, it will not start. It should still work when used as a Python module, but issues specific to Windows 7 may not be fixed.

    Other features and changes

    • GUI: Support single partition dumps for Nintendo Switch NAND/NANDHAC

    • About window updated to display licenses for included software and libraries

    • hac crypto module is separated to its own module: https://github.com/luigoalma/haccrypto

      • As a result, ninfs wheels no longer contain binary code and are cross-platform.
    • GUI: Fix SD wizard

    • GUI: Use console process if GUI has no console

      • This means that a cx_Freeze error dialog won't appear if the mount exits with an error.
    • Standalone Windows build now has two executables: ninfs and ninfsw. The latter starts without a console attached.

    • Add ninfsw entry point to setup.py to start without a console on Windows (no effect on other platforms)

    • Support providing a mount type to "ninfs" when run as a module, matching Windows standalone releases

    • Some others I probably forgot


    Installation

    Windows

    The installer includes ninfs and WinFsp. This is the easiest way to use the application.

    The standalone release can be downloaded as ninfs-2.0a2-win32.zip below the notes. Extract and run ninfsw.exe (or ninfs.exe to have a console attached).

    ninfs can also be used as a Python module below.

    macOS

    macOS users need FUSE for macOS.

    No standalone build is provided yet. cx_Freeze was giving me problems. Sorry! I really want to fix this soon but decided to focus more of my time on the core application first.

    For the time being, install it as a Python module below.

    Linux

    Install as a pip module like below. To use the gui, make sure tkinter is installed. This is python3-tk on Debian/Ubuntu and python3-tkinter on Fedora.

    Arch Linux: (AUR git package still needs updates, please wait...)

    BSD/etc.

    No idea. It might work! I would like to make sure ninfs works on these systems too, so feel free to file issues or make PRs for compatibility with BSD or other systems that support libfuse.

    fusepy should support FreeBSD and OpenBSD. For anything else you should consider adding support to refuse.

    Python module installation

    Python 3.6.1 or later is required. Version on PyPI

    Windows

    • py -3 -mpip install --upgrade ninfs==2.0a2

    macOS

    The 10.6 variant of Python is not supported for Nintendo Switch NAND/NANDHAC types.

    • python3 -mpip install --upgrade ninfs==2.0a2

    Linux

    • python3 -mpip install --upgrade --user ninfs==2.0a2
      • --user is not required if you are using a virtualenv.

    A little something extra...

    If my tools have helped you in some way then please consider supporting me on Patreon, PayPal, or Ko-Fi.

    Source code(tar.gz)
    Source code(zip)
    ninfs-2.0a2-win32-installer.exe(27.44 MB)
    ninfs-2.0a2-win32.zip(28.05 MB)
  • v2.0a1(Sep 7, 2020)

    This is the first alpha release for ninfs 2.0, featuring a completely new GUI.

    This release is far from finished! Some features are missing completely, some may not work correctly or at all. Notably, no macOS application is available at the moment (but can still be used as a Python module).

    This is a release that is the result of many internal changes under the hood over a year, and there are still more that are coming, before and after 2.0's full release. Testing this release is highly appreciated. Please file issues on GitHub. Support is provided on my server on Discord (info, invite link) or the thread on GBATemp. Thanks!

    New GUI

    • Supports multiple mounts within a single instance

    • Creating a new mount uses a simple wizard, with some fields auto-filled where possible

    • Console is hidden by default on Windows

    Other new features

    • NANDHAC: Support for mounting a single partition dump (PRODINFOF, PRODINFO, SYSTEM, USER) (not in the GUI yet)

    • NCCH/CIA/CDN: Support providing a seed directly (not in the GUI yet)

    Other changes

    • NANDHAC: Don't open NAND in read-write mode if mount is created read-only

    • NANDHAC: Handle missing BIS keys by hiding partitions without available keys

    • CCI/CDN/CIA/NCCH: Show partial game title in the volume name on Windows

    • SRL: Show game title in volume name

    • NANDCTR: Show Device ID in volume name

    Removed or missing features

    • On Windows, only drive letters can be used as a mount. (Directory mount points can still be used through the command line.)

      • The side effect of this is that NAND types aren't usable with OSFMount, unless ninfs is run as administrator.

      • This should hopefully not be an issue once FAT filesystem mounting is added to ninfs, removing the need for OSFMount or similar tools.

      • This might come back in a future release.

    • The GUI doesn't check if libfuse works.

    • Since boot9 and seeddb can be set during the mount wizard, there is no feature to copy these files to the common locations. This might be added later. Files in these locations are still automatically used.

    • The Nintendo Switch NAND/NANDHAC wizard currently doesn't support choosing a single partition dump, instead expecting a full NAND image (full or split). This can still be done from the command line.

    • The 3DS and DSi NAND mounts don't show individual partitions for ctrnand and twlnand anymore. Instead there is only ctrnand_full.img and twlnand_full.img.

    • Nintendo 3DS SD mounts hide the "Nintendo DSiWare" directory. Due to the encryption of the files inside, supporting this like GodMode9 requires more effort. Until these files can be decrypted properly, exposing this directory as-is will only cause problems.

    • root notice no longer shows for Linux/macOS.

    • No standalone Windows 64-bit build is provided yet.

    • The standalone Windows build has no version with a console attached, making command line use with nearly impossible. Please install ninfs as a Python module if this is important right now. This will be resolved in the next release.

    • "About" dialog is unfinished.

    There are most definitely other changes that I left out on accident.

    Library versions in the Windows standalone release:

    • Python 3.8.5 32-bit

    • pyctr 0.4.3

    • pycryptodomex 3.9.8

    • cx-Freeze 6.2


    Installation

    Windows

    Windows users need WinFsp.

    The standalone release can be downloaded as ninfs-2.0a1-win32.zip below the notes. Extract and ninfs.exe.

    ninfs can also be used as a Python module below.

    macOS

    macOS users need FUSE for macOS.

    No standalone build is provided yet. cx_Freeze was giving me problems. Sorry! I really want to fix this soon but decided to focus more of my time on the core application first.

    For the time being, install it as a Python module below.

    Linux

    Install as a pip module like below. To use the gui, make sure tkinter is installed. This is python3-tk on Debian/Ubuntu and python3-tkinter on Fedora.

    Arch Linux: (AUR git package still needs updates, please wait...)

    BSD/etc.

    No idea. It might work! I would like to make sure ninfs works on these systems too, so feel free to file issues or make PRs for compatibility with BSD or other systems that support libfuse.

    fusepy should support FreeBSD and OpenBSD. For anything else you should consider adding support to refuse.

    Python module installation

    Python 3.6.1 or later is required. Version on PyPI

    Windows

    Wheels are provided for 32-bit and 64-bit versions of 3.6, 3.7, and 3.8.

    • py -3 -mpip install --upgrade ninfs==2.0a1

    macOS

    Wheels are provided for the macOS 10.9 variants of 3.6, 3.7, and 3.8. The hac._crypto module will not build with the 10.6 variants.

    • python3 -mpip install --upgrade ninfs==2.0a1

    Linux

    • python3 -mpip install --upgrade --user ninfs==2.0a1
      • --user is not required if you are using a virtualenv.

    A little something extra...

    The first commit for ninfs, at the time called fuse-3ds, happened just over 3 years ago on August 14, 2020. Back then it was just a collection of independent mounting scripts. Now it's evolved to be my largest project with support for many types for Nintendo consoles.

    If my tools have helped you in some way then please consider supporting me on Patreon, PayPal, or Ko-Fi.

    Source code(tar.gz)
    Source code(zip)
    ninfs-2.0a1-win32.zip(28.10 MB)
  • v1.7b2(Aug 15, 2019)

    Warning: Using the GUI on macOS 10.14.6 will crash WindowServer and force you back to the login screen. The issue can be followed here: http://github.com/pyinstaller/pyinstaller/issues/4334

    Changes since v1.6.1

    • SD: Properly decrypt contents of backup folder
    • NANDHAC: Support "raw" partition-based emuMMC images with -R/--raw-emummc
    • Display application name for CIA, CCI, and NCCH in mount title on macOS
    • Allow assuming contents are decrypted for CCI and NCCH
    • Major internal changes and rewriting
    • Remove titledir mount - better tools will be coming later to search for installed titles
    • Other things, probably

    Changes since v1.7b1

    • Display application name for CCI in mount title on macOS
    • Allow assuming contents are decrypted for CCI and NCCH

    Interested in filling out a quick survey on how you use ninfs? Click here!

    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for ninfs on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at my server on Discord, Nintendo Homebrew on Discord, or the GBAtemp thread.

    The signatures are created with the PGP key 90725113CA578EAA.

    Usage

    Windows and macOS users can download the standalone applications attached to this release, which works without needing Python installed. WinFsp for Windows or FUSE for macOS must still be installed.

    Linux users (and users who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/ninfs/releases/download/v1.7b2/ninfs-1.7b2-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/ninfs/releases/download/v1.7b2/ninfs-1.7b2-src.zip#egg=ninfs[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/ninfs/releases/download/v1.7b2/ninfs-1.7b2-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/ninfs/releases/download/v1.7b2/ninfs-1.7b2-src.zip#egg=ninfs[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/ninfs/releases/download/v1.7b2/ninfs-1.7b2-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/ninfs/releases/download/v1.7b2/ninfs-1.7b2-src.zip#egg=ninfs[gui]
    Source code(tar.gz)
    Source code(zip)
    ninfs-1.7b2-macos.dmg(14.14 MB)
    ninfs-1.7b2-macos.dmg.asc(833 bytes)
    ninfs-1.7b2-src.zip(3.76 MB)
    ninfs-1.7b2-src.zip.asc(833 bytes)
    ninfs-1.7b2-win32.zip(10.77 MB)
    ninfs-1.7b2-win32.zip.asc(833 bytes)
    ninfs-1.7b2-win64.zip(11.78 MB)
    ninfs-1.7b2-win64.zip.asc(833 bytes)
  • v1.7b1(Jul 15, 2019)

    Changes since v1.6.1

    • SD: Properly decrypt contents of backup folder
    • NANDHAC: Support "raw" partition-based emuMMC images with -R/--raw-emummc
    • Display application name for CIA and NCCH in mount title on macOS
    • Major internal changes and rewriting
    • Remove titledir mount - better tools will be coming later to search for installed titles
    • Other things that I may have forgot to list here

    Warning: Using the GUI on macOS 10.15 beta or 10.14.6 will crash WindowServer and force you back to the login screen.


    Interested in filling out a quick survey on how you use ninfs? Click here!

    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for ninfs on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at my server on Discord, Nintendo Homebrew on Discord, or the GBAtemp thread.

    The signatures are created with the PGP key 90725113CA578EAA.

    Usage

    Windows and macOS users can download the standalone applications attached to this release, which works without needing Python installed. WinFsp for Windows or FUSE for macOS must still be installed.

    Linux users (and users who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/ninfs/releases/download/v1.7b1/ninfs-1.7b1-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/ninfs/releases/download/v1.7b1/ninfs-1.7b1-src.zip#egg=ninfs[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/ninfs/releases/download/v1.7b1/ninfs-1.7b1-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/ninfs/releases/download/v1.7b1/ninfs-1.7b1-src.zip#egg=ninfs[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/ninfs/releases/download/v1.7b1/ninfs-1.7b1-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/ninfs/releases/download/v1.7b1/ninfs-1.7b1-src.zip#egg=ninfs[gui]
    Source code(tar.gz)
    Source code(zip)
    ninfs-1.7b1-macos.dmg(12.75 MB)
    ninfs-1.7b1-macos.dmg.asc(833 bytes)
    ninfs-1.7b1-src.zip(3.76 MB)
    ninfs-1.7b1-src.zip.asc(833 bytes)
    ninfs-1.7b1-win32.zip(10.17 MB)
    ninfs-1.7b1-win32.zip.asc(833 bytes)
    ninfs-1.7b1-win64.zip(11.17 MB)
    ninfs-1.7b1-win64.zip.asc(833 bytes)
  • v1.6.1(May 27, 2019)

    Note: This release is pretty old. Please consider trying the latest pre-releases. https://github.com/ihaveamac/ninfs/releases

    Changes since v1.6

    • CCI: Fix oversight with passing boot9 to the NCCH mount, causing the partitions to not be mounted - #43

    Warning: Using the GUI on the macOS 10.14.6 and 10.15 betas will crash WindowServer and force you back to the login screen.

    Available on PyPI and AUR!


    Interested in filling out a quick survey on how you use ninfs? Click here!

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for ninfs on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at my server on Discord, Nintendo Homebrew on Discord, or the GBAtemp thread.

    The signatures are created with the PGP key 90725113CA578EAA.

    Usage

    Windows and macOS users can download the standalone applications attached to this release, which works without needing Python installed. WinFsp for Windows or FUSE for macOS must still be installed.

    Linux users (and users who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade ninfs==1.6.1
      • With GUI support: py -3 -m pip install --upgrade ninfs[gui]==1.6.1

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade ninfs==1.6.1
      • With GUI support: python3 -m pip install --upgrade ninfs[gui]==1.6.1

    Linux

    • python3 -mpip install --upgrade --user ninfs==1.6.1
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user ninfs[gui]==1.6.1
    Source code(tar.gz)
    Source code(zip)
    ninfs-1.6.1-macos.dmg(12.75 MB)
    ninfs-1.6.1-macos.dmg.asc(833 bytes)
    ninfs-1.6.1-src.zip(3.75 MB)
    ninfs-1.6.1-src.zip.asc(833 bytes)
    ninfs-1.6.1-win32.zip(9.97 MB)
    ninfs-1.6.1-win32.zip.asc(833 bytes)
    ninfs-1.6.1-win64.zip(10.71 MB)
    ninfs-1.6.1-win64.zip.asc(833 bytes)
  • v1.6(May 27, 2019)

    Changes since v1.5

    • CDN: Support using a tmd file to mount - #36
      • The GUI now expects a tmd file by default instead of a directory.
    • SD: Support manual SD key input
      • --sd-key reads the key as a hexstring. It cannot be used at the same time as --movable.
      • The GUI currently does not accept the key as a hexstring, only a movable.sed file.
    • CMDLINE: Support --boot9 for loading the ARM9 bootROM from any path
    • SD: Workaround write corruption bug
    • NANDHAC: Performance improvements to AES-XTSN crypto operations by @luigoalma
    • CCI: Remove useless SeedDB option
    • Stability or something, I guess.

    Available on PyPI and AUR!


    Interested in filling out a quick survey on how you use ninfs? Click here!

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for ninfs on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    The signatures are created with the PGP key 90725113CA578EAA.

    Usage

    Windows and macOS users can download the standalone applications attached to this release, which works without needing Python installed. WinFsp for Windows or FUSE for macOS must still be installed.

    Linux users (and users who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade ninfs==1.6
      • With GUI support: py -3 -m pip install --upgrade ninfs[gui]==1.6

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade ninfs==1.6
      • With GUI support: python3 -m pip install --upgrade ninfs[gui]==1.6

    Linux

    • python3 -mpip install --upgrade --user ninfs==1.6
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user ninfs[gui]==1.6
    Source code(tar.gz)
    Source code(zip)
    ninfs-1.6-macos.dmg(12.75 MB)
    ninfs-1.6-macos.dmg.asc(833 bytes)
    ninfs-1.6-src.zip(3.75 MB)
    ninfs-1.6-src.zip.asc(833 bytes)
    ninfs-1.6-win32.zip(9.97 MB)
    ninfs-1.6-win32.zip.asc(833 bytes)
    ninfs-1.6-win64.zip(10.71 MB)
    ninfs-1.6-win64.zip.asc(833 bytes)
  • v1.5(May 21, 2019)

    Changes since v1.4

    • Support split Nintendo Switch NAND backup files
      • Each part is expected to end in two digits (e.g. rawnand.bin.00, rawnand.bin.01, ...). Any part can be selected, the program will search for all parts starting with 00.
      • The command line argument -S or --split-files is used for a split backup.
      • The GUI will attempt to automatically detect this based on the filename.
    • GUI: Automatically detect Nintendo DSi NAND backups
    • GUI: Fix oversight breaking automatic detection of Nintendo 3DS NAND backups
    • ExeFS: Always show code-decompressed.bin, even if .code is not compressed

    Available on PyPI and AUR!


    Interested in filling out a quick survey on how you use ninfs? Click here!

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for ninfs on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    The signatures are created with the PGP key 90725113CA578EAA.

    Usage

    Windows and macOS users can download the standalone applications attached to this release, which works without needing Python installed. WinFsp for Windows or FUSE for macOS must still be installed.

    Linux users (and users who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade ninfs==1.5
      • With GUI support: py -3 -m pip install --upgrade ninfs[gui]==1.5

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade ninfs==1.5
      • With GUI support: python3 -m pip install --upgrade ninfs[gui]==1.5

    Linux

    • python3 -mpip install --upgrade --user ninfs==1.5
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user ninfs[gui]==1.5
    Source code(tar.gz)
    Source code(zip)
    ninfs-1.5-macos.dmg(12.75 MB)
    ninfs-1.5-macos.dmg.asc(833 bytes)
    ninfs-1.5-src.zip(3.82 MB)
    ninfs-1.5-src.zip.asc(833 bytes)
    ninfs-1.5-win32.zip(9.97 MB)
    ninfs-1.5-win32.zip.asc(833 bytes)
    ninfs-1.5-win64.zip(10.71 MB)
    ninfs-1.5-win64.zip.asc(833 bytes)
  • v1.4(Apr 18, 2019)

    Changes since v1.3.1

    • New feature to mount Nintendo Switch NAND images
      • This requires BIS keys, dumped with Lockpick_RCM or biskeydump.
    • New project name: ninfs
    • Fix incorrect developer common key 0
    • Many other internal changes

    Available on PyPI and AUR!


    Interested in filling out a quick survey on how you use ninfs? Click here!

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for ninfs on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    The signatures are created with the PGP key 90725113CA578EAA.

    Usage

    Windows and macOS users can download the standalone applications attached to this release, which works without needing Python installed. WinFsp for Windows or FUSE for macOS must still be installed.

    Linux users (and users who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade ninfs==1.4
      • With GUI support: py -3 -m pip install --upgrade ninfs[gui]==1.4

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade ninfs==1.4
      • With GUI support: python3 -m pip install --upgrade ninfs[gui]==1.4

    Linux

    • python3 -mpip install --upgrade --user ninfs==1.4
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user ninfs[gui]==1.4
    Source code(tar.gz)
    Source code(zip)
    ninfs-1.4-macos.dmg(12.73 MB)
    ninfs-1.4-macos.dmg.asc(833 bytes)
    ninfs-1.4-src.zip(3.75 MB)
    ninfs-1.4-src.zip.asc(833 bytes)
    ninfs-1.4-win32.zip(9.97 MB)
    ninfs-1.4-win32.zip.asc(833 bytes)
    ninfs-1.4-win64.zip(10.71 MB)
    ninfs-1.4-win64.zip.asc(833 bytes)
  • v1.3.1(Nov 30, 2018)

    Changes since v1.3

    • New custom icon
    • First release of standalone macOS Application Bundle
    • Minor GUI text updates

    Now available on PyPI and AUR!


    Interested in filling out a quick survey on how you use fuse-3ds? Click here! (Updated to add the new type Nintendo DS ROM image)

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    The signatures are created with the PGP key 90725113CA578EAA.

    Usage

    Windows and macOS users can download the standalone applications attached to this release, which works without needing Python installed. WinFsp for Windows or FUSE for macOS must still be installed.

    Linux users (and users who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade fuse-3ds==1.3.1
      • With GUI support: py -3 -m pip install --upgrade fuse-3ds[gui]==1.3.1

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade fuse-3ds==1.3.1
      • With GUI support: python3 -m pip install --upgrade fuse-3ds[gui]==1.3.1

    Linux

    • python3 -mpip install --upgrade --user fuse-3ds==1.3.1
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user fuse-3ds[gui]==1.3.1
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.3.1-macos.dmg(12.30 MB)
    fuse-3ds-1.3.1-macos.dmg.sig(566 bytes)
    fuse-3ds-1.3.1-src.zip(1.11 MB)
    fuse-3ds-1.3.1-src.zip.sig(566 bytes)
    fuse-3ds-1.3.1-win32.zip(10.25 MB)
    fuse-3ds-1.3.1-win32.zip.sig(566 bytes)
    fuse-3ds-1.3.1-win64.zip(11.05 MB)
    fuse-3ds-1.3.1-win64.zip.sig(566 bytes)
  • v1.3(Oct 12, 2018)

    Changes since v1.2

    • Added option to skip a specific update
    • Added option to prevent checking online for updates
    • Fix detection of tkinter on Linux

    Now available on PyPI!


    Interested in filling out a quick survey on how you use fuse-3ds? Click here! (Updated to add the new type Nintendo DS ROM image)

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade fuse-3ds==1.3
      • With GUI support: py -3 -m pip install --upgrade fuse-3ds[gui]==1.3

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade fuse-3ds==1.3
      • With GUI support: python3 -m pip install --upgrade fuse-3ds[gui]==1.3

    Linux

    • python3 -mpip install --upgrade --user fuse-3ds==1.3
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user fuse-3ds[gui]==1.3
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.3-src.zip(90.92 KB)
    fuse-3ds-1.3-win32.zip(9.11 MB)
    fuse-3ds-1.3-win64.zip(9.93 MB)
  • v1.2(Sep 17, 2018)

    Changes since v1.1.1

    • Support mounting Nintendo DS ROM images
    • Windows Executable: Fix ModuleNotFoundError: No module named 'mount.nanddsi'
    • Read Console ID and CID from Nocash block in Nintendo DSi NANDs
    • Remove hardcoded NAND size check for Nintendo DSi NANDs
    • GUI: Add extra input checks
    • GUI: Slightly more verbose GUI startup
    • GUI: Set default text for Nintendo DSi Console ID input
    • GUI: Separate Nintendo 3DS and DS / DSi types in dropdown menu
    • GUI: New "About" dialog with version and license information
    • GUI: Add link to tutorial on start screen
    • Support ~/Library/Application Support/3ds for support files on macOS
    • Fix incorrect file extension for Nintendo DSiWare contents in CIA/CDN mounts
    • Fix allowing an empty directory to be used on Windows
    • Move ExeFS .code decompression to second thread, if inside an NCCH
    • Refactoring and optimizing
      • GUI: Startup process has been optimized and should appear quicker
      • GUI: Update checks happen on a second thread
    • Now built with Python 3.7.0!

    Interested in filling out a quick survey on how you use fuse-3ds? Click here! (Updated to add the new type Nintendo DS ROM image)

    I responded to some survey entries here: https://www.reddit.com/r/3dshacks/comments/9ghgoh/

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2/fuse-3ds-1.2-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2/fuse-3ds-1.2-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2/fuse-3ds-1.2-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2/fuse-3ds-1.2-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2/fuse-3ds-1.2-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2/fuse-3ds-1.2-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.2-src.zip(92.04 KB)
    fuse-3ds-1.2-win32.zip(9.11 MB)
    fuse-3ds-1.2-win64.zip(9.93 MB)
  • v1.2b5(Sep 11, 2018)

    Changes since v1.1.1

    • Support mounting Nintendo DS ROM images
    • Read Console ID and CID from Nocash block in Nintendo DSi NANDs
    • Remove hardcoded NAND size check for Nintendo DSi NANDs
    • GUI: Add extra input checks
    • GUI: Slightly more verbose GUI startup
    • GUI: Set default text for Nintendo DSi Console ID input
    • GUI: Separate Nintendo 3DS and DS / DSi types in dropdown menu
    • GUI: New "About" dialog with version and license information
    • GUI: Add link to tutorial on start screen
    • Windows Executable: Fix ModuleNotFoundError: No module named 'mount.nanddsi'
    • Support ~/Library/Application Support/3ds for support files on macOS
    • Fix incorrect file extension for Nintendo DSiWare contents in CIA/CDN mounts
    • Fix allowing an empty directory to be used on Windows
    • Move ExeFS .code decompression to second thread, if inside an NCCH
    • Refactoring and optimizing
      • GUI: Startup process has been optimized and should appear quicker
      • GUI: Update checks happen on a second thread

    Changes since v1.2b4

    • GUI: Add link to tutorial on start screen
    • Support ~/Library/Application Support/3ds for support files on macOS
    • Standalone executable built on Python 3.7.0

    Interested in filling out a quick survey on how you use fuse-3ds? Click here!

    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b5/fuse-3ds-1.2b5-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b5/fuse-3ds-1.2b5-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b5/fuse-3ds-1.2b5-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b5/fuse-3ds-1.2b5-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b5/fuse-3ds-1.2b5-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b5/fuse-3ds-1.2b5-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.2b5-src.zip(91.57 KB)
    fuse-3ds-1.2b5-win32.zip(9.10 MB)
    fuse-3ds-1.2b5-win64.zip(9.93 MB)
  • v1.2b4(Aug 4, 2018)

    Changes since v1.1.1

    • Support mounting Nintendo DS ROM images (you can help test at #12)
    • Read Console ID and CID from Nocash block in Nintendo DSi NANDs
    • Remove hardcoded NAND size check for Nintendo DSi NANDs
    • GUI: Add extra input checks
    • GUI: Slightly more verbose GUI startup
    • GUI: Set default text for Nintendo DSi Console ID input
    • GUI: Separate Nintendo 3DS and DS / DSi types in dropdown menu
    • GUI: New "About" dialog with version and license information
    • Windows Executable: Fix ModuleNotFoundError: No module named 'mount.nanddsi'
    • Fix incorrect file extension for Nintendo DSiWare contents in CIA/CDN mounts
    • Fix allowing an empty directory to be used on Windows
    • Move ExeFS .code decompression to second thread, if inside an NCCH
    • Refactoring and optimizing
      • GUI: Startup process has been optimized and should appear quicker
      • GUI: Update checks happen on a second thread

    Changes since v1.2b3

    • GUI: More verbose GUI startup
    • Fix RomFS not mounting in NCCH
    • Move ExeFS .code decompression to second thread, if inside an NCCH
    • More optimizations
      • GUI: Update checks happen on a second thread

    Interested in filling out a quick survey on how you use fuse-3ds? Click here!

    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b4/fuse-3ds-1.2b4-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b4/fuse-3ds-1.2b4-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b4/fuse-3ds-1.2b4-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b4/fuse-3ds-1.2b4-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b4/fuse-3ds-1.2b4-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b4/fuse-3ds-1.2b4-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.2b4-src.zip(86.91 KB)
    fuse-3ds-1.2b4-win32.zip(12.12 MB)
    fuse-3ds-1.2b4-win64.zip(13.49 MB)
  • v1.2b3(Jul 9, 2018)

    Changes since v1.1.1

    • Support mounting Nintendo DS ROM images (you can help test at #12)
    • Read Console ID and CID from Nocash block in Nintendo DSi NANDs
    • Remove hardcoded NAND size check for Nintendo DSi NANDs
    • GUI: Add extra input checks
    • GUI: Slightly more verbose GUI startup
    • GUI: Set default text for Nintendo DSi Console ID input
    • GUI: Separate Nintendo 3DS and DS / DSi types in dropdown menu
    • GUI: New "About" dialog with version and license information
    • Windows Executable: Fix ModuleNotFoundError: No module named 'mount.nanddsi'
    • Fix incorrect file extension for Nintendo DSiWare contents in CIA/CDN mounts
    • Fix allowing an empty directory to be used on Windows
    • Refactoring and optimizing
      • GUI: Startup process has been optimized and should appear quicker

    Changes since v1.2b2

    • Show different error if nocash block is missing and Console ID is not provided
    • GUI: Set default text for Nintendo DSi Console ID input
    • GUI: Separate Nintendo 3DS and DS / DSi types in dropdown menu
    • GUI: New "About" dialog with version and license information
    • Fix allowing an empty directory to be used on Windows
    • Refactoring and optimizing
      • GUI: Startup process has been optimized and should appear quicker

    Known Issues

    • RomFS doesn't automatically mount sometimes (fixed in 2387f44ce1ee43bd1bdff3118231ca7fe10fe75b)

    Interested in filling out a quick survey on how you use fuse-3ds? Click here!

    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b3/fuse-3ds-1.2b3-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b3/fuse-3ds-1.2b3-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b3/fuse-3ds-1.2b3-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b3/fuse-3ds-1.2b3-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b3/fuse-3ds-1.2b3-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b3/fuse-3ds-1.2b3-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.2b3-src.zip(86.77 KB)
    fuse-3ds-1.2b3-win32.zip(12.12 MB)
    fuse-3ds-1.2b3-win64.zip(13.49 MB)
  • v1.2b2(Jun 25, 2018)

    Changes since v1.1.1

    • Support mounting Nintendo DS ROM images (you can help test at #12)
    • Read Console ID and CID from Nocash block in Nintendo DSi NANDs
    • Remove hardcoded NAND size check for Nintendo DSi NANDs
    • GUI: Add extra input checks
    • GUI: Slightly more verbose GUI startup
    • Windows Executable: Fix ModuleNotFoundError: No module named 'mount.nanddsi'
    • Fix incorrect file extension for Nintendo DSiWare contents in CIA/CDN mounts

    Changes since v1.2b1

    • Fix banner.bin size for Nintendo DS ROM images
    • GUI: Add extra input checks
    • GUI: Slightly more verbose GUI startup

    Interested in filling out a quick survey on how you use fuse-3ds? Click here!

    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b2/fuse-3ds-1.2b2-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b2/fuse-3ds-1.2b2-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b2/fuse-3ds-1.2b2-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b2/fuse-3ds-1.2b2-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b2/fuse-3ds-1.2b2-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b2/fuse-3ds-1.2b2-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.2b2-src.zip(84.99 KB)
    fuse-3ds-1.2b2-win32.zip(12.11 MB)
    fuse-3ds-1.2b2-win64.zip(13.14 MB)
  • v1.2b1(Jun 24, 2018)

    Changes since v1.1.1

    • Support mounting Nintendo DS ROM images (you can help test at #12)
    • Read Console ID and CID from Nocash block in Nintendo DSi NANDs
    • Remove hardcoded NAND size check for Nintendo DSi NANDs
    • Fix incorrect file extension for Nintendo DSiWare contents in CIA/CDN mounts
    • Windows Executable: Fix ModuleNotFoundError: No module named 'mount.nanddsi'

    Interested in filling out a quick survey on how you use fuse-3ds? Click here!

    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b1/fuse-3ds-1.2b1-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b1/fuse-3ds-1.2b1-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b1/fuse-3ds-1.2b1-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b1/fuse-3ds-1.2b1-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b1/fuse-3ds-1.2b1-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.2b1/fuse-3ds-1.2b1-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.2b1-src.zip(84.70 KB)
    fuse-3ds-1.2b1-win32.zip(12.11 MB)
    fuse-3ds-1.2b1-win64.zip(13.14 MB)
  • v1.1.1(Jun 16, 2018)

    Changes since v1.1

    • GUI: Fix mounts not working if boot9 or SeedDB was not found

    Known Issues

    • ModuleNotFoundError: No module named 'mount.nanddsi'
      • Please use the latest release for a fix.

    Interested in filling out a quick survey on how you use fuse-3ds? Click here!

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1.1/fuse-3ds-1.1.1-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1.1/fuse-3ds-1.1.1-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1.1/fuse-3ds-1.1.1-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1.1/fuse-3ds-1.1.1-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1.1/fuse-3ds-1.1.1-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1.1/fuse-3ds-1.1.1-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.1.1-src.zip(81.09 KB)
    fuse-3ds-1.1.1-win32.zip(12.10 MB)
    fuse-3ds-1.1.1-win64.zip(13.14 MB)
  • v1.1(Jun 8, 2018)

    This release should be helpful to anyone who has a 3DS NAND backup and OTP, but no CID. Enjoy!

    Changes since v1.0

    • Automatically generate Counter for Nintendo 3DS NAND images, if CID is not provided or found in essentials backup (should work for 99% of users)
    • Reverse configuration directory priority (new: %APPDATA%\3ds {for Windows}, ~/.3ds, ~/3ds)
    • GUI: Add easy updating of SeedDB file (Help & Extras -> Update SeedDB)
    • GUI: Remove CID field from the NAND mount (can still be provided by --cid to the mount command if required)

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1/fuse-3ds-1.1-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1/fuse-3ds-1.1-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1/fuse-3ds-1.1-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1/fuse-3ds-1.1-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1/fuse-3ds-1.1-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.1/fuse-3ds-1.1-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.1-src.zip(81.10 KB)
    fuse-3ds-1.1-win32.zip(12.10 MB)
    fuse-3ds-1.1-win64.zip(13.14 MB)
  • v1.0(Jun 3, 2018)

    This is the first stable release of fuse-3ds. After 264 commits since August 14, 2017, I can now consider it feature-complete. There are still updates coming, though! Thanks to @knight-ryu12 for Linux testing.

    Changes since v1.0b9

    • Support for mounting Nintendo DSi NAND images
    • GUI: Support for using developer keys
    • Some other stuff

    Important note

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0/fuse-3ds-1.0-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0/fuse-3ds-1.0-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0/fuse-3ds-1.0-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0/fuse-3ds-1.0-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0/fuse-3ds-1.0-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0/fuse-3ds-1.0-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.0-src.zip(80.41 KB)
    fuse-3ds-1.0-win32.zip(12.10 MB)
    fuse-3ds-1.0-win64.zip(13.14 MB)
  • v1.0b9(May 28, 2018)

    • GUI: Add ability to easily set up boot9/SeedDB by copying to a supported path
    • GUI: Show "Decompress .code" for ExeFS mount
    • GUI: Open mount point on Linux with xdg-open
    • Add support for new path on Windows: %APPDATA%\3ds
    • Remove support for automatically loading boot9/seeddb from current directory (this might return as an extra argument at some point)
    • Lots of internal rewriting and refactoring

    This should be the last release before a fully stable v1.0.


    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b8/fuse-3ds-1.0b9-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b9/fuse-3ds-1.0b9-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b9/fuse-3ds-1.0b9-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b9/fuse-3ds-1.0b9-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b9/fuse-3ds-1.0b9-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b9/fuse-3ds-1.0b9-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.0b9-src.zip(76.67 KB)
    fuse-3ds-1.0b9-win32.zip(12.10 MB)
    fuse-3ds-1.0b9-win64.zip(13.13 MB)
  • v1.0b8(May 20, 2018)

    • Python versions before 3.6.1 are now unsupported. This does not affect you if you are using the standalone Windows executable.
    • GUI: Choose last drive letter available alphabetically
    • GUI: Automatically choose directory mount when NAND is selected, and show a warning if drive letter is used on Windows
    • GUI: Show advanced options (currently: debug output, allowed users on Linux/macOS)
    • Fix issue in all mounts when applications attempt to read past file sizes (e.g. Notepad++, TeraCopy)
    • Prevented "access" operations from appearing in debug logs (irrelevant except for SD, takes up a lot of space)
    • Many other internal changes

    win32 exe re-uploaded to fix an issue with mounting.
    win64 exe re-uploaded to hopefully fix an issue with AV false-positives (#15).


    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b8/fuse-3ds-1.0b8-src.zip
      • With GUI support: py -3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b8/fuse-3ds-1.0b8-src.zip#egg=fuse-3ds[gui]

    macOS

    FUSE for macOS is required.

    • python3 -mpip install https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b8/fuse-3ds-1.0b8-src.zip
      • With GUI support: python3 -m pip install --upgrade https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b8/fuse-3ds-1.0b8-src.zip#egg=fuse-3ds[gui]

    Linux

    • python3 -mpip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b8/fuse-3ds-1.0b8-src.zip
      • --user is not required if you are using a virtualenv.
      • With GUI support: python3 -m pip install --upgrade --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b8/fuse-3ds-1.0b8-src.zip#egg=fuse-3ds[gui]
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.0b8-src.zip(75.07 KB)
    fuse-3ds-1.0b8-win32.zip(12.10 MB)
    fuse-3ds-1.0b8-win64.zip(13.47 MB)
  • v1.0b7(Apr 20, 2018)

    • GUI: Add support for setting decrypted titlekey manually for CDN
    • GUI: More descriptive entry default text and browse buttons
    • GUI: Show paths checked for boot9/SeedDB if either was missing
    • Titledir now loads titles in a second thread, fixing hanging in Finder on macOS when titledir takes too long to finish setting up
    • Fix --dec-key not working for CDN
    • Fix creating files in SD mount not working on macOS (added noappledouble to fuse options)
    • Added csu -> cci alias
    • Temporarily include fusepy instead of installing as a dependency
    • Software stability during use of some features has been improved.

    This is the last release to support Python versions before 3.6.1.

    • A warning will be shown if you are still using old versions.

    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via command line and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the win64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.6.1 or later is required. Read the README for more setup and usage details.

    Command line install

    Windows

    • py -3 -mpip install https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b7/fuse-3ds-1.0b7-src.zip

    macOS

    FUSE for macOS is required.

    • python3 -mpip install https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b7/fuse-3ds-1.0b7-src.zip

    Linux

    • python3 -mpip install --user https://github.com/ihaveamac/fuse-3ds/releases/download/v1.0b7/fuse-3ds-1.0b7-src.zip
      • --user is not required if you are using a virtualenv.
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.0b7-src.zip(74.03 KB)
    fuse-3ds-1.0b7-win32.zip(12.09 MB)
    fuse-3ds-1.0b7-win64.zip(13.44 MB)
  • v1.0b6(Apr 13, 2018)

    • Added 3DSX Homebrew mount, shows SMDH and RomFS contents if the given file has them
    • GUI: Organized parts into labeled frames, move version info to "Extras" subwindow
    • GUI: Fix possible PermissionError on Windows if a directory is dropped on the type box
    • GUI: Fix resize issue if started with a specific file
    • Fixed installing as a module (forgot to add fuse3ds.pyctr.types to setup.py)
    • Further improvements to overall stability
    • Other minor adjustments made
    • Enhanced user experience

    Known issues

    • Creating files in the SD mount on macOS doesn't work properly

    Important note

    This is not a full release, so some things may still be broken. Please file issues if this happens.

    NAND and SD mounts allow writing. Keep backups before writing to these, in the event an unknown bug corrupts data.

    There is a Windows tutorial for fuse-3ds on GBAtemp. README also explains how to use it via cmd and on non-Windows platforms. If you are unsure about something, you can ask at Nintendo Homebrew on Discord, or the GBAtemp thread.

    Usage

    Windows users can download the executable attached to this release, which works without needing Python installed. 64-bit users should get the -x64 version. WinFsp must still be installed.

    macOS and Linux (and Windows who prefer to use their installed Python) can install this release via pip, or by downloading the "Source code" archive. Python 3.5.2 or later is required. Read the README for more setup and usage details.

    Windows

    • py -3 -mpip install https://github.com/ihaveamac/fuse-3ds/archive/v1.0b6.zip https://github.com/billziss-gh/fusepy/archive/windows.zip
      • At the moment, the main fusepy repository does not have full Windows support. This extra requirement will be removed once it is added and a new release is made.

    macOS

    FUSE for macOS is required.

    • python3 -mpip install https://github.com/ihaveamac/fuse-3ds/archive/v1.0b6.zip

    Linux

    • python3 -mpip install --user https://github.com/ihaveamac/fuse-3ds/archive/v1.0b6.zip
      • --user is not required if you are using a virtualenv.
    Source code(tar.gz)
    Source code(zip)
    fuse-3ds-1.0b6-x64.zip(14.01 MB)
    fuse-3ds-1.0b6-x86.zip(12.64 MB)
Owner
Ian Burgwin
Ian Burgwin
Nintendo Game Boy music assembly files parser into musicxml format

GBMusicParser Nintendo Game Boy music assembly files parser into musicxml format This python code will get an file.asm from the disassembly of a Game

null 1 Dec 11, 2021
gitfs is a FUSE file system that fully integrates with git - Version controlled file system

gitfs is a FUSE file system that fully integrates with git. You can mount a remote repository's branch locally, and any subsequent changes made to the files will be automatically committed to the remote.

Presslabs 2.3k Jan 8, 2023
Python's Filesystem abstraction layer

PyFilesystem2 Python's Filesystem abstraction layer. Documentation Wiki API Documentation GitHub Repository Blog Introduction Think of PyFilesystem's

pyFilesystem 1.8k Jan 2, 2023
Python library and shell utilities to monitor filesystem events.

Watchdog Python API and shell utilities to monitor file system events. Works on 3.6+. If you want to use Python 2.6, you should stick with watchdog <

Yesudeep Mangalapilly 5.6k Jan 4, 2023
Python virtual filesystem for SQLite to read from and write to S3

Python virtual filesystem for SQLite to read from and write to S3

Department for International Trade 70 Jan 4, 2023
Quick and dirty FAT12 filesystem to ZIP file converter

Quick and Dirty FAT12 Filesystem Converter This is a really crappy Python script I wrote to convert a semi-compatible FAT12 filesystem from my HP150's

Tube Time 2 Feb 12, 2022
Dragon Age: Origins toolset to extract/build .erf files, patch language-specific .dlg files, and view the contents of files in the ERF or GFF format

DAOTools This is a set of tools for Dragon Age: Origins modding. It can patch the text lines of .dlg files, extract and build an .erf file, and view t

null 8 Dec 6, 2022
Python function to stream unzip all the files in a ZIP archive: without loading the entire ZIP file or any of its files into memory at once

Python function to stream unzip all the files in a ZIP archive: without loading the entire ZIP file or any of its files into memory at once

Department for International Trade 206 Jan 2, 2023
csv2ir is a script to convert ir .csv files to .ir files for the flipper.

csv2ir csv2ir is a script to convert ir .csv files to .ir files for the flipper. For a repo of .ir files, please see https://github.com/logickworkshop

Alex 38 Dec 31, 2022
Two scripts help you to convert csv file to md file by template

Two scripts help you to convert csv file to md file by template. One help you generate multiple md files with different filenames from the first colume of csv file. Another can generate one md file with several blocks.

null 2 Oct 15, 2022
Python Fstab Generator is a small Python script to write and generate /etc/fstab files based on yaml file on Unix-like systems.

PyFstab Generator PyFstab Generator is a small Python script to write and generate /etc/fstab files based on yaml file on Unix-like systems. NOTE : Th

Mahdi 2 Nov 9, 2021
pydicom - Read, modify and write DICOM files with python code

pydicom is a pure Python package for working with DICOM files. It lets you read, modify and write DICOM data in an easy "pythonic" way.

DICOM in Python 1.5k Jan 4, 2023
A tool written in python to generate basic repo files from github

A tool written in python to generate basic repo files from github

Riley 7 Dec 2, 2021
Python interface for reading and appending tar files

Python interface for reading and appending tar files, while keeping a fast index for finding and reading files in the archive. This interface has been

Lawrence Livermore National Laboratory 1 Nov 12, 2021
A python script generate password files in plain text

KeePass (or any desktop pw manager?) Helper WARNING: This script will generate password files in plain text. ITS NOT SECURE. I needed help remembering

Eric Thomas 1 Nov 21, 2021
Python script for converting figma produced SVG files into C++ JUCE framework source code

AutoJucer Python script for converting figma produced SVG files into C++ JUCE framework source code Watch the tutorial here! Getting Started Make some

SuperConductor 1 Nov 26, 2021
A Python script to organize your files in a given directory.

File-Organizer A Python script to organize your files in a given directory. It organizes your files based on the file extension and moves them into sp

Imira Randeniya 1 Sep 11, 2022
Fast Python reader and editor for ASAM MDF / MF4 (Measurement Data Format) files

asammdf is a fast parser and editor for ASAM (Association for Standardization of Automation and Measuring Systems) MDF (Measurement Data Format) files

Daniel Hrisca 440 Dec 31, 2022
Here is some Python code that allows you to read in SVG files and approximate their paths using a Fourier series.

Here is some Python code that allows you to read in SVG files and approximate their paths using a Fourier series. The Fourier series can be animated and visualized, the function can be output as a two dimensional vector for Desmos and there is a method to output the coefficients as LaTeX code.

Alexander 12 Jan 1, 2023