Coming soon - Exporting games via MTP!
Added 2025-09-15 13:17:17 +0000 UTCIn my last post i mentioned that i will work on getting exporting games via MTP, and well, i've done it!
The load time is pretty fast. I have 95 games installed and it takes roughly 1s to load all of them. Read speed is roughly as fast as the slowest source (USB or storage). Eg, if you're using USB 3.0 and you're reading from your sd card, then the transfer speed can reach 60MiB/s. If the storage is the eMMC, then read speeds can reach up to 90MiB/s. If using USB 2.0, then the transfer speeds are a lot slower at 27MiB/s.
The way i implemented this was to expose the games as a virtual file system (VFS), similar to how the mounts work. Every game is a folder, and within those folders are the contents which are displayed as NSP files. Everything is lazy loaded (load on demand) so it does not impact load /exit times.
The benefit of this approach is that it easily translates to MTP, but also FTP. Also, you can now view the games in the file browser. This allows you to copy games over to any location without having to use the games menu to export them.
As a side note: exporting as NSZ via MTP will not be possible. There are 2 reasons:
- NSZ is compressed, and we don't know the final size of it until its been fully compressed, thus i cannot calculate the correct file size up front, and MTP clients may not like being lied to about the file size.
- This is the main issue, I need random access for NSZ exports in order to update the header within the file with the new offset/size of the compressed NCA's. MTP file uploads are stream based (start-finish) meaning i cannot update the header info. FTP is the same.
You can export NSZ via USB using the python scripts / webUSB i posted, so that is still an option.
Comments
Thank you! I just finished hooking it up to FTP as well, so you can dump games using FileZilla or install games onto another switch by connecting via ftp.
TotalJustice
2025-09-15 19:56:42 +0000 UTCThank you for your work. I can't wait to experience it š„°
é å宫
2025-09-15 14:34:40 +0000 UTC