github masagrator/SaltyNX 1.8.0
SaltyNX 1.8.0

4 hours ago

tl;dr
Mainly technical stuff to fix a rare issue with homebrew/sysmodules hanging while SaltyNX is active.

Full changelog:

  • IPC redesign
    • completely remove old libnx code from sysmodule
      • main reason for using it was to retrieve sdmc handle that can still work after passing to Core, with how current libnx works it is not possible to do that
      • but this was causing rare issues with homebrew where FS would "forget" about homebrew when trying to write to/read from sdcard, resulting in process hanging. This happened only when multiple processes tried to do this at the same time. This change should technically fix the issue.
      • function for retrieving sdmc handle from sysmodule is now stubbed
    • Add new IPC functions that are just wrappers around libc I/O functions that are exposed by Core (so plugins shouldn't be affected by this change as long as they didn't try to retrieve sdmc handle manually - which was not officially supported)
    • Rewrite most of IPC functions so they work only when request comes from Application with injected Core
    • Logging was redesigned for those calls
    • Since now most of I/O heavy lifting was moved to sysmodule, Cores got smaller
  • Remove most of c++ unwinding and abort stuff to reduce sysmodule size
    • This way - after redesigning IPC - sysmodule RAM usage is bigger only by 12 kB

Don't miss a new SaltyNX release

NewReleases is sending notifications on new releases.