List of changes:
- Threading safety improvements.
- Added loading flag (g_loading) to prevent concurrent loadNro() calls.
- Added proper cleanup in __wrap_exit() for cached filesystem handle.
- Memory mapping optimizations.
- Added cached address allocation system starting at 0x8000000000ull.
- Implemented virtual address space management with 64GB reset threshold (0x8010000000ull).
- Added 64MB spacing (0x4000000) between allocations to reduce mapping conflicts.
- Fallback to random mapping only when cached allocation fails (improves overlay cycling performance).
- File I/O optimizations.
- Replaced multi-part file reading (separate NroStart, NroHeader, rest reads) with single bulk file operation.
- Added filesystem handle caching (g_sdmc) to avoid repeated open/close operations.
- Eliminated manual offset management and size calculations during file reading.
g_argv,g_nextArgv,g_nextNroPathbuffer size reduction. (was a bit too generous)- g_argv and g_nextArgv reduced from 2048 to 512 bytes.
- g_nextNroPath reduced from 512 to 256 bytes.
Removal of HOS 9.0.0 checks (occur every single overlay launch).WARNING: Does not work on HOS below 9.0.0 so do not try.
- Replacement of
memcpy/memsetwith__builtin_memcpy/__builtin_memset. - Code cleanup and comment removal.
- Removed various inline comments for cleaner code.
- Removed unnecessary variable initialization (s32 idx).
Full Changelog: v1.1.0...587395c
Update:
- Restoration of HOS 9.0.0 or lower checks. ~ 08/03/2025 3:23 AM PST
- They appear to actually only occur once, so there's no reason to remove the check.
- Slight cleanup to variable initializations. ~ 08/03/2025 4:50 PM PST
Full Changelog: 587395c...2f60d5f