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

safan41

Active Member
Newcomer
Joined
Feb 11, 2017
Messages
34
Trophies
0
Location
Illinois
Website
safan41.github.io
XP
900
Country
United States
Ok, whenever I try to start the gui on linux, it says i don't have appJar (/ the gui) installed which i do have installed. I can mess with the command line, but I would like to know how to fix this problem.
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,829
Country
United States
Ok, whenever I try to start the gui on linux, it says i don't have appJar (/ the gui) installed which i do have installed. I can mess with the command line, but I would like to know how to fix this problem.
Install appJar manually or install with gui support. This will ensure it installs the dependencies properly.
Code:
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]
Make sure you also have Tk installed (on Ubuntu: python3-tk; look for your distro's equivalent)
 
Last edited by ihaveahax,

Mr Skinner

Well-Known Member
Member
Joined
Jul 12, 2010
Messages
162
Trophies
1
Age
36
Location
Bananna Land.
Website
www.nerdfy.com.br
XP
835
Country
Brazil
@ihaveamac
I have a specific situation here, and I wonder if 3ds-fuse could help me.

1 - I formatted and installed Bs9 in a 3ds running Rxtools. I did not backup the SD saves, believing I could just copy and paste the Nintendo 3ds folder, that everything would be okay. It was a stupid thing. The saves and data were not recognized by 3ds.

2- Basically what I have is an old SD with the files of my 3ds that ran RXtools, including a backup of Nand pre installation RXTOOLS, and the backups done automatically by GM9 when I installed the latest version of BS9.

The question is:

How could I make the saves of my games in RX tools, run in 3ds Bs9 Installed? Is it possible to do this with Fuse? How would it be?
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,829
Country
United States
@ihaveamac
I have a specific situation here, and I wonder if 3ds-fuse could help me.

1 - I formatted and installed Bs9 in a 3ds running Rxtools. I did not backup the SD saves, believing I could just copy and paste the Nintendo 3ds folder, that everything would be okay. It was a stupid thing. The saves and data were not recognized by 3ds.

2- Basically what I have is an old SD with the files of my 3ds that ran RXtools, including a backup of Nand pre installation RXTOOLS, and the backups done automatically by GM9 when I installed the latest version of BS9.

The question is:

How could I make the saves of my games in RX tools, run in 3ds Bs9 Installed? Is it possible to do this with Fuse? How would it be?
If you have boot9 and your OTP (GM9 lets you dump this if you have b9s), you can decrypt NANDs. Inside you can find /private/movable.sed which includes the SD encryption key. You can use this to decrypt saves if you have the right key for the data you want.

If you have a backup of when those games worked (or possibly even before), you should be able to do this.
 

Mr Skinner

Well-Known Member
Member
Joined
Jul 12, 2010
Messages
162
Trophies
1
Age
36
Location
Bananna Land.
Website
www.nerdfy.com.br
XP
835
Country
Brazil
If you have boot9 and your OTP (GM9 lets you dump this if you have b9s), you can decrypt NANDs. Inside you can find /private/movable.sed which includes the SD encryption key. You can use this to decrypt saves if you have the right key for the data you want.

If you have a backup of when those games worked (or possibly even before), you should be able to do this.

Thanks for the answer. My console was at 9.2 and I used the "push button R" method to enter Rxtools. So, as soon as I cleaned the SD with the RXtools files, I used the soundhax and installed the BS9.

I believe the Nand version and essential.exefs are from the backup made immediately after the BS9 installation. Do they serve me? If so, how can I decrypt them? From what I studied about fuse-3ds, it uses the OTP and CID I have no idea how to get them.
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,829
Country
United States
Thanks for the answer. My console was at 9.2 and I used the "push button R" method to enter Rxtools. So, as soon as I cleaned the SD with the RXtools files, I used the soundhax and installed the BS9.

I believe the Nand version and essential.exefs are from the backup made immediately after the BS9 installation. Do they serve me? If so, how can I decrypt them? From what I studied about fuse-3ds, it uses the OTP and CID I have no idea how to get them.
essential.exefs contains the otp and cid, which are unique to every console and never change. fuse-3ds only needs the otp for 99% of cases. You can also get otp.mem in GM9 from [M:] MEMORY VIRTUAL.
 

Deleted member 373223

Pink = Best colour
Member
Joined
Oct 8, 2015
Messages
4,099
Trophies
1
XP
2,790
Hello, i need help. Keep getting this error:
Running: ['C:\\Users\\fnova\\Documents\\games3ds\\fuse-3ds.exe', 'nanddsi', '-f', 'C:/Users/fnova/Desktop/nand.bin', 'C:/Users/fnova/Desktop/dsinand']
fuse-3ds v1.1.1 - https://github.com/ihaveamac/fuse-3ds
Traceback (most recent call last):
File "Z:\fuse-3ds\fuse3ds\_pyi_main.py", line 26, in <module>
File "Z:\fuse-3ds\fuse3ds\main.py", line 62, in mount
File "C:\Program Files\Python36\lib\importlib\__init__.py", line 126, in import_module
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'mount.nanddsi'
[4388] Failed to execute script _pyi_main
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,829
Country
United States
Hello, i need help. Keep getting this error:
Running: ['C:\\Users\\fnova\\Documents\\games3ds\\fuse-3ds.exe', 'nanddsi', '-f', 'C:/Users/fnova/Desktop/nand.bin', 'C:/Users/fnova/Desktop/dsinand']
fuse-3ds v1.1.1 - https://github.com/ihaveamac/fuse-3ds
Traceback (most recent call last):
File "Z:\fuse-3ds\fuse3ds\_pyi_main.py", line 26, in <module>
File "Z:\fuse-3ds\fuse3ds\main.py", line 62, in mount
File "C:\Program Files\Python36\lib\importlib\__init__.py", line 126, in import_module
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'mount.nanddsi'
[4388] Failed to execute script _pyi_main
Try v1.2b3
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,829
Country
United States
Last edited by ihaveahax,

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,829
Country
United States
It's up to v1.3.1 now, with a new icon, and a standalone macOS application.
64x64.png

v1.3 also added features to skip online updates.
https://github.com/ihaveamac/fuse-3ds/releases/tag/v1.3.1
 

emuashui

Well-Known Member
Member
Joined
Jan 17, 2016
Messages
309
Trophies
0
XP
550
Country
Hong Kong
sorry noob qxn, must the boot9.bin and the nand file to be opened belong to the same console? Can't i use any boot9.bin ?
 
Last edited by emuashui,

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,829
Country
United States
I put out some new releases since the last post. Notably, 1.5 can read split Nintendo Switch NAND backups, and 1.6 fixes a write corruption bug in the SD mount.

https://github.com/ihaveamac/ninfs/releases/tag/v1.6

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
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.
 
  • Like
Reactions: GilgameshArcher

mariogamer

Well-Known Member
Member
Joined
Aug 12, 2015
Messages
1,256
Trophies
0
Age
28
XP
790
Country
Canada
I'd like to know why does ninfs not need a dsi cid for nand decryption? (is there something to generate it or stuff that needs it only use the consoleid to derive them?)
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,829
Country
United States
I'd like to know why does ninfs not need a dsi cid for nand decryption? (is there something to generate it or stuff that needs it only use the consoleid to derive them?)
If no CID is provided, it will attempt to generate the Counter, using a block of known plaintext in the header. In practice, this header never changes, so it's a good target. A similar process is used for 3DS NANDs.

https://github.com/ihaveamac/ninfs/...6b46f19f08a5/ninfs/mount/nandtwl.py#L102-L114
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: @OctoAori20, Cool. Same here.