libctru/Changelog.md
2015-12-07 11:44:36 +01:00

3.5 KiB

Changelog

Version 1.0.0

  • New features:

    • libctru documentation is now available at http://smealum.github.io/ctrulib/
    • Added the NDSP API, which allows the use of the DSP (audio).
    • Added Inter Process Communication helpers.
    • Added Result code helpers.
    • Added support for lightweight synchronization primitives.
    • Added support for making the C/C++ standard libraries thread safe.
    • Added support for thread-local objects, with the use of standard C and C++ constructs (or GCC extensions).
    • Added a new threading API that properly manages internal state. Direct usage of svcCreateThread is deprecated.
    • Added a mappable address space allocator. Services which need to map shared memory blocks now use this allocator.
    • Added support for embedded RomFS, embedded SMDH and GPU shader building in the template Makefiles.
  • Changes and additions to the GPU code:

    • Stateless wrapper functions (GPU_*) that merely masked GPU register usage were deprecated, in favour of external GPU wrapper libraries such as citro3d. A future release of libctru may remove them.
    • The API set has therefore been simplified down to command list management.
    • Synchronized register names with the 3dbrew Wiki.
    • Added fragment lighting registers and enums.
    • Added procedural texture registers and enums.
    • Added shaderProgramSetGshInputPermutation, for configuring the wiring between the vertex shader and the geometry shader.
    • Added shaderProgramSetGshMode, for configuring the geometry shader operation mode.
    • Added shaderProgramConfigure, intended to be used by GPU wrapper libraries.
    • SHBIN/shaderProgram code now correctly computes and sets the values of the GPUREG_SH_OUTATTR_MODE/CLOCK registers.
    • GX function naming has been improved, and the initial GX command buffer parameter has been removed.
  • Major changes and miscellaneous additions:

    • Sweeping changes to make function/structure/enum naming more consistent across the whole library. This affects a lot of code.
    • Compiler/linker flags have been tweaked to increase performance and reduce code size, through the garbage collection of unused functions.
    • Service initialization is now reference counted in order to properly manage dependencies.
    • Initial service handle parameters have been removed, since they were nearly always set to NULL.
    • Completed coverage of srv and FSUSER service calls.
    • Added fsUseSession and fsEndUseSession for overriding the FSUSER session used in commands in the current thread.
    • Added osGet3DSliderState, osSetSpeedupEnable, osGetSystemVersionData and osGetSystemVersionDataString.
    • Refactored the MICU service.
    • NCCH versions of applications now detect the maximum amount of available memory on startup.
  • Miscellaneous changes and bug fixes:

    • Commits and pull requests are now built on travis to check that the library compiles, and to generate the documentation.
    • General changes and improvements to overall code quality.
    • Added the missing struct and functions for Y2R.
    • Added srvGetServiceHandleDirect for bypassing the handle override mechanism.
    • Usage of the CSND service in new applications is not recommended, however it is not deprecated. The usage of NDSP instead is advised.
    • Usage of the HB service in new applications is not recommended due to its necessary removal in hax 2.x, however it is not deprecated.
    • Several bugs affecting APT were fixed.
    • Several bugs affecting C++ were fixed.

Version 0 through 0.6.0

No changelog available.