Skip to content

Latest commit

 

History

History
72 lines (61 loc) · 4.19 KB

Changelog.md

File metadata and controls

72 lines (61 loc) · 4.19 KB

Changelog

Version 1.1.0

  • Additions:

    • GSPGPU/GX code was revised and enhanced:
      • Screens can be buffer-swapped independently using the new gfxConfigScreen function.
      • Added gspSetEventCallback for running event code directly on the GSP thread.
      • Added gspWaitForAnyEvent for waiting for any GSP event.
      • Added gfxIs3D for retrieving 3D-enable status.
    • Added AM_InstallFirm.
    • Added __sync_get_arbiter.
    • Added support for usleep.
  • Changes:

    • NDSP thread priority has been increasing, therefore mitigating potential sound issues due to high CPU usage on the main thread.
    • RomFS initialization no longer makes romfs:/ the default device.
  • Bug fixes:

    • Fixed the timeout parameter in svcArbitrateAddress.
    • Fixed svcSetTimer.

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.