- Added the ability to duplicate the left eye image to the right eye
(allows apps to skip rendering to the right eye framebuffer when
the 3d slider is set to 0.0)
- Deprecated gfxConfigScreen
- Use reslimit svcs to retrieve free mem (suggested by @TuxSH) - this
removes the hardcoded assumption that the process is in APPLICATION.
- The algorithm for calculating default app/linear heap sizes has been
tweaked to ensure 32MB of linear heap are available for normal apps
running on Old3DS consoles under appmemtype 0 (i.e. the default).
- Misc cleanup and error checking.
- Added osKernelConfig_s/osSharedConfig_s structs
- Added OS_KernelConfig/OS_SharedConfig macros for accessing the pages
- Replaced 0x1FF8nnnn hardcoded addresses with struct accesses
- Added osIsHeadsetConnected function
- Refactored and rewritten RTC time support with the correct algorithm
(many thanks to @TuxSH for reverse engineering the PTM sysmodule):
- Fully added and documented the osTimeRef_s structure
- This replaces the previous internal datetime_t struct type
- Added osGetTimeRef function:
- This replaces the previous internal getSysTime function
- Added missing barrier to the lock free reading algorithm
- osGetTime rewritten to implement the drift-correction algorithm
- **This introduces a dependency to __aeabi_ldivmod**
- __libctru_gtod rewritten to reuse osGetTime
- Added data memory barriers where required to ensure intercore safety
- Changed LightLock to handle 0 during locking instead of silently failing
(this means trivially initialized/zerofilled LightLocks are now supported)
- DSP wrapper is now in charge of handling sleep/awake/cancel events
- Added DSP hook mechanism (similar to APT hook)
- The DSP component now gets automatically unloaded/reloaded as needed
- NDSP now uses DSP hook instead of APT hook to manage lifetime
- Moved sleep/wakeup component management logic into NDSP
- APT now calls into DSP wrapper in order to arbitrate access to the DSP
- Launching libapplets no longer relinquishes DSP rights - this means
music can now be played in the background during libapplet activity