- Joined
- May 30, 2009
- Messages
- 1,292
- Trophies
- 1
- Age
- 28
- Location
- Madrid, Spain
- Website
- github.com
- XP
- 2,606
- Country
Link: https://github.com/DarkMatterCore/libusbhsfs. Co-developed with XorTroll and Rhys Koedijk.
This is a static library for homebrew applications which is aimed at developers that wish to integrate USB Mass Storage (UMS) support into their projects.
I'll just say this once before someone throws the usual question: this doesn't open any possibility whatsoever to launch Switch games from a UMS device, and never will. Something like that demands system-wide UMS support, which this library clearly doesn't provide.
Please let me know what you think.
This is a static library for homebrew applications which is aimed at developers that wish to integrate USB Mass Storage (UMS) support into their projects.
- Provides a very easy to use interface, which lets the application retrieve:
- A user-mode status event to wait for UMS changes.
- Total count of mounted devices.
- List mounted devices.
- Spans a background thread that's capable of:
- Listening for UMS status changes (new device, device removed).
- Starting logical units from each detected UMS device.
- Automatically mounting any detected filesystems from the logical units in each detected UMS device.
- Supports MBR/EBR/GPT/SFD partitioning schemes.
- Supports FAT12, FAT16, FAT32, exFAT, NTFS*, EXT2*, EXT3* and EXT4* volumes.
- Signaling the user-mode event to let the application know it detected some changes and processed them.
- Support for variable-sized logical blocks and long (64-bit) logical block addresses.
- Automatic devoptab device (un)registration, so you can use standard libc I/O calls on mounted filesystems.
- Relative path support.
- Dedicated 8 MiB buffer per each UMS device, which helps speed up data transfers.
- Unlike fsp-usb, the library doesn't depend on using a custom "ams_mitm.kip" with Atmosphère - just link your homebrew application against it and it will work.
- Licensed under the ISC License, so anyone can freely use it - even as part of private/closed-source projects. We really want developers to adopt this library.
I'll just say this once before someone throws the usual question: this doesn't open any possibility whatsoever to launch Switch games from a UMS device, and never will. Something like that demands system-wide UMS support, which this library clearly doesn't provide.
Please let me know what you think.
Last edited by DarkMatterCore,