ROM Hack ninfs - FUSE filesystem Python scripts for Nintendo console files

TheLegendofMario

Well-Known Member
Member
Joined
May 15, 2016
Messages
179
Trophies
0
Age
26
XP
340
Country
United States
So if I use this program in theory I can take the SD card from one 3DS and mount it's contents in ninfs, then literally just copy a save from a lost 2DS to another 3DS SD card and it would work?
 
Last edited by TheLegendofMario,

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
So if I use this program in theory I can take the SD card from one 3DS and mount it's contents in ninfs, then literally just copy a save from a lost 2DS to another 3DS SD card and it would work?
You can do this for all SD contents. Game contents (the app and tmd files) would require an additional step to fix the cmd files. GodMode9 will be able to do this in the future.
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
I just pushed a new gui for ninfs that is almost complete. It's inspired by OSFMount. It's on the 2.0 branch (the default one) if you want to give it a try.
img1.png

Setting up a new mount is done through a multi-step wizard that should hopefully be less confusing. Multiple mounts can be done at once in case you wanted to view the contents of multiple games or open something inside another file (e.g. dlpchild inside a game or system titles inside a nand image).

The other main changes and missing features are:
  • Windows only shows drive letters for mountpoints now. This should make it less confusing about what it's doing. This has the side effect of not working with OSFMount if ninfs is not run as administrator, but hopefully this would be resolved soon.
  • Not tested on Linux and macOS yet. Also the option to change external user access (allow_root, allow_other) is currently missing, so unless ninfs is run as root, root tools like mount can't be used in it.
  • Currently missing a properties window and update checks.
  • Doesn't check if libfuse works yet.
  • "About" window is incomplete.
The console window no longer shows all the time on Windows, and it also will show the output on crashes and failures.
img2.png


https://github.com/ihaveamac/ninfs

Support can be provided in this thread or in my server on Discord: https://discord.gg/YVuFUrs (You can also get update notifications here!)
 
Last edited by ihaveahax,

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
I released 2.0a4 with some more things, most of which have been sitting in the commits for a while https://github.com/ihaveamac/ninfs/releases/tag/v2.0a4
  • 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)
 
  • Like
Reactions: ber71 and fmkid

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
I release 2.0a5 which has a new type and a standalone build for macOS once again. https://github.com/ihaveamac/ninfs/releases/tag/v2.0a5
  • 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)
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
I released 2.0a6 with some important fixes: https://github.com/ihaveamac/ninfs/releases/tag/v2.0a6
  • Fix Nintendo Switch NAND mount not working properly with 32-bit Python on Windows (which the standalone build uses)
  • Show partitions in Nintendo DSi NAND mount again (#82)
  • Properly support the "Quit" menu option on macOS and Command-Q (#81)
 
  • Like
Reactions: ber71

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
I released 2.0a7 with a new SD title mount type and a universal2 binary for Mac. https://github.com/ihaveamac/ninfs/releases/tag/v2.0a7
  • 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
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
I released 2.0a9 with even more important changes. https://github.com/ihaveamac/ninfs/releases/tag/v2.0a9
  • 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
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
I released 2.0a10, not a big release but it has a few important fixes. https://github.com/ihaveamac/ninfs/releases/tag/v2.0a10
  • 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
 
  • Like
Reactions: ber71

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
I released 2.0a11, just a small release again, but like the last few times it has some important fixes. https://github.com/ihaveamac/ninfs/releases/tag/v2.0a11
  • 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
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,828
Country
United States
I released 2.0. Compared to 2.0a11 this release fixes only one issue, but I decided now to stop calling it an alpha. Partly because it was always an arbitrary label, but also it was causing problems in certain areas like pip (which treats it as pre-release software and doesn't install it by default). I think it's probably more stable than the last so-called stable release 5 years ago. https://github.com/ihaveamac/ninfs/releases/tag/v2.0

With this release the AUR packages are also finally updated: https://aur.archlinux.org/packages/ninfs https://aur.archlinux.org/packages/ninfs-git
  • Fix corruption with New 3DS CTRNAND
    • This mainly affected standalone builds. Other installation methods that didn't use pyctr 0.7.3 were not affected.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: @Psionic Roshambo, I always see this dude's shorts, he sounds pretty annoying.