ninfs

FUSE filesystem Python scripts for Nintendo console files

MIT License

Downloads
748
Stars
413
Committers
8

Bot releases are hidden (Show)

ninfs - ninfs 2.0 Latest Release

Published by ihaveamac 8 months ago

  • Fix corruption with New 3DS CTRNAND
    • This mainly affected standalone builds. If you installed ninfs through any other method, make sure you also install pyctr 0.7.4 or later.

This is a new stable release of ninfs. Compared to 2.0a11 there is only one change to fix a corruption issue. But I decided to remove the alpha label because I think it is more stable than the last "stable" release from May 2019. It will also make things easier for those who install through pip. I hope to get the AUR updated soon. AUR is now updated: normal, with gui, git, git with gui

Please file issues on GitHub if you encounter them. Support is provided on GitHub Discussions, 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.0-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 or fuse-t.

The standalone release can be downloaded as ninfs-2.0-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: normal, with gui, git, git with gui

Python module installation

Python 3.8.0 or later is required. Version on PyPI

Windows

  • py -3 -mpip install ninfs==2.0

macOS

  • python3 -mpip install ninfs==2.0

Linux

  • python3 -mpip install --user ninfs==2.0
    • --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.

ninfs - ninfs 2.0a11

Published by ihaveamac 9 months ago

  • Accept non-ASCII game titles for SRL/NDS (some homebrew applications do this)
  • Windows Installer: update pre-included WinFsp
    • The installer does not update WinFsp for you, if you want to update it, you must do it separately.
  • Linux: creating desktop entry now includes the full path to the python3 executable
  • Python 3.8 or later is required, this does not affect standalone builds
  • Update pyctr requirement to 0.7.x (standalone builds use 0.7.3)
  • Other various internal changes

Please file issues on GitHub if you encounter them. Support is provided on GitHub Discussions, 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.0a11-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 or fuse-t.

The standalone release can be downloaded as ninfs-2.0a11-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...)

Python module installation

Python 3.8.0 or later is required. Version on PyPI

Windows

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

macOS

  • python3 -mpip install ninfs==2.0a11

Linux

  • python3 -mpip install --user ninfs==2.0a11
    • --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.

ninfs - ninfs 2.0a10

Published by ihaveamac about 1 year ago

  • Windows/GUI: Fix tkinter failing to find tcl/tk when installed in paths that contain non-Latin characters
  • nandhac: Fix problems loading multipart images on Linux when the mount process is not in the foreground
  • macOS: Try to load fuse-t if macFUSE can't be found (#103)
    • fuse-t is an alternative to macFUSE that doesn't depend on a kernel extension, making it easier to install on modern macOS. It should work just as well but please file issues.
  • macOS: Only display filename in volume name and not the containing directory for mounts that do this

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.0a10-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 or fuse-t.

The standalone release can be downloaded as ninfs-2.0a10-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.0a10

macOS

  • python3 -mpip install ninfs==2.0a10

Linux

  • python3 -mpip install --user ninfs==2.0a10
    • --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.

ninfs - ninfs 2.0a9

Published by ihaveamac over 2 years ago

  • 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.

ninfs - ninfs 2.0a8

Published by ihaveamac over 2 years ago

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.

ninfs - ninfs 2.0a7

Published by ihaveamac over 2 years ago

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.

ninfs - ninfs 2.0a6

Published by ihaveamac over 3 years ago

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


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.

ninfs - ninfs 2.0a5

Published by ihaveamac over 3 years ago

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.

ninfs - ninfs 2.0a4

Published by ihaveamac over 3 years ago

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.

ninfs - ninfs 2.0a3

Published by ihaveamac almost 4 years ago

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.

ninfs - ninfs 2.0a2

Published by ihaveamac about 4 years ago

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.

ninfs - ninfs 2.0a1

Published by ihaveamac about 4 years ago

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.

ninfs - ninfs v1.7b2

Published by ihaveamac about 5 years ago

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]
ninfs - ninfs v1.7b1

Published by ihaveamac over 5 years ago

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]
ninfs - ninfs v1.6.1

Published by ihaveamac over 5 years ago

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
ninfs - ninfs v1.6

Published by ihaveamac over 5 years ago

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
ninfs - ninfs v1.5

Published by ihaveamac over 5 years ago

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
ninfs - ninfs v1.4

Published by ihaveamac over 5 years ago

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
ninfs - fuse-3ds v1.3.1

Published by ihaveamac almost 6 years ago

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
ninfs - fuse-3ds v1.3

Published by ihaveamac about 6 years ago

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