Skip to content

v0.2.3

Compare
Choose a tag to compare
@DarkMatterCore DarkMatterCore released this 21 Apr 04:32
  • Improvements to the USB manager:
    • Refactored USB control request functions to work with libnx USB datatypes instead of drive / logical unit contexts.
    • Implemented GET_DESCRIPTOR control requests for configuration and string descriptors.
  • Improvements to the BOT driver:
    • If usbHsEpPostBuffer() fails, only the endpoint the library is currently working with will be cleared. Furthermore, the result from this operation no longer affects the return code.
    • If usbHsFsRequestPostBuffer() fails, the library now tries to retrieve a CSW right away - if it succeeds, a Request Sense command will be issued immediately to the block device.
    • Mode Sense (6) / Mode Sense (10) command success is no longer mandatory in usbHsFsScsiStartDriveLogicalUnit().
    • SPC standard version is now validated.
  • Improvements to the PKGBUILD scripts for NTFS-3G and lwext4:
    • Made it possible to build and install all three libraries using the Makefile - for more information, please refer to the How to install section from the README.
    • Proper library path is now forced while building NTFS-3G. Fixes issues in some Linux systems. Thanks to sigmaboy for the correction.
    • Other minor improvements.
  • Library API changes:
    • Added vid and pid fields to UsbHsFsDevice. Useful if the application needs to implement a device filter on its own.
    • vendor_id, product_id and product_revision fields in UsbHsFsDevice have been replaced with manufacturer, product_name and serial_number fields, which represent UTF-8 conversions of string descriptors referenced by the USB device descriptor.
      • Strings from SCP INQUIRY data are still used as a fallback method for manufacturer and product_name fields if the USB device descriptor holds no references to string descriptors.
  • Miscellaneous changes:
    • Renamed ff_rename() from FatFs to avoid issues fix conflicts in applications linked against FFmpeg. Thanks to Cpasjuste for letting us know.
    • The has_journal flag from the superblock in EXT filesystems is now verified before calling journal-related functions.
    • EXT filesystem version is now retrieved only once, while mounting the volume.
    • The AtmosphereHasService sm API extension available in Atmosphère and Atmosphère-based CFWs is now being used to check if a specific service is running.
      • HOS 12.0.x / AMS 0.19.x support is provided by using TIPC serialization to dispatch the IPC request, if needed.
    • Improved logfile code and simplified binary data logging throughout the codebase.
  • Changes under the hood (currently unused, but may change in the future):
    • Implemented SYNCHRONIZE CACHE (10) and SYNCHRONIZE CACHE (16) SCP commands.
    • Modified drive and logical unit contexts to prepare for UASP support.
    • Added extra code to handle USB Attached SCSI Protocol (UASP) interface descriptors under both USB 2.0 and 3.0 modes.

Resources from this release:

  • libusbhsfs_0.2.3-main-c5d8e12-src.tar.bz2: full libusbhsfs source code.
  • libusbhsfs_0.2.3-main-c5d8e12_ISC.tar.bz2: ISC licensed build of libusbhsfs. Only offers support for FAT filesystems (FAT12, FAT16, FAT32, exFAT).
  • libusbhsfs_0.2.3-main-c5d8e12_GPLv2.tar.bz2: GPLv2+ licensed build of libusbhsfs. Offers support for FAT filesystems (FAT12, FAT16, FAT32, exFAT), NTFS and EXT filesystems (EXT2, EXT3, EXT4). Applications using this build must also be linked against NTFS-3G and lwext4 - please check the README for further information.

Both ISC and GPLv2+ archives also hold the example test application NRO linked against that version of the library.