You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added support for C11 threads, which are preemptively multitasked and load balanced across cores.
Added Event object, which wraps kernel revent/wevent handles with optional autoclear.
Changed CondVar interface to have the mutex be passed to condvarWait* instead of condvarInit, which is consistent with both the concept of a condition variable and with other common threading APIs.
Added armGetSystemTick (which supersedes svcGetSystemTick), and armGetSystemTickFreq.
Added rwlockInit.
Added kernelAbove600.
Added system calls: svcGetThreadCoreMask, svcSetThreadCoreMask.
Added MOD0 header to binaries compiled with libnx.
Fixed semaphoreTryWait.
Fixed a memory leak in tmemCreate.
services
Added bpc service (used for rebooting and shutting down the console).
Added psm service (needed to get the battery status).
Added missing AppletType_SystemApplet initialization in applet code.
Added appletBeginBlockingHomeButton and appletEndBlockingHomeButton.
The Event object is now used to return system events from service wrappers when possible, also providing the correct autoclear mode.
Corrected fsOpenFileSystem and fsOpenFileSystemWithId.
Corrected a bug in hidInitializeVibrationDevices.
Corrected a bug in socket error conversion.
Fixed nifm not initializing properly for < 3.0.0.
Service manager (sm) session now closes properly.
hid, irs, vi and nv services now acquire a reference to applet services.
audio
Added audren:u service wrapper (presently requiring 3.0.0+, will be addressed in a future update).
Added AudioDriver wrapper around audren, providing a higher level interface that can be used to mix and play sounds.
graphics
Major rewrite and refactoring work in the gfx wrapper which brings reliability and usability improvements:
Removed GfxMode_TiledSingle mode due to it causing problems and potential (temporary) hardware damage.
The default transform behavior no longer vertically flips the framebuffer.
Removed gfxSetDrawFlip since it's no longer needed thanks to the change in the default transform behavior.
It is not necessary to call gfxWaitForVsync in most situations because gfxSwapBuffers already implicitly synchronizes with the display (this is mandated by the Android surface compositor and buffer producer system).
Dequeue fatal errors should be solved.
Simplified and streamlined logic.
nvgfx stripped down to the minimum that is actually necessary to allocate framebuffers.
Binder logic now more closely matches both Android code and official software.
Proper fence and event wait code is now used.
Console code no longer performs a forced flush/swap/vblank wait when printing a newline due to performance reasons. Users of the console device must make sure that gfxFlushBuffers and gfxSwapBuffers are periodically called, preferably in the main loop of the application.
Added experimental wrapper objects for the Nvidia driver, needed in order to use the GPU. These wrappers are still in RE phase and will be subject to change in a future release.
Major redesign of the VI service wrapper that allows future users to use VI directly to create a display layer.
Binder services & buffer producer wrappers were enhanced and redesigned.
Binder now holds less state and always uses the VI binder relay service session.
Added Module_LibnxBinder error codes.
IGraphicBufferProducer binder service wrappers now have the bq prefix and explicitly accept a Binder object.
Added bqCancelBuffer.
bqGraphicBufferInit was renamed to bqSetPreallocatedBuffer.
Enhancements and additions to nvidia ioctl wrappers.
Added definitions for some more Android enumerations.
miscellaneous
The ALIGN macro was removed in favor of the C11/C++11 alignas attribute.
Further improvements to overall system stability and other minor adjustments to enhance the user experience.