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,070
Trophies
2
XP
7,840
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
836
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,070
Trophies
2
XP
7,840
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
836
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,070
Trophies
2
XP
7,840
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,070
Trophies
2
XP
7,840
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,070
Trophies
2
XP
7,840
Country
United States
Last edited by ihaveahax,

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,070
Trophies
2
XP
7,840
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,070
Trophies
2
XP
7,840
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,070
Trophies
2
XP
7,840
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
  • AncientBoi @ AncientBoi:
    eeewww
  • K3Nv2 @ K3Nv2:
    I thought it was the toilet
  • AncientBoi @ AncientBoi:
    okies. Time to go watch YT paranormal ghost things. L8er my luvs :D
    +1
  • K3Nv2 @ K3Nv2:
    I got a massive clue
  • BakerMan @ BakerMan:
    this mf def ain't watching ghost shit, he boutta beat his meat fr
    +1
  • K3Nv2 @ K3Nv2:
    Nah he's about to be the ghost in your bedroom
    +1
  • Xdqwerty @ Xdqwerty:
    @K3Nv2, and leave ectoplasm all over the place
  • BakerMan @ BakerMan:

    this is him being described
    +2
  • Xdqwerty @ Xdqwerty:
    Sigh
  • Xdqwerty @ Xdqwerty:
    Yawn
  • Xdqwerty @ Xdqwerty:
    @SylverReZ, I dislike the kind of drm where you have to play single player games online all the time bc of some verification bs
    +1
  • SylverReZ @ SylverReZ:
    @Xdqwerty, Don't use games that have Easy Anti-Cheat as its been exploited many times.
  • Xdqwerty @ Xdqwerty:
    @SylverReZ, my PC can't run most AAA games so i wont
    +1
  • Xdqwerty @ Xdqwerty:
    Most of the modern AAA games
    +1
  • Xdqwerty @ Xdqwerty:
    @SylverReZ, I also heard one of the Prince of Persia games was so unfinished that it required the "24/7 online" drm so a puzzle could be done and the game could be finished. And that when the Ubisoft servers were closed the (cracked) game was impossible to finish or something like that
  • SylverReZ @ SylverReZ:
    @Xdqwerty, That's extra scummy. Ubisoft nowadays ship out incomplete games like Skull and Bones which was being worked on for nearly a decade now.
    +1
  • Xdqwerty @ Xdqwerty:
    @SylverReZ, i think they have been doing that since late 2000s
    +1
  • Xdqwerty @ Xdqwerty:
    Either that or their old games were unfinished aswell but we can't notice it
  • Psionic Roshambo @ Psionic Roshambo:
    I like that games can be fixed after the fact, hate that it's being abused via beta tests... And DLC... I was a 7800 owner back in the day and loved Impossible Mission, turns out I couldn't beat it because it was actually impossible lol
  • Psionic Roshambo @ Psionic Roshambo:
    I never knew about it at the time but a fixed version was available but you had to mail in your broken copy lol
  • Psionic Roshambo @ Psionic Roshambo:
    So that version is semi rare
  • Xdqwerty @ Xdqwerty:
    @Psionic Roshambo, I have a rom of the ds version of impossible mission
    Xdqwerty @ Xdqwerty: @Psionic Roshambo, I have a rom of the ds version of impossible mission