1.2.2 is Atmosphère’s fifty-ninth official release.
Please be sure to update fusee when upgrading to 1.2.2. fusee-primary no longer exists, and will not work any more.
With thanks to the @switchbrew team, Atmosphère 1.2.2 is bundled with hbl 2.4.1, and hbmenu 3.5.0.
The following was changed since the last release:
- A number of fixes were made to Atmosphère’s implementation of the new « sprofile » service added in 13.0.0.
- Nintendo is finally transmitting data over the internet to certain consoles, which has allowed for validating our service implementation.
- Unfortunately, there were several problems, and if your console began trying to use the new services atmosphère would show a fatal error with code 0xCAF6 (sprofile::ResultInvalidState()).
- With actual test data in hand, a test program was written and it was verified that our implementation can successfully import/access profile data now.
- Hopefully there are no more issues, and I sincerely apologize to anyone who got an 0xCAF6 fatal due to this.
- A number of minor improvements were made to
- KThread::GetContextForSchedulerLoop was implemented in assembly (using static assertions to verify offset-of-context-in-struct is correct).
- This saves an unnecessary function call in the middle of the scheduler hot loop, replacing it with an addition instruction, which should improve microperformance.
- Mesosphère’s hardware maintenance instructions were audited via a script and now directly match Nintendo’s kernels.
- Notably, this inserts a missing instruction synchronization barrier when validating that slab heaps may be constructed.
- This missing ISB could cause an abort on certain (see: particularly sensitive) hardware on boot if the relevant codepath was speculatively executed (it normally only executes on game launch…)
- The SVC handlers for performing light IPC (normally unused) from 32-bit process were fixed.
- A bug was fixed that would cause the register x27 to be overwritten with the contents of x26 when returning from a user exception handler.
- A bug was fixed that would cause the kernel to use the userland stack pointer instead of the kernel stack pointer while generating an error report for a kernel abort.
- General system stability improvements to enhance the user’s experience.
For information on the featureset supported by 1.2, please see the official release notes.