
- Citra 1.0 or 1.1 1.2 update#
- Citra 1.0 or 1.1 1.2 software#
Accesses to the processes local region were fixed to properly use kernel linear region, not userland pointers. The scheduler was updated to reflect latest official behavior, and a number of minor bugs involving clz/ctz were fixed. Incorrect logic when checking thread priority capabilities was fixed to reflect official behavior.
This fixes an issue that caused certain hardware with cache sensitivity to produce cryptic kernel panics during boot. Initial cache management now better reflects official behavior. A number of minor bugs were fixed, including:. An compile-time toggleable extension was added to support 40-bit physical addresses in MapRange capabilities (using currently reserved bits). This should strictly improve microperformance of many system calls. This works around a gcc bug which downgrades specified memory order to seq_cst, and introduces clrex in places where it is appropriate. A set of custom optimized atomic primitives were implemented and are used in place of std::atomic. This is what Nintendo was doing already. Rather than unnecessarily zero-ing all data in kernel objects only to overwrite members later, we now only initialize the members we need to in kernel object constructors. KThread and KSession structures were updated to optimize member layout, saving 0x10 bytes per KThread/KSession object. This works around gcc emitting suboptimal assembly at -Os (it emits good assembly at -O3, clang is fine at both -O3 and -Os). Custom assembly was written to improve tick-to-timespan conversion. The remaining red black tree find operations which weren't using the optimized "find key" variant are now using the optimized version. This eliminates substantial virtual call overhead, and should lead to improved kernel microperformance in pretty much every function. Almost all virtual calls in the kernel are now resolved statically. We are (at least for now) using catch2 for unit tests. Consider the ReSwitched discord's #hack-n-all channel for your educational purposes. That said, if you are not a developer but want to be one, this probably isn't the best opportunity I expect it to be highly technical. Really, if you are actually a developer who would like to help me get this off the ground, I would deeply appreciate it. Please contact SciresM#0524 if you are capable and interested. Please Note: If you are a developer who is familiar with the Horizon operating system (or capable of becoming familiar), I would greatly appreciate help writing tests and improving the testing framework. This should hopefully allow us to have greater confidence that all of atmosphere's components work the way they're theoretically supposed to in the future. This is unit testing machinery, and explicitly not more than that. Citra 1.0 or 1.1 1.2 software#
Please Note: Official system software will not work at all under this, and the Atmosphère project has zero interest in attempting to run official software of any kind. This facilitates writing unit tests for the kernel (and other atmosphere components) and running them under PC.
A build target was created to build targeting the qemu virt board. A number of improvements were made to mesosphère, including:. This still appears to be (possibly(?)) untestable due to data not being transmitted yet, but I have greater confidence things will go smoothly than I did when 1.1.0 released. The new service added in 13.0.0 ("sprofile") was revised, and the data formats it expects was changed. erpt was updated to reflect the latest official behaviors. KScheduler now issues a data memory barrier when unlocking the scheduler lock and when early-returning due to top-thread-is-current during scheduling.
mesosphère was updated to reflect the kernel behavioral changes made in 13.1.0.The following was changed since the last release:
With thanks to the team, Atmosphère 1.2.1 is bundled with hbl 2.4.1, and hbmenu 3.4.1. fusee-primary no longer exists, and will not work any more.
Citra 1.0 or 1.1 1.2 update#
Please be sure to update fusee when upgrading to 1.2.1. This website is not intended for users located within the European Economic Area.1.2.1 is Atmosphère's fifty-eighth official release. Umpires_Home, Lance Barksdale First, Charlie Ramos Second, Chris Conroy Third, Chris Segal.