CTR-SDK Change Log
-
CTR-SDK 0.14.4 Release (2010/11/23)
- Note 73-01: (APPLET) Added
applet::EnableSleep and applet::DisableSleep functions [SDK]
- Note 73-02: (APPLET) Added callback for when system opens during sleep queries [SDK | System Updater]
- Note 73-03: (CAMERA) Revised process when system closes during initialization [SDK]
- Note 73-04: (CFG) Added functions to get Parental Controls settings [SDK]
- Note 73-05: (FS) Revised the
nn::fs::CreateFile function [SDK]
- Note 73-06: (SND) Deleted assert from within the
InitializeWaveBuffer function [SDK]
- Note 73-07: (SND) Fixed a bug in
WaveBuffer deallocation [SDK]
- Note 73-08: (SOCKET) Revised
GetAddrInfo function to make it thread-safe [SDK]
- Note 73-09: (TOOL) Revised the
NetworkSetting tool reference [SDK]
- Note 73-10: (Y2R) Revised process when system goes to sleep during initialization [SDK]
- Known Issues with SDK 0.14.4 Release
-
CTR-SDK 0.14.4 System Updater (2010/11/23)
- Note 72-01: (APPLET) Fixed a bug concerning going to sleep while launching or shutting down an application or applet [System Updater | Sample Demos]
- Note 72-02: (APPLET) Added callback for when system opens during sleep queries [SDK | System Updater]
- Note 72-03: (BOSS) Fixed bug where some tasks would not run after calling
PauseAllTasks and then calling ResumeAllTasks [System Updater]
- Note 72-04: (FRIENDS) Fixed bug where wrong network error code was returned during NAS authentication [System Updater]
- Note 72-05: (FRIENDS) Fixed bug where the font region of the local display name was not saved [System Updater]
- Note 72-06: (FS) Revised error when mounting factory-default backup memory [SDK|System Updater]
- Note 72-07: (HTTP) Revised the
Read and GetHeader functions [System Updater]
- Note 72-08: (MIC) Fixed bug in processing to prevent sampling when system is closed [System Updater]
- Note 72-09: (MIC) Fixed bug where microphone would become unusable when calling
Finalize with the system closed [System Updater]
- Note 72-10: (OS) Fixed bug where system could not reboot after removing a card [System Updater]
- Note 72-11: (OS) Fixed bug where system would halt when holding down the HOME Button while powering off [System Updater]
- Note 72-12: (TOOL) Added
RegionSelector features [System Updater]
- Note 72-13: (UDS) Fixed bug where a fatal error would occur if an application was shut down during communication [System Updater]
- Known Issues with System Updater in SDK Version 0.14.4
-
CTR-SDK 0.14.4 Sample Demos (2010/11/23)
- Note 71-01: (APPLET) Fixed a bug concerning going to sleep while launching or shutting down an application or applet [System Updater | Sample Demos]
- Note 71-02: (MIC) Revised microphone error processing in
demo1 [Sample Demos]
- Note 71-03: (NEWS) Partially revised the
news_test demo [Sample Demos]
- Known Issues with SDK 0.14.4 Sample Demos
-
CTR-SDK 0.14.3 Release (2010/11/19)
- Note 70-01: (CAMERA) Fixed bug where the camera would not recover normally if the system was closed during a transition to an application caused by the HOME Button [SDK | System Updater]
- Note 70-02: (CEC) Fixed a bug where OpenMessageBox would fail [SDK | System Updater]
- Note 70-03: (CEC) Fixed a problem where the send count value would not go down
- Note 70-04: (CFG) Revised the
nn::cfg::CTR::IsAgreedEula function [SDK]
- Note 70-05: (DLP) Added sleep support for Sample Demos and DlpClient [SDK | Sample Demos]
- Note 70-06: (DLP) Extensions to Sample Demos and Tool [SDK | Sample Demos]
- Note 70-07: (DevEnv) Added a description of addition to the application in the electronics operations manual [SDK]
- Note 70-08: (FRIENDS) Added the fact that GetMyMii sometimes gets an empty Mii to the reference [SDK]
- Note 70-09: (HID) Fixed a bug where an abnoramal sampling value would occasionally occur [SDK]
- Note 70-10: (TOOL) Revised DevMenu shared expanded save data operations[SDK]
- Note 70-11: (UDS) Fixed a bug where the AllowToConnect function would not work correctly if called after the DisallowToConnect function [SDK]
- Known Issues in the SDK 0.14.3 Release
-
CTR-SDK 0.14.3 System Updater (2010/11/19)
- Note 69-01: (BOSS) Revised the BOSS storage memory allocation process [System Updater]
- Note 69-02: (BOSS) Corrected problems found in CTR-SDK 0.14.0.x [System Updater]
- Note 69-03: (CAMERA) Fixed a bug where the camera would not recover normally if the system was closed during a transition to an application caused by the HOME Button [SDK | System Updater]
- Note 69-04: (CEC) Fixed a bug where OpenMessageBox would fail [SDK | System Updater]
- Note 69-05: (CEC) Fixed a bug where data could not be sent
- Note 69-06: (DLP) Added support for DLP system updates [System Updater | Sample Demos]
- Note 69-07: (DevEnv) Fixed a bug during display of the FATAL/Card removed error [System Updater]
- Note 69-08: (FS) Fixed a bug where mounting a ROM file system would sometimes fail [System Updater]
- Note 69-09: (FS) Fixed a deadlock in the file system [System Updater]
- Note 69-10: (HID) Fixd a bug where illegal coordinates would result after immediately after a pen-down on the touch panel [System Updater]
- Note 69-11: (HTTP) Fixed a bug where HTTPS communications via proxy were impossible [System Updater]
- Note 69-12: (GX) Revised the 3D LED initialization process [System Updater]
- Known Issues with System Updater in SDK Version 0.14.3
-
CTR-SDK 0.14.3 Sample Demos (2010/11/19)
- Note 68-01: (DLP) Added support for DLP system updates [System Updater | Sample Demos]
- Note 68-02: (DLP) Added sleep support for Sample Demos and DlpClient [SDK | Sample Demos]
- Note 68-03: (DLP) Extensions to Sample Demos and Tool [SDK | Sample Demos]
- Note 68-04: (SND) Added an eletronics operations manual for a demo [Sample Demos]
- Note 68-05: (UDS) Fixed a bug where the thruput and error rate display for Master would appear as garbage when using com_demo1 [Sample Demos]
- Known Issues with SDK 0.14.3 Sample Demos
-
CTR-SDK 0.14.2 Release (2010/11/17)
- Note 67-01: (APPLET) Sleep problem when returning from the developer's menu [SDK | System Updater]
- Note 67-02: (CAMERA) Fixed a bug where the camera would not recover normally if the system was closed during a transition caused by the HOME Button [SDK | System Updater]
- Note 67-03: (GR) Revised the GR library so that it generates cube mape and shadow map commands [SDK]
- Note 67-04: (GR) Revised the GR library so that it generates border color commands for each texture [SDK]
- Note 67-05: (GR) Revised specifications so that the framebuffer cache is cleared when a RenderState class public variable command is generated by the GR library [SDK]
- Note 67-06: (PL) Deleted the Initialize/FinalizePedometer functions [SDK]
- Note 67-07: (UBL) Revised the UBL Library [SDK]
- Note 67-08: (UDS) Adjusted the setting range for the maximum send delay time [SDK]
- Known Issues in the SDK 0.14.2 Release
-
CTR-SDK 0.14.2 System Updater (2010/11/17)
- Note 66-01: (APPLET) Sleep problem when returning from the developer's menu [SDK | System Updater]
- Note 66-02: (CAMERA) Fixed a bug where the camera would not recover normally if the system was closed during a transition caused by the HOME Button [SDK | System Updater]
- Note 66-03: (DevEnv) Fixed a bug during display of the FATAL/Card removed error [System Updater]
- Note 66-04: (DevEnv) Fixed a bug occurring when the system is closed immediately after startup [System Updater]
- Note 66-05: (DevEnv) Fixed a bug where the HOME Button would not work on the developer's menu [System Updater]
- Note 66-06: (FRIENDS) Fixed a bug where account and friend list information sometimes could not be written to file during shutdown [System Updater]
- Note 66-07: (MCU) Fixed a bug where a quick opening and closing of the system was not handled well [System Updater]
- Note 66-08: (NDM) Fixed a timing bug with sleep and WiFi on/off [System Updater]
- Note 66-09: (UDS) Fixed a bug where the uds::Initialize would not exit [System Updater]
- Note 66-10: (UDS) Fixed a bug where status update events were not being signaled when transiting to sleep or wirelss off mode while not connected [System Updater]
- Note 66-11: (UDS) Fixed a bug where a FATAL error would occur when calling DestroyEndpoint after recoverying from sleep during communications [System Updater]
- Known Issues with System Updater in SDK Version 0.14.2
-
CTR-SDK 0.14.1 Release (2010/11/15)
- Note 65-01: (AC) Revised the
Connect(Async)( function [SDK]
- Note 65-02: (AC) Deprecated the
GetStatus/GetStatusChangeEvent function [System Updater]
- Note 65-03: (AC) Added the
IsConnected function [SDK | System Updater]
- Note 65-04: (APPLET) Added the
Enable function [SDK | System Updater | Sample Demos]
- Note 65-05: (BOSS) Changed specifications so that nn::ac::Connect is required before calling the Task::StartImmediate function [SDK]
- Note 65-06: (CEC) Changed the timing of the EULA check [SDK | System Updater | Sample Demos]
- Note 65-07: (CEC) Changed operations when StartScanning is called [SDK]
- Note 65-08: (CX) Fixed a bug in the
nn::cx::ReadUncompLH function [SDK]
- Note 65-09: (DLP) Released uninitialized status [SDK]
- Note 65-10: (DevEnv) Deleted the cia files DlpClient and StereoCameraCalibrator [SDK]
- Note 65-11: (Friends) Changed specifications so that nn::ac::Connect is required before calling the Login function [SDK]
- Note 65-12: (FRIENDS) Changed the internal definition of the MiiData structure [SDK]
- Note 65-13: (FS) Revised the
GetArchiveFreeSize function [SDK | System Updater]
- Note 65-14: (FS) Redacted the
GetFileSystemSize function [SDK]
- Note 65-15: (FS) Undisclosed the
ReadExtSaveDataIcon function [SDK]
- Note 65-16: (FS) Added the
nn::fs::GetExtSaveDataSize function [SDK | System Updater]
- Note 65-17: (FS) Deleted the unneeded Result definitions from file system headers [SDK]
- Note 65-18: (GR) Changed the type of FrameBuffer::DepthStencilBuffer::clearStencil in the GR library to u8 [SDK]
- Note 65-19: (GX) Fixed a bug where the command buffer was not being copied normally by the
nngxAddCmdlist function [SDK]
- Note 65-20: (GX) Updated documentation [SDK]
- Note 65-21: (HID) Fixed a bug in
STICK_CLAMP_MODE_MINIMUM [SDK | System Updater]
- Note 65-22: (HTTP) Revised the API Reference Manual[SDK]
- Note 65-23: (NEWS) Revised the NEWS library [SDK | System Updater]
- Note 65-24: (NGC) Fixed a bug where some prohibited words were not being detected correctly [SDK]
- Note 65-25: (NGC) Changed the behavior when the system region is Japan [SDK]
- Note 65-26: (SND) Fixed a bug releated to freeing memory with nn::snd::FxDelay [SDK]
- Note 65-27: (SND) Added a description of the timing used for calling the voice drop callback [SDK]
- Note 65-28: (SSL) Revised the API Reference Manual [SDK]
- Note 65-29: (SSL) Renamed ResultSocketZeroReturnErr [SDK | Sample Demos]
- Note 65-30: (TOOL) Fixed the language set by ResetSetting of the Config tool [SDK]
- Note 65-31: (TOOL) Added a function to DevMenu for setting the memory region at initial startup of the HOME Menu [SDK]
- Note 65-32: (TOOL) Extended
NetworkSetting tool [SDK]
- Note 65-33: (TOOL) Revised
ctr_makeciaarchive [SDK]
- Note 65-34: (TOOL) Fixed a bug where labels of the form "IN"(N=0,1,2,...) were not being freed by the shader assembler [SDK]
- Note 65-35: (TOOL) Added a function for checking shader integrity [SDK]
- Note 65-36: (TOOL) Changed the product code format [SDK]
- Note 65-37: (UDS) Fixed a bug where the
Receive and ReceiveFrom functions would continue to block [SDK]
- Note 65-38: (UDS) Fixed a bug where a Panic would result if endpoint was destroyed by the DestroyEndpoint function while the Receive function was blocking [SDK]
- Note 65-39: (UDS) Fixed a bug where determination whether it was possible to connect as a Spectator was not being handled correctly [SDK]
- Note 65-40: (UDS) Fixed a bug where abnormal operations would result after re-initializing the system after sleeping it during communications [System Updater]
- Known Issues in the SDK 0.14.1 Release
-
CTR-SDK 0.14.1 System Updater (2010/11/15)
- Note 64-01: (AC) Revised the
Connect(Async) function [System Updater]
- Note 64-02: (AC) Deprecated the
GetStatus/GetStatusChangeEvent function [System Updater]
- Note 64-03: (AC) Added the
IsConnected function [SDK | System Updater]
- Note 64-04: (APPLET) Added the
Enable function [SDK | System Updater | Sample Demos]
- Note 64-05: (BOSS) Revised the
NsData::SetAdditionalInfo function [System Updater]
- Note 64-06: (BOSS) Fixed a bug where BOSS would wake up when there was no executing task [System Updater]
- Note 64-07: (BOSS) Fixed a bug where power save during wireless operations would not work [System Updater]
- Note 64-08: (CAMERA) Changed specifications so a value other than WHITE_BALANCE_NORMAL can be set for the SetPackageParameterWithoutContext function [System Updater]
- Note 64-09: (CEC) Fixed a bug where mistaken operations would result if the number of send data messages for a single communication was 0 [System Updater]
- Note 64-10: (CEC) Changed the timing of the EULA check [SDK | System Updater | Sample Demos]
- Note 64-11: (CEC) Fixed a gap in AP searches during sleep [System Updater]
- Note 64-12: (DevEnv) Added a display message when a FATAL error occurs [System Updater]
- Note 64-13: (DevEnv) Changed settings at development menu startup time when halting an application [System Updater]
- Note 64-14: (DevEnv) Fixed a bug with screen display status when starting an application [System Updater]
- Note 64-15: (DevEnv) Added a reboot sequence when displaying a "card removed" error [System Updater]
- Note 64-16: (DevEnv) Revised shutdown processing [System Updater]
- Note 64-17: (DevEnv) Changed the default background brightness value [System Updater]
- Note 64-18: (FRIENDS) Fixed a bug where users waiting to establish friend relationships were being removed from the friends list [System Updater]
- Note 64-19: (FS) Revised the
FormatSaveData function [System Updater]
- Note 64-20: (FS) Revised the
GetArchiveFreeSize function [SDK | System Updater]
- Note 64-21: (FS) Revised the return values of the
MountSaveData function [System Updater]
- Note 64-22: (FS) Revised SD Memory Card removal processing [System Updater]
- Note 64-23: (FS) Revised the directory attributes in SDMC archives [System Updater]
- Note 64-24: (FS) Revised the time stamp in SDMC archives [System Updater]
- Note 64-25: (FS) Revised the path name check used with fatfs archives [System Updater]
- Note 64-26: (FS) Added the
nn::fs::GetExtSaveDataSize function [SDK | System Updater]
- Note 64-27: (FS) Changed the internal format used for save data and expanded save data [System Updater]
- Note 64-28: (FS) Made revisions related to removing a card while accessing backup memory [System Updater]
- Note 64-29: (FS) Changed behavior when removing a directory that includes a final forward slash in the specified path name [System Updater]
- Note 64-30: (FS) Implemented access restrictions on the file system [System Updater]
- Note 64-31: (FS) Fixed a bug where execution would freeze when accessing a file or directory [System Updater]
- Note 64-32: (HID) Fixd a bug where invalid touch panel data would occasionally result [System Updater]
- Note 64-33: (HTTP) Changed the specifications of
Cancel and Finalize in relation to keep alive communications [System Updater]
- Note 64-34: (NDM) Fixed a bug where the system would willfully cut the network connection [System Updater]
- Note 64-35: (NET) Revised the ZoneAP scan feature [System Updater]
- Note 64-36: (NET) Stabilized the send signal strength immediately after switching communication modes [System Updater]
- Note 64-37: (NEWS) Revised the NEWS library [SDK | System Updater]
- Note 64-38: (NGC) Revised the prohibited word list for the North America region, Portuguese language [SDK]
- Note 64-39: (PL) Fixed a bug where the number of steps obtained was not correct [System Updater]
- Note 64-40: (PTM) Fixed a bug where the system would not wake up from sleep when the alarm went off [System Updater]
- Note 64-41: (SOCKET) Fixed a bug occurring when the socket to be polled was closed [System Updater]
- Note 64-42: (UDS) Fixed a bug where applications would terminate during UDS communications [System Updater]
- Note 64-43: (UDS) Changed the state returned by the GetConnectionState function after entering wireless OFF mode and going to sleep [System Updater]
- Note 64-44: (UDS) Fixed a bug where Client/Spectator disconnection could not be performed correctly when signal status was poor [System Updater]
- Known Issues with System Updater in SDK Version 0.14.1
-
CTR-SDK 0.14.1 Sample Demos (2010/11/15)
- Note 63-01: (AC) Deleted connect_c (C language AC sample) [Sample Demos]
- Note 63-02: (AC) Added an fs initialization process to sample demos that use various nn::ac::Connect function [Sample Demos]
- Note 63-03: (APPLET) Added the
Enable function [SDK | System Updater | Sample Demos]
- Note 63-04: (BOSS) Revised the sample_nadl_simple [Sample Demos]
- Note 63-05: (CEC) Changed the timing of the EULA check [SDK | System Updater | Sample Demos]
- Note 63-06: (GX) Fixed a bug with the demo for editing procedural texture parameters [Sample Demos]
- Note 63-07: (SSL) Renamed ResultSocketZeroReturnErr [SDK | Sample Demos]
- Note 63-08: (UDS) com_demo1 demo support for sleep, the HOME Button, and the WiFi button [Sample Demos]
- Note 63-09: (UDS) Changed specifications so that connections are made in Spectator mode by the uds/simple demo [Sample Demos]
- Known Issues with SDK 0.14.1 Sample Demos
-
CTR-SDK 0.14.0.5 Release (2010/11/09)
- Note 62-01: (FS) Revised the latency emulation default settings [SDK|System Updater]
- Known Issues in the SDK 0.14.0.5 Release
-
CTR-SDK 0.14.0.5 System Updater (2010/11/09)
- Note 61-01: (FS) Revised the latency emulation default settings [SDK|System Updater]
- Known Issues with System Updater in SDK Version 0.14.0.5
-
CTR-SDK 0.14.0.4 Release (2010/11/08)
- Note 60-01: (FS) Fixed the problem that caused an SD card to not be recognized when inserted/removed during Sleep [SDK|System Updater]
- Note 60-02: (NGC) Fixed problem that caused initialization to fail [SDK]
- Known Issues with SDK 0.14.0.4 Release
-
CTR-SDK 0.14.0.4 System Updater (2010/11/08)
- Note 59-01: (BOSS) Fixed problem that caused a FATAL ERROR to occur when waking while half-awake [System Updater]
- Note 59-02: (FS) Fixed the problem that caused an SD card to not be recognized when inserted/removed during Sleep [SDK|System Updater]
- Known Issues with System Updater in SDK Version 0.14.0.4
-
CTR-SDK 0.14.0.3 Release (2010/11/06)
- Note 58-01: (SOCKET) Fixed FATAL ERROR 0xD8E007FD [SDK]
- Known Issues with SDK 0.14.0.3 Release
-
CTR-SDK 0.14.0.3 System Updater (2010/11/06)
- Note 57-01: (DLP) Fixed problems in importing child devices with DLP [System Updater]
- Note 57-02: (FS) Fixed the
MountSaveData function [System Updater]
- Note 57-03: (OS) Fixed the problem that caused the register value to be corrupted when stepping/tracing with the debugger [System Updater]
- Known Issues with System Updater in SDK Version 0.14.0.3
-
CTR-SDK 0.14.0.2 Release (2010/11/05)
- Note 56-01:(APPLET) Fixed bugs related to state transition and exclusive control of the HOME Button, Power Button and Sleep mode [SDK|System Updater]
- Note 56-02:(OS) Fixed a bug where the shut down process would not complete [SDK|System Updater]
- Note 56-03:(PL) Fixed a bug where the number of steps was not being saved at shutdown.[SDK|System Updater]
- Known Issues in the SDK 0.14.0.2 Release
-
CTR-SDK 0.14.0.2 System Updater (2010/11/05)
- Note 55-01:(APPLET) Fixed bugs related to state transition and exclusive control of the HOME Button, Power Button and Sleep mode [SDK|System Updater]
- Note 55-02:(OS) Fixed a bug where the shut down process would not complete [SDK|System Updater]
- Note 55-03:(PL) Fixed a bug where the number of steps was not being saved at shutdown.[SDK|System Updater]
- Known Issues with System Updater in SDK Version 0.14.0.2
-
CTR-SDK 0.14.0.1 System Updater (2010/11/03)
- Note 54-01:(DevEnv) Revised game card hot-swapping
- Note 54-02:(OS) Fixed a bug where an abort would result if the debugger continues step execution [System Updater]
- Known Issues with System Updater in SDK Version 0.14.0.1
-
CTR-SDK 0.14.0 Release (2010/11/01)
- Note 53-01: (APPLET) Added support for HOME Button detection and transitioning to the HOME Menu [SDK]
- Note 53-02:(APPLET) Removed the SLEEP notification callback [SDK]
- Note 53-03:(APPLET) Moved the applet::Initialize function to the StartUp API [SDK]
- Note 53-04: (CAMERA) Revised the Initialize function [SDK|System Updater]
- Note 53-05: (CAMERA) Revised the SetPhotoMode function [SDK|System Updater]
- Note 53-06:(CAMERA) Added camera stop processing during Applet transition [SDK|System Updater]
- Note 53-07:(CEC) Added the argument CecControl::StopScanning [SDK|System Updater]
- Note 53-08:(CEC) Added EULA Agreement version detection [SDK|System Updater]
- Note 53-09:(CEC) Changed the procedure for writing messages [SDK|System Updater]
- Note 53-10:(CEC) Added a feature for stopping daemon execution when accessing a box [SDK|System Updater]
- Note 53-11:(CFG) Added an API for determining if the EULA agreement has been accepted [SDK|System Updater]
- Note 53-12:(DLP) Changed the API [SDK|System Updater]
- Note 53-13:(DLP) Settled on the error codes returned by API functions[SDK|System Updater]
- Note 53-14:(DLP) Added the ability to specify the wireless channel for the server [SDK|System Updater]
- Note 53-15:(DLP) Added an API function for deleting scan results[SDK|System Updater]
- Note 53-16:(DLP) Changed the reconnection information [SDK|System Updater]
- Note 53-17:(DLP) Changed forcible download specifications for child devices [SDK|System Updater]
- Note 53-18:(DLP) Now allow the communcation buffer size and number of buffers to be specified [SDK|System Updater]
- Note 53-19:(DevEnv) Changed CTR_NO_BANNER specifications and added CTR_NO_BANNER_ICON [SDK]
- Note 53-20:(DevEnv) Changed the symbol nnMain to no longer be a target of dead-stripping.
- Note 53-21: (DevEnv) Added the shared font data [SDK]
- Note 53-22:(DevEnv) Stopped importing of applications to system save memory[SDK|System Updater]
- Note 53-23:(DevEnv) Changed the amount of memory that can be used by both development hardware and PARTNER-CTR Capture to 64MB [SDK|System Updater]
- Note 53-24:(FND) Changed the upper limit on ExpHeap alignment to 128 bytes [SDK]
- Note 53-25:(FND) Changed nn::fnd::DateTime::GetParameters to a const member function.
- Note 53-26:(FRIENDS) Deleted the Logout function [SDK]
- Note 53-27:(FRIENDS) Added Miis and profile update notification [SDK|System Updater]
- Note 53-28: (FRIENDS) Deleted the SetNotificationMask function [SDK]
- Note 53-29:(FRIENDS) Deleted API functions with features that will not be available at launch [SDK]
- Note 53-30:(FRIENDS) Added an API function for encrypting local friend codes [SDK]
- Note 53-31:(FRIENDS) Deleted API functions related to one's own local friend code and friend codes [SDK]
- Note 53-32:(FRIENDS) Split up the acquisition of screen names and Miis[SDK]
- Note 53-33: (FRIENDS) Added screen name font region support [SDK|System Updater]
- Note 53-34:(FS) Support for paths including ".." [SDK]
- Note 53-35:(FS) Fixed HioArchive memory leak [SDK]
- Note 53-36:(FS) Revised the HioArchive::File::Initialize function [SDK]
- Note 53-37: (FS) Canceled restrictions on functions that get SD Card insertion/removal events [SDK]
- Note 53-38:(FS) Added the nn::fs::CreateFile function [SDK]
- Note 53-39:(FS) Added a function for committing save data where data has been duplicated [SDK]
- Note 53-40:(FS) Changed Result of the file system [SDK|System Updater]
- Note 53-41:(FS) Added the Flush feature for use when writing files [SDK]
- Note 53-42:(FS) Added support for guaranteeing the completeness of extended save data and shared extended save data [SDK]
- Note 53-43: (FS) Added functions for accessing expanded save data [SDK]
- Note 53-44:(FS) Placed a restriction on creating empty expanded save data files. [SDK]
- Note 53-45: (FS) Changed API functions related to expanded save data [SDK]
- Note 53-46:(GR) Updated the GR Library [SDK]
- Note 53-47:(GX) Added references for functions used to support direct creation of the nngx command list [SDK]
- Note 53-48:(GX) Added the nngxFlush3DCommand [SDK]
- Note 53-49:(GX) Improved the efficiency of command request processing [SDK]
- Note 53-50:(GX) Updated documentation [SDK]
- Note 53-51:(GX) Changed the macro header [SDK]
- Note 53-52:(GX) Fixed problems with the line shader [SDK]
- Note 53-53:(GX) Fixed a bug related to setting made using the glDrawArrays function when using the vertex buffer [SDK]
- Note 53-54:(HID) Revised the GyroscopeReader::Read and GyroscopeReader::ReadLatest functions [SDK]
- Note 53-55:(HID) Added the NormalizeStickWithScale function [SDK]
- Note 53-56:(HID) Changed behavior when recovering from sleep with nn::hid::GyroscopeReader [SDK]
- Note 53-57:(HID) Revised the nn::hid::GyroscopeReader::SetAngleMagnification function [SDK]
- Note 53-58: (HID) Changed the minimum slide pad clamp value [SDK]
- Note 53-59: (HID) Settled on each type of constant used with the acceleration sensor [SDK]
- Note 53-60:(HID) Added a minimum clamp mode [SDK]
- Note 53-61:(HIO) Fixed a bug with GetHioDaemonStatus [SDK]
- Note 53-62:(HIO) Made improvements related to using the API from multiple threads [SDK]
- Note 53-63:(JPEG) Added a function for specifying encoding options [SDK]
- Note 53-64:(JPEG) Added decoding options [SDK]
- Note 53-65:(JPEG) Improved decoded image quality [SDK]
- Note 53-66:(MIC) Revised the GetForbiddenArea function [SDK]
- Note 53-67:(MIC) Added clamping of mic data [SDK|System Updater]
- Note 53-68:(MIC) Changed the range of guaranteed mic input [SDK]
- Note 53-69:(NEWS) Added to the NEWS library [SDK|System Updater]
- Note 53-70:(NGC) Added North America Portuguese to the language list [SDK]
- Note 53-71:(NGC) Revised the function reference [SDK]
- Note 53-72:(OS) Added the InitializeMemoryBlock function [SDK|System Updater]
- Note 53-73:(OS) Revised internal use of Mutex in the library [SDK]
- Note 53-74:(PL) Abolished the Initialize and Finalize function [SDK]
- Note 53-75:(PL) Added an inferface for mounting shared fonts [SDK]
- Note 53-76:(PL) Added a pedometer library [SDK]
- Note 53-77:(RDT) Established new result codes [SDK]
- Note 53-78:(RDT) Added an API function for log output [SDK]
- Note 53-79:(SND) Fixed a problem with ADPCM context setting confirmation asserts [SDK]
- Note 53-80:(SND) Added the OutputCaputre class [SDK]
- Note 53-81:(SND) Changed specifications fo SetupBcwav [SDK]
- Note 53-82:(SND) Changed the specifications of the API function used to set the Voice filter coefficient [SDK]
- Note 53-83:(SND) Added new API functions for getting and setting the Voice filter coefficient [SDK]
- Note 53-84:(SND) Extended the Voice filter feature [SDK]
- Note 53-85:(SND) Fixed a problem where FilterType and filter coefficients were not initialized when getting Voice [SDK]
- Note 53-86:(SND) Changed the specifications of the nn::snd::Voice::SetPriority function [SDK]
- Note 53-87:(SND) Added effect API functions [SDK]
- Note 53-88:(SND) Fixed a problem where noise was being introduced when usign Aux callback processing when recovering from sleep mode [SDK]
- Note 53-89:(SND) Fixed a problem with detection function regarding dropped processing [SDK]
- Note 53-90:(SND) Fixed a problem where an exception would occur inside AllocVoice if the number of available voices was gradually reduced [SDK]
- Note 53-91:(TOOL) Changed the Config [SDK]
- Note 53-92: (TOOL) Changed the
DevMenu [SDK]
- Note 53-93:(TOOL) Extended NetworkSetting tool [SDK]
- Note 53-94:(TOOL) Added items to the RSF [SDK|System Updater]
- Note 53-95:(TOOL) Changed the wave file interpretation specifications of WaveConverter [SDK]
- Note 53-96: (TOOL) Updated
ctr_TexturePackager32 [SDK]
- Note 53-97:(TOOL) Changed the regions that can be selected when using ctr_makebanner [SDK]
- Note 53-98:(TOOL) Made ctr_makeciaarchive32.exe open to the public [SDK]
- Note 53-99:(TOOL) Added ctr_makerom32.exe and an option for specifying the number of parallel processes [SDK]
- Note 53-100: Added (TOOL) loadrun [SDK]
- Note 53-101:(TOOL) Changed the range for UniqueId values that can be specified when using makerom [SDK]
- Note 53-102:(TOOL) Improved the performance of makerom [SDK]
- Note 53-103:(TOOL) Made the friend registration tool open to the public [SDK]
- Note 53-104:(TPL) Changed MAX_MIPMAPLEVEL to NN_TPL_MAX_MIPMAPLEVEL [SDK]
- Note 53-105:(TPL) Added the nn::tpl::GetTextureNum function [SDK]
- Note 53-106:(UDS) Added the DisallowToConnect and AllowToConnect functions [SDK]
- Note 53-107:(UDS) Revised the method of calculating radio signal strength used by the NetworkDescriptionReader::GetRadioStrength function [SDK]
- Note 53-108:(UDS) Added the error ResultMalformedData [SDK]
- Note 53-109:(UDS) Added the SetMaxSendDelay function [SDK]
- Note 53-110: (UDS) Added members to the
nn::uds::ConnectionStatus structure [SDK]
- Note 53-111:(UDS) Fixed a bug where the incorrect Result was being returned by nn::uds::CreateNetwork when the maximum number of nodes was set to 1 [SDK]
- Note 53-112:(UDS) Changed members of the nn::uds::NodeInformation structure [SDK]
- Note 53-113:(UDS) Added nn::uds::ResultMiscellaneousSystemError [SDK]
- Note 53-114:(UDS) Deleted the nn::uds::SetNetworkAttribute function [SDK]
- Note 53-115:(UDS) Revised the method of calculating the link level [SDK]
- Note 53-116:(UDS) Deleted a not recommended execution of the DisconnectNetwork function after being disconnected [SDK]
- Note 53-117:(UDS) Revised the REsult value when an attempt is made to connect to a network that has reached the maximum number of nodes [SDK]
- Note 53-118:(ULCD) Exposed the prohibition against copying the StereoCamera class [SDK]
- Note 53-119: (ULCD) Added support for
const member functions in the StereoCamera class [SDK]
- Note 53-120:(ULCD) Fixed a problem with constructors that have an argument in the StereoCamera class [SDK]
- Note 53-121:(ULCD) Fixed a problem with the StereoCamera::GetMaxParallax function [SDK]
- Note 53-122:(UTIL) Added the CRC class [SDK]
- Known Issues with SDK 0.14.0 Release
-
CTR-SDK 0.14.0 System Updater (2010/11/01)
- Note 52-01:(AC) Revised the CancelConnectAsync function [System Updater]
- Note 52-02: (AC) Fixed the
Connect function [System Updater]
- Note 52-03:(AC) Revised the Connect function [System Updater]
- Note 52-04:(AC) Revised the Connect/Close functions [System Updater]
- Note 52-05:(AC) Revosed tje Connect/ConnectAsync functions [System Updater]
- Note 52-06:(AC) Revised the Connect/ConnectAsync function [System Updater]
- Note 52-07:(AC) Added the DebugSetApType function [System Updater]
- Note 52-08: (APPLET) Added support for a barrage of HOME button presses [System Updater]
- Note 52-09:(CAMERA) Revised the Initialize function [SDK|System Updater]
- Note 52-10:(CAMERA) Revised the SetPhotoMode function [SDK|System Updater]
- Note 52-11:(CAMERA) Added a process for stopping the camera during applet transitions [SDK|System Updater]
- Note 52-12:(CAMERA) Changed the period during which shutter sound playback can start [System Updater]
- Note 52-13:(CARD) Fixed a problem where MountRom of the Card class would fail when UIC-MIDI access and MountRom access clashed [System Updater]
- Note 52-14:(CEC) Added the argument CecControl::StopScanning [SDK|System Updater]
- Note 52-15:(CEC) Added a determination of the EULA agreement version [SDK|System Updater]
- Note 52-16:(CEC) Changed the procedure for writing messages [SDK|System Updater]
- Note 52-17:(CEC) Added a feature for stopping daemon execution when accessing a box [SDK|System Updater]
- Note 52-18:(CFG) Added an API for determining if the EULA agreement has been accepted [SDK|System Updater]
- Note 52-19:(DLP) Changed the API [SDK|System Updater]
- Note 52-20:(DLP) Settled on the error codes returned by API functions[SDK|System Updater]
- Note 52-21: (DLP) Changed the conditions for transiting to error status [System Updater]
- Note 52-22:(DLP) Added the ability to specify the wireless channel for the server [SDK|System Updater]
- Note 52-23:(DLP) Added an API function for deleting scan results[SDK|System Updater]
- Note 52-24:(DLP) Changed the reconnection information [SDK|System Updater]
- Note 52-25:(DLP) Changed forcible download specifications for child devices [SDK|System Updater]
- Note 52-26:(DLP) Now allow the communcation buffer size and number of buffers to be specified [SDK|System Updater]
- Note 52-27:(DSP) Fixed a problem where control would not return from the LoadDefaultComponent function [System Updater]
- Note 52-28:(DevEnv) Fixed a problem with MCU update [System Updater]
- Note 52-29:(DevEnv) Stopped importing of applications to system save memory[SDK|System Updater]
- Note 52-30:(DevEnv) Fixed a problem where the power of development hardware would suddenly turn ON [System Updater]
- Note 52-31:(DevEnv) Changed the amount of memory that can be used by both development hardware and PARTNER-CTR Capture to 64MB [SDK|System Updater]
- Note 52-32: (DevEnv) Changed development menu [System Updater]
- Note 52-33:(DevEnv) Correction screen distortion occuring when starting the development menu[System Updater]
- Note 52-34:(FRIENDS) Added Miis and profile update notification [SDK|System Updater]
- Note 52-35:(FRIENDS) Delayed automous daemon login [System Updater]
- Note 52-36:(FRIENDS) Fixed a problem where local friend codes were being replaced at each startup [System Updater]
- Note 52-37: (FRIENDS) Added screen name font region support [SDK|System Updater]
- Note 52-38:(FS) Fixed a problem with freezing that would occur when the FAT became fragmented [System Updater]
- Note 52-39:(FS) Added support for fat file system time stamp [System Updater]
- Note 52-40:(FS) Revised the nn::fs::MountSdmc function [System Updater]
- Note 52-41:(FS) Corrected a problem with freezing that would occur when nothing was inserted in the card slot [System Updater]
- Note 52-42:(FS) Changed Result of the file system [SDK|System Updater]
- Note 52-43:(FS) Added a latency emulation function [System Updater]
- Note 52-44:(FS) Fixed a problem where severely fragmented files could no longer be handled [System Updater]
- Note 52-45:(GX) Changed the behavior of LCD backlight brightness [System Updater]
- Note 52-46:(GX) Changed the operating core at the driver level [System Updater]
- Note 52-47:(HID) Sped up Read used with various sampling data [System Updater]
- Note 52-48:(HTTP) Changed the specifications of LazyPOST transmissions when using keep alive communications [System Updater]
- Note 52-49:(HTTP) Revised the packet text string of an original header field [System Updater]
- Note 52-50:(MIC) Added clamping of mic data [SDK|System Updater]
- Note 52-51:(NEWS) Added to the NEWS library [SDK|System Updater]
- Note 52-52:(NGC) Updated the prohibited word pattern list [System Updater]
- Note 52-53:(OS) Implemented processing for CARD removal [System Updater]
- Note 52-54:(OS) Added the InitializeMemoryBlock function [SDK|System Updater]
- Note 52-55:(OS) Added a setting for the maximum number of objects [System Updater]
- Note 52-56:(OS) Improved debugger startup time [System Updater]
- Note 52-57:(OS) Adjusted performance [System Updater]
- Note 52-58:(SOCKET) Fixed a problem with IP address collision detection [System Updater]
- Note 52-59:(SSL) Revised EVSSL authentication [System Updater]
- Note 52-60:(TOOL) Added items to the RSF [SDK|System Updater]
- Note 52-61:(UDS) Fixed a bug where the corrrect reason for disconnection was not being obtained when the Client and Spectator were cut off from the network [System Updater]
- Note 52-62:(UDS) Revised a bug where connection up to the maximum number of nodes specified by the uds::CreateNetwork function was impossible [System Updater]
- Note 52-63:(UDS) Fixed a bug where a connection disconnection notification was not being generated during intensive communications [System Updater]
- Note 52-64:(UDS) Fixed a problem execution would not complete when the nn::uds::Initialize function was executed in wireless OFF mode [System Updater]
- Note 52-65:(UDS) Fixed a bug where packet sends to one's own addess would succeed [System Updater]
- Note 52-66:(UDS) Improved stability when the communication load has increased [System Updater]
- Known Issues with System Updater in SDK Version 0.14.0
-
CTR-SDK 0.14.0 Sample Demos (2010/11/01)
- Note 51-01:(DEMO) Fixed a problem with the number of bits of the size member of the CommandBuffer3d structure [Sample Demos]
- Note 51-02:(DEMO) Changed the specifications of the RenderSystem::Initialize function [Sample Demos]
- Note 51-03:(FS) Changed specifications so that features that do no work on the development hardware can be enabled by button operations [Sample Demos]
- Note 51-04:(GR) Made revisions so the nn::fs::MountRom function is called by the lib_grfw library for the GR library demo [Sample Demos]
- Note 51-05:(GR) Changed the heap size allocated by the lib_grfw framework for the GR library demo to 20MB [Sample Demos]
- Note 51-06:(GR) Added the ProcedureTexture for rendering procedural textures [Sample Demos]
- Note 51-07:(GX) Added a demo for editing procedural texture patterns [Sample Demos]
- Note 51-08:(RDT) Revosed rsf sample demo [Sample Demos]
- Note 51-09:(RDT) Revised the sample demo [Sample Demos]
- Note 51-10:(SND) Added the OutputCapture sample demo [Sample Demos]
- Note 51-11:(SND) Revised the sample demo [Sample Demos]
- Known Issues with SDK 0.14.0 Sample Demos
-
CTR-SDK 0.13.2 Release (2010/10/07)
- Note 50-01: (FS) Increased speed of opening files from ROM archives [SDK]
- Known Issues in the SDK 0.13.2 Release
-
CTR-SDK 0.13.1 Release (2010/09/30)
- Note 49-01: (CAMERA) Corrected a change log entry regarding processing added to stop the cameras when the system is closed [SDK]
- Note 49-02: (DevEnv) Corrected change log entries for known bugs in CTR-SDK 0.13 System Updater [SDK]
- Note 49-03: (SND) Fixed bug related to creating sound threads on core 1 in NintendoWare for CTR [SDK]
- Note 49-04: (SND) Fixed bug that caused execution to enter an endless loop when
FreeVoice was used within the voice drop callback [SDK]
- Known Issues in the SDK 0.13.1 Release
-
CTR-SDK 0.13.0 Release (2010/09/28)
- Note 48-01: (AC) Added the
nn::ac::LinkLevel GetLinkLevel function [SDK]
- Note 48-02: (APPLET) Added support for HOME Button detection and transitioning to the HOME Menu [SDK]
- Note 48-03: (BOSS) Added the BOSS library [SDK|System Updater]
- Note 48-04: (CAMERA) Revised the
SetNoiseFilter function [SDK|System Updater]
- Note 48-05: (CAMERA) Added a function to change the sensor window used for auto white balancing [SDK|System Updater]
- Note 48-06: (CARD) Revised media selector control after using HostIO CardSPI [SDK]
- Note 48-07: (CEC) Changed the StreetPass library API [SDK|System Updater]
- Note 48-08: (CEC) Operations necessary to communicate with the same partner more than once [SDK]
- Note 48-09: (CFG) Revised the
GetLanguageCodeA2 function [SDK]
- Note 48-10: (CFG) Revised the
GetSimpleAddress function [SDK]
- Note 48-11: (CFG) Added function to get the RTC offset value [SDK]
- Note 48-12: (CX) Added the CX library [SDK]
- Note 48-13: (DLP) Changed the method for embedding child programs in parent programs [SDK|Sample Demos]
- Note 48-14: (DLP) Made revisions involving identification of child devices [SDK|Sample Demos]
- Note 48-15: (DevEnv) Removed the pragma used for the RVCT warning bug workaround [SDK]
- Note 48-16: (DevEnv) Made some
nn::Result constructors private [SDK]
- Note 48-17: (DevEnv) Changed the encoding of
types.h [SDK]
- Note 48-18: (DevEnv) Changed compiler and linker options [SDK]
- Note 48-19: (DevEnv) Updated the supported version of RVCT [SDK]
- Note 48-20: (FND) Revised behavior when
Allocate of an ExpHeap fails [SDK]
- Note 48-21: (FND) Revised behavior of
ExpHeap constructor when given no arguments [SDK]
- Note 48-22: (FND) Revised the range of specifiable alignments in
ExpHeap::Allocate [SDK]
- Note 48-23: (FND) Revised
ExpHeapBase::GetDirecitionOf to GetDirectionOf [SDK]
- Note 48-24: (FND) Strengthened check when freeing expanded heap memory [SDK]
- Note 48-25: (FONT) Added the Font library [SDK]
- Note 48-26: (FRIENDS) Changed the value of
MODE_DESCRIPTION_SIZE [SDK]
- Note 48-27: (FRIENDS) Deleted part of the
NotificationType enumerator [SDK]
- Note 48-28: (FRIENDS) Eliminated the notification sent when a game description is updated [SDK|System Updater]
- Note 48-29: (FRIENDS) Changed the value of the
MII_SIZE constant [SDK]
- Note 48-30: (FS) Changed the specifications of functions that get SD Card insertion/removal events [SDK]
- Note 48-31: (FS) Fixed bug that prevented the
fs::Directory::Read function from getting all entries [SDK]
- Note 48-32: (FS) Added the
nn::fs::GetFileSystemSize function [SDK]
- Note 48-33: (FS) Added the
nn::fs::MountSdmc function [SDK]
- Note 48-34: (FS) Added the
nn::fs::hio::GetHioRequiredMemorySize function [SDK]
- Note 48-35: (FS) Added a write function to
nn::fs::hio::HioArchive [SDK]
- Note 48-36: (FS) Added the
nn::hio::CTR::HostFile::SetSize function [SDK]
- Note 48-37: (FS) Added functions to get Game Card insertion/removal events and to get whether a Game Card is inserted [SDK]
- Note 48-38: (FS) Changed length of filenames in save data and expanded save data to 16 characters [SDK]
- Note 48-39: (GX) Updated the DMPGL documentation [SDK]
- Note 48-40: (GX) Added the GR library [SDK]
- Note 48-41: (GX) Updated PICA macro headers [SDK]
- Note 48-42: (GX) Changed the off-limits range when placing display buffers in VRAM [SDK|System Updater]
- Note 48-43: (GX) Enabled polygon offsets when the W buffer is enabled [SDK]
- Note 48-44: (GX) Changed the
glCopyTexImage2D and glCopyTexSubImage2D functions [SDK]
- Note 48-45: (GX) Fixed a bug in the
glPolygonOffset function [SDK]
- Note 48-46: (GX) Added the
nngxAddB2LTransferCommand function [SDK]
- Note 48-47: (GX) Added the
nngxAddBlockImageCopyCommand function [SDK]
- Note 48-48: (GX) Added the
nngxAddL2BTransferCommand function [SDK]
- Note 48-49: (GX) Added the
nngxAddMemoryFillCommand function [SDK]
- Note 48-50: (GX) Removed restrictions on the srcaddr and dstaddr arguments in the
nngxAddVramDmaCommand function [SDK]
- Note 48-51: (GX) Fixed bug in behavior when an invalid format argument was specified in the
nngxFilterBlockImage function [SDK]
- Note 48-52:(GX) Revised the types of arguments in the
nngxFilterBlockImage and nngxAddVramDmaCommand functions [SDK]
- Note 48-53: (GX) Added the
nngxGetAllocator function [SDK]
- Note 48-54: (GX) Fixed bug that caused
glViewport function settings to not be applied if run immediately after running the nngxInitialize function [SDK]
- Note 48-55: (GX) Added the
nngxSetGasAutoAccumulationUpdate function [SDK]
- Note 48-56: (GX) Fixed problem where the
nngxTransferLinearImage function would stop on an assert [SDK]
- Note 48-57: (GX) Fixed bug in delta value settings of lookup tables used for procedural texture RGBA mapping and noise modulation [SDK]
- Note 48-58: (GX) Fixed bug in
glVertexAttribPointer function when multiple vertex attributes have been arranged as an interleaved array [SDK]
- Note 48-59: (GX) Deleted command that set the
0x101 register when logical operations are enabled [SDK]
- Note 48-60: (HID) Deleted
ACCELEROMETER_PLAY_MODE_LOOSE [SDK]
- Note 48-61: (HID) Added functions that enable use of the gyro sensor [SDK]
- Note 48-62: (HID) Revised the minimum and maximum values for clamping the Circle Pad [SDK]
- Note 48-63: (HID) Added offset correction functions and axis rotation functions to the accelerometer library [SDK]
- Note 48-64: (HIO) Added functions for transmittable sizes during serial communication [SDK]
- Note 48-65: (JPEG) Added the
GetMpRegionsToBuildJpegData function to the decoder [SDK]
- Note 48-66: (JPEG) Added function that stops decoding [SDK]
- Note 48-67: (JPEG) Added the BGR8 and ABGR8 pixel formats [SDK]
- Note 48-68: (MATH) Changed the
nn::math::VEC3::DistanceSquare function to a const function [SDK]
- Note 48-69: (MATH) Fixed problem where copies of constants would be embedded in every object [SDK]
- Note 48-70: (MATH) Fixed problem where embedded assembly language functions were not dead-stripped on a function-by-function level [SDK]
- Note 48-71: (MIC) Changed access rights to memory that stores sampling results [SDK|System Updater]
- Note 48-72: (NDM) Enabled the network daemon and added a library to control it [SDK|System Updater|Sample Demos]
- Note 48-73: (NGC) Added specifications for the
CheckProfanityWords function [SDK]
- Note 48-74: (NGC) Added the
CountNumbers function [SDK]
- Note 48-75: (OS) Added the
GetRunnningTargetHardware function [SDK]
- Note 48-76: (OS) Added support for Sleep Mode [SDK|System Updater]
- Note 48-77: (OS) Added functions to get information about the amount of available memory [SDK|System Updater]
- Note 48-78: (PL) Added functions to get shared fonts [SDK]
- Note 48-79: (PTM) Added library for power- and clock-related features [SDK]
- Note 48-80: (RDT) Fixed bug when connecting [SDK]
- Note 48-81: (RDT) Changed the behavior of state transitions [SDK]
- Note 48-82:(SND) Added function that determines whether a file is a BCWAV file [SDK]
- Note 48-83: (SND) Fixed bug where control would not return from the
nn::snd::Initialize function [SDK]
- Note 48-84: (SND) Changed the namespace of the SND library [SDK]
- Note 48-85: (SND) Added functions to get information about dropped sound frames [SDK]
- Note 48-86: (SOCKET) Eliminated
dummy_util functions [SDK|Sample Demos]
- Note 48-87: (TOOL) Extended the
Config tool [SDK]
- Note 48-88: (TOOL) Added features to the
DevMenu [SDK]
- Note 48-89: (TOOL) Added
FontConverter tools [SDK]
- Note 48-90: (TOOL) Created the
NetworkSetting tool [SDK]
- Note 48-91: (TOOL) Added items to RSF files [SDK]
- Note 48-92: (TOOL) Fixed bug when parsing RSF files [SDK]
- Note 48-93: (TOOL) Updated
ctr_TexturePackager32 [SDK]
- Note 48-94: (TOOL) Changed
ctr_WaveConverter32.exe [SDK]
- Note 48-95: (TOOL) Added
ctr_compress [SDK]
- Note 48-96: (TOOL) Added
ctr_makebanner [SDK|Sample Demos]
- Note 48-97: (TOOL) Added
ctr_makeciaarchive32.exe [SDK]
- Note 48-98: (TOOL) Fixed bug with
-D option in ctr_makerom [SDK]
- Note 48-99: (TOOL) Added multi-core support to
ctr_makerom [SDK]
- Note 48-100: (TOOL) Added
ctr_makerom options [SDK]
- Note 48-101: (TOOL) Updated the shader assembler [SDK]
- Note 48-102: (TOOL) Changed the default
UniqueId [SDK]
- Note 48-103: (TPL) Changed the definitions of the various
CtrTexFormat formats [SDK]
- Note 48-104: (UDS) Added the
nn::uds::AllowToSpectate function [SDK]
- Note 48-105: (UDS) Added members to the
nn::uds::ConnectionStatus structure [SDK]
- Note 48-106: (UDS) Changed the
nn::uds::EjectSpectator function so that it can be certain of the ejection of spectators [SDK]
- Note 48-107: (UDS) Added the
nn::uds::LinkLevel GetLinkLevel function [SDK]
- Note 48-108: (UDS) Added the
nn::uds::NetworkDescription::CanConnectAsSpectator function [SDK]
- Note 48-109: (UDS) Added function to create local communication IDs [SDK]
- Note 48-110: (ULCD) Fixed bug in
StereoCamera class constructor [SDK]
- Note 48-111: (ULCD) Added support for
const member functions in the StereoCamera class [SDK]
- Note 48-112: (ULCD) Updated documents describing the ULCD library [SDK]
- Note 48-113: (ULCD) Added flag to determine whether initialization has been performed [SDK]
- Note 48-114: (UTIL) Added
util_Color.h, util_Rect.h, and util_Float24.h [SDK]
- Known Issues in the SDK 0.13.0 Release
-
CTR-SDK 0.13.0 System Updater (2010/09/28)
- Note 47-01: (AC) Revised the
Connect and ConnectAsync functions [System Updater]
- Note 47-02: (AC) Revised the
ConnectCancelAsync function [System Updater]
- Note 47-03: (AC) Revised the
DebugSetNetworkSetting1 function [System Updater]
- Note 47-04: (BOSS) Added the BOSS library [SDK|System Updater]
- Note 47-05: (CAMERA) Revised the
SetNoiseFilter function [SDK|System Updater]
- Note 47-06: (CAMERA) Added processing to stop the cameras when the system is closed [System Updater]
- Note 47-07: (CAMERA) Added a function to change the sensor window used for auto white balancing [SDK|System Updater]
- Note 47-08: (CAMERA) Fixed bug in volume control during playback of the shutter sound [System Updater]
- Note 47-09: (CEC) Changed the StreetPass library API [SDK|System Updater]
- Note 47-10: (CFG) Revised the
GetBirthday function [System Updater]
- Note 47-11: (DLP) Added debug function that forcibly downloads child programs [System Updater]
- Note 47-12: (DevEnv) Revised LCD backlight parameters [System Updater]
- Note 47-13: (DevEnv) Changed the startup sequence of test units [System Updater]
- Note 47-14: (FND) Fixed bug where the
nn::fnd::DateTime::GetNow function would start returning invalid values a short time after the RTC surpassed 2099/12/31 [System Updater]
- Note 47-15: (FRIENDS) Eliminated the notification sent when a game description is updated [SDK|System Updater]
- Note 47-16: (FRIENDS) Updated server and recreated account information [System Updater]
- Note 47-17: (GX) Changed the off-limits range when placing display buffers in VRAM [SDK|System Updater]
- Note 47-18: (HID) Fixed sampling bug that occurred after recovery from Sleep Mode [System Updater]
- Note 47-19: (HID) Changed sampling values in cases where the system does not enter Sleep Mode when closed [System Updater]
- Note 47-20: (HTTP) Revised the
AddPostData*** functions [System Updater]
- Note 47-21: (HTTP) Revised the
GetHeaderField function [System Updater]
- Note 47-22: (HTTP) Fixed Keep-Alive bug [System Updater]
- Note 47-23: (HTTP) Handled problem with Keep-Alive communication [System Updater]
- Note 47-24: (HTTP) Changed default size of communication buffers [System Updater]
- Note 47-25: (MCU) Revised the power LED and wireless LED [System Updater]
- Note 47-26: (MIC) Added processing to stop sampling when the system is closed [System Updater]
- Note 47-27: (MIC) Changed access rights to memory that stores sampling results [SDK|System Updater]
- Note 47-28: (NDM) Enabled the network daemon and added a library to control it [SDK|System Updater|Sample Demos]
- Note 47-29: (OS) Added support for Sleep Mode [SDK|System Updater]
- Note 47-30: (OS) Added functions to get information about the amount of available memory [SDK|System Updater]
- Note 47-31: (PTM) Revised the
GetBatteryLevel function [System Updater]
- Note 47-32: (PTM) Added restrictions on the range of times for which alarms can be set [System Updater]
- Note 47-33: (TOOL) Fixed
DevMenu import error [System Updater]
- Note 47-34: (TOOL) Fixed
DevMenu bug [System Updater]
- Note 47-35: (TOOL) Added a tool for changing the region [System Updater]
- Note 47-36: (UDS) Fixed bug that caused execution to hang when the
EjectClient function was run [System Updater]
- Note 47-37: (UDS) Fixed bug where sometimes the
NetworkDescriptionReader::GetNodeInformationList function could not get the NodeInformation successfully [System Updater]
- Note 47-38: (UDS) Changed encryption key of
NodeInfomation distributed by beacons [System Updater]
- Note 47-39: (UDS) Fixed bug that caused incorrect behavior when the
GetConnectionStatus function was run frequently [System Updater]
- Known Issues with System Updater in SDK Version 0.13.0
-
CTR-SDK 0.13.0 Sample Demos (2010/09/28)
- Note 46-01: (APPLET) Added support for the HOME Button to
demo1 and demo2 [Sample Demos]
- Note 46-02: (BOSS) Added the
sample_nadl_simple demo [Sample Demos]
- Note 46-03: (CX) Added CX sample demos [Sample Demos]
- Note 46-04: (DEMO) Revised initialization of the
lib_demo library display buffer [Sample Demos]
- Note 46-05: (DLP) Changed the method for embedding child programs in parent programs [SDK|Sample Demos]
- Note 46-06: (DLP) Made revisions involving identification of child devices [SDK|Sample Demos]
- Note 46-07: (FONT) Added sample demos [Sample Demos]
- Note 46-08: (GX) Added the
DrawPrimitive demo [Sample Demos]
- Note 46-09: (JPEG) Added demos [Sample Demos]
- Note 46-10: (NDM) Enabled the network daemon and added a library to control it [SDK|System Updater|Sample Demos]
- Note 46-11: (OS) Added support for Sleep Mode to
demo1 and demo2 [Sample Demos]
- Note 46-12: (PL) Added the
SharedFont demo [Sample Demos]
- Note 46-13: (SOCKET) Eliminated
dummy_util functions [SDK|Sample Demos]
- Note 46-14: (TOOL) Added
ctr_makebanner [SDK|Sample Demos]
- Note 46-15: (TPL) Added sample data for creating CTPK files [Sample Demos]
- Note 46-16: (UDS) Fixed bug in
com_demo1 where communication data was not cleared after disconnection [Sample Demos]
- Note 46-17: (UDS) Revised so that the
CreateLocalCommunicationId function now creates the local communication IDs used in UDS demos [Sample Demos]
- Note 46-18: (ULCD) Changed the minimum setting of the
Depth Level variable[Sample Demos]
- Known Issues with SDK 0.13.0 Sample Demos
-
CTR-SDK 0.12.1 Release (2010/09/02)
- Note 45-01: (SND) Fixed a bug in the
nn::snd::Voice::SetState function [SDK]
- Known Issues in the SDK 0.12.1 Release
-
CTR-SDK 0.12.0 Release (2010/08/20)
- Note 44-01: (CAMERA) Removed the
IsBufferError function [SDK | System Updater]
- Note 44-02: (CAMERA) Revised the
SetExposure function [SDK | System Updater]
- Note 44-03: (CAMERA) Changed processing within the
SynchronizeVsyncTiming function [SDK | System Updater]
- Note 44-04: (CAMERA) Added processing to compensate for individual system differences in white balance [SDK | System Updater]
- Note 44-05: (CEC) Changed the Chance Encounter Communication library [SDK]
- Note 44-06: (CFG) Added functions for converting country codes and other CTR-specific codes into strings [SDK]
- Note 44-07: (DLP) Added
DlpChild.desc [SDK]
- Note 44-08: (DevEnv) Added support for the PARTNER-CTR Capture/Debugger (all-in-one debugger hardware) [SDK]
- Note 44-09: (DevEnv) Added support for the VFP instruction when building assembly files [SDK]
- Note 44-10: (DevEnv) Revised the
CCFLAGS_DEV_OPT build variable [SDK]
- Note 44-11: (FRIENDS) Added the FRIENDS library [SDK]
- Note 44-12: (FS) Revised the
nn::fs::FormatSaveData function [SDK]
- Note 44-13: (FS) Added the
nn::fs::IsSdmcWritable function [SDK]
- Note 44-14: (FS) Added the
nn::fs::WaitForInsertSdmc, nn::fs::WaitForEjectSdmc, and nn::fs::IsSdmcInserted functions [SDK]
- Note 44-15: (FS) Added the
nn::fs::hio::MountHioArchive function [SDK]
- Note 44-16: (GX) Lifted the restriction of placing 2D textures on 32-MB boundaries [SDK]
- Note 44-17: (GX) Updated the DMPGL documentation [SDK]
- Note 44-18: (GX) Fixed a bug that prevented completion notifications from being sent for graphics processing while
NN_LOG was in use [SDK | System Updater]
- Note 44-19: (GX) Revised PICA macro headers [SDK]
- Note 44-20: (GX) Revised PICA register information [SDK]
- Note 44-21: (GX) Fixed incorrect initial values for
distanceAttenuationScale [SDK]
- Note 44-22: (GX) Removed unnecessary commands generated by calls to the
glBindFramebuffer function [SDK]
- Note 44-23: (GX) Fixed a bug that prevented textures from being reallocated within the
glCopyTexImage2D function [SDK]
- Note 44-24: (GX) Fixed invalid error checking in the
glCopyTexSubImage2D function [SDK]
- Note 44-25: (GX) Changed specifications related to the transfer mode in
glFramebufferTexture2D [SDK]
- Note 44-26: (GX) Fixed a bug that prevented the
glGetTexParameteri and glGetTexParameterf functions from getting values for GL_GENERATE_MIPMAP [SDK]
- Note 44-27: (GX) Fixed a bug that prevented depth values from being read properly in the
glReadPixels function [SDK]
- Note 44-28: (GX) Added support for reading the stencil buffer with the
glReadPixels function [SDK]
- Note 44-29: (GX) Changed argument restrictions in the
nngxAdd3DCommand function [SDK]
- Note 44-30: (GX) Added the
nngxIsStereoVisionAllowed function [SDK]
- Note 44-31: (GX) Added the
nngxSetTimeout function [SDK]
- Note 44-32: (GX) Fixed a bug that prevented the
nngxTransferRenderImage function from transferring data correctly [SDK]
- Note 44-33: (GX) Revised error checking for the placement of cube map texture data [SDK]
- Note 44-34: (GX) Added special error codes for command request overflows [SDK]
- Note 44-35: (GX) Added support for copying textures from the depth buffer [SDK]
- Note 44-36: (GX) Added support for rendering to textures for the depth buffer [SDK]
- Note 44-37: (GX) Changed driver behavior when fragment lighting is disabled [SDK]
- Note 44-38: (GX) Fixed a validation bug that occurred when a texture attached to the framebuffer was deleted [SDK]
- Note 44-39: (GX) Added uniform location macros for the fixed fragment shader [SDK]
- Note 44-40: (GX) Fixed a bug that occurred in the
glDrawArrays function when a vertex buffer was used [SDK]
- Note 44-41: (HID) Changed the timing at which to start sampling the accelerometers [SDK | System Updater]
- Note 44-42: (JPEG) Added functions that get and set Exif tags [SDK]
- Note 44-43: (JPEG) Added functions that specify JPEG decoding options [SDK]
- Note 44-44: (JPEG) Added error codes [SDK]
- Note 44-45: (JPEG) Added pixel formats
{RGB8,RGBA8}x{LINEAR,BLOCK8} [SDK]
- Note 44-46: (JPEG) Fixed a bug that caused execution to stop while decoding particular JPEG files [SDK]
- Note 44-47: (JPEG) Added support for shrink decoding [SDK]
- Note 44-48: (MIC) Fixed return values from the
GetLastSamplingAddress function [SDK | System Updater]
- Note 44-49: (MIC) Added the
SetLowPassFilter function [SDK | System Updater]
- Note 44-50: (NGC) Added overloaded
CheckProfanityWords functions [SDK]
- Note 44-51: (NGC) Changed specifications for the
CheckProfanityWords function [SDK]
- Note 44-52: (NGC) Added the
GetContentVersion function [SDK]
- Note 44-53: (OS) Changed
nn::os::Thread::Sleep [SDK | System Updater]
- Note 44-54: (OS) Added user exception handler [SDK | System Updater]
- Note 44-55: (OS) Revised the Function Reference Manual [SDK]
- Note 44-56: (RDT) Changed the
Process function's return values [SDK]
- Note 44-57: (RDT) Revised descriptions of finalizing a
Receiver instance [SDK]
- Note 44-58: (RDT) Established result codes [SDK]
- Note 44-59: (RDT) Introduced
enum values that indicate uninitialized states [SDK]
- Note 44-60: (SND) Changed 3D surround sound features [SDK]
- Note 44-61: (SND) Changed the specifications for the
GetHeadphoneStatus function and added the UpdateHeadphoneStatus function [SDK]
- Note 44-62: (SND) Fixed a bug in the
GetSampleLength function [SDK]
- Note 44-63: (SND) Added the
SetAuxFrontBypass function [SDK]
- Note 44-64: (SND) Turned the
nn::snd::Bcwav namespace into a class [SDK]
- Note 44-65: (SND) Introduced soft clipping [SDK]
- Note 44-66: (SND) Added a feature for specifying the fade-in immediately after playback starts [SDK]
- Note 44-67: (TOOL) Extended the
Config tool [SDK]
- Note 44-68: (TOOL) Revised
DevMenu [SDK]
- Note 44-69: (TOOL) Changed the RSF format [SDK]
- Note 44-70: (TOOL) Fixed a bug in
ctr_TexturePackager32.exe related to specifying the mipmap level [SDK]
- Note 44-71: (TOOL) Added a
ctr_makerom32.exe feature for compressing static regions [SDK | System Updater]
- Note 44-72: (TOOL) Added the
dmen_PrintResult constant [SDK]
- Note 44-73: (TOOL) Improved
makerom encryption [SDK]
- Note 44-74: (UDS) Fixed a bug that prevented
statusUpdateEvent from being signaled when the local host connected to a network in Audience mode [SDK]
- Note 44-75: (UDS) Changed the upper limit on endpoints that can be created by the
CreateEndpoint function [SDK]
- Note 44-76: (UDS) Fixed a bug that allowed the
CreateEndpoint function to run prior to initialization [SDK]
- Note 44-77: (UDS) Fixed a bug in the
NetworkDescription::GetMacAddress function [SDK]
- Note 44-78: (UDS) Fixed a bug that prevented 16 endpoints from being created [SDK]
- Note 44-79: (UDS) Changed terminology for Audience mode [SDK]
- Note 44-80: (UDS) Revised the Function Reference Manual [SDK]
- Note 44-81: (ULCD) Changed specifications for
nn::ulcd::StereoCamera [SDK]
- Known Issues in the SDK 0.12.0 Release
-
CTR-SDK 0.12.0 System Updater (2010/08/20)
- Note 43-01: (AC) Organized C-language functions [System Updater]
- Note 43-02: (AC) Revised the
Connect function [System Updater]
- Note 43-03: (AC) Deprecated the
DebugFlushNetworkSetting function [System Updater]
- Note 43-04: (AC) Added the
RegisterDisconnectEvent function [System Updater]
- Note 43-05: (CAMERA) Removed the
IsBufferError function [SDK | System Updater]
- Note 43-06: (CAMERA) Revised the
SetExposure function [SDK | System Updater]
- Note 43-07: (CAMERA) Changed processing within the
SynchronizeVsyncTiming function [SDK | System Updater]
- Note 43-08: (CAMERA) Replaced the shutter sound [System Updater]
- Note 43-09: (CAMERA) Added processing to compensate for individual system differences in white balance [SDK | System Updater]
- Note 43-10: (CAMERA) Fixed camera LED behavior when the shutter sound is played while the inner camera is in use [System Updater]
- Note 43-11: (CAMERA) Fixed camera LED behavior when the recording-started and recording-ended sounds are played [System Updater]
- Note 43-12: (CEC) Changed the Chance Encounter Communication daemon [System Updater]
- Note 43-13: (CFG) Revised the
nn::cfg::CTR::GetRegion function [System Updater]
- Note 43-14: (DLP) Added support for system updates of card-based software [System Updater]
- Note 43-15: (DLP) Restricted the number of titles that can be scanned [System Updater]
- Note 43-16: (DLP) Filtering by region while scanning [System Updater]
- Note 43-17: (DLP) Changed the reconnection information stored in the
RebootInfo structure [System Updater]
- Note 43-18: (DLP) Embedding child programs in applications [System Updater | Sample Demos]
- Note 43-19: (DLP) Getting network reconnection parameters for child programs [System Updater]
- Note 43-20: (DLP) Embedding icons in child programs and reading icons from the server [System Updater | Sample Demos]
- Note 43-21: (FS) Fixed a bug in the formatting of save data [System Updater]
- Note 43-22: (GX) Fixed a bug that prevented completion notifications from being sent for graphics processing while
NN_LOG was in use [SDK | System Updater]
- Note 43-23: (GX) Fixed a bug that caused programs to stop with red screens when vertex data and/or textures were placed in VRAM [System Updater]
- Note 43-24: (HID) Fixed a bug that prevented the debug pad from working properly [System Updater]
- Note 43-25: (HID) Changed the timing at which to start sampling the accelerometers [SDK | System Updater]
- Note 43-26: (HTTP) Fixed a bug in the multipart lazy POST feature [System Updater]
- Note 43-27: (HTTP) Fixed a bug that occurred with server keepalive timeouts [System Updater]
- Note 43-28: (HTTP) Added support for timeouts in blocking functions [System Updater]
- Note 43-29: (MIC) Fixed return values from the
GetLastSamplingAddress function [SDK | System Updater]
- Note 43-30: (MIC) Added the
SetLowPassFilter function [SDK | System Updater]
- Note 43-31: (MIC) Revised settings for the microphone input gain [System Updater]
- Note 43-32: (OS) Changed the behavior of the
nn::dbg::Break function [System Updater]
- Note 43-33: (OS) Changed
nn::os::Thread::Sleep [SDK | System Updater]
- Note 43-34: (OS) Added user exception handler [SDK | System Updater]
- Note 43-35: (SND) Implemented high-pass filter for headphones [System Updater]
- Note 43-36: (SSL) Added SHA256 certificate support [System Updater]
- Note 43-37: (SSL) Added support for built-in commercial CA certificates [System Updater]
- Note 43-38: (TOOL) Added a
ctr_makerom32.exe feature for compressing static regions [SDK | System Updater]
- Note 43-39: (UDS) Fixed a bug that prevented the
GetConnectionStatus function from obtaining the correct information in Audience mode [System Updater]
- Known Issues with System Updater in Version 0.12.0 of the SDK
-
CTR-SDK 0.12.0 Sample Demos (2010/08/20)
- Note 42-01: (DLP) Embedding child programs in applications [System Updater | Sample Demos]
- Note 42-02: (DLP) Embedding icons in child programs and reading icons from the server [System Updater | Sample Demos]
- Note 42-03: (GX) Fixed a quaternion generation bug in the vertex shaders for the DMPGL samples [Sample Demos]
- Note 42-04: (GX) Fixed issues related to lookup table generation in the
ProctexClamp sample [Sample Demos]
- Note 42-05: (GX) Allowed the number of generated display buffers to be specified [Sample Demos]
- Note 42-06: (RDT) Revised
basic sample demos [Sample Demos]
- Note 42-07: (RDT) Added a sample demo for bidirectional communication [Sample Demos]
- Note 42-08: (SND) Changed
StreamPlayersample demo [Sample Demos]
- Note 42-09: (UDS) Changed the implementation of
com_demo1 [Sample Demos]
- Note 42-10: (UDS) Handled changed terminology for Audience mode in
com_demo1 [Sample Demos]
- Known Issues with SDK 0.12.0 Sample Demos
-
CTR-SDK 0.11.2 Release (2010/07/29)
- Note 41-01: (SND) Fixed a bug that stopped sound during non-looping playback of short waveforms [SDK]
- Note 41-02: (TOOL) Fixed
makerom [SDK]
- Known Issues in the SDK 0.11.2 Release
-
CTR-SDK 0.11.1 Release (2010/07/28)
- Note 40-01: (FS) Fixed the
nn::fs::GetRomRequiredMemorySize function [SDK]
- Note 40-02: (SND) Fixed a bug that created noise during playback of an ADPCM stream [SDK]
- Known Issues in the SDK 0.11.1 Release
-
CTR-SDK 0.11.0 Release (2010/07/22)
- Note 39-01: (CAMERA) Removed C wrappers [SDK]
- Note 39-02: (CAMERA) Revised the
Finalize function [SDK | System Updater]
- Note 39-03: (CAMERA) Added the
GetSuitableY2rStandardCoefficient function [SDK | System Updater]
- Note 39-04: (CAMERA) Revised the
Initialize and Finalize functions [SDK | System Updater]
- Note 39-05: (CAMERA) Removed the
SynchronizeWhiteBalance function [SDK | System Updater]
- Note 39-06: (CAMERA) Changed the camera configuration function's return value [SDK | System Updater]
- Note 39-07: (CAMERA) Added and updated shutter sounds [SDK | System Updater]
- Note 39-08: (CAMERA) Removed a feature that notifies a recovery event [SDK | System Updater]
- Note 39-09: (CAMERA) Removed functions that automatically receive data [SDK | System Updater]
- Note 39-10: (CAMERA) Added functions for batch setting changes [SDK | System Updater]
- Note 39-11: (CEC) Changed handling of title-specific IDs [SDK]
- Note 39-12: (CEC) Added support for the Chance Encounter Communication library [SDK]
- Note 39-13: (CEC) Changed the name of the Chance Encounter Communication library [SDK]
- Note 39-14: CFG) Changed the API for getting user information [SDK]
- Note 39-15: (DLP) Added CTR Download Play [SDK | System Updater]
- Note 39-16: (DSP) Revised header files [SDK]
- Note 39-17: (FND) Revised build conditions for the
nn::fnd::HeapBase::DebugFillMemory function [SDK]
- Note 39-18: (FS) Fixed a bug that prevented CTR save data from being read [SDK]
- Note 39-19: (FS) Added functions for accessing save data [SDK]
- Note 39-20: (FS) Revised directory reads [SDK]
- Note 39-21: (FS) Fixed a bug that caused seek operations to the end of a file to fail [SDK]
- Note 39-22: (FS) Added functions for accessing extended save data [SDK]
- Note 39-23: (GX) Updated the DMPGL documentation [SDK]
- Note 39-24: (GX) Fixed a bug in the PICA macro header [SDK]
- Note 39-25: (GX) Revised the description of
nn::gx::CTR::MemAccessPrioMode [SDK]
- Note 39-26: (GX) Added information on the specifications for the product of the emission and global ambient colors [SDK]
- Note 39-27: (GX) Fixed a subdivision bug in
DMP_subdivision3.obj [SDK]
- Note 39-28: (GX) Fixed a bug in the silhouette triangle shader [SDK]
- Note 39-29: (GX) Fixed a bug that occurred when deleting texture collections [SDK]
- Note 39-30: (GX) Added a feature to get valid debugging information related to command list execution [SDK]
- Note 39-31: (GX) Added a function to generate commands that transfer data while converting the block format [SDK]
- Note 39-32: (GX) Fixed a bug that prevented scissoring-related commands from being generated when a program object had not been set [SDK]
- Note 39-33: (GX) Removed unnecessary register settings for the line shader [SDK]
- Note 39-34: (GX) Added a feature that can get the render buffer address [SDK]
- Note 39-35: (GX) Added information on input restrictions for lookup tables [SDK]
- Note 39-36: (GX) Added a function that disables updates for a specified state [SDK]
- Note 39-37: (HID) Fixed a bug in
STICK_CLAMP_MODE_CROSS mode [SDK | System Updater]
- Note 39-38: (HID) Reviewed specifications for the
SetStickClamp and GetStickClamp functions [SDK | System Updater]
- Note 39-39: (HIO) Removed
libnn_hiolow [SDK]
- Note 39-40: (MATH) Revised the
SinIdx, CosIdx, SinCosIdx functions [SDK]
- Note 39-41: (MIC) Removed C wrappers [SDK]
- Note 39-42: (MIC) Added a function to get the region within which it is prohibited to determine that there is microphone input [SDK]
- Note 39-43: (MIC) Added constants that indicate the guaranteed region for microphone input values [SDK]
- Note 39-44: (OS) Changed mutex methods in the default implementation of
malloc and free [SDK]
- Note 39-45: (PTM) Added interfaces for the remaining battery life, the battery recharge state, and the existence of an AC plug [SDK]
- Note 39-46: (RDT) Fixed a bug that prevented proper state transitions in the Sender [SDK]
- Note 39-47: (SND) Improved the effect of 3D surround sound mode [SDK]
- Note 39-48: (SND) Added a feature that specifies the loop position during DSP-ADPCM encoding [SDK]
- Note 39-49: (SND) Added a function to decode DSP-ADPCM data [SDK]
- Note 39-50: (SND) Added DSP-ADPCM utility functions [SDK]
- Note 39-51: (SND) Changed specifications for the
nn::snd::SetSoundOutputMode function [SDK]
- Note 39-52: (SND) Changed specifications for the
nn::snd::SetSurroundDepth function [SDK]
- Note 39-53: (SND) Changed specifications for the
nn::snd::Voice::AppendWaveBuffer function [SDK]
- Note 39-54: (SND) Fixed a bug in the
nn::snd::Voice::SetVolume function [SDK]
- Note 39-55: (SND) Added the
nn::snd::Voice::SetupBcwav function [SDK]
- Note 39-56: (SND) Fixed a bug in the filter feature [SDK]
- Note 39-57: (SND) Revised header files [SDK]
- Note 39-58: (SND) Changed the volume configuration [SDK | System Updater]
- Note 39-59: (Socket) Changed specifications for the
Initialize function [SDK]
- Note 39-60: (TOOL) Fixed an issue related to backlight settings with the Config tool [SDK]
- Note 39-61: (TOOL) Changed the
DevMenu [SDK]
- Note 39-62: (TOOL) Changed
ctr_makerom32.exe [SDK]
- Note 39-63: (TPL) Added the Texture Packager Library [SDK]
- Note 39-64: (UDS) Overloaded the
== and != operators of the NetworkDescriptor class [SDK]
- Note 39-65: (UDS) Changed the behavior of the
NetworkDescriptionReader::GetNetworkDescription function [SDK]
- Note 39-66: (UDS) Changed the behavior of the
NetworkDescriptionReader::GetNodeInformationList function [SDK]
- Note 39-67: (UDS) Changed the behavior of the
Receive and ReceiveFrom functions [SDK]
- Note 39-68: (UDS) Reviewed
Result values [SDK]
- Note 39-69: (UDS) Changed the behavior of the
SendTo function [SDK]
- Note 39-70: (UDS) Prohibited the use of port 0 [SDK]
- Note 39-71: (UDS) Added a link to the UDS library in the Function Reference Manual's index [SDK]
- Note 39-72: (Y2R) Removed C wrappers [SDK]
- Note 39-73: (Y2R) Revised the
Initialize and Finalize functions [SDK | System Updater]
- Note 39-74: (Y2R) Revised the
SetStandardCoefficient function [SDK | System Updater]
- Note 39-75: (Y2R) Changed the
StartConversion function's return value [SDK | System Updater]
- Note 39-76: (Y2R) Added functions for batch setting changes [SDK | System Updater]
- Known Issues in the SDK 0.11.0 Release
-
CTR-SDK 0.11.0 Release System Updater (2010/07/22)
- Note 38-01: (AC) Revised the
Connect function [System Updater]
- Note 38-02: (AC) Added the
GetLinkLevel function [System Updater]
- Note 38-03: (CAMERA) Revised the
Finalize function [SDK | System Updater]
- Note 38-04: (CAMERA) Added the
GetSuitableY2rStandardCoefficient function [SDK | System Updater]
- Note 38-05: (CAMERA) Revised the
Initialize and Finalize functions [SDK | System Updater]
- Note 38-06: (CAMERA) Removed the
SynchronizeWhiteBalance function [SDK | System Updater]
- Note 38-07: (CAMERA) Revised the timing at which the camera LED is illuminated [System Updater]
- Note 38-08: (CAMERA) Changed the camera configuration function's return value [SDK | System Updater]
- Note 38-09: (CAMERA) Added and updated shutter sounds [SDK | System Updater]
- Note 38-10: (CAMERA) Removed a feature that notifies a recovery event [SDK | System Updater]
- Note 38-11: (CAMERA) Removed functions that automatically receive data [SDK | System Updater]
- Note 38-12: (CAMERA) Added functions for batch setting changes [SDK | System Updater]
- Note 38-13: (DLP) Added CTR Download Play [SDK | System Updater]
- Note 38-14: (GX) Added support for the 3D LED [System Updater]
- Note 38-15: (HID) Changed memory addresses assigned when the
Initialize function is called [System Updater]
- Note 38-16: (HID) Fixed a bug in
STICK_CLAMP_MODE_CROSS mode [SDK | System Updater]
- Note 38-17: (HID) Reviewed specifications for the
SetStickClamp and GetStickClamp functions [SDK | System Updater]
- Note 38-18: (HID) Changed accelerometer axis settings [System Updater]
- Note 38-19: (HID) Fixed a bug that occurred when the Sleep Mode switch was set to "sleep" at startup [System Updater]
- Note 38-20: (HTTP) Revised the
AddPostData* functions [System Updater]
- Note 38-21: (HTTP) Fixed a misspelling in the
NofityFinishSendPostData function [System Updater]
- Note 38-22: (HTTP) Fixed a bug in the
SendPostDataAscii function [System Updater]
- Note 38-23: (HTTP/SSL) Added support for a Class 2 CA certificate built into the system [System Updater]
- Note 38-24: (MIC) Revised the
Finalize function [System Updater]
- Note 38-25: (MIC) Changed the initial value for the microphone's amplifier gain in the
SetAmpGain and GetAmpGain functions [System Updater]
- Note 38-26: (MIC) Revised the microphone's silent period [System Updater]
- Note 38-27: (NWN) Changed the scanning interval for Chance Encounter zones [System Updater]
- Note 38-28: (OS) Revised the debugger's VFP register value [System Updater]
- Note 38-29: (OS) Added a feature to cancel the screen that is forced to be displayed when a program stops abnormally [System Updater]
- Note 38-30: (OS) Fixed a bug that occurred when
Wait was called on multiple objects [System Updater]
- Note 38-31: (OS) Revised the Power Button [System Updater]
- Note 38-32: (SND) Fixed a bug that on rare occasions increased the volume [System Updater]
- Note 38-33: (SND) Fixed a bug that sometimes decreased the volume [System Updater]
- Note 38-34: (SND) Changed the volume configuration [SDK | System Updater]
- Note 38-35: (SSL) Added an SSL function to get random numbers [System Updater]
- Note 38-36: (SSL) Added support for getting all the data in a server certificate chain [System Updater]
- Note 38-37: (SSL) Added a function to collectively get the causes of a failed server certificate verification [System Updater]
- Note 38-38: (SSL) Added support for non-blocking sockets [System Updater]
- Note 38-39: (Socket) Fixed a memory leak [System Updater]
- Note 38-40: (Socket) Changed the maximum number of socket descriptors that can be created [System Updater]
- Note 38-41: (TOOL) Added Config tool features [System Updater]
- Note 38-42: (UDS) Fixed a bug that caused invalid signal strength values when a Client was running [System Updater]
- Note 38-43: (UDS) Optimized the beacon data size [System Updater]
- Note 38-44: (UDS) Support for disabled wireless mode [System Updater]
- Note 38-45: (Y2R) Revised the
Initialize and Finalize functions [SDK | System Updater]
- Note 38-46: (Y2R) Revised the
SetStandardCoefficient function [SDK | System Updater]
- Note 38-47: (Y2R) Changed the
StartConversion function's return value [SDK | System Updater]
- Note 38-48: (Y2R) Added functions for batch setting changes [SDK | System Updater]
- Known Issues with System Updater in the SDK 0.11.0 Release
-
CTR-SDK 0.11.0 Release Sample Demos (2010/07/22)
- Note 37-01: (PTM) Added battery-related sample demos [Sample Demos]
- Note 37-02: (SND) Revised
BcwavPlayer [Sample Demos]
- Note 37-03: (SND) Added specifications for the sound output mode [Sample Demos]
- Note 37-04: (SND) Changed
AdpcmEncoder sample demo [Sample Demos]
- Note 37-05: (TPL) Added
TPL sample demos [Sample Demos]
- Note 37-06: (UDS) Revised demos following changes to the
Result values [Sample Demos]
- Note 37-07: (UDS) Revised
com_demo1 [Sample Demos]
- Note 37-08: (Miscellaneous) Replaced
NN_OS_DEVICE_MEMORY_SIZE with the nn::os::GetDeviceMemorySize function [Sample Demos]
- Known Issues with SDK 0.11.0 Release Sample Demos
-
CTR-SDK 0.10.2 Release System Updater (2010/07/06)
- Note 36-01: (CAMERA) Fixed processing that detects camera problems [System Updater]
- Known Issues with System Updater in the SDK 0.10.2 Release
-
CTR-SDK 0.10.1 Release (2010/07/05)
- Note 35-01: (CAMERA) Added a
nn::camera::FrameRate setting [SDK | System Updater]
- Note 35-02: (FS) Fixed a bug in the address conversion table for backup devices [SDK]
- Note 35-03: (GX) Addressed screen flickering that occurred when active backlight controls were enabled [SDK]
- Note 35-04: (GX) Fixed a bug that prevented the display buffer from being placed in VRAM-B [SDK]
- Note 35-05: (OS) Changed memory-related functions [SDK | System Updater]
- Note 35-06: (SND) Revised the system volume [SDK]
- Note 35-07: (SND) Fixed bugs in the waveform converter [SDK]
- Note 35-08: (TOOL) Revised
DevMenu [SDK]
- Note 35-09: (TOOL) Added
StereoCameraCalibrator [SDK]
- Note 35-10: (TOOL) Added
ctr_makecia32.exe [SDK]
- Note 35-11: (TOOL) Fixed a bug in
ctr_makerom32.exe [SDK]
- Known Issues in the SDK 0.10.1 Release
-
CTR-SDK 0.10.1 Release System Updater (2010/07/05)
- Note 34-01: (CAMERA) Added a
nn::camera::FrameRate setting [SDK | System Updater]
- Note 34-02: (HID) Fixed the
nn::fs::Directory::Read function to list the proper number of entries [System Updater]
- Note 34-03: (OS) Changed memory-related functions [SDK | System Updater]
- Known Issues with System Updater in the SDK 0.10.1 Release
-
CTR-SDK 0.10.0 Release (2010/06/23)
- Note 33-01: (CAMERA) Revised the
Activate function [SDK | System Updater]
- Note 33-02: (CAMERA) Revised the
SetAutoWhiteBalance function [SDK | System Updater]
- Note 33-03: (CAMERA) Revised the
SetNoiseFilter function [SDK | System Updater]
- Note 33-04: (CAMERA) Revised the
SetTrimmingParams and SetTrimmingParamsCenter functions [SDK | System Updater]
- Note 33-05: (CAMERA) Added support for the camera LED [SDK | System Updater]
- Note 33-06: (CAMERA) Added processing to recover from a camera malfunction [SDK | System Updater]
- Note 33-07: (CAMERA) Added a function to play the shutter sound [SDK | System Updater]
- Note 33-08: (CAMERA/Y2R) Changed the
Initialize function's return value [SDK | System Updater]
- Note 33-09: (CECD) Updated Chance Encounter Communication daemon (beta version) [SDK]
- Note 33-10: (CFG) Added functions to get user information [SDK]
- Note 33-11: (CFG) Added function to get system information [SDK]
- Note 33-12: (DSP) Revised the Function Reference Manual [SDK]
- Note 33-13: (DSP) Removed some functions from the public API [SDK]
- Note 33-14: (DSPSND) Removed the DSPSND library [SDK]
- Note 33-15: (DevEnv) Revised
version.h [SDK]
- Note 33-16: (DevEnv) Suppressed warnings for missing declarations in source code [SDK]
- Note 33-17: (DevEnv) Changed the default build filter from TEG2 to TS [SDK]
- Note 33-18: (DevEnv) Added an environment variable for specifying the ARM compiler to use for builds [SDK]
- Note 33-19: (DevEnv) Added the
CCFLAGS_DEV_OPT build variable [SDK]
- Note 33-20: (DevEnv) Added the
CTR_APPTYPE build variable [SDK]
- Note 33-21: (FND) Revised the
ExpHeapTemplate::Allocate member function [SDK]
- Note 33-22: (FND) Revised
FrameHeap::Free [SDK]
- Note 33-23: (FND) Revised
HeapBase::HasAddress [SDK]
- Note 33-24: (FS) Changed the method for initializing ROM [SDK]
- Note 33-25: (FS) Added support for 8.3 filenames that only have lowercase characters [SDK | System Updater]
- Note 33-26: (GX) Added the
nngxAddVramDmaCommand function to issue DMA transfer commands [SDK]
- Note 33-27: (GX) Restrictions on Using the L4 and A4 formats [SDK]
- Note 33-28: (GX) Fixed a bug in the
NN_GX_STATE_FRAMEBUFFER complete commands [SDK]
- Note 33-29: (GX) Added PICA register information [SDK]
- Note 33-30: (GX) Added the
SetMemAccessPrioMode function [SDK | System Updater]
- Note 33-31: (GX) Added support for reading the depth buffer with the
glReadPixels function [SDK]
- Note 33-32: (GX) Changed argument types in the
nngxAdd3DCommand function [SDK]
- Note 33-33: (GX) Fixed a bug that prevented command buffer overflow errors from occurring in the
nngxValidateState function [SDK]
- Note 33-34: (GX) Changed the errors that occur during validation with the
nngxValidateState function into extended error codes [SDK]
- Note 33-35: (GX) Added VRAM regions that can be used by applications [SDK]
- Note 33-36: (GX) Fixed a bug in address checks for cube map textures [SDK]
- Note 33-37: (GX) Added the
nngxClearFillCmdlist function to both clear and fill a command buffer at the same time [SDK]
- Note 33-38: (GX) Added extended error codes to represent command buffer overflows [SDK]
- Note 33-39: (GX) Deleted dummy commands used when clearing the texture cache [SDK]
- Note 33-40: (GX) Fixed a bug related to clamping the particle system (geometry shader) time [SDK]
- Note 33-41: (GX) Added a function that applies antialias filters while transferring block images [SDK]
- Note 33-42: (GX) Updated macro header files [SDK]
- Note 33-43: (GX) Added support for automatic mipmap generation [SDK]
- Note 33-44: (GX) Deleted lighting layer configurations 8–10 [SDK]
- Note 33-45: (GX) Stopped using invalid bit in register
0x6f [SDK]
- Note 33-46: (GX) Fixed a bug that caused incorrect behavior with certain placements of vertex and index arrays [SDK]
- Note 33-47: (HID) Changed threshold values for clamping the Slide Pad [SDK]
- Note 33-48: (HIO) Relocated the PC-side HostIO library [SDK]
- Note 33-49: (JPEG) Added JPEG encoder functions for MP-format data [SDK]
- Note 33-50: (JPEG) Added setter functions for the JPEG encoder [SDK]
- Note 33-51: (JPEG) Added functions for extracting EXIF information with the JPEG decoder [SDK]
- Note 33-52: (JPEG) Added functions for analyzing MP-format data with the JPEG decoder [SDK]
- Note 33-53: (JPEG) Added functions for setting the image width in the JPEG decoder [SDK]
- Note 33-54: (JPEG) Added thumbnail output formats for the JPEG encoder [SDK]
- Note 33-55: (JPEG) Added functions for applications to get and set MakerNote data [SDK]
- Note 33-56: (MATH) Added the
SafeNormalize functions [SDK]
- Note 33-57: (MATH) Improved the accuracy of sine and cosine calculations [SDK]
- Note 33-58: (MATH) Added multiplication functions for all components in
Vector2, Vector3, and Vector4 vectors [SDK]
- Note 33-59: (MATH) Fixed a bug in the values obtained by the
GetRow and GetColumn functions in math_Matrix23.h [SDK]
- Note 33-60: (MATH) Increased speed of functions [SDK]
- Note 33-61: (MIC) Added a return value to the
mic::FreeBuffer function [SDK]
- Note 33-62: (MIC) Added the microphone library to the default libraries [SDK]
- Note 33-63: (MIC) Deleted a function that allocates memory and added a function that sets memory [SDK]
- Note 33-64: (MIDI) Added the MIDI library [SDK | System Updater]
- Note 33-65: (RDT) Added the RDT library [SDK]
- Note 33-66: (SND) Added 3D surround sound features [SDK]
- Note 33-67: (SND) Fixed a bug that corrupted waveforms during ADPCM playback [SDK]
- Note 33-68: (SND) Fixed a bug in the
AllocVoice function [SDK]
- Note 33-69: (SND) Added a DSP-ADPCM encoder [SDK]
- Note 33-70: (SND) Fixed a bug in the
GetPlayPosition function [SDK]
- Note 33-71: (SND) Added a function to get
Mix bus data [SDK]
- Note 33-72: (SND) Added a
MixParam constructor [SDK]
- Note 33-73: (SND) Added functions for loading files in the BCWAV format [SDK]
- Note 33-74: (SND) Fixed a bug that caused the
nn::snd::WaitForDspSync function to enter an endless loop [SDK]
- Note 33-75: (SND) Changed definitions in the
nn::snd::WaveBuffer structure [SDK]
- Note 33-76: (SND) Fixed a bug that caused execution to halt on a null assertion while
nn::snd::Voice was in use [SDK]
- Note 33-77: (SND) Fixed a SND library bug that would suddenly stop audio output [SDK]
- Note 33-78: (SND) Added filter features [SDK]
- Note 33-79: (SND) Added a function for determining whether headphones have been inserted [SDK | System Updater]
- Note 33-80: (SND) Revised the Function Reference Manual [SDK]
- Note 33-81: (SND) Fixed loop playback bugs [SDK]
- Note 33-82: (SND) Added a waveform converter [SDK]
- Note 33-83: (SND) Fixed a bug that caused the playback position to lag during long playback times [SDK]
- Note 33-84: (TOOL) Added
Config tool features [SDK]
- Note 33-85: (TOOL) Changed the
DevMenu [SDK]
- Note 33-86: (TOOL) Added
ctr_makecia32.exe [SDK]
- Note 33-87: (TOOL) Added CXI file encryption and CDI file generation [SDK]
- Note 33-88: (TOOL) Updated the shader assembler and linker [SDK]
- Note 33-89: (UDS) Changed how the buffer used by the UDS library is allocated [SDK]
- Note 33-90: (UDS) Fixed a bug that prevented networks from being found after specified channels were scanned [SDK]
- Note 33-91: (UDS) User name and local friend code are now obtained from the system information [SDK]
- Note 33-92: (UDS) Changed specifications for the
CreateNetwork and Scan functions following policy changes to local communication IDs [SDK]
- Note 33-93: (UGC) Added a profanity-check library [SDK]
- Note 33-94: (UGC) Added a blacklist library [SDK]
- Note 33-95: (ULCD) Revised internal calculations in the
CalculateMatrices[Real] functions [SDK]
- Note 33-96: (ULCD) Changed argument specifications for the
StereoCamera::CalculateMatrices[Real] functions [SDK]
- Note 33-97: (ULCD) Changed specifications for the
StereoCamera::GetMaxParallax function [SDK]
- Note 33-98: (ULCD) Updated the Description of the ULCD Library [SDK]
- Note 33-99: (ULCD) Added functions to get and set the maximum parallax [SDK]
- Note 33-100: (Y2R) Changed arguments to the
SetDitheringWeightParam function [SDK | System Updater]
- Note 33-101: (Y2R) Added a stride argument to functions that transfer source data for conversion [SDK | System Updater]
- Known Issues in the SDK 0.10.0 Release
-
CTR-SDK 0.10.0 Release System Updater (2010/06/23)
- Note 32-01: (AC) Revised the
AC_Connect function [System Updater]
- Note 32-02: (AC) Revised the
AC_ConnectAsync function [System Updater]
- Note 32-03: (AC)
AC_DebugSetNetworkSettingA [System Updater]
- Note 32-04: (AC) Revised the
DebugSetNetworkSetting1 function [System Updater]
- Note 32-05: (AC) Revised the WPA connection process [System Updater]
- Note 32-06: (AC) Fixed a scan bug that occurred after a failed connection attempt [System Updater]
- Note 32-07: (CAMERA) Revised the
Activate function [SDK | System Updater]
- Note 32-08: (CAMERA) Revised the
SetAutoWhiteBalance function [SDK | System Updater]
- Note 32-09: (CAMERA) Revised the
SetNoiseFilter function [SDK | System Updater]
- Note 32-10: (CAMERA) Revised the
SetTrimmingParams and SetTrimmingParamsCenter functions [SDK | System Updater]
- Note 32-11: (CAMERA) Added support for the camera LED [SDK | System Updater]
- Note 32-12: (CAMERA) Added a function to play the shutter sound [SDK | System Updater]
- Note 32-13: (CAMERA/Y2R) Changed the
Initialize function's return value [SDK | System Updater]
- Note 32-14: (FS) Revised NAND and SD Memory Card error processing [System Updater]
- Note 32-15: (HID) Revised the
nn::fs::Directory::Read function [System Updater]
- Note 32-16: (FS) Revised
sdmc: archives [SDK | System Updater]
- Note 32-17: (FS) Added save data support [SDK | System Updater]
- Note 32-18: (FS) Added support for 8.3 filenames that only have lowercase characters [SDK | System Updater]
- Note 32-19: (FS) Added support for add-on data [System Updater]
- Note 32-20: (GX) Changed LCD backlight-related settings [System Updater]
- Note 32-21: (GX) Added the
SetMemAccessPrioMode function [SDK | System Updater]
- Note 32-22: (GX) Fixed problem that caused vertical line noise to appear on screen [System Updater]
- Note 32-23: (HTTP/SSL) Added support for internal certificates [System Updater]
- Note 32-24: (MIDI) Added the MIDI library [SDK | System Updater]
- Note 32-25: (NET) Added wireless On/Off features [System Updater]
- Note 32-26: (OS) Fixed a bug where
Wait* functions with a timeout would not return [System Updater]
- Note 32-27: (OS) Revised the order in which synchronous objects release threads [System Updater]
- Note 32-28: (OS) Modified the length of time until power-off [System Updater]
- Note 32-29: (SND) High-frequency sound when headphones are inserted [System Updater]
- Note 32-30: (SND) Added a function for determining whether headphones have been inserted [SDK | System Updater]
- Note 32-31: (Socket) Changed header files [SDK]
- Note 32-32: (Socket/UDS) Fixed problem where system would deadlock under high load [System Updater]
- Note 32-33: (UDS) Added support for
Audience mode [System Updater]
- Note 32-34: (UDS) Implemented
EjectAudience function [System Updater]
- Note 32-35: (UDS) Fixed bug where
SetApplicationDataToBeacon and GetApplicationDataFromBeacon functions could not set or get data [System Updater]
- Note 32-36: (UDS) Reduced processing load when receiving [System Updater]
- Note 32-37: (ULCD) Added support for automatically disabling stereoscopic display [System Updater]
- Note 32-38: (Y2R) Changed arguments to the
SetDitheringWeightParam function [SDK | System Updater]
- Note 32-39: (Y2R) Added a stride argument to functions that transfer source data for conversion [SDK | System Updater]
- Known Issues with SDK 0.10.0 Release System Updater
-
CTR-SDK 0.10.0 Release Sample Demos (2010/06/23)
- Note 31-01: (FS) Added features to the multifeature demos [Sample Demos]
- Note 31-02: (GX) Sped up the
ScreenCapture sample and fixed a bug in it [Sample Demos]
- Note 31-03: (GX) Added graphics demos [Sample Demos]
- Note 31-04: (HIO) Revised the PC-side
HostIO sample [Sample Demos]
- Note 31-05: (RDT) Added RDT sample demos [Sample Demos]
- Note 31-06: (SND) Added sample demos [Sample Demos]
- Note 31-07: (UGC) Added simple sample of the profanity-check library [Sample Demos]
- Note 31-08: (UGC) Added simple sample of the blacklist library [Sample Demos]
- Known Issues with SDK 0.10.0 Release Sample Demos
-
CTR-SDK 0.9.7 Release (2010/05/26)
- Known Issues in the SDK 0.9.7 Release
-
CTR-SDK 0.9.7 Release System Updater (2010/05/26)
- Note 29-01: (SND) Improved sound pressure levels in headphone output and removed distortion [System Updater]
- Known Issues with System Updater in the SDK 0.9.7 Release
-
CTR-SDK 0.9.6 Release (2010/05/24)
- Note 28-01: (GX) Fixed a bug in the texture cache flush [SDK]
- Known Issues with SDK 0.9.6 Release
-
CTR-SDK 0.9.6 Release System Updater (2010/05/24)
- Note 27-01: (CAMERA/Y2R) Fixed a bug where function calls would not return [System Updater]
- Known Issues with System Updater in the SDK 0.9.6 Release
-
CTR-SDK 0.9.5 Release (2010/05/20)
- Note 26-01: (SND) Fixed a bug that occurred during a Voice volume change [SDK]
- Known Issues in the SDK 0.9.5 Release
-
CTR-SDK 0.9.4 Release (2010/05/19)
- Note 25-01: (SND) Fixed a Volume Mixer bug [SDK]
- Known Issues in the SDK 0.9.4 Release
-
CTR-SDK 0.9.4 Release System Updater (2010/05/19)
- Note 24-01: (MCU) Changed the 3D LED to always be illuminated [System Updater]
- Note 24-02: (MCU) Fixed a bug that caused the volume to increase temporarily at indeterminate times [System Updater]
- Note 24-03: (MCU) Fixed a bug that caused the power and LCDs to turn off, and resets to occur, at indeterminate times [System Updater]
- Note 24-04: (MCU) Changed the time to power off when the Power Button is held down [System Updater]
- Note 24-05: (OS) Fixed a bug that caused the firmware to halt when running for a long time [System Updater]
- Known Issues with System Updater in the SDK 0.9.4 Release
-
CTR-SDK 0.9.3 Release (2010/05/12)
- Note 23-01: (GX) Added header files with macros for PICA register information [SDK]
- Note 23-02: (GX) Updated documentation [SDK]
- Note 23-03: (GX) Added a way to get the address of data for bound textures [SDK]
- Note 23-04: (GX) Fixed a bug that prevented fixed vertex attributes from being updated properly when program objects were switched [SDK]
- Note 23-05: (GX) Added a way to get the address of vertex data for bound vertex buffer objects [SDK]
- Known Issues in the SDK 0.9.3 Release
-
CTR-SDK 0.9.3 Release System Updater (2010/05/12)
- Note 22-01: (Miscellaneous) Fixed a bug that caused program execution to freeze in some environments [System Updater]
- Known Issues with System Updater in the SDK 0.9.3 Release
-
CTR-SDK 0.9.2 Release (2010/05/07)
- Note 21-01: (CAMERA) Calibration data definitions for stereo cameras [SDK | System Updater]
- Note 21-02: (GX) Updated the DMPGL documentation [SDK]
- Note 21-03: (GX) Removed error checks for Release builds [SDK]
- Note 21-04: (GX) Fixed bugs in
glFramebufferRenderbuffer [SDK]
- Note 21-05: (GX) Fixed a problem that caused invalid format recognition when
glTexImage2D was called multiple times [SDK]
- Note 21-06: (GX) Added the
nngxGetCommandGenerationMode function [SDK]
- Note 21-07: (GX) Fixed a bug that caused only 239 lines to be displayed on the lower screen [SDK]
- Note 21-08: (GX) Fixed a bug that caused execution to hang when no vertex attributes used vertex arrays [SDK]
- Note 21-09: (HID) Added support for the Classic Controller PRO for development tools [SDK]
- Note 21-10: (SND) Fixed sound distortion [SDK]
- Note 21-11: (SND) Fixed a bug that caused all sound playback to stop when neither a loop or buffer jump was specified [SDK]
- Note 21-12: (TOOL) Added
DevMenu [SDK]
- Note 21-13: (TOOL) Updated the shader assembly language [SDK]
- Note 21-14: (ULCD) Changed prerequisites [SDK]
- Note 21-15: (ULCD) Added macro definitions that specify the display in autostereoscopic mode [SDK]
- Known Issues with SDK 0.9.2 Release
-
CTR-SDK 0.9.2 Release System Updater (2010/05/07)
- Note 20-01: (OS) Added support for debugging CIA files [System Updater]
- Note 20-02: (OS) Fixed a bug that caused the debugger to hang when loading a process [System Updater]
- Note 20-03: (UDS) Fixed a bug that prevented Client nodes from reconnecting [System Updater]
- Note 20-04: (UDS) Fixed a bug that corrupted Master management data when a Client failed to connect [System Updater]
- Known Issues with System Updater in SDK 0.9.2 Release
-
CTR-SDK 0.9.2 Release Sample Demos (2010/05/07)
- Note 19-01: (GX) Added
ScreenCapture sample demos [Sample Demos]
- Known Issues with SDK 0.9.2 Release Sample Demos
-
CTR-SDK 0.9.1 Release (2010/04/23)
- Note 18-01: (OS) Fixed bugs for file read and write operations [SDK]
- Note 18-02: (SND) Changed the DSP sound specifications [SDK]
- Note 18-03: (TOOL) Added
ctr_makesimplecia32.exe [SDK]
- Note 18-04: (UDS) Revised the
nn::uds::Finalize function to finalize status update events [SDK]
- Note 18-05: (UDS) Eliminated use of
std::vector by the library [SDK]
- Known Issues with SDK 0.9.1 Release
-
CTR-SDK 0.9.1 Release System Updater (2010/04/23)
- Note 17-01: (OS) Revised adjustments for LCD flickering [System Updater]
- Note 17-02: (SOCKET) Revised the socket startup and finalization [System Updater]
- Note 17-03: (SOCKET) Revised the packet-sending operation [System Updater]
- Known Issues with SDK 0.9.1 Release System Updater
-
CTR-SDK 0.9.1 Release Sample Demos (2010/04/23)
- Note 16-01: (DEMO) Fixed bugs related to double-buffering of the display buffer [Sample Demos]
- Known Issues with SDK 0.9.1 Release Sample Demos
-
CTR-SDK 0.9.0 Release (2010/04/14)
- Note 15-01: (AC) Added AC library [SDK | System Updater]
- Note 15-02: (CAMERA) Added support for the second outer camera [SDK | System Updater]
- Note 15-03: (CAMERA) Revised the CAMERA library configuration functions [SDK | System Updater]
- Note 15-04: (CAMERA) Revised CAMERA AC library functions [SDK | System Updater]
- Note 15-05: (CAMERA) Revised reference for
nn::camera::CTR::FrameRate [SDK]
- Note 15-06: (CAMERA) Adjusted the camera image quality [SDK | System Updater]
- Note 15-07: (CAMERA) Added image data auto-receive configuration functions [SDK | System Updater]
- Note 15-08: (CECD) Added Chance Encounter Communication daemon (alpha version) [SDK]
- Note 15-09: (DBG) Debugger output, ASSERT enable / disable switch [SDK]
- Note 15-10: (DEMO) Moved the demo library [SDK | Sample Demos]
- Note 15-11: (DSP) Moved header files [SDK]
- Note 15-12: (DevEnv) Added
--gnu option [SDK]
- Note 15-13: (DevEnv) Changed to -Otime [SDK]
- Note 15-14: (DevEnv) Added TS board support [SDK | System Updater]
- Note 15-15: (DevEnv) Added Windows 7 64-bit OS support [SDK]
- Note 15-16: (DevEnv) Changed version.h [SDK]
- Note 15-17: (DevEnv) Added BOM to source code [SDK]
- Note 15-18: (DevEnv) Changed dependency analysis [SDK]
- Note 15-19: (DevEnv) Restricted function call optimization [SDK]
- Note 15-20: (FND) Added features to
nn::fnd::DateTime class [SDK]
- Note 15-21: (FND) Added
nn::fnd::DateTimeParameters [SDK]
- Note 15-22: (FS) Revised ROMFS file alignment [SDK]
- Note 15-23: (FS) Added
nn::fnd::Directory class [SDK]
- Note 15-24: (FS) Changed
nn::fnd::DirectoryEntry structure member size [SDK]
- Note 15-25: (GX) Fixed a bug where no command would be generated for the viewport during
NN_GX_STATE_OTHERS validation [SDK]
- Note 15-26: (GX) Added TS features (texture processing) [SDK]
- Note 15-27: (GX) Added TS features (fragment lighting) [SDK]
- Note 15-28: (GX) Fixed a bug relating to
dmp_LightEnv.bumpRenorm, dmp_LightEnv.bumpMode [SDK]
- Note 15-29: (GX) Fixed a bug in
glFramebufferTexture2D function error check [SDK]
- Note 15-30: (GX) Relaxed error checking in the
nngxAdd3DCommand [SDK]
- Note 15-31: (GX) Changed the
nngxCopyCmdlist function to allow copying to a command list that is waiting [SDK]
- Note 15-32: (GX) Fixed a bug in the
nngxCopyCmdlist function where command counters were not cleared after execution [SDK]
- Note 15-33: (GX) Deprecated the
nngxReserveSwapBuffers function [SDK]
- Note 15-34: (GX) Added error check to the
nngxSwapBuffers function [SDK]
- Note 15-35: (GX) Added functions for command cache feature [SDK]
- Note 15-36: (GX) Added ability to specify only a part of a data transfer pattern [SDK]
- Note 15-37: (GX) Optimized geometry shader for lines that only have vertex attributes [SDK]
- Note 15-38: (GX) Fixed an error check bug when 0 is specified for the data when creating a vertex buffer [SDK]
- Note 15-39: (HID) Clamping touch panel input [SDK]
- Note 15-40: (HIO) Added samples and documentation for the HIO library [SDK]
- Note 15-41: (HIO) Revised host-side file operations [SDK]
- Note 15-42: (HIO) Added functions and classes to support wide-character strings [SDK]
- Note 15-43: (SSL) Added the HTTP library [SDK | System Updater]
- Note 15-44: (JPEG) Added the JPEG codec library [SDK]
- Note 15-45: (MATH) Added the MATH library functions [SDK]
- Note 15-46: (MATH) Fixed bugs in
SinFIdx, CosFIdx, SinCosFIdx functions [SDK]
- Note 15-47: (MATH) Made the
math API inline [SDK]
- Note 15-48: (MATH) Added member functions to the matrix and vector classes [SDK]
- Note 15-49: (MATH) Optimized by rewriting (some) functions in assembler [SDK]
- Note 15-50: (OS) Fixed a bug when specifying sizes in excess of 8MB when calling the
nn::init::InitializeAllocator function [SDK]
- Note 15-51: (OS) Changed specifications for the
nninitStaticInit function [SDK]
- Note 15-52: (OS) Changed the program initialization sequence [SDK]
- Note 15-53: (OS) Added high-speed synchronization mechanisms [SDK | System Updater]
- Note 15-54: (SND) Fixed a bug when specifying a pitch higher than 14 during ADPCM playback [SDK]
- Note 15-55: (SND) Added Aux bus [SDK]
- Note 15-56: (SND) Added functions to set and get DSP cycle count [SDK]
- Note 15-57: (SND) Changed
nn::snd::MixParam structure format [SDK]
- Note 15-58: (SND) Fixed a bug where execution would not finish even after reaching the end of a sample [SDK]
- Note 15-59: (SND) Changed parameter default values [SDK]
- Note 15-60: (SND) Moved header files [SDK]
- Note 15-61: (SND) Fixed a bug in releasing voice buffers [SDK]
- Note 15-62: (SND) Optimized the library [SDK]
- Note 15-63: (SND) Fixed a bug that would occur when clearing loop flag during loop playback [SDK]
- Note 15-64: (SND) Added features to set and get interpolation method [SDK]
- Note 15-65: (SOCKET) Added the socket library [SDK | System Updater]
- Note 15-66: (SSL) Added the SSL library [SDK | System Updater]
- Note 15-67: (TOOL) Added the
Config tool [SDK]
- Note 15-68: (UDS) Added the UDS library [SDK | System Updater]
- Note 15-69: (ULCD) Added the autostereoscopy feature (API to change LCD mode and the LUCD library) [SDK]
- Note 15-70: (Y2R) Revised the Y2R library functions [SDK]
- Note 15-71: (Y2R) Added a stride argument to functions that transfer source data for conversion [SDK | System Updater]
- Known Issues with SDK 0.9.0 Release
-
CTR-SDK 0.9.0 Release System Updater (2010/04/14)
- Note 14-01: (AC) Added AC library [SDK | System Updater]
- Note 14-02: (CAMERA) Added support for the second outer camera [SDK | System Updater]
- Note 14-03: (CAMERA) Revised the CAMERA library configuration functions [SDK | System Updater]
- Note 14-04: (CAMERA) Revised CAMERA AC library functions [SDK | System Updater]
- Note 14-05: (CAMERA) Adjusted the camera image quality [SDK | System Updater]
- Note 14-06: (CAMERA) Added image data auto-receive configuration functions [SDK | System Updater]
- Note 14-07: (DevEnv) Added TS board support [SDK | System Updater]
- Note 14-08: (FS) Fixed FATFS access bug [System Updater]
- Note 14-09: (FS) Added DMA support for NAND/SD Memory Cards [System Updater]
- Note 14-10: (FS) Implemented directory scans in ROM [System Updater]
- Note 14-11: (GX) Removed alignment restrictions during VRAM transfers [System Updater]
- Note 14-12: (GX) Fixed a bug in the lower-screen swap buffer [System Updater]
- Note 14-13: (HID) Revised the
Reader function of TouchPanelReader [System Updater]
- Note 14-14: (SSL) Added the HTTP library [SDK | System Updater]
- Note 14-15: (OS) Revised the
nn::os::Timer::ClearSignal function [System Updater]
- Note 14-16: (OS) Set upper limit on number of threads [System Updater]
- Note 14-17: (OS) Fixed a bug where debugger would fail to load
cci files [System Updater]
- Note 14-18: (OS) Fixed a bug where hard breaks would not be possible after setting a breakpoint in the debugger [System Updater]
- Note 14-19: (OS) Modified the debugger exception notifications [System Updater]
- Note 14-20: (OS) Fixed mutual exclusion bug in the firmware [System Updater]
- Note 14-21: (OS) Fixed a bug where cycle timer cycles got longer [System Updater]
- Note 14-22: (OS) Added high-speed synchronization mechanisms [SDK | System Updater]
- Note 14-23: (SND) Fixed a bug where volume was too low [System Updater]
- Note 14-24: (SND) Fixed a bug where volume + / - symbols were backwards [System Updater]
- Note 14-25: (SOCKET) Added the socket library [SDK | System Updater]
- Note 14-26: (SSL) Added the SSL library [SDK | System Updater]
- Note 14-27: (UDS) Added the UDS library [SDK | System Updater]
- Note 14-28: (Y2R) Added a stride argument to functions that transfer source data for conversion [SDK | System Updater]
- Known Issues with SDK 0.9.0 Release System Updater
-
CTR-SDK 0.9.0 Release Sample Demos (2010/04/14)
- Note 13-01: (DEMO) Moved the demo library [SDK | Sample Demos]
- Note 13-02: (GX) Changed graphics demos [Sample Demos]
- Note 13-03: (GX) Changed vertex shader assembly code for sample demos [Sample Demos]
- Note 13-04: (GX) Added two types of samples for fragment lighting [Sample Demos]
- Note 13-05: (SND) Changed sample demos [Sample Demos]
- Note 13-06: (SND) Added sample demos [Sample Demos]
- Note 13-07: (ULCD) Added ULCD sample demos [Sample Demos]
- Note 13-08: (Other) Changed demo1 [Sample Demos]
- Note 13-09: (Other) Deleted
using namespace declaration from sample demos [Sample Demos]
- Known Issues with SDK 0.9.0 Release Sample Demos
-
CTR-SDK 0.8.3 Release (2010/03/15)
- Note 12-01: Note 12-01: (DEMO) Revised the internal operations of the
nn::demo::RunCmdlistDone function [SDK]
- Note 12-02: (DEMO) Replaced the
nngxReserveSwapBuffers function with the nngxSwapBuffers function [SDK | Sample Demos]
- Note 12-03: (GX) Updated the DMPGL documentation [SDK]
- Note 12-04: Note 12-04: (GX) Fixed a bug related to dmp_Texture*.samplerType switching [SDK]
- Note 12-05: (GX) Fixed a bug involving setting the alpha component with the
glBlend* functions [SDK]
- Note 12-06: (GX) Fixed bugs in
glBufferData function [SDK]
- Note 12-07: (GX) Fixed bugs in
glBufferSubData function [SDK]
- Note 12-08: (GX) Changed
glBufferSubData function specifications [SDK]
- Note 12-09: (GX) Fixed bugs in the
glLinkProgram function [SDK]
- Note 12-10: Note 12-10: (GX) Added a parameter obtained by the
nngxGetCmdlistParameteri function [SDK]
- Note 12-11: (GX) Fixed issues with the error detection of the
nngxInitialize function [SDK]
- Note 12-12: (GX) Changed the
nngxReserveSwapBuffers function to be equivalent of the nngxSwapBuffers function [SDK]
- Note 12-13: (GX) Revised the error checking of the
nngxTransferRenderImage and nngxSwapBuffers functions [SDK]
- Note 12-14: (GX) Changed specifications for the command cache feature [SDK]
- Note 12-15: (GX) Changed the timing when command lists are destroyed and cleared [SDK]
- Note 12-16: (GX) Added a function that waits until a command list finishes executing [SDK]
- Note 12-17: (GX) Changed the timing when command completion interrupt handlers are registered and disabled [SDK]
- Note 12-18: (GX) Added system API error codes [SDK]
- Note 12-19: (GX) Fixed a bug in procedural textures [SDK]
- Note 12-20: (TOOL) Updated the shader assembly language [SDK]
- Known Issues with SDK 0.8.3 Release
-
CTR-SDK 0.8.3 Release Sample Demos (2010/03/15)
- Note 11-01: (DEMO) Replaced the
nngxReserveSwapBuffers function with the nngxSwapBuffers function [SDK | Sample Demos]
- Note 11-02: (GX) Revised the
GasCessna sample [Sample Demos]
- Note 11-03: (GX) Fixed a bug in the
GasColorSimple sample [Sample Demos]
- Note 11-04: (GX) Revised the
ProctexRandom sample [Sample Demos]
- Note 11-05: (GX) Added samples of using command cache [Sample Demos]
- Known Issues with SDK 0.8.3 Release Sample Demos
-
CTR-SDK 0.8.2 Release (2010/02/22)
- Note 10-01: (HIO) Revised the HIO library initialization functions [SDK]
- Note 10-02: (MATH) Fixed a bug that occurred if the input and output of the
VEC3Transform function were the same [SDK]
- Note 10-03: (SND) Fixed a bug in ADPCM playback [SDK]
- Note 10-04: (SND) Revised the
Voice::IsPlaying function [SDK]
- Note 10-05: (SND) Revised the
nn::snd::Voice::GetPlayPosition function [SDK]
- Note 10-06: (SND) Revised the updating process of voice buffer status [SDK]
- Known Issues with SDK 0.8.2 Release
-
CTR-SDK 0.8.1 Release (2010/02/17)
- Note 9-01: (DevEnv) Changed compiler and linker options [SDK]
- Note 9-02: (HIO) Fixed a bug that prevented CCI files from being loaded if the HostIO functionality was used [SDK]
- Note 9-03: (SND) Fixed a bug in ADPCM playback [SDK]
- Note 9-04: (SND) Revised how data from DSP is read [SDK]
- Note 9-05: (SND) Changed specifications for the
nn::snd::WaveBuffer function [SDK]
- Known Issues with SDK 0.8.1 Release
-
CTR-SDK 0.8.1 Release Sample Demos (2009/02/17)
- Note 8-01: (SND) Revised the demos that use sound [Sample Demos]
- Known Issues with SDK 0.8.1 Release Sample Demos
-
CTR-SDK 0.8.0 Release (2010/02/10)
- Note 7-01: (CAMERA) Removed the
StopDmaRecv[Rgb] function [SDK | System Updater]
- Note 7-02: (CAMERA) Revised the CAMERA library function reference [SDK]
- Note 7-03: (CAMERA) Revised the CAMERA library configuration functions [SDK | System Updater]
- Note 7-04: (CAMERA) Added and removed the CAMERA library functions [SDK | System Updater]
- Note 7-05: (CAMERA) Revised some function specifications in the CAMERA library [SDK | System Updater]
- Note 7-06: (CAMERA) Removed and added the CAMERA library functions [SDK | System Updater]
- Note 7-07: (CAMERA) Changed some function names in the CAMERA library [SDK | System Updater]
- Note 7-08: (CAMERA) Added and revised the camera-related configuration parameters [SDK | System Updater]
- Note 7-09: (CAMERA) Added data transfer completion event [SDK | System Updater]
- Note 7-10: (DEMO) Added the
DrawFramework::GetFramebufferObject and GetRenderbufferObject functions [SDK]
- Note 7-11: (DSP) Modified the
CreateSharedMemory function [SDK]
- Note 7-12: (DSP) Added the DSP Function Reference Manual [SDK]
- Note 7-13: (DSP) Modified the
LoadComponent function [SDK]
- Note 7-14: (DSP) Modified the
LoadDefaultComponent function [SDK]
- Note 7-15: (DSP) Increased the PIPE count [SDK]
- Note 7-16: (DSP) Modified the
RecvData, RecvDataIsReady, SendData, and SendDataIsEmpty functions [SDK]
- Note 7-17: (DSP) Modified the
RegisterInterruptEvents function [SDK]
- Note 7-18: (DevEnv) Added reference about build rules [SDK]
- Note 7-19: (FND) Added an overloaded version of the
ExpHeap::Adjust function that specifies the direction in which the expanded heap should be reduced [SDK]
- Note 7-20: (FND) Added
nn::fnd::DateTime class [SDK]
- Note 7-21: (FND) Revised the
nn::fnd::ExpHeapBase::GetSizeOf function reference [SDK]
- Note 7-22: (FND) Added a feature to specify the location of the administrative region when creating nested heaps [SDK]
- Note 7-23: (GX) Revised the thread-related behavior of the
nngx functions [SDK]
- Note 7-24: (GX) Changed specifications for the
nngxInitialize function [SDK]
- Note 7-25: (GX) Updated the graphics drivers [SDK]
- Note 7-26: (GX) Revised graphics function reference [SDK]
- Note 7-27: (HID) Revised the terminology "play radius" to "play" within the
AccelerometerReader class [SDK]
- Note 7-28: (HID) Revised touch panel calibration [SDK]
- Note 7-29: (HID) Revised the definitions of the member functions of the
Pad class [SDK]
- Note 7-30: (HIO) Added the HIO library [SDK]
- Note 7-31: (MIC) Revised the
AllocateBuffer and StartSampling Functions [SDK]
- Note 7-32: (MIC) Revised the
microphone function reference [SDK]
- Note 7-33: (NSTD) Renamed the
NSTD Library [SDK]
- Note 7-34: (OS) Changed the documentation for the C-language wrapper functions [SDK]
- Note 7-35: (OS) Added and removed C-language wrapper functions [SDK]
- Note 7-36: (OS) Revised the
CriticalSection specifications [SDK]
- Note 7-37: (OS) Eliminated alignment restrictions on buffers transferred via DMA [SDK]
- Note 7-38: (OS) Fixed DMA transfer memory leaks [SDK]
- Note 7-39: (OS) Revised the function reference for the
nn::os::StackMemoryBlock class [SDK]
- Note 7-40: (OS) Revised the function reference for
nn::os::WaitObject::WaitAny [SDK]
- Note 7-41: (OS) Added a thread-safe typedef for heaps [SDK]
- Note 7-42: (SND) Released the sound library [SDK]
- Note 7-43: (TOOL) Changed the CCI format that is output from
ctr_makerom [SDK | System Updater]
- Note 7-44: (TOOL) Revised
ctr_makerom [SDK]
- Note 7-45: (Y2R) Removed the
StopDmaRecv and StopDmaSend functions [SDK | System Updater]
- Note 7-46: (Y2R) Revised the Y2R library references [SDK]
- Note 7-47: (Y2R) Revised the Y2R library [SDK | System Updater]
- Note 7-48: (Y2R) Revised the Y2R library [SDK | System Updater]
- Note 7-49: (Y2R) Revised some function specifications in the Y2R library [SDK | System Updater]
- Note 7-50: (Y2R) Added Y2R library functions [SDK | System Updater]
- Note 7-51: (Y2R) Revised some function names in the Y2R library [SDK | System Updater]
- Note 7-52: (Y2R) Removed the functions used to set data transfer requests from public availability [SDK]
- Note 7-53: (Y2R) Removed some of the functions used to set and get the conversion coefficients from public availability [SDK]
- Known Issues with SDK 0.8.0 Release
-
CTR-SDK 0.8.0 Release System Updater (2010/02/10)
- Note 6-01: (CAMERA) Revised the
Finalize function [System Updater]
- Note 6-02: (CAMERA) Removed the
StopDmaRecv[Rgb] function [SDK | System Updater]
- Note 6-03: (CAMERA) Revised the CAMERA library configuration functions [SDK | System Updater]
- Note 6-04: (CAMERA) Added and removed the CAMERA library functions [SDK | System Updater]
- Note 6-05: (CAMERA) Revised some function specifications in the CAMERA library [SDK | System Updater]
- Note 6-06: (CAMERA) Removed and added the CAMERA library functions [SDK | System Updater]
- Note 6-07: (CAMERA) Changed some function names in the CAMERA library [SDK | System Updater]
- Note 6-08: (CAMERA) Added and revised the camera-related configuration parameters [SDK | System Updater]
- Note 6-09: (CAMERA) Added data transfer completion event [SDK | System Updater]
- Note 6-10: (FS) Added support for file and directory operations on SD Cards [System Updater]
- Note 6-11: (FS) Added functions for creating, deleting, and renaming files and directories [System Updater]
- Note 6-12: (FS) Added a class for reading and writing files [System Updater]
- Note 6-13: (FS) Fixed a resource leak that used to be present when files were opened [System Updater]
- Note 6-14: (HID) Revised the sampling rate [System Updater]
- Note 6-15: (MIC) Revised the
Finalize function [System Updater]
- Note 6-16: (OS) Fixed a bug that caused the ending address to be incorrect when a breakpoint is set in the
Thread::Start function [System Updater]
- Note 6-17: (OS) Fixed a bug that caused deadlocks [System Updater]
- Note 6-18: (OS) Fixed a bug that prevented the values of the VFP registers from being obtained correctly from the debugger [System Updater]
- Note 6-19: (OS) Fixed a bug that caused strings output to the debugger to be output twice [System Updater]
- Note 6-20: (OS) Fixed a bug that caused the debugger to hang if it was run continuously [System Updater]
- Note 6-21: (OS) Changed the maximum amount of memory that can be used on development hardware to 96 MB [System Updater]
- Note 6-22: (OS) Fixed a bug that caused the debugger to hang when running applications that run threads frequently [System Updater]
- Note 6-23: (TOOL) Changed the CCI format that is output from
ctr_makerom [SDK | System Updater]
- Note 6-24: (Y2R) Revised the
Finalize function [System Updater]
- Note 6-25: (Y2R) Removed the
StopDmaRecv and StopDmaSend functions [SDK | System Updater]
- Note 6-26: (Y2R) Revised the Y2R library [SDK | System Updater]
- Note 6-27: (Y2R) Revised the Y2R library [SDK | System Updater]
- Note 6-28: (Y2R) Revised some function specifications in the Y2R library [SDK | System Updater]
- Note 6-29: (Y2R) Added Y2R library functions [SDK | System Updater]
- Note 6-30: (Y2R) Revised some function names in the Y2R library [SDK | System Updater]
- Known Issues with SDK 0.8.0 Release System Updater
-
CTR-SDK 0.8.0 Release Sample Demos (2010/02/10)
- Note 5-01: (CAMERA) Revised sample demos [Sample Demos]
- Note 5-02: (FND) Added features to the multifunction demos [Sample Demos]
- Note 5-03: (GX) Fixed a bug in the
GasCessna sample [Sample Demos]
- Note 5-04: (GX) Deleted unnecessary operations related to tangent attribute data [Sample Demos]
- Note 5-05: (GX) Added a demo that performs double-buffering on a command list for rendering [Sample Demos]
- Note 5-06: (OS) Revised the
os sample demo [Sample Demos]
- Note 5-07: (SND) Added sample demos [Sample Demos]
- Note 5-08: (SND) Added features to the multifunction demos [Sample Demos]
- Known Issues with SDK 0.8.0 Release Sample Demos
-
CTR-SDK 0.7.1 Release (2010/01/15)
- Note 4-01: (SND) Added support for the sound library of NintendoWare for CTR 0.4.0 [SDK]
- Known Issues with SDK 0.7.1 Release
-
CTR-SDK 0.7.0 Release (2009/12/22)
- Note 3-01: (CAMERA) Added the CAMERA library [SDK]
- Note 3-02: (CRYPTO) Added the
crypto library [SDK]
- Note 3-03: (DEMO) Added classes for simple rendering of 2D geometric shapes [SDK]
- Note 3-04: (DEMO) Added a document that explains the DEMO library [SDK]
- Note 3-05: (DEMO) Modified the
DEMO_SetRenderingTarget function [SDK]
- Note 3-06: (DEMO) Changed the specifications of the
DrawFramework class [DrawFramework]
- Note 3-07: (DEMO) Added an argument to the
DrawFramework::SwapBuffer function that specifies whether or not to wait for V-Sync before running [SDK]
- Note 3-08: (DEMO) Released
demo_MemoryManager.h [SDK]
- Note 3-09: (DEMO) Made
nn::demo::DrawFramework::SwapBuffer into a virtual function [SDK]
- Note 3-10: (DEMO) Changed the macro that sets the maximum number of output characters [SDK]
- Note 3-11: (DEMO) Changed the address alignment when allocating vertex buffers in VRAM [SDK]
- Note 3-12: (DevEnv) Added the
NN_ENDIAN macro [SDK]
- Note 3-13: (DevEnv) Changed the structure of the documents folder [SDK]
- Note 3-14: ((DevEnv) Changed the data types for
u32 and s32 [SDK]
- Note 3-15: (DevEnv) Changed the assembly rules [SDK]
- Note 3-16: (DevEnv) Fixed a bug that caused duplicated option settings for macro definitions [SDK]
- Note 3-17: (DevEnv) Deleted the
OMakefiles for the libraries [SDK]
- Note 3-18: (FND) Corrected the internal status check of the
nn::fnd::ExpHeap class [SDK]
- Note 3-19: (FND) Added features to
nn::fnd::FrameHeap class [SDK]
- Note 3-20: (FND) Added an allocator class for heaps [SDK]
- Note 3-21: (FND) Added a feature to create nested heaps [SDK]
- Note 3-22: (FND) Added features to the heap classes [SDK]
- Note 3-23: (FND) Made the heap classes thread-safe [SDK]
- Note 3-24: (FND) Added a feature to find the heap associated with a given block of allocated memory [SDK]
- Note 3-25: (FS) Added to the
nn::fs::FileReader class the ability to use the char* type to specify path names as ASCII strings [SDK]
- Note 3-26: (GX) Added the
DMPGL sample [SDK]
- Note 3-27: (GX) Revised the graphics function reference [SDK]
- Note 3-28: (GX) Updated the graphics drivers [SDK]
- Note 3-29: (GX) Fixed an issue where the V-Sync timing for the upper and lower screens did not coincide [SDK | System Updater]
- Note 3-30: (GX) Fixed a bug that caused only 239 lines to be displayed on the lower screen [SDK]
- Note 3-31: (HID) Changed the names of the Initialize and Finalize functions [SDK]
- Note 3-32: (HID) Changed input from SELECT to be treated as input from START [SDK]
- Note 3-33: (HID) Added +Control Pad emulation for the Slide Pad [SDK]
- Note 3-34: (HID) Revised the definitions of the member functions of the
Pad class [SDK]
- Note 3-35: (HID) Added support for the accelerometer [SDK]
- Note 3-36: (HID) Changed the names of the symbols for the +Control Pad [SDK]
- Note 3-37: (MATH) Added the
MTX44Perspective[Deg|Rad] functions [SDK]
- Note 3-38: (MATH) Added
Set functions to the Vector* classes [SDK]
- Note 3-39: (MATH) Revised the internal operations of the
nn::math::RunCmdlistDone function [SDK]
- Note 3-40: (MATH) Added functions to find the product of a projection matrix and a rotation matrix [SDK]
- Note 3-41: (MIC) Added the MIC library [SDK]
- Note 3-42: (OS) Changed the documentation for the C-language wrapper functions [SDK]
- Note 3-43: (OS) Added and removed C-language wrapper functions [SDK]
- Note 3-44: (OS) Fixed a bug in which the
nn::fnd::FileReader class was not set as no copy [SDK]
- Note 3-45: (OS) Changed the access label for the
nn::os::HandleObject::Finalize function to protected [SDK]
- Note 3-46: (OS) Added the
nn::os::SafeBlockingQueue class [SDK]
- Note 3-47: (OS) Revised the size of the
nn::os::StackBuffer class template [SDK]
- Note 3-48: (OS) Added the
nn::os::Thread::GetMainThread function [SDK]
- Note 3-49: (OS) Fixed the
nn::os::Tick::ToTimeSpan function [SDK]
- Note 3-50: (OS) Added the
nnosAlarmCanSet function [SDK]
- Note 3-51: (OS) Added the
nnosInitializeDeviceMemory and nnosGetDeviceMemoryAddress functions [SDK]
- Note 3-52: (OS) Added a system version check [SDK | System Updater]
- Note 3-53: (OS) Revised the arguments to functions used to start threads [SDK]
- Note 3-54: (OS) Revised the behavior if timers are set to expire after zero seconds [SDK]
- Note 3-55: (OS) Added a class for specifying the lock policy [SDK]
- Note 3-56: (TOOL) Revised
ctr_makerom [SDK]
- Known Issues with SDK 0.7.0 Release
-
CTR-SDK 0.7.0 Release System Updater (2009/12/22)
- Note 2-01: (FS) Fixed a resource leak in the file system [System Updater]
- Note 2-02: (GX) Removed restrictions on size during DMA transfers [System Updater]
- Note 2-03: (GX) Fixed an issue where the V-Sync timing for the upper and lower screens did not coincide [SDK | System Updater]
- Note 2-04: (OS) Fixed a bug that caused failures when attempting to load static regions 2 MB or greater in size [System Updater]
- Note 2-05: (OS) Cut out VFP context switching [System Updater]
- Note 2-06: (OS) Added a system version check [SDK | System Updater]
- Note 2-07: (OS) Modified the debugger API [System Updater]
- Note 2-08: (OS) Improved performance [System Updater]
- Note 2-09: (OS) Added multi-core support [System Updater]
- Note 2-10: (OS) Fixed a bug in which a single thread was able to acquire semaphores multiple times [System Updater]
- Known Issues with System Updater in the SDK 0.7.0 Release
-
CTR-SDK 0.7.0 Release Sample Demos (2009/12/22)
- Note 1-01: (CAMERA) Added features to the multifunction demos [Sample Demos]
- Note 1-02: (GX) Added demos of the simple rendering features of 2D geometric shapes [Sample Demos]
- Note 1-03: (GX) Revised the source code based on changes to the specifications of the
glUniformMatrix functions [Sample Demos]
- Note 1-04: (GX) Changed the directory structure [Sample Demos]
- Note 1-05: (GX) Changed the directories so that shader binaries will be generated during builds [Sample Demos]
- Note 1-06: (HID) Made changes and added features to the multifunction demos [Sample Demos]
- Note 1-07: (MIC) Added features to the multifunction demos [Sample Demos]
- Known Issues with SDK 0.7.0 Release Sample Demos
Added applet::EnableSleep and applet::DisableSleep functions.
When in the enable state, replies to sleep queries are enabled. When in the disable state, all replies are treated as if they were applet::REPLY_REJECT.
Revised so that the callback function configured using applet::SetSleepCanceledCallback is called when an application gets a sleep query when the system is closed, and then the system is opened again between when the reply is sent and the system actually goes to sleep.
However, there is no need to configure this function when the time to go to sleep is short, or when you do not care if the system opens during a query.
Possible use cases for this function include when an application configures this callback because it might take some time to save data before going to sleep, and then when the system is opened and the callback called, the application quits saving data and returns applet::REPLY_REJECT.
Fixed bug where closing the system while the library is initializing returns ResultIsSleeping, but calling Initialize again does not properly initialize the library.
Added function to get whether StreetPass or Internet communication with other users is restricted by Parental Controls settings.
Fixed bug where it was possible to use the CreateFile function to create save data files that had negative sizes.
The nn::snd::InitializeWaveBuffer function used to include an internal check of the buffer state, but this caused a bug where uninitialized buffers could not be used as WaveBuffer objects. The function was revised to remove this check and resolve this bug.
This revision only affects libraries in debug and development builds.
Fixed a bug in the library where buffers could still be accessed even after deallocating WaveBuffer objects (STATUS_DONE).
Revised GetAddrInfo function to make it thread-safe.
Deleted EULA-related error codes from the connection test error code list in the NetworkSetting tool reference, as EULA acceptance is not needed to run connection tests.
Also added notes about connection tests to the NetworkSetting tool reference.
Fixed bug where system attempting to go to sleep while the library is initializing returns ResultIsSleeping, but calling Initialize again does not properly initialize the library.
- Execution stops on a black screen during reboot after a DLP system update.
System update is complete. Restart the system.
- There is a bug where animations cannot be played correctly because illegal loop settings are written in the output file (
.bcwav) when converting a .wav file that includes loop settings and uses the same frame as the loop start and loop end.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
Fixed bug where going to sleep would not work properly when done while an application or applet was launching or shutting down.
Revised so that the callback function configured using applet::SetSleepCanceledCallback is called when an application gets a sleep query when the system is closed, and then the system is opened again between when the reply is sent and the system actually goes to sleep.
However, there is no need to configure this function when the time to go to sleep is short, or when you do not care if the system opens during a query.
Possible use cases for this function include when an application configures this callback because it might take some time to save data before going to sleep, and then when the system is opened and the callback called, the application quits saving data and returns applet::REPLY_REJECT.
Fixed bug where some tasks would not run after calling PauseAllTasks and then calling ResumeAllTasks, even after the scheduled task execution time had passed.
Fixed a bug where the wrong network error code was returned during friend server or game server authentication.
Fixed a bug where the local system's display name would not be properly saved in files, with all instances changed to 255 after rebooting.
This has no effect on and does not change the behavior of directly getting the name or font region from a Mii character.
Attempting to mount factory-default backup memory as save data formerly returned the error nn::fs::ResultVerificationFailed. Changed this to now return nn::fs::ResultNotFormatted.
Fixed a time-dependent bug where calling the Read or GetHeader functions would occasionally cause an HTTP disconnection.
The microphone was formerly unusable when the system was closed, but it was still possible to start sampling with the system closed if it was closed before the microphone had been used. This bug has been fixed.
Fixed a bug where the microphone could not be used again after calling Finalize and then shutting down an application with the system closed.
Fixed a bug where the system would not reboot after pressing the HOME Button on the fatal error display screen shown when a card was removed.
Fixed a bug where holding the HOME Button down while powering off would prevent powering off and would cause the system to halt.
Changed specification to allow the setting of invalid languages in the RegionSelector for debugging purposes.
Select INVALID LANGUAGE to set to an invalid language.
Fixed a bug where shutting down an application during UDS communication would prevent returning to the development menu, resulting instead in a fatal error and the system halting.
- Demos started via the debugger do not run normally if the system is closed and the demo does not support sleep mode.
- There is a bug where disconnection of a Client cannot be detected correctly if connected to the network as a Spectator via UDS.
This bug was definitely present up to CTR-SDK 0.14.2, and handled in CTR-SDK 0.14.3 so that it only happened at a low level of probability. This problem has now been completely resolved.
- Noise was sometimes being introduced with sound sources satisfying the conditions listed below when using
INTERPLATION_TYPE_LINEAR as the Voice interpolation method.
- Adjacent 16-bit PCM samples differ by 32768 or more.
This would apply to -6dB pulse waveforms, for instance.
Do not use INTERPOLATION_TYPE_LINEAR for sound sources that meet the above conditions.
Noise does not occur with sound sources that do not include high-frequency components and sound sources with 16-bit PCM amplitudes under 16384.
- There is a bug where execution of firmware updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231). Do not run System Updater on this hardware.
Fixed bug where going to sleep would not work properly when done while an application or applet was launching or shutting down.
Revised insufficient microphone error processing in demo1.
Fixed bug where news_test demo would not launch.
However, there is no means of checking the notifications list.
Check after release of the HOME Menu beta.
None.
A bug was fixed where the camera would not recover correctly when re-opened if the system was last closed while pressing the HOME Button for the second time after entering the HOME Menu using the HOME Button.
A bug was fixed where a "box not found" error is returned when OpenMessageBox is called while the daemon is running.
There was bug occuring when the available memory in the send box was low where the send count would not go down after completing a send operation and the send count could not be limited.
Specifications were changed so that false is always returned if an icon file is not attached to the application.
Added sleep support to DLP Sample Demos and DlpClient.
An error results if sleep (system closed) occurs while using DLP.
Recover from error status according to the instructions displayed on the screen.
DlpClient now supports the power button and HOME button.
Made the following changes to the dlp sample demo.
- SimpleServer and FakeClient demos now support the Power Button and HOME Button
- Added a child device feature to Child_0 and FakeClient demos.
After download, a simple UDS communication is made with the parent device.
- Added a parent device feature to the SimpleServer demo.
UDS communication with a child device.
Added a description of MANUAL_DIR (added to the electronics operations manual for applications) to $CTR_SDK/documents/SDKRules/BuildRules.html.
The fact that GetMyMii returns an empty me if an application is started without having set a Personal Mii in Mii Maker.
There was a bug occuring when the HID library gets various types of sampling values where abnormal sampling values would occasionally occur. This was fixed.
A feature for deleting shared expanded save data using DevMenu has been deleted.
In addition, specifications have changed so that shared expanded save data in NAND is entirely erased and recreated when initialization is executed.
This was actually changed in CTR-SDK 0.14.2 but was accidentally omitted from the change log.
A bug was fixed where the AllowToConnect function would not work correctly if called after executing the DissallowToConnect function.
This was actually changed in CTR-SDK 0.14.1 but was accidentally omitted from the change log.
- Execution stops on a black screen during reboot after a DLP system update.
System update is complete. Restart the system.
- There is a bug where animations cannot be played correctly because illegal loop settings are written in the output file (
.bcwav) when converting a .wav file that includes loop settings and uses the same frame as the loop start and loop end.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
The method used to calculate the memory available for allocating BOSS storage memory now includes a file's clustor size, not included in the original calculation.
The followign problems were discovered with BOSS and corrected.
- The execution count does not go down if power is cut during a Raw download
- The internal BOSS timer keeps going off during the interval between a 20-second task and a 60-second task
- Sometimes the internal BOSS timer does not start after all tasks have executed
- A 255th task cannot be registered
- Sometimes NSDs beyond the first in NSA cannot be obtained by NADL using expanded save data
- A task error results if an NADL task is halted and an attempt is made start a task registered before the halt
- NSA download fails if the storage ID of BOSS storage changed during download
A bug was fixed where the camera would not recover correctly when re-opened if the system was last closed while pressing the HOME Button for the second time after entering the HOME Menu using the HOME Button.
A bug was fixed where a "box not found" error is returned when OpenMessageBox is called while the daemon is running.
There was a bug that would occur during negotiations with a peer where, once "unable to send" status resulted, it would continue on even for communications with other peers.
The SimpleServer demo was made to support DLP system updates (DUP).
For examples, see Sample Demos/readme-CTR_SDK-0_14_3-Sample Demos.txt.
Fixed a bug where the backlight would stop lighting and the display would not recover if the system was closed while a FATAL and a "card removed error" were being displayed on the screen.
A bug was fixed where nn::fs::MountRom would occasionally return nn::fs::ResultVerificationFailed and fail.
A bug was fixed where a deadlock would occasionallly occur if multiple threads attempted to access the file system at once.
A hardware problem was identified where coordinate data after a pen-down on the touch panel would occasionally result in incorrect values larger than the originals.
To solve this problem, processing was changed so that the first data generated after pen-down is handled as a pen-up.
A bug was fixed where HTTPS communications via proxy could not be implemented.
A bug was fixed where the 3D LED stauts was not being initialized when an application was started a second time after stopping the debugger during a stereoscopic display.
- Demos started via the debugger do not run normally if the system is closed and the demo does not support sleep mode.
- There is a bug where disconnection of a Client cannot be detected correctly if connected to the network as a Spectator via UDS.
This bug was definitely present up to CTR-SDK 0.14.2, and handled in CTR-SDK 0.14.3 so that it only happened at a low level of probability. This problem has now been completely resolved.
- Sleep is not handled normally if sleep occurs during application or applet startup or shutdown.
- The system sometimes down not sleep normally if the HOME Button is pressed during the display of a "card removed" error.
- Noise was sometimes being introduced with sound sources satisfying the conditions listed below when using INTERPLATION_TYPE_LINEAR as the Voice interpolation method.
- Sources having a difference between adjacent samples of 32768 or higher when using 16-bit PCM
This would apply to a -6-dB square wave, for example.
Do not use INTERPOLATION_TYPE_LINEAR with sound sources that meet the above conditions.
Noise is not generated forsound sources that do not include a high-frequency component or sounds sources where the amplitude remains within 16384 when using 16-bit PCM.
- There is a bug where execution of firmware updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231). Do not run System Updater on this hardware.
The SimpleServer demo was made to support DLP system updates (DUP).
For examples, see Sample Demos/readme-CTR_SDK-0_14_3-Sample Demos.txt.
Added sleep support to DLP Sample Demos and DlpClient.
An error results if sleep (system closed) occurs while using DLP.
Recover from error status according to the instructions displayed on the screen.
DlpClient now supports the power button and HOME button.
Made the following changes to the dlp sample demo.
- SimpleServer and FakeClient demos now support the Power Button and HOME Button
- Added a child device feature to Child_0 and FakeClient demos.
After download, a simple UDS communication is made with the parent device.
- Added a parent device feature to the SimpleServer demo.
UDS communication with a child device.
An electronics operations manual was added to Sample Demos/demo1.
There was a bug where the thruput and error rate displayed for Master of Clients already connected would appear as garbage when connecting a new Client when using the uds/com_demo1 demo. This has been fixed.
None.
A bug was fixed where the system would not enter sleep if the system was closed while returning to an application from the developer's menu.
A but was fixed wehre the camera could not be restored to the intended state during application recovery caused by opening the system if the system had been closed during transition to the developer's menu caused by pressing the HOME Button while using application was using the camera.
The GR Library was revised so that Texture::Unit0::MakeCommand function correctly generates cube map and shadow map commands.
The GR library was revised because the values of color border commands for Texture 0, 1 and 2 were incorrect.
A bug was fixed where the framebuffer cache was not being flushed and cleared when the GR library generated a RenderState class public variable command.
This was actually changed in CTR-SDK 0.14.1 but was accidentally omitted from the change log.
The Initialize/FinalizePedometer functions, used to intialize and shutdown the pedometer library, have been deleted.
Note that the ptm::Initialize function must be called before using the pedometer library.
The UBL library had a problem where shared expanded save data in NAND memory could not be accessed, so we have temporarily changed the location where shared shared expanded save data is saved to SD card.
The specifiable range for the maximum send delay time that can be set using the SetMaxSendDelay function has been changed from 10 to 100 milliseconds to 5 to 10 milliseconds.
- There is a bug where animations cannot be played correctly because illegal loop settings are written in the output file (
.bcwav) when converting a .wav file that includes loop settings and uses the same frame as the loop start and loop end.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
A bug was fixed where the system would not enter sleep if the system was closed while returning to an application from the developer's menu.
A but was fixed wehre the camera could not be restored to the intended state during application recovery caused by opening the system if the system had been closed during transition to the developer's menu caused by pressing the HOME Button while using application was using the camera.
A bug has been fixed where the screen would momentarily distort and in rare instances disappear without an error message appearing when going to display a FATAL error and "card removed" error.
A bug was fixed where, depending on the timing, the system would not enter sleep and would hang, if the system was closed immediately after starting the system.
A bug was fixed where the fact the HOME Button was being pressed could not be detected if the HOME Button was pressed repeatedly immediately after returning to the developer's menu by pressing the HOME Button from inside an application.
A bug has been fixed where the system would engage in restart without writing account and friend list information if the Power Button ws held down to cause shutdown.
A bug was fixed where internal state transitions were not being handled correctly in cases such as when the system was quickly opened and closed.
A bug was fixed where, depending on the timing, background communications were not being switched correctly when combining sleep and WiFi on/off switching.
Sometimes, depending on the timing, the uds::Initialize function would not exit due to a bug where background communications were being stopped.
This bug has been fixed.
A bug was fixed where status update events were not being signaled when transiting to sleep or wireless off mode while not connected.
Do not put the system in sleep mode without shutting down the uds library.
Always execute the uds::Finalize function before allowing an application to sleep.
A bug was confirmed and fixed where a FATAL error would occur if the DestroyEndpoint function was executed after recoverying from sleep initiated without closing the uds library.
Do not put the system in sleep mode without shutting down the uds library.
Always execute the uds::Finalize function before allowing an application to sleep.
- Demos started via the debugger do not run normally if the system is closed and the demo does not support sleep mode.
- Sleep is not handled normally if sleep occurs during application or applet startup or shutdown.
- The system sometimes down not sleep normally if the HOME Button is pressed during the display of a "card removed" error.
- The back light will stop lighting if the system is closed and opened again during display of a FATAL error screen.
- There is a problem where the chance encounter daemon sometimes returns SESSION_CLOSED and the chance encounter library then becomes unusable.
- Noise was sometimes being introduced with sound sources satisfying the conditions listed below when using INTERPLATION_TYPE_LINEAR as the Voice interpolation method.
- Sources having a difference between adjacent samples of 32768 or higher when using 16-bit PCM
This would apply to a -6-dB square wave, for example.
Do not use INTERPOLATION_TYPE_LINEAR with sound sources that meet the above conditions.
Noise is not generated forsound sources that do not include a high-frequency component or sounds sources where the amplitude remains within 16384 when using 16-bit PCM.
- There is a bug where execution of firmware updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231). Do not run System Updater on this hardware.
- Save data access is not thread-safe.
Added a description of the EULA agreement check.
With this change, you must initialize the FS library before using this function.
The GetStatus function was dangerous depending on how it was used and was deprecated because the IsConnected function has been added for getting whether the local system is issuing a connection request to the network.
A function for getting whether stereoscopic display is permitted has been added.
Specifications have changed so that the nn::applet::CTR::Enable function is called immediately after making setting to clarify the timing at which applet library callbacks, such as sleep and HOME Button, are enabled.
The application is not notofied of sleep and or pressing of the Power Button or HOME Button until this nn::applet::CTR::Enable function is called.
Due to this, the developers menu may accept key input if a demo has been executed via the debugger without calling this function.
Specifications were changed so that nn::boss:Task::StartImmediate fails if connection with the AP has not been spontaneously established first by a call to nn::ac::Connect.
The timing used to check whether the EULA agreement has been accepted has been changed.
This has been changed from when the box was opened (using MessageBox::OpenMessageBox) to the time data is written (using MessageBox::WriteMessage).
Specifications have changed when CecControl::StartScanning is called so that the system starts under ndm management. In the past operations were started directly by the daemon.
When performing communications other than chance encounter communications, under ndm management, that communication is allowed to end before starting operations.
(There is no change in daemon status immediately after StartScanning is called.)
Also, a bug was fixed where communications could not be started without calling StartScanning several times in the StopScanning function was called several times.
A bug was fixed where an error was sometimes returned when using the nn::cx::ReadUncomp function, regardless of whether data was correct.
Status indicating that the library is not initialized has been made public.
CLIENT_STATE_INVALID in the ClientState enumerated type indicates the client is in an uninitialized state.
SERVER_STATE_INVALID in the ServerState enumerated type indicates the server is in an uninitialized state.
Specifications have changed so that the cia files DlpClient and StereoCameraCalibrator are no longer included in the package because user applications can no longer be imported into NAND memory starting from CTR-SDK version 0.14.
Specifications were changed so that nn::friends::Login fails if connection with the AP has not been spontaneously established first by a call to nn::ac::Connect.
Revised member definitions so that the MiiData structure always has 4-byte integrity.
Access to members remains as in the past because it has been made a union.
Specifications have changed so that available memory in the save data archive can be obtained by GetArchiveFreeSize.
In addition, argument types have been standardized to match other API functions.
The nn::fs::GetFileSystemSize function was redacted.
The nn::fs::ReadExtSaveDataIcon function has removed from public view.
A function that gets the amount of memory used by expanded save data was added.
Result-related definitions not handled by applications were removed from fs_Result.h.
The type of FrameBuffer::DepthStencilBuffer::clearStencil in the GR library was changed form f32 to u8.
A bug was fixed where the 3D command buffer was not being appropriately copied to the command list object specified by the nngxAddCmdlist function.
The following graphics-related documentation was updated.
- $CTR_SDK/documents/DMPGL20/DMPGL20_specification.pdf
- Added a description of "DMP shadow"
- Regarding clamping texture coordinate r during shadow access
- Described cases where the attenuation factor does not work correctly
- Regarding the color components used in the shadow collection pass
- Added a supplement about the value region of shadow texture components
- $CTR_SDK/documents/DMPGL20/DMPGL20_programming_guide.pdf
- Made revisions regarding the rendering color used in the shadow collection pass
- Added Section 20.5, When the rendering result for polygons with the same vertext coordinates do not exactly match.
- $CTR_SDK/documents/DMPGL20/DMPGL20_system_API_specification.pdf
- Added details regarding the conditions required for clearing the framebuffer cache
- Revised the description of register 0x25f, which is involved with rendering functions.
- Described block image transfer
- Revised the description of nngxBindCmdlist function errors
- $CTR_SDK/documents/DMPGL20/VertexShaderReferenceManual.pdf
- Added a description of an option for checking shader integrity
There was a possibility that division by 0 might occur when STICK_CLAMP_MODE_MINIMUM (one of the slide pad clamp modes) was selected.
This problem was fixed.
Listed the various API Result return values and the various methods for handling them.
Broken links and typos in the API reference were also corrected.
A notification LED now lights.
Check that a notification is posted and that the LED notifies you when the HOME Menu is opened.
A bug was fixed where some prohibited words were being mis-recognized as no problem when detecting prohibited words.
The prohibited word list used when the system region is Japan and specifications allow communication with other regions has been changed by overloading the CheckProfanityWords function, which automatically selects the list to use and detects prohibited words.
A bug was fixed where execution would stop on an assert when the nn::snd::FxDelay destructor was called after calling nn::snd::FxDelay::ReleaseWorkBuffer.
The timing at which the callback function should be called when a voice drop occurs has been clarified in the nn::snd::AllocVoice function reference manual.
Listed the various API Result return values and the various methods for handling them.
Broken links and typos in the API reference were also corrected.
Although ResultSocketZeroReturnErr returns normally, the name has been been changed to ResultSocketZeroReturn so it is not limited to just errors.
Sample demos and the API reference have been revised due to this change.
Specifications have been revised so that a default value for each region is now used ResetSetting is executed with the Config tool. (Japanese language used to always result.)
A feature was added to DevMenu for setting the memory region at initial startup of the HOME Menu.
This is executed by going to the SExtData tab and pressing the Y Button.
A DNS setting feature was added to the NetworkSetting tool.
A bug was fixed where operations were not performed according to specifications if ctr-makeciaarchive32.exe did not specify the -rsf and --romfs-root options.
A bug was fixed where label names of the form "lN" (where "l" is a lowercase "L" and N stands for a number such as 0, 1, 2, ...) could not be interpreted correctly by the shader assembler ctr_VertextShaderAssembler32.exe.
The -check_consistency option has been newly added to the shader linker ctr_VertexShaderLinker32.exe for checking if a shader program is implemented.
For details, see Chapter 15, Shader Check Feature, in the vertext shader reference manual included in $CTR_SDK/documents/DMPGL20/VertexShaderReferenceManual.pdf.
The format of the RSF BasicInfo/ProductCode has been changed. .
If you use the old format, ctr_makerom will output a warning and change to the new format.
The new format can no logner be used starting from the next version.
For details, see the ctr_makerom reference page.
A bug with an extremely low frequency of occurrence was fixed where the Receive and ReceiveFrom functions would continue to block.
A bug was fixed where a Panic would result inside the ReceiveFrom function if endpoint was destroyed by the DestroyEndpoint function while the Receive function was blocking.
The nn::uds::NetworkDescription::CanConnectAsSpectator function was added beginning from CTR-SDK 0.14.
A bug was fixed where abnormal operations would result after re-initializing the system after sleeping it during UDS communications.
- The UBL library cannot be used.
- There is a bug where animations cannot be played correctly because illegal loop settings are written in the output file (
.bcwav) when converting a .wav file that includes loop settings and uses the same frame as the loop start and loop end.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
A bug was fixed where an invalid IP address was being set under the followign specific conditions during DHCP.
The GetStatus function was dangerous depending on how it was used and was deprecated because the IsConnected function has been added for getting whether the local system is issuing a connection request to the network.
A function for getting whether stereoscopic display is permitted has been added.
Specifications have changed so that the nn::applet::CTR::Enable function is called immediately after making setting to clarify the timing at which applet library callbacks, such as sleep and HOME Button, are enabled.
The application is not notofied of sleep and or pressing of the Power Button or HOME Button until this nn::applet::CTR::Enable function is called.
Due to this, the developers menu may accept key input if a demo has been executed via the debugger without calling this function.
A bug was fixed where the NsData::SetAdditionalInfo function would not work under CTR-SDK version 0.14.
A bug was fixed where BOSS would wake up when executing a task with an execution count of 0.
A bug was fixed where wireless operations could not enter power save mode due to BOSS.
An error would result if WHITE_BALANCE_NORMAL was set using the SetPackageParameterWithoutContext function.
This has been fixed so no error results by making settings equivalent to SetAutoWhiteBalance when a value other than WHITE_BALANCE_NORMAL has been set.
A bug has been fixed where the daemon would malfunction immediately after communications were started if there was only one box containing a message specified as "send only."
The timing used to check whether the EULA agreement has been accepted has been changed.
This has been changed from when the box was opened (using MessageBox::OpenMessageBox) to the time data is written (using MessageBox::WriteMessage).
Operations have been revised so that an attempt is made to reconnect without leaving a gap after connection with AP or NintendoZone when no chance encounter data has been set during sleep.
Reconnection is made using the interval set by the system.
Specifications have changed so a messge to users regarding the system's language setting is displayed on the lower screen when a FATAL error occurs.
(Existing error status information is displayed on the upper screen.)
In previous versions, switching between applications and the menu using the HOME Button was not being handled correctly and the correct Power Button sequence was not being performed because applications were being treated as if they did not exist within the developer's menu if the developer's menu was started while an application was halted.
This bug has been fixed.
A bug was fixed where the screen display would remain ON and execution would move to the application when an application was started from the development menu.
A feature for rebooting using the HOME Button during the display of a "card removed" error was added.
(This is currently being studied because it does not always work smoothly.)
A bug was fixed where there was a possibility of a malfunction without shutting down normally if the battery level was 0%.
The default value for backlight brightness has been changed from 4 to 5.
A bug was fixed where users waiting to establish friend relationships were being removed from the friends list.
Specifications have changed so that data can be reformated using the FormatSaveData function if data on the CTR card backup device becomes corrupted and a ResultCardBackupType1BadFormat or ResultCardBackupType1CommError error results.
Specifications have changed so that available memory in the save data archive can be obtained by GetArchiveFreeSize.
In addition, argument types have been standardized to match other API functions.
The result returned after a card application executed the MountSaveData function was an invalid value (ResultNotFormatted) when a CTR card without backup memory was inserted. Specifications have been revised so that the appropriate value (ResultCardBackupType1NoDevice) is returned.
A bug was fixed where resources would run out if the SD card was repeatedly inserted while a file or directory was open.
Directory attributes have been revised so that an ARCHIVE Attribute is not attached to a directory when it is created.
The timestamp format used to only support the update date and time, but now also support a creation date.
The path name check has been revised to correctly return an error if when an attempt is made to create an unnamed directory or file. Under the old path name check, this would succeed.
A function that gets the amount of memory used by expanded save data was added.
The internal format of save data and expanded save data has changed.
Reformatting or recreation is required because data created under previous versions of the CTR-SDK can no longer be used.
A bug was fixed where, depending on the timing, a fatal result that shouldn't be issued by the system would occur, or a NULL ASSERT would sometimes be generated within the CTR-SDK, if the card was removed while accessing backup memory.
Under old specifications, directories in an SDMC archive could not be deleted if a forward slash was included at the end of the path name, but this has been changed so that directories specified this way are deleted just as with other archives.
Access restrictions on the file system has been implemented.
With this implementation, code must be written as shown below inside AccessControlInfo for rsf files, when directly handling files on an SD card using functions such as nn::fs::MountSdmc.
FileSystemAccess:
- DirectSdmc
You can also code as indicated below when handling files on an SD card for debugging purposes only.
FileSystemAccess:
- Debug
A bug has been fixed where execution would freeze without issuing an insufficient resources error when many files and/or directories were open.
There was a problem where (314, 234) would occasionally result for touch panel data regardless of the actual toudh position.
This problem was fixed.
Specifications have changed so that any communications, even keep alive communications, are cut if the user issues an explicit Cancel or Finalize during communications.
(Keep alive communications are not cut off just as in the past once communications have ended.)
A bug was fixed where connection would be cutoff while the application was using the communication infrastructure.
This bug has been fixed.
A bug was fixed where beacons without VendorSpecificIE could not be found using ZoneAp scane.
A bug was fixed where it was hard to connect distant network nodes because send signal strength could not be increased by switching communication modes.
A notification LED now lights.
Check that a notification is posted and that the LED notifies you when the HOME Menu is opened.
A bug was fixed where prohibited words were not being checked correctly due to a a problem with the prohibited word list for the North American Region, Portuguese language.
A bug was fixed where the number of steps data that should normally have been counted would become 0 when getting the number of steps.
A bug was fixed where the system would not wake up from sleep normally at the time specified by the alarm.
A bug was fixed where control would not return from the polling function if a socket being polled was closed.
A bug was fixed where the system would hange in the middle of transting to the menu screen if the application exited without executing the nn::uds::Finalize function.
A bug was fixed where STATE_DISCONNECTED would result for the state returned returned by the GetConnectionState function, regardless of the expected state STATE_ERROR, after entering wireless OFF mode and going to sleep.
A bug was fixed where Clients would not correctly handle unconnected status when signal quality was extremely poor and there was a large volume of communication data.
- Demos started via the debugger do not run normally if the system is closed and the demo does not support sleep mode.
- The development menu does not start if the sleep/recover is repeated while power is on.
- System closed status, rather than sleep, results if the system is quickly opened and closed from sleep status.
- Sleep is not handled normally if sleep occurs during application or applet startup or shutdown.
- Sleep is not performed correctly if sleep is initiated immediately after pressing the HOME Button or Power Button.
- There is a problem where, depending on the timing, background communications are not being switched correctly when combining sleep and WiFi on/off switching.
- A FATAL error sometimes results if the uds::DestroyEndPoint function is called after recovering from sleep.
- Before displaying a FATAL error on screen, the upper and lower LCD screens sometimes distort, and then the LCDs go black without showing the FATAL error screen.
- The system sometimes down not sleep normally if the HOME Button is pressed during the display of a "card removed" error.
- The back light will stop lighting if the system is closed and opened again during display of a FATAL error screen.
- There is a problem where the chance encounter daemon sometimes returns SESSION_CLOSED and the chance encounter library then becomes unusable.
- Child devices downloaded from using DlpClient are removed upon restart.
Therefore, each time DlpClient is started, download must be made for child devices regardless of the version. Note that the child device can be booted after download.
- Noise was sometimes being introduced with sound sources satisfying the conditions listed below when using INTERPLATION_TYPE_LINEAR as the Voice interpolation method.
- Sources having a difference between adjacent samples of 32768 or higher when using 16-bit PCM
This would apply to a -6-dB square wave, for example.
Do not use INTERPOLATION_TYPE_LINEAR with sound sources that meet the above conditions.
Noise is not generated forsound sources that do not include a high-frequency component or sounds sources where the amplitude remains within 16384 when using 16-bit PCM.
- There is a bug where execution of firmware updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231). Do not run System Updater on this hardware.
- Save data access is not thread-safe.
This function was deleted because the sample could not be maintained due to insufficiency of the C language interface.
A fs initialization process was added to sample demos that use various nn::ac::Connect function.
Specifications have changed so that the nn::applet::CTR::Enable function is called immediately after making setting to clarify the timing at which applet library callbacks, such as sleep and HOME Button, are enabled.
The application is not notofied of sleep and or pressing of the Power Button or HOME Button until this nn::applet::CTR::Enable function is called.
Due to this, the developers menu may accept key input if a demo has been executed via the debugger without calling this function.
A bug has been fixed where there was a mistake in handling Result returned by the nn::boss::GetNsDataIdList function in demo code where any NSD IDs from the 32nd and beyond could not be obtained by the demo.
The timing used to check whether the EULA agreement has been accepted has been changed.
This has been changed from when the box was opened (using MessageBox::OpenMessageBox) to the time data is written (using MessageBox::WriteMessage).
A bug was fixed that would occur when writing files to SD card with the ProcTexEditor demo for editign procedural texture parameters.
Although ResultSocketZeroReturnErr returns normally, the name has been been changed to ResultSocketZeroReturn so it is not limited to just errors.
Sample demos and the API reference have been revised due to this change.
Operations have changed so that care is taken when entering WiFi OFF mode durign communications when an application was started in WiFi OFF mode so that the com_demo1 demo is slept and the HOME Menu is brought up.
Specifications have changed so that connections are made in Spectator mode by the uds/simple demo.
None.
In contrast to the description in the FS Function Reference Manual, the latency emulation function remained enabled by default even in the Release build. This was corrected so that it is disabled in the Release build.
- Of the tools in $CTR_SDK/tools/TargetTools/CTR-TS/Release, DevMenu.csu and FriendTool.csu cannot be run on the debugger.
- A problem caused the screen to distort when the RenderState class public variable (such as stencilTest) MakeCommand function was called.
- There is a bug where animations cannot be played correctly because illegal loop settings are written in the output file (.bcwave) when converting a .wav file that includes loop settings and uses the same frame as the loop start and loop end.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
In contrast to the description in the FS Function Reference Manual, the latency emulation function remained enabled by default even in the Release build. This was corrected so that it is disabled in the Release build.
- There is a problem with partial stability during sleep mode. Depending on the timing, the system does not always recover correctly from Sleep mode. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- There is a bug where execution of frame updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231).
- profiler.cia stops on an ASSERT when started from debugger software.
- Save data access is not thread-safe.
A problem caused an SD card not to be recognize correctly subsequent to being inserted/removed during Sleep. This problem was fixed.
This change was included in CTR-SDK 0.14.0.3 but was omitted from the change log.
A problem in the ngc library caused initialization to fail and the DESCRIPTION_ARCHIVE_NOT_FOUND to occur. This problem was fixed.
- Of the tools in $CTR_SDK/tools/TargetTools/CTR-TS/Release, DevMenu.csu and FriendTool.csu cannot be run on the debugger.
- A problem caused the screen to distort when the RenderState class public variable (such as stencilTest) MakeCommand function was called.
- There is a bug where animations cannot be played correctly because illegal loop settings are written in the output file (.bcwave) when converting a .wav file that includes loop settings and uses the same frame as the loop start and loop end.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
A problem caused a FATAL ERROR to occur when waking while half-awake. This problem was fixed.
However, some instability still exists in the sleep process, and recovering from the sleep state may not be possible, depending on the timing.
A problem caused an SD card not to be recognize correctly subsequent to being inserted/removed during Sleep. This problem was fixed.
This change was included in CTR-SDK 0.14.0.3 but was omitted from the change log.
- There is a problem with partial stability during sleep mode. Depending on the timing, the system does not always recover correctly from Sleep mode. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- There is a bug where execution of frame updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231).
- profiler.cia stops on an ASSERT when started from debugger software.
- Save data access is not thread-safe.
FATAL ERROR 0xD8E007FD was generated when a load was placed on the socket. This problem was fixed.
- Of the tools in $CTR_SDK/tools/TargetTools/CTR-TS/Release, DevMenu.csu and FriendTool.csu cannot be run on the debugger.
- A problem caused the screen to distort when the RenderState class public variable (such as stencilTest) MakeCommand function was called.
- There is a bug where animations cannot be played correctly because illegal loop settings are written in the output file (.bcwave) when converting a .wav file that includes loop settings and uses the same frame as the loop start and loop end.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
Fixed the problem that caused one of every two imports to fail when there was a child device that had been imported.
A problem caused MountSaveData to fail, even when it should succeed, after it had failed a single time. This problem was fixed.
A problem caused register values to be corrupted occasionally when stepping/tracing with the debugger. This problem was fixed.
- There is a problem with partial stability during sleep mode. Depending on the timing, the system does not always recover correctly from Sleep mode. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- There is a bug where execution of frame updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231).
- profiler.cia stops on an ASSERT when started from debugger software.
- Save data access is not thread-safe.
Bugs related to state transition and exclusive control of the HOME Button, Power Button and Sleep mode were fixed.
A bug was fixed where the shutdown process would not complete normally.
A bug was fixed where the number of steps was not being saved at shutdown.
- Among the tools located in $CTR_SDK\tools\TargetTools\CTR-TS\Release, DevMenu.csu and FriendTool.csu cannot be exectued by the debugger. Also, even though DlpClient.csu can be executed by the debugger, it does not work right due to a problem with importing and some behavior issues.
- The screen distorts if the MakCommand function is called with a public variable (such as stencilTest) of the RenderState class.
- There is a bug where animations cannot be played correctly because illegal loop settings are written in the output file (.bcwave) when converting a .wav file that includes loop settings and uses the same frame as the loop start and loop end.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
Bugs related to state transition and exclusive control of the HOME Button, Power Button and Sleep mode were fixed.
A bug was fixed where the shutdown process would not complete normally.
A bug was fixed where the number of steps was not being saved at shutdown.
- There is a problem with partial stability during sleep mode. Depending on the timing, the system does not always recover correctly from Sleep mode. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- In the last update a bug was fixed where an abort error would occur if stripping was continued using the debugger. However, there are now reports of cases where register values are sometimes being corrupted during step/trace execution.
We are still investigating the cause, and will release a bug fix package as soon as the cause is known.
- There is a bug where execution of frame updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231).
- profiler.cia stops on an ASSERT when started from debugger software.
- Save data access is not thread-safe.
A bug was fixed where "unknown card" was being displayed if a game card was inserted and removed several times repeatedly.
A bug was fixed where an abort would occur if step execution from the debugger or break point stops repeated.
- There is a problem with partial stability during sleep mode. Depending on the timing, the system does not always recover correctly from Sleep mode. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- There is a problem with handling transitions from each state: application execution, TestMenu display, HOME Menu display, applet display, Sleep mode, and Power Off mode. Depending on the exact combination of modes and their order, some state transitions cannot be made correctly. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- There is a problem with processing when shutting down power. Applications sometimes do not shutdown correctly.
In relation to this, an error occurs where play history information and step information is not saved correctly when shutting down power. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- There is a bug where execution of frame updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231).
- Startup from debugger software using the NEWPU command in profiler.cia is impossible.
- Save data access is not thread-safe.
Added functions for detecting HOME button presses and transitioning to the HOME Menu.
To detect HOME button presses, there are two methods: getting the button state with the nn::applet::CTR::GetHomeButtonState function, or setting a callback with the nn::applet::CTR::SetHomeButtonCallback function.
Both the nn::applet::CTR::PrepareToJumpToHomeMenu and nn::applet::CTR::JumpToHomeMenu functions can jump to the HOME Menu, but the nn::applet::CTR::ProcessHomeButtonIfPrepared function combines both the ability to detect HOME and to jump to the HOME Menu.
Although sleep-related notification callbacks (SLEEP, SLEEP_QUERY, AWAKE) are provided, the SLEEP notification callback mechanism has been removed.
The original SLEEP and SLEEP_QUERY notification callbacks are designed to be called consecutively. As such, if there is processing that used to be performed by the SLEEP notification callback, be sure to include it in the SLEEP_QUERY notification callback.
The applet::Initialize function was moved to nninitSetup in the StartUp API.
Applications no longer have to call this API.
A bug was fixed where the Initialize function would return failure on rare occasions.
Among capture mode setting made by the SetPhotoMode function, white balance was being updated, but parameters for mitigating individual product disparities measured at time of production were not being reflected. This bug has been fixed.
However, these parameters are not stored in systems manufactured prior to mid-August.
White balance settings have not changed for these systems.
We have changed behavior so that, if the camera is running when transiting from the application to an Applet, it moves into Standby mode just like when the cover is closed, and when a transition is made from the Applet to the application, the original running state is restored.
A feature has been added where saving data midway through communications is canceled, and Daemon execution is stopped, if StopScanning(b_Immediate = true) is specified.
A check has been added to see whether the EULA agreement required to run the application has been accepted.
If not accepted, MessageBox::OpenMessageBox and WriteMessage result in an error.
Because the fs feature is used to read out the EULA request version, you must call the nn::fs::Initialize function beforehand.
After setting a message using the CloseMessageBox function, the message is committed using the CommitMessageBox or MessageBox::WriteMessage function.
If power goes off without committing the message, status may roll back to that in place the last time a message was committed.
Operations have changed so that CecControl::StopScanning(true) is called automatically from functions, such as MessageBox::OpenMessageBox and MessageBox::WriteMessage, that access the chance encounter box.
Daemon status no longer needs to be changed to halted status before accessing the box.
If communications operations have already started at this time, the communication is canceled.
If you don't want communications cancelled, be sure to wait until halt status results using the GetCecStat or StopScanning functions.
An API function has been added to get whether the EULA agreement required to run the application has been accepted.
Program ID used to be used to specify child device programs, but this has changed so that they are specified using Unique ID and Child Index.
With this change, the following API functions and structures have also changed.
- API
- FakeClient
- StartScan, GetTitleInfo, StartFakeSession
- Server
- Structures
- ClientDiscoveredTitle, TitleInfo
We have settled on the error codes returned by the library.
For the error code returned by each API function, see the Reference Manual.
For development pruposes, the wireless channel used for communication by the server can now be specified.
You can specify the channel using the Server::OpenSession function.
With production models, the wireless channel is automatically forcibly selected.
The function FakeClient::DeleteScanInfo was added for freely deleting information from scan results.
In addition, the member lastUpdateTick, giving the Tick value at the time of the last update according to the scan, to the server information structure ServerInfo.
The blend code has been removed from the RebootInfo structure, representing information on re-connecting to the child device.
Specifications have changed so that the child device is forcibly downloaded when when forced import settings are enabled by the client using the Config tool.
With this change, the dlp::Server::ForceClientToDownload function formerly used by the server to force the client to download has been abolished.
It is now possible to specify the buffer size and number of buffers used to store data written from files on the server.
This can be specified using the server initialization function Server::Initialize.
The size of the buffer us specified in units called blocks that are burst-transferred from the server to the client.
Progress of client downloads used to be monitored by blocks, but because this has become variable, progress is now monitored in a fixed number of packets.
With this change, the types and names of related member in the ClientStatus structure, used to show client status, have been changed.
The CTR_NO_BANNER variable is not defined unless using banners and icons, but remains defined when only banners are not being used.
In addition, the variable CTR_NO_BANNER_ICON has been added for definition when not using banners and icons.
In order to stop the nnMain main function, serving as main() in the CTR-SDK, --keep=nnMain can now be specified as a linker option when using the CTR-SDK build system.
Added shared font data.
With CTR, applications will be imported to SD cards. They cannot be imported to system save memory.
Due to this, restrictions are placed on importing applications to system save memory.
A feature for importing applications to SD card is scheduled for inclusion in the SDK in a future release.
DevMenu, Config, and NetworkSetting can be imported to system save memory.
Also, related files that have become unnecessary, such as System Updater, DlpClient.cia, and StereoCameraCalibration.cia, have been removed from the release package.
The amount of memory that can be used by both development hardware and PARTNER-CTR Capture has been changed to 64MB.
Note that ROM accessing memory in excess of 64MB cannot be executed on development hardware for this reason.
The alignment restriction of 128 bytes has been restored due to a problem with memory leaks found when specifying a value larger than 128 for ExpHeap alignment.
nn::fnd::DateTime::GetParameters used to be a non-const member function, but has been changed to a const member function.
The pointer to Event has been removed from the arguments of the nn::friends::CTR::Logout function, and specifications have changed so the function no longer blocks.
We made it so users can get Miis and profile updates from their friends.
The enumerators NOTIFICATION_FRIEND_MII and NOTIFICATION_FRIEND_PROFILE have been added as notification types to the enumerated class NotificationType.
The function SetNotificationMask has been added for filtering the notification type being received.
Use newly added members of the enumerated class NotificationMask in arguments.
The functions UpdateGameMode and SendInvitation, related to match-making and invitation capabilities have been removed, because those features will not be available at launch.
Given this, game mode update notifications and invitation receipt notifications have been removed from the default notification mask.
The function UnscrambleLocalFriendCode has been added for unencoding encrypted local friend codes that can be obtained from UDS communications.
Note, however, that only the local friend code of one's own friends can be decoded by this function.
API functions for getting one's own friend code or other friend code, and API functions and constants no longer necessary because these codes cannot be obtained, have been removed.
Specifically, the following declarations have been deleted.
GetMyLocalFriendCode
GetMyFriendKey
IsIncludedInFriendList
FriendKeyToFriendCode
PrincipalIdToFriendCode
FriendCodeToPrincipalId
FriendCodeToFriendKey
IsValidFriendCode
INVALID_FRIEND_CODE
The API function for getting screen names and Miis, which used to be obtained together up to this version, has been split up.
To get screen names, use the GetMyScreenName or GetFriendScreenName functions.
The MiiInformation structure has therefore been abolished, and a MiiData data structure for storing only Mii-related data has been added.
Specifications have changed so that non-ASCII characters that may be included in the obtained screen name of a friend outside one's own font region will be converted to questions marks (?) for display purposes.
Note, however, that this variable can be suppressed through specification of an argument to the GetFriendScreenName function.
In addition, the font region of the friend with the screen name can also be obtained using the GetFriendScreenName function.
A bug was fixed where paths included ".." would be rejected by assert.
A problem was fixed with memory shortages caused by repeatedly opening and closing files and/or directories using HioArchive.
A bug was fixed where existing files were being overwritten when HioArcive went to open a in Create mode and the file already existed.
The restriction that functions for registering and unregistering SD card insertion/removal events (nn::fs::RegisterSdmcInsertedEvent, UnregisterSdmcInsertedEvent, RegisterSdmcEjectedEvent, and UnregisterSdmcEjectedEvent) cannot be used repeatedly has been eliminated.
Added the function nn::fs::[Try]CreateFile for creating a file of the specified size having the specified path name.
This function must be used when creating an extended save data archive file.
The function nn::fs::CommitSaveData has been added for save data that has been duplicated.
This function targets save data archives with duplicated data whose isDuplicateAll argument has been set to true by the nn::fs::FormatSaveData function.
Save data is committed calling the nn::fs::CommitSaveData function and passing it the name of the mounted save data archive as an argument.
Data in a save data archive with duplicated data is not valid unless comitted.
If the archive is unmounted without being comitted, or if execution terminates on an error, save data will be rolled back to the state in effect the last time the nn::fs::CommitSaveData function was called.
Result, returned by the file system, has been replaced with an official specification.
Also, note that the operators "==" and "!=" can no longer be used with Result, returned by the file system.
Up to this version, low-level hardware was being written (flushed) every time a Write function was called to write to a file. This has been changed so flushing is not guaranteed unless the user specifically orders it.
With this change, bool flush (true by default) has been added as the last argument to Write-related functions of the nn::fs::FileStream class.
The [Try]Flush function has also been added just for performing flushes.
With Debug and Development builds, the fact that there was a flush instruction is asserted immediately before closing a file.
Support has been added for guaranteeing the completeness of extended save data and shared extended save data.
With this added support, files can no longer be created even if OPEN_MODE_CREATE is specified for OpenMode to the function OpenFile.
Be sure to use OpenFile only after having called CreateFile first.
Expaneded save data can now be created on SD Cards.
It is no longer possible to create file of size 0 in expanded save data memory.
The same is true for icon size when creating expanded save data.
The CreateAndMountExtSaveData and FormatAndMountExtSaveData functions were deleted.
Arguments for returning the media have been removed from the CreateExtSaveData and MountExtSaveData functions.
Made the following changes in the GR library.
- Important Changes
- Added the Vertex::MakeDisableCommand class method for disabling all vertex attributes
- Revised the Vertex::MakeDisableAttrCommand member function for disabling only enabled vertex attributes
With the above changes, compatibility with rendering API function that disable vertex attributes has been lost.
Note that the GPU will hang if these functions are used incorrectly.
For details on usage, see the GR library demo.
- Addition of Features
- Added the FrameBuffer class for creating framebuffer-related GPU commands
- Added the ProcedureTexture class for creating procedural textures
- Added the Shadow class for setting shadow registers
- Added a feature for enabling polygon offset even if the W-buffer is enabled
- Bug Fixes
- Fixed a problem with the Vertex::MakeDrawCommand function for creating commands required during rendering kick
- Fixed a problem with the loop count of the for statement in the Fog::SetTable function used to scan lookup tables
- Fixed a problem with asserts being generated by Shader::SearchBindSymbol( BindSymbol*, const u8 )
- Fixed a problem where the UnitBase class was inheriting private when using Unit1 and Unit2 of the Texture class
- There was a problem with casting bool RenderState::StencilTest.isEnableWrite as bool type, so this was changed to bit8 RenderState::StencilTest.maskOp.
Up to this version, function supporting the direct creation of the nngx command list existed only as header definitions. The following functions have been added starting with this version.
The following functions have been added.
- nngxUpdateBuffer
- nngxGetPhysicalAddress
- nngxMoveCommandbufferPointer
A 3D command load end command has been added as a bound command list object, and the nngxFlush3DCommand function has been added for creating 3D run command requests.
Unlike the nngxSplitDrawCmdlist, the processing described above is not performed if 3D commands do not accumulate during the function call.
The internal implentation of command request processing by the graphics driver has been improved, and the load on the CPU caused per request has been reduced.
Note, however, that this change causes execution to actually take longer to stop when the nngxStopCmdlist function is called during command list execution.
The following graphics-related documents were updated.
- $CTR_SDK/documents/DMPGL20/DMPGL20_programming_guide.pdf
- $CTR_SDK/documents/DMPGL20/DMPGL20_specification.pdf
- Clarified that shadow textures and gas textures cannot use mipmaps
- Corrected a mistake.
- $CTR_SDK/documents/DMPGL20/DMPGL20_system_API_specification.pdf
- Supplemented the frame buffer access control setting register
- Added a description of clearing the texture cache
- Changed the method of setting register 0x227
- Added the new function nngxFlush3DCommand
gx_MacroFragment.h
- Made the following changes because the name of enumerated constants was wrong compared to the GPU specification manual (setting registers for fragment lighting lookup tables)
- PICA_DATA_SAMPLER_FB -> PICA_DATA_SAMPLER_RB
- PICA_DATA_SAMPLER_FG -> PICA_DATA_SAMPLER_RR
- Revised a typo in the macro argument name (lutEnabledRef1 was changed to lutEnabledFefl)
gx_MacroTexture.h
- It used to be possible to set the phase and amplitude of noise in the U and V directions of each procedural texture in both the upper and lower 16 bits of the GPU registers (0xa9 and 0xaa). However, only one argument can be accepted by macros for setting these values (PICA_CMD_DATA_PROCTEX_DATA1 and PICA_CMD_DATA_PROCTEX_DATA2). Specifications have therefore changed so that the two 16-bit values are now taken and used to create a 32-bit value.
gx_MacroMisc.h
- Changed code internally so that dstAlpha is cast as u32 type, because a Warning was being issued when assigning a value to the dstAlpha argument of PICA_CMD_DATA_BLEND_FUNC_SEPARATE(...) macro.
- gx_MacroReg.h
- Added a function reference for the enumerated type PicaReg
- gx_MacroOld.h
- Moved the old enumerated constants PICA_DATA_SAMPLER_FG and PICA_DATA_SAMPLER_FB
The following two problems with the line shader included in CTR-SDK have been fixed.
- A problem where the display was incorrect when the W-buffer was enabled
- A problem where lines were not being displayed as connected correctly
A bug has been fixed where models were not being displayed correctly due to a problem with the settings being made when drawing using the glDrawArrays function while using the vertex buffer.
There was also a problem with the description in $CTR_SDK/documents/DMPGL20/DMPGL20_system_API_specification.pdf. This has also been fixed.
A bug was fixed where correct count data was not being returned to the GyroscopeReader::Read and GyroscopeReader::ReadLatest functions.
The function ?? has been added for continuously adusting and normalizing slide pad data.
In addition, the SetNormalizeStickScaleSettings function has been added for setting parameters used by the NormalizeStickWithScale function, and the GetNormalizeStickScaleSettings function has been added for getting current parameters.
A problem was fixed with nn::hid::GyroscopeReader where data loaded immediately after recovering from sleep was sometimes invalid.
A problem was fixed where the coefficient specified using the nn::hid::GyroscopeReader::SetAngleMagnification function was not being reflected at load time.
The maximum clamp values for the slide pade have been changed as follows.
- Circular clamping: the old value of 46 has been changed to 40
- Cross clamping: the old value of 41 has been changed to 36
Final specified values have been determined for the following acceleration sensor-related constants included in the HID library.
MAX_OF_ACCELEROMETER_VALUE
ACCELEROMETER_VALUE_PER_1G
- ACCELERATION_SCALE_PER_1G
MAX_OF_ACCELEROMETER_PLAY
- ACCELEROMETER_SENSITIVITY_SCALE_SHIFT
MAX_OF_ACCELEROMETER_SENSITIVITY
The initial clamp mode STICK_CLAMP_MODE_MINIMUM was added to the clamp modes specifiable to the SetStickClampMode function.
A bug was fixed where the startup status of the HostIO Daemon could not be obtained normally using GetHioDaemonStatus.
Fixed a bug where execution would hang when the HostFile class was being used by multiple threads.
The SetOption and GetOption functions for specifying encoding options were added.
The JPEG_DECODER_OPTION_MATCH_WIDTH_HEIGHT option for specifying during decoding that only images of a given specified size be decoded has been added.
The image quality of decoded results has been improved.
A problem where the value returned by the GetForbiddenArea function was wrong when the gain was 32 has been fixed.
The SetClamp function for setting whether to use clamping in the guaranteed input range for mic data and the GetClamp function for getting the current clamp setting have been added.
Clamping is enabled by default.
Changed part of the guaranteed input range for mic data.
- TYPE_8BIT_GUARANTEED_INPUT_MIN Changed from 28 to 27
- TYPE_8BIT_GUARANTEED_INPUT_MAX Changed from 227 to 228
- TYPE_SIGNED_8BIT_GUARANTEED_INPUT_MIN Changed from -100 to -101
- TYPE_SIGNED_8BIT_GUARANTEED_INPUT_MAX Changed from 99 to 100
Added the NEWS library.
Note, however, that posting messages always fails because settings are such that the news daemon does not start by default under CTR-SDK 0.14.
As of 2011/11/1, there is no way to check the message list, so be sure to check it after the HOME menu is made public.
A list of prohibited word patterns for North American region Portuguese has been added.
Definitions for the ProfanityFilterPatternList have also been added.
A problem has been fixed where some old notations remained in the NGC library function reference.
Added the InitializeMemoryBlock function to allow the use of the MemoryBlock class and StackMemoryBlock class.
This was actually changed in CTR-SDK 0.10 but was accidentally omitted from the change log.
Revised specifications so this is not used by default because the OS library automatically uses one Mutex internally.
(Note, however, that one Mutex is created internally when using StackMemoryBlock or the thread AutoStack feature.)
The Initialize and Finalize functions in the nn::pl namespace have been abolished so that functions in the nn:pl namespace can be called without prior preprations.
Added an interface for mounting shared fonts.
A library for getting step information recorded by the system has been added.
Plans call for making the reference public within a few days.
The result code ResultInvalidValue has been added as a value that might be returned by the newly established nn::rdt::CTR::SetLogLevel function.
Specifications have changed so that log output made within the RDT library can be turned on and off.
The log output level can be set using the nn::rdt::CTR::SetLogLevel function.
Use the nn::rdt::CTR::GetLogLevel function when getting the current log output level.
Settings are such that there is no log output by default.
A bug was fixed where inappropriate assert conditions were being used for confirming that context information had been set when playing ADPCM data using Voice.
This was actually changed in CTR-SDK 0.13 but was accidentally omitted from the change log.
The OutputCapture class has been added to provide a means of getting DSP final output from a thread other than a sound thread.
SetupBcWave used to set parameters (volume and pitch) not included in bcwave, but this has been abolished.
const is now used with the arguments nn::snd::Voice::SetMonoFilterCoefficients and nn::snd::Voice::SetBiquadFilterCoefficients.
To match the specifications of other Voice API functions, API functions have been added for getting and setting filters used for reference passing.
In addition, this fact has been added to the reference, because APIs that pass pointers provided up to this point were scheduled for future removal.
It has not yet been decided when these APIs will be removed.
Although it was previously only possible to use either monopole filters or biquad filters as Voice filters, the option nn::snd::FILTER_TYPE_BOTH has been added for using both types.
In addition, the Enable{Mono,Biquad}Filter functions for setting on/off separately for each filter have been added.
A bug has been fixed where FilterType and filter coefficients were not initialized when getting Voice.
The specifications of the the SetPriority function have changed as follows.
- The priority specified when executing AllocVoice cannot be changed if VOICE_PRIORITY_NODROP is specified.
- If the priority specified when executing AllocVoice is other than VOICE_PRIORITY_NODROP, the priority cannot be changed to VOICE_PRIORITY_NODROP.
Effects controlled by the cPU (reverb and delay) have been added.
For details, see the reference manual entries for the nn::snd::FxDelay class, nn::snd::FxReverb class, nn::snd::SetEffect, and nn::snd::ClearEffect.
A bug has been fixed where noise would occur during recovry from sleep if a sleeping application was using Aux callback processing.
A bug has been fixed where the nn::snd::GetDroppedSoundFrameCount function was returning illegal values even thought nn::snd::ClearDroppedSoundFrameCount was called.
A bug was fixed wheree an exception was finally being generated in AllocVoice if AllocVoice was repeatedly executed and the number of available voices was gradually decreased.
Made the following changes to the Config tool.
- Corrected the values being set by the feature for changing some calibrartion values as provided for checking stereo camera calibration. (Although rotation around the optical axis was set to 45 degrees counterclockwise in the past, with revisions to this function, it is now set to 90 degrees clockwise.
- Fixed a bug where execution would freeze if [Ctr Info Setting] was started without a setting filter for the SD card
- Added a feature for selecting whether to forcibly import download play child devices
- Revised specifications so that Minor and Major can be distinguished in the Ctr Info Setting Eula version display
- Added a feature that allows CtrInfoSetting to make detalied settings for the system setting country and language setting
Made the following changes to the DevMenu.
- The display of the program list screen has changed to show the selected program type, version information, and owned storage capacity
- Changed behavior so an error dialog appears when available memory is insufficient when importing to NAND
- Changed specifications so that pressing the HOME Button during execution returns to the development home menu
- Fixed a bug where the cia file displayed first in the list was not being imported by the feature for importing all cia files.
- Changed specifications so that firmware updates can be made
(After the corresponding cia file is imported, update is performed by pressting the Start + Y Buttons while the cursor is aligned with that cia file.)
A connection text feature was added to the NetworkSetting tool.
The following items were added to RSF. BackupMemoryType… Specifies the backup memory type. This specification is always required. UseExtSaveData, ExtSaveDataNumber…Specify these items when using expanded save data.
For details, see the associated reference pages.
Changed specifications so that "no looping" is set in the bcwav file output if the loop start and loop end frames in a wave file are the same frame.
The following changes have been made to ctr_TextureConverter32.exe.
- Changed specifications so that only actual data is output without outputting texture information if the -dsl option has been specified.
- Changed the ctr_TexturePackager32 error message to English
- $CTR_SDK/documents/TechnicalNotes/TexturePackagerLibrary/TPLRuntime.pdf and $CTR_SDK/documents/TechnicalNotes/TexturePackagerLibrary/TPLTexturePackageTool.pdf,
- A bug was fixed where conversion was not carried out correctly when a format other than ETC1 was specified when using images with a height and width of 1024.
- <texture> Fixed a bug where a mipmap was not being created until the level specified by a node's miplimit attribute.
- Fixed a bug where the dir attributes of nodes were not being handled properly
The Australian region has been abolished. Now that it has been integrated with the European region, Australia has been removed as a BSF Region option.
Specifications have changed so that ctr_makeciaarchive32.exe can be directly executed.
The manual ctr_makeciaarchive, which gives information on how to use ctr_makeciaarchive32.exe, has also been added.
Added the -j NUM option to makerom.
This allows you to specify the number of parallel processes to makerom.
When it is not specified, the CPU core count for the execution environment is acquired, and that value is used.
Added ctr_loadrun32.exe for controlling the debugger.
Values in the range x200 to 0xf7fff could be specified for the UniqueID, but this has been changed to values from 0x300 to 0xf7fff.
Improvements were made to makrom performance.
A tool for building friend relationships using the friends library has been added to $CTR_SDK/tools/TargetTools/CTR-TS/Release/FriendTool.csu.
The MAX_MIPMAPLEVEL macro hame has been changed to NN_TPL_MAX_MIPMAPLEVEL.
An API for getting the number of textures included in a texture package file has been added.
The function DisallowToConnect for prohibiting new client connections and communicating only with currently connected nodes, and the function AllowToConnect for canceling that status, have been added.
Along with revising the link level during communications, the radio signal strength of the network found by scanning has also been adjusted.
The error code ResultMalformedData has been added for return when there is a possibility that network information obtained using the nn::uds::Scan function has been modified.
The function SetMaxSendDelay has been added for setting the maximum send delay when executing the SendTo function without specifying the NO_WAIT option.
Added members to the nn::uds::ConnectionStatus structure so that the nn::uds::GetConnectionStatus function is now able to get the number of nodes currently connected to the network, the maximum number that can connect, and other similar information.
Specifications have changed so that the ResultOutOfRange error is returned. In the past, the error ResultOutOfResource, which there was no reason to expect, used to be returned if the nn:uds::CreateNetwork function was exectued with maxEntry=1.
To protect privacy, changed the friendCode member of the NodeInformation structure to 96-bit encrypted data.
The newly added scrambledLocalFriendCode can convert to a local friend code via the friends library.
ResultMiscellaneousSystemError was added to indicate errors caused by temporary system status that can be resolved by retrying.
All API function in the UDS library other than Initialize and Finzlise may return this error code in Result.
Deleted the not yet impleted function nn::uds::SetNetworkAttribute.
The feature scheduled for provision using this function will be provided by a different API function.
The method of calculating the link level display during UDS communications has been revised so that more closely indicates actual communication status.
Although we recommended that you execute the DisconnectNetwork function even if connection as a Client or Spectator was lost during operations, the function has been removed because it is not needed by the system.
Applications do not need to care about this change because there is no problem with execution.
Due to a problem with the ResultDeniedFromMaster error beign returned, specifications have changed so that ResultAlreadyNetworkIsFull is returned when ConnectNetwork has been executed on a network whose number of nodes have reached the maxEntry value specified by Master.
The StereoCamera class can now be copied.
Because changes in Note 48-111 were not complete, some functions remained unsupported. This has been fixed.
Operations were unstable when using this contructor because some member variables were not being initialized by the ulcd::StereoCamera function.
This problem was fixed.
A problem where 3D volume values were not being tracked has been fixed.
Added a class for calculating CRC-8, CRC16, CRC16/CCITT, CRC32, and CRC32/POSIX.
- Sometimes the message "Unknown Card" appears and the system freezes if the card is inserted and removed multiple times on the DevMenu.
- The screen distorts if the MakCommand function is called with a public variable (such as stencilTest) of the RenderState class.
- There is a bug where animations cannot be played correctly because illegal loop settings are written in the output file (.bcwave) when converting a .wav file that includes loop settings and uses the same frame as the loop start and loop end.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
A bug was fixed where the CancelConnectAsync function would even affect connection processing being performed by other processes.
A problem was fixed where execution execution would abort if the Wi-Fie switch was turned off at a particular time during connection processing.
A problem was fixed where execution execution would abort if the Wi-Fi switch was turned off at a particular time during connection processing.
A bug was fixed where execution would eventually fail if the Connect function and Close function were continuously called in conjunction with each other.
A bu was fixed where sometimes there was no return from the Connect/ConnectAsync functions.
A bug was fixed when calling the CancelConnectAsync function at a time before or after connection was completed where the system was stuck in a status where disconnection was impossible even if the Close function was called even though the state was connected.
A function was added for specifying the AP type to be connected to to meet demand for connecting only to network setting 2 or only to NintendoZone.
A barrage of HOME Button presses would sometimes cause the service manager message queue to become full because processing in the determination routine could was not finished in time.
Revised specifications so that there is no problem with repeatedly pressing the HOME Button.
A bug was fixed where the Initialize function would return failure on rare occasions.
Among capture mode setting made by the SetPhotoMode function, white balance was being updated, but parameters for mitigating individual product disparities measured at time of production were not being reflected. This bug has been fixed.
However, these parameters are not stored in systems manufactured prior to mid-August.
White balance settings have not changed for these systems.
We have changed behavior so that, if the camera is running when transiting from the application to an Applet, it moves into Standby mode just like when the cover is closed, and when a transition is made from the Applet to the application, the original running state is restored.
The timing at which playback of the shutter sound is allowed to start has been changed from the time up to the cover is closed to the time up to the system enters sleep mode.
ROM access of the card was being performed under illegal driver settings when performing both UIC-MIDI access and executing Mount ROM for a card at the same time.
Software has been revised so that ROM access is performed using the correct driver settings even when there are such conflicts.
A feature has been added where saving data midway through communications is canceled, and Daemon execution is stopped, if StopScanning(b_Immediate = true) is specified.
A check has been added to see whether the EULA agreement required to run the application has been accepted.
If not accepted, MessageBox::OpenMessageBox and WriteMessage result in an error.
Because the fs feature is used to read out the EULA request version, you must call the nn::fs::Initialize function beforehand.
After setting a message using the CloseMessageBox function, the message is committed using the CommitMessageBox or MessageBox::WriteMessage function.
If power goes off without committing the message, status may roll back to that in place the last time a message was committed.
Operations have changed so that CecControl::StopScanning(true) is called automatically from functions, such as MessageBox::OpenMessageBox and MessageBox::WriteMessage, that access the chance encounter box.
Daemon status no longer needs to be changed to halted status before accessing the box.
If communications operations have already started at this time, the communication is canceled.
If you don't want communications cancelled, be sure to wait until halt status results using the GetCecStat or StopScanning functions.
An API function has been added to get whether the EULA agreement required to run the application has been accepted.
Program ID used to be used to specify child device programs, but this has changed so that they are specified using Unique ID and Child Index.
With this change, the following API functions and structures have also changed.
- API
- FakeClient
- StartScan, GetTitleInfo, StartFakeSession
- Server
- Structures
- ClientDiscoveredTitle, TitleInfo
We have settled on the error codes returned by the library.
For the error code returned by each API function, see the Reference Manual.
In past versions, transition to error status for both clients and the server would occur only during communications for errors where transition is triggered by sleep, WiFi Button OFF.
For development pruposes, the wireless channel used for communication by the server can now be specified.
You can specify the channel using the Server::OpenSession function.
With production models, the wireless channel is automatically forcibly selected.
The function FakeClient::DeleteScanInfo was added for freely deleting information from scan results.
In addition, the member lastUpdateTick, giving the Tick value at the time of the last update according to the scan, to the server information structure ServerInfo.
The blend code has been removed from the RebootInfo structure, representing information on re-connecting to the child device.
Specifications have changed so that the child device is forcibly downloaded when when forced import settings are enabled by the client using the Config tool.
With this change, the dlp::Server::ForceClientToDownload function formerly used by the server to force the client to download has been abolished.
It is now possible to specify the buffer size and number of buffers used to store data written from files on the server.
This can be specified using the server initialization function Server::Initialize.
The size of the buffer us specified in units called blocks that are burst-transferred from the server to the client.
Progress of client downloads used to be monitored by blocks, but because this has become variable, progress is now monitored in a fixed number of packets.
With this change, the types and names of related member in the ClientStatus structure, used to show client status, have been changed.
A bug was fixed where execution would not return when calling the nn::dsp::LoadDefaultComponent function.
A bug was fixed where power could not be turned on or a red LED light would flash if an MCU update during System Updater startup for the second stage resulted in illegal status.
With CTR, applications will be imported to SD cards. They cannot be imported to system save memory.
Due to this, restrictions are placed on importing applications to system save memory.
A feature for importing applications to SD card is scheduled for inclusion in the SDK in a future release.
DevMenu, Config, and NetworkSetting can be imported to system save memory.
Also, related files that have become unnecessary, such as System Updater, DlpClient.cia, and StereoCameraCalibration.cia, have been removed from the release package.
A bug was fixed where power would suddenly turn on once a certain amount of time had elapsed since development hardware power had been turned off.
The amount of memory that can be used by both development hardware and PARTNER-CTR Capture has been changed to 64MB.
Note that ROM accessing memory in excess of 64MB cannot be executed on development hardware for this reason.
Specifications of the development menu, which launches after PARTNER-CTR Debugger power is turned on, have been made to match those of development hardware.
The following operations are possible on the Development Menu.
- Starting DevMenu with the START button
- Starting CTR card applications with the A Button
- Exiting currently halted applications (status transited to from the application using the HOME Button) using the B Button
A bug has been fixed where the screen display would distort momentarily after starting development hardware or PARTNER-CTR Capture.
We made it so users can get Miis and profile updates from their friends.
The enumerators NOTIFICATION_FRIEND_MII and NOTIFICATION_FRIEND_PROFILE have been added as notification types to the enumerated class NotificationType.
A delay of about 20 seconds has been included between autonomous daemon startup and entering online status.
A bug has been fixed where the local friend code obtained by friends::GetMyLocalFriendCode was being replaced each time the system was started.
Specifications have changed so that non-ASCII characters that may be included in the obtained screen name of a friend outside one's own font region will be converted to questions marks (?) for display purposes.
Note, however, that this variable can be suppressed through specification of an argument to the GetFriendScreenName function.
In addition, the font region of the friend with the screen name can also be obtained using the GetFriendScreenName function.
A bug was fixed where the system would freeze if the operations [Open] > [Read/Write near end of file] > [Close] was repeated multiple times on a fragmented file in the FAT.
Support has been added for a time stamp when accessing an SD memory card.
A bug has been fixed where SD Card access would become impossible if the nn::fs::MountSdmc function was executed at the same time as a multiple thread process.
An internal deadlock would sometimes occur when a function causing access to the card slot was called while nothing was inserted in the card slot.
This was fixed because it would result in a problem where card slot-related device functions such as UIC-MIDI would not return.
Result, returned by the file system, has been replaced with an official specification.
Also, note that the operators "==" and "!=" can no longer be used with Result, returned by the file system.
A feature was added for virtually reproducing latency that can occur due to device status and/or attrition.
The emulation feature is enabled for debug or development builds. Although it is disabled for release builds, it can be explicitely specified using the nn::fs::ForceEnableLatencyEmulation and nn::fs::ForceDisableLatencyEmulation.
Note, however, that this mode is disabled in the production environment (for both release builds and mass produced hardware).
Once files in the FAT file system became fragmented beyond a certain allowable range, they could no longer be used and an error would always be returned.
This problem has been corrected and behavior changed so that any file can be used no matter how fragmented.
This was actually changed in CTR-SDK 0.13 but was accidentally omitted from the change log.
Behavior has been changed when the backlight brightness level is set to 4 or 5 under system settings so that actual backlight brightness will vary depending on whether an AC adapter is plugged into the system.
Specifications have changeed so that some low-level processing of the graphics driver that used to be handled in the same CPU core as the application is now handled in the system CPU core.
The execution speed of read and ReadLatest in the Reader class used to load sampled data from various devices has been increased.
Specifications have been changed so that an error is returned by the ResultKeepAliveDisconnected function when communications have been disconneded due to a server timeout when sending a LazyPost using keep alive communications.
A bug has been fixed where a space (a single character) could not be entered after "[Label_name]" only in the case of original header fields.
The SetClamp function for setting whether to use clamping in the guaranteed input range for mic data and the GetClamp function for getting the current clamp setting have been added.
Clamping is enabled by default.
Added the NEWS library.
Note, however, that posting messages always fails because settings are such that the news daemon does not start by default under CTR-SDK 0.14.
As of 2011/11/1, there is no way to check the message list, so be sure to check it after the HOME menu is made public.
An update has been made to the latest version of the prohibited word pattern list.
Processing for stopping operations when a card is removed have been implemented.
Execution stops when a card is pulled while an application from that card is running.
Added the InitializeMemoryBlock function to allow the use of the MemoryBlock class and StackMemoryBlock class.
This was actually changed in CTR-SDK 0.10 but was accidentally omitted from the change log.
Upper limits have been established for the followign OS library objects.
Note that an error will result if an attempt is made to create more objects than given by the upper limit.
- Thread Max. 32
- Event Max. 32
- Mutex Max. 32
- Semaphore Max. 8
- Timer Max. 8
The time required to start the debugger when an SD card is inserted has been reduced.
Overall performance has been adjusted.
Although execution is slower in some cases, overall performance is improved.
Fixed a bug where IP address collisions were not being detected.
Fixed a bug where EV certificates were not being authenticated correctly.
The following items were added to RSF. BackupMemoryType… Specifies the backup memory type. This specification is always required. UseExtSaveData, ExtSaveDataNumber…Specify these items when using expanded save data.
For details, see the associated reference pages.
A bug was fixed where NETWORK_IS_AVAILABLE would result in some cases without being abiel to get the correct reason for disconnection when disconnected from the network while communicating with a Client or Spectator.
A bug was fixed where connections could only be made to one node less than the maximum number of nodes specified using the CreateNetwork function.
A bug was fixed where connections to or disconnections from a client were not handled correctly when communication data volume was high, particularly when carryining out communications with many other nodes.
A bug was fixed where nn::uds::Initialize would not terminate if executed during wireless OFF mode.
There was a bug where the SendTo function would succeed (no reception) when one's own node ID was specified in destNodeId when using the nn::uds::SendTo function. This was fixed so that a ResultInvilidNode error is returned instead.
A bug was fixed where detection of disconnection was not being handled correctly when the number of connected nodes would increase or the amount of packets being sent/received would increase.
- There is a problem with partial stability during sleep mode. Depending on the timing, the system does not always recover correctly from Sleep mode. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- There is a problem with handling transitions from each state: application execution, TestMenu display, HOME Menu display, applet display, Sleep mode, and Power Off mode. Depending on the exact combination of modes and their order, some state transitions cannot be made correctly. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- There is a problem with processing when shutting down power. Applications sometimes do not shutdown correctly.
In relation to this, an error occurs where play history information and step information is not saved correctly when shutting down power. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- Stop/trace execution could not be carried out normally by the PARTNER-CTR debugger. Since this is a fatal problem with no workaround available, a bug fix package will be releases as soon as the cause is known.
- There is a bug where execution of frame updates stops in the middle and recovery becomes impossible if System Updater is executed on development hardware whose serial number starts with AAA (e.g. AAA300001231).
- Startup from debugger software using the NEWPU command in profiler.cia is impossible.
- Save data access is not thread-safe.
The number of bits used for size in the CommandBuffer3d structure in the lib_demo library was mistakenly set to 8 bits, but this has been changed to the correct value of 7 bits.
The number of bits of reserved memory aver that has also been changed from 3 bits to 4 bits.
An argument allowing the programmer to select whether to fill the texture buffer with black has been added when executing the RenderSysten::Initialize function.
Although a feature for accessing non-volatile memory on the card was previously executed by default, this is now made to operation using button operations (X+A) without executing at demo1 startup.
Specifications have changed so that the nn::fs::MountRom function is now called by the lib_grfw library for GR library demos.
The heap size allocated by the lib_grfw frame work library for GR library demos has been changed from 32 MB to 20 MB.
The demo ProcedureTexture has been added for rendering patternas such as flames and water surfaces using the procedural texture class of the GR library.
Added the demo ProcTexEditor for editng procedural texture patterns and rendering the results.
A bug was fixed where code in the rsf demo program was not apprpriate and there were problems where communication was impossible.
Codes and comments that could lead to misunderstandings such as whether the RDT library supports broadcasting were removed from the basic sample demo.
A sample demo was added for obtaining final DSP output asynchronously from sound threads using the OutputCapture class.
Sample demos have been revised to that exclusive control is performed for functions whose Voice operations are not thread safe.
For details on thread safe, see the Function Reference.
None.
Increased speed when opening files from ROM archives.
- If you run Ctr Info Setting in the
Config tool when a settings file is not present on the SD Card, the system will freeze.
- After you have connected to and finished communicating with your first StreetPass partner, you cannot communicate with another partner. Both systems must be reset to communicate again.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
The change log entry for Note 47-06 erroneously stated that capturing does not resume when the system is closed and then opened again. Capturing does resume automatically, so there is no need for the application to provide any special support for opening/closing the system.
The Known Issues with System Updater in SDK Version 0.13.0 section of the change log contained the following mistakes.
- [Incorrect]
Running the NN_LOG function during communication sometimes causes the debugger to hang.
We recommend communicating in parallel with log output via calls to the NN_LOG function.
- [Correct]
Running the NN_LOG function during communication sometimes causes the debugger to hang.
We recommend NOT calling the NN_LOG function for log output in parallel with communication.
A feature was added to NintendoWare for CTR 1.1.0 that allows users to create sound threads on core 1. However, there was a bug in related nn::snd features, which is fixed in this SDK release.
This fix is required when using NintendoWare for CTR 1.1.0.
Previously, if FreeVoice was used to free some other voice within the voice drop callback specified by AllocVoice, execution would enter an endless loop. This bug has been fixed.
- If you run Ctr Info Setting in the
Config tool when a settings file is not present on the SD Card, the system will freeze.
- After you have connected to and finished communicating with your first StreetPass partner, you cannot communicate with another partner. Both systems must be reset to communicate again.
- If a waveform file (WAV or AIFF) includes no loop settings prior to conversion by
ctr_WaveConverter32.exe, a bug causes the --loopStart and --loopEnd options to be ignored.
In addition to the preexisting GetLinkLevel function, which takes an nn::ac::LinkLevel pointer as an argument, added a GetLinkLevel function whose return value is an nn::ac::LinkLevel enumerated type.
Added functions for detecting HOME button presses and transitioning to the HOME Menu.
To detect HOME button presses, there are two methods: getting the button state with the nn::applet::CTR::GetHomeButtonState function, or setting a callback with the nn::applet::CTR::SetHomeButtonCallback function.
Both the nn::applet::CTR::PrepareToJumpToHomeMenu and nn::applet::CTR::JumpToHomeMenu functions can jump to the HOME Menu, but the nn::applet::CTR::ProcessHomeButtonIfPrepared function combines both the ability to detect HOME and to jump to the HOME Menu.
Added the BOSS library, which is used for data download features that employ download servers.
If the SetNoiseFilter function was used to turn noise filter features OFF and then exposure was changed by the SetExposure function, image brightness would start to flicker. This problem has been fixed.
Added the SetAutoWhiteBalanceWindow function, which changes the region (sensor window) used to calculate auto white balance.
Note: The definition of the PackageParameterCameraSelect structure was changed to allow the SetPackageParameterWithoutContext function to make settings similar to the above function.
When CardSPI was used, then Midi or CardNor was accessed, and then HostIO was accessed, the media selector was not properly controlled and correct data transfer was not possible. Revisions were made so that media selector control will switch successively from SPI to CARD in such cases.
Changed the StreetPass library (formerly the Chance Encounter Communication library) as follows.
- Added the
MessageId class.
Changed MessageId from an 8-byte array to a class.
- Removed unnecessary functions
Deprecated the following functions and invalidated unused value definitions.
- Format of
cec::MessageBox::ReadMessage that used void* as an argument
- Format of
cec::MessageBox::WriteMessage that used void* as an argument
cec::Message::SetFlag_Unread
cec::Message::GetFlag_Unread
cec::Message::SetFlag_New
cec::Message::GetFlag_New
cec::Message::OutputMessage
cec::Message::InputMessage
cec::MessageBox::GetMessageFlag_Unread
cec::MessageBox::GetMessageFlag_New
- Changed daemon operations
Beginning with this version, background communication starts automatically and the StreetPass daemon begins operation at system startup.
To access a Box or a Message, you must first begin accessing the daemon, then put the daemon in IDLE state.
Operations must occur in this order:
[After startup] => [Put daemon in IDLE state with StopScanning] => [Box operations] => [Return control rights to the system with StartScanning and start daemon operation].
- Added
GetCecRecvEventHandle and GetCecInfoBuffer
These functions get reception events and received Message information.
- Added information that can be obtained with the
MessageBox class
Information obtainable by the MessageBoxInfoReader class can now also be obtained by the MessageBox class.
This change makes the MessageBoxInfoReader class unnecessary.
[MessageBoxInfoReader] [MessageBox]
<Get Box information>
GetMessageBoxInfoFlag --> GetBoxFlag (GetMessageBoxFlag was removed)
GetBoxSizeMax --> GetBoxSizeMax
GetMessNumMax --> GetBoxMessNumMax
GetMessNum --> GetBoxMessNum
GetBoxGroupNumMax
GetBoxGroupNum
SetBoxGroupNumMax
GetBoxSessionNum
<Get Message information>
GetMessage*** --> GetMessage*** (Added)
To reduce power consumption and avoid communicating over and over with the same partner, there is a feature where the local host remembers what partners it has communicated with once (sent or received one or more pieces of data) and then does not communicate with those partners if they are discovered again.
The list of past communication partners is valid for a maximum of 8 hours.
For this reason, StreetPass with the same partner will not occur again until an average of 4 hours or a maximum of 8 hours elapses.
If you specify true in an argument to the CecControl::StartScanning function, the list is initialized and it becomes possible to communicate with the same partners again.
Use this method when it is necessary to communicate more than once with the same partner for debug purposes.
The list is also initialized when a StreetPass box has been deleted.
(In the previous version the list was also initialized when data was written to an outbox, but that specification has been removed.)
Revised the string obtained by the nn::cfg::GetLanguageCodeA2 function and indicating the Japanese language from "jp" to "ja".
Fixed a bug in the nn::cfg::CTR::GetSimpleAddress function that prevented it from getting the country name and area name parts of the simple address information.
Added the nn::cfg::CTR::GetUserTimeOffset function to get the cumulative offset value that is saved when the end user changes the date and time.
Applications can learn of end user changes to the system time by checking this offset value on every application launch.
Added a library for file compression/decompression at the nn::cx namespace.
Changed the method for embedding child programs, as shown below.
- If using OMake, specify the child CIA file in
CHILD_APPS[] in the OMakefile.
See $Sample Demos/dlp/SimpleServer/OMakefile.
- If not using OMake, pass a CFA file created by
ctr_makeciaarchive to ctr_makerom.
However, note that you must use the -rsf option of ctr_makeciaarchive to specify $CTR_SDK/resources/specfiles/Child.rsf.
Made the following changes related to identification of child devices.
- Changed so that now the
Server::Initialize function fails if the child and parent UniqueId do not match.
- Changed so that the parent and child are told apart by their
Category, and the Server::Initialize function fails if the child's Category is not DlpClient.
Children tell each other apart by their ChildIndex. The ChildIndex is specified by the RSF file's TitleInfo/ChildIndex, and can take a value from 0-255.
Note that TitleInfo/Version is now replaced by TitleInfo/ChildIndex, so do not use TitleInfo/Version.
RVCT formerly sometimes output incorrect warnings in Release or Fast builds, so as a workaround some portions of code were built with size as the highest priority. RVCT has now been fixed, so these code portions have returned to being built with speed as the highest priority.
The access attribute of nn::Result-class constructors that take bit32 values was mistakenly set to "public". This has been revised to "private".
$CTR_SDK/include/nn/types.h was a UTF-8 file with no BOM, but it has been changed to now include a BOM.
This was actually changed in CTR-SDK 0.11 but was accidentally omitted from the change log.
Added --debug_info=line_inlining_extensions to the default compiler options in the CTR-SDK build system.
Likewise, added tailreorder, unusedsymbols, veneercallers, veneerpools and visibility as specifications for the --info linker option.
Updated the RVCT version supported by the CTR-SDK to version 2010/09/09 (b865).
Because of this update, out-of-date versions of RVCT will now sometimes not operate properly.
Formerly, when the Allocate function failed to allocate an ExpHeap, the destructor and Finalize would not be called properly. This problem has been fixed.
Formerly, when the destructor was called on an uninitialized ExpHeap object, it could not destroy the object properly. This problem has been fixed.
Changed the range of specifiable alignments in ExpHeap::Allocate to the range -4096 to 4096.
Corrected the spelling of ExpHeapBase::GetDirectionOf, which was formerly misspelled as GetDirecitionOf.
Strengthened the memory address check that is performed when freeing expanded heap memory, with the goal of detecting duplicate calls to Free and other problems.
Added the Font library.
Its content is basically the same as nw::font, but applications that use nw must not use nn::font. (This is because some portions of libraries in nw reference nw::font.)
In future, nw::font is planned to be combined into nn::font.
Changed the value of MODE_DESCRIPTION_SIZE from 64 to 128.
Removed NOTIFICATION_FRIEND_FAVORITE_GAME, which control will never actually reach, from the NotificationType enumerated type.
NOTIFICATION_FRIEND_PRESENCE is no longer delivered when the game description string is the only item updated by UpdateGameModeDescription or UpdateGameMode.
Changed the value of the MII_SIZE constant from 128 to 96.
The size of the MiiInformation structure also changed.
The previously-disclosed functions that get SD Card insertion/removal events were not able to get whether an event has occurred, so the specifications have been changed.
The nn::fs::InitializeForFileSystemEvent, WaitForInsertSdmc, and WaitForEjectSdmc functions have been removed and replaced by the new nn::fs::RegisterSdmcInsertedEvent, UnregisterSdmcInsertedEvent, RegisterSdmcEjectedEvent, and UnregisterSdmcEjectedEvent functions.
The nn::fs::RegisterXxxxEvent functions get events via registered instances of nn::os::LightEvent.
At present, there is still a restriction: nn::fs::RegisterXxxxEvent and UnregisterXxxxEvent functions cannot be repeatedly called in succession.
When an external file system was used to create many entries in a directory and then the fs::Directory::Read function was used to get a list of entries, it would sometimes only be able to get a partial list. This bug has been fixed.
Added the nn::fs::GetFileSystemSize function, which can get the total space and free space of storage media whose media type is specified.
The following media types can be specified: MEDIA_TYPE_NAND and MEDIA_TYPE_SDMC.
Added the nn::fs::MountSdmc function, which mounts SD Cards.
In order to access an SDMC archive, you must run this function with the SD Card inserted.
To mount a previously mounted SD Card that has been removed and then re-inserted, it must first be unmounted using the nn::fs::Unmount function and then the nn::fs::MountSdmc function must be executed again.
Added a function that gets the size of working memory required when calling the nn::fs::hio::MountHioArchive function.
Implemented a write function in nn::fs::hio::HioArchive.
It can write data in the same manner as is done with other archives, even when used on files on a PC.
Added the new function nn::hio::CTR::HostFile::SetSize, which can change the size of open files.
If the specified size is larger than the current size of the file, this function expands the file. The data in the expanded portion of the file is undefined.
If this function is used to trim a file and the file's Seek position lies in the trimmed portion of the file, this function moves the Seek position to the new end of the file.
Added the nn::fs::RegisterCardInsertedEvent, UnregisterCardInsertedEvent, RegisterCardEjectedEvent, UnregisterCardEjectedEvent, and IsCardInserted functions.
At present, there is still a restriction: nn::fs::RegisterXxxxEvent and UnregisterXxxxEvent functions cannot be repeatedly called in succession.
Changed length of filenames in save data and expanded save data from 8 characters to 16 characters.
This was actually changed in CTR-SDK 0.12 but was accidentally omitted from the change log.
The main changes can be summarized as follows. See each document for further details.
- DMPGL 2.0 System API Specifications
$CTR_SDK/documents/DMPGL20/DMPGL20_system_API_specification.pdf
- Added description of procedural textures and of restrictions when configuring gas lookup tables.
- Revised the code for section 5.9.7 Converting a 32-Bit Floating-Point Number into a 12-Bit Signed Fixed-Point Number with 11 Fractional Bits (Alternate Method).
- Revised in line with the argument types of existing functions and with changes to specification restrictions.
- Added description of new functions.
- Added description of the automatic padding of load arrays.
- Revised register settings for gases.
- Added description of the framebuffer access control setting registers.
- Revised the settings of register
0x101 when logical operations are enabled.
- Revised the setting of register
0x25f[0:0], which is involved with rendering functions.
- Added description of the WRAP mode settings used for shadow textures.
- DMPGL 2.0 Specifications
$CTR_SDK/documents/DMPGL20/DMPGL20_specification.pdf
- Added description of the w buffer and polygon offsets.
- Added description of the texture wrapping modes used with cube-map shadow filtering.
- DMPGL 2.0 Programming Guide
$CTR_SDK/documents/DMPGL20/DMPGL20_programming_guide.pdf
- Added a chapter on Troubleshooting.
- Added description of texture coordinate conversion during shadow texture lookups, and fixed some typos.
- Vertex Shader Reference Manual
$CTR_SDK/documents/DMPGL20/VertexShaderReferenceManual.pdf
- Expanded the description of the preprocessor pseudo-instruction
output_map.
- Expanded sections 12.7.3 Output Order of Calculation Results and 12.7.5 Stalls Due to Arithmetic Unit Race Conditions.
- Added a section on stalls due to instruction dependencies.
Added the GR library, which assists in high-speed graphics rendering by directly generating command arrays for setting the GPU (PICA graphics processor) registers of CTR.
Made the following changes to the PICA macro headers.
gx_MacroCommon.h
- Added the new
PICA_CMD_HEADER_GS_F32 macro for commands that write to geometry shader floating-point registers.
- Added the
PICA_DATA_COLOR_RGB8 and PICA_DATA_COLOR_RGBA8 macros.
- Added names to enumerated types.
Changed the member names and macro names of the enumerated types listed below.
Note: The old types were moved to gx_MacroOld.h for compatibility.
gx_MacroFragment.h
PICA_DATA_FRAG_LIGHT_TEXTURE* -> PICA_DATA_FRAG_LIGHT_ENV_TEXTURE*
PICA_DATA_*_* -> PICA_DATA_FRAG_LIGHT_ENV_LUTSCALE_*_*
PICA_DATA_FRAG_LIGHT_LUTINPUT -> PICA_DATA_FRAG_LIGHT_ENV_LUTINPUT
PICA_DATA_FRAG_LIGHT_LUTSCALE -> PICA_DATA_FRAG_LIGHT_ENV_LUTSCALE
gx_MacroMisc.h
- Because it was discovered that commands that set register
0x101 are unnecessary when logical operations are enabled, the PICA_CMD_SET_LOGIC_OP was revised to no longer generate such commands.
When placing display buffers in VRAM, previously there was a restriction that stated that buffers could not be placed in the last 0.5 MB of either VRAMA or VRAMB. This off-limits range was widened: now display buffers cannot be placed in the last 1.5 MB of either VRAMA or VRAMB.
Z-value offsets via glPolygonOffset are now valid regardless of the W buffer setting.
Applied the following changes to both functions.
- Added support for transfer in cases where the sum of the arguments height and y is larger than the current render buffer.
- Added support for transfer in cases where either or both of the x and y arguments are negative.
In addition, made the following revisions to only the glCopyTexSubImage2D function.
- Revised so that a
GL_INVALID_VALUE error is returned when either or both of the xoffset and yoffset arguments are negative.
Previously, the results of the glPolygonOffset function were affected by the settings of the glDepthRange function. This bug has been fixed.
This function adds a command (post transfer command) that converts block images to linear images when transferring data.
The nngxTransferRenderImage function offers similar features, but this function can be used more generally.
This function adds a block image transfer command (render texture transfer command).
Use this function to copy images between rendered render buffers and textures.
This function adds a command (post transfer command) that converts linear images to block images when transferring data.
The nngxTransferLinearImage function offers similar features, but this function can be used more generally.
This function adds a command (memory fill command) that fills the specified region with the specified data.
The glClear function offers similar features, but this function can be used more generally.
Removed the restriction requiring the srcaddr and dstaddr arguments in the nngxAddVramDmaCommand function to be 8-byte aligned.
Previously, when an invalid format argument was specified in the nngxFilterBlockImage function, sometimes after the error was detected control would not return from the function and an invalid command request would be generated. This bug has been fixed.
Revised the type of the srcaddr argument in the nngxFilterBlockImage and nngxAddVramDmaCommand functions to const GLvoid*.
Added the new nngxGetAllocator function, which gets the allocator and deallocator set by the nngxInitialize function.
Previously, glViewport settings would not be applied if glViewport was called before the first validation of NN_GX_STATE_FRAMEBUFFER after nngxInitialize. This bug has been fixed.
Added a function that updates values related to the additive blending results of gas density rendering.
Use this function when directly generating commands for gas rendering, instead of using DMPGL functions.
Previously, although the function specification states that the first argument of nngxTransferLinearImage will accept addresses either in device memory or VRAM, specifying anything other than VRAM would cause the function to stop because of a mistake in an assert statement. This mistake has been fixed.
Previously, the settings for delta values in lookup tables used for procedural texture RGBA maps and noise were double the correct settings. This bug has been fixed.
Previously, when multiple vertex attributes were arranged as an interleaved array and the ptr argument of the glVertexAttribPointer function was specified in a way that placed the second piece of vertex data at the starting address of the vertex array, a bug sometimes caused the rendering API to generate an error and prevented correct rendering. This bug has been fixed.
Previously, the DMPGL API would generate a command that set register 0x101 to 0x01010000 when logical operations were enabled. However, it became clear that hardware specifications make this setting unnecessary, so this command is no longer generated.
The DMPGL 2.0 System API Specifications ($CTR_SDK/documents/DMPGL20/DMPGL20_system_API_specification.pdf) have been revised in line with this change.
Because ACCELEROMETER_PLAY_MODE_LOOSE would sometimes yield unstable calculation results, it has been deleted. Now ACCELEROMETER_PLAY_MODE_TIGHT is the only available setting.
In line with this change, the SetPlayMode function (which set the sensitivity behavior mode) and the corresponding GetPlayMode function have also been eliminated.
Added the nn::hid::GyroscopeReader class, which can get the gyro sensor values and the attitude of the system calculated based on the gyro sensor values.
The range of specifiable values in the PadReader::SetStickClamp function has been changed as shown below.
- Minimum value
- Circular clamping mode: 46 (50)
- Cross-shaped clamping mode: 41 (38)
- Maximum value
(The value in parentheses was the value used in CTR-SDK 0.12.)
Added to the accelerometer library a group of functions that take an offset of the output values and a group of functions that rotate the axes of output.
Added the GetReadableSize and GetWritableSize functions, which get the data size that can be sent or received in serial communication.
Added the GetMpRegionsToBuildJpegData function to the JpegMpDecoder class. This function gets information required to rebuild JPEG data from the individual image data stored in MP format.
Added the StopDecoder function, which can issue a stop request on decoding that is already running in another thread.
Added pixel formats that can be specified during encoding and decoding.
Made the return value of the nn::math::VEC3::DistanceSquare function a const, in line with the function's internal implementation.
Because of how the values of F_NAN and other constants were defined in math_Constant.h, each compile unit that included this header file would generate its own copies. This problem has been fixed.
Some MATH library functions have been put in assembly language to optimize for speed, but previously there was a problem where these functions were only dead-stripped in units of individual object files. This problem has been fixed.
In CTR-SDK 0.12, the memory set by SetBuffer had ReadOnly attributes beginning from the time it was set and extending through to after the call to ResetBuffer. This has been changed so that the memory has ReadWrite attributes beginning from the call to SetBuffer.
This change gives applications read/write access to the targeted memory regardless of the timing of calls to the SetBuffer and ResetBuffer functions.
Made the resident program (daemon) that performs network processing active by default.
This change means that access points, Nintendo Zone areas, and other networks will be searched for in the background of applications.
Also added the NDM library for controlling background communication.
Added a specification to the CheckProfanityWords function stating that if its check finds an "@" symbol in a string, that string will be handled as a problematic string.
Added the CountNumbers function, which counts the number of characters that represent numbers within a string.
Added the nn::os::GetRunnningTargetHardware function, which can get what hardware the program is running on.
The Sleep feature, activated by closing the system, is now available for use.
To enable this feature, you must register APPLET Sleep-related callbacks.
See demo1 and demo2 for more details.
Added the following two functions, which get information about the amount of available memory.
nn::os::GetAppMemorySize
nn::os::GetUsingMemorySize
Added functions for getting shared fonts to the PL library.
Added an interface for battery, AC adapter, and alarm features to nn::ptm.
Previously, there was a bug where, if a Sender instance attempted connection to a peer Receiver instance at the same time as the Receiver instance transitioned from CLOSED to WAITING state, connection would be established although the connection itself was incomplete (with only one of the peers achieving an OPENED state). This bug has been fixed.
Changed the timing at which Sender and Receiver instances transition between states.
In the implementation up until now, a call to the Process function was always required in order to trigger an instance to transition to another state. In the new implementation, behavior has been changed so that the state transitions instantly upon a successful call to Open, Wait, Close or the other functions.
The three changes listed below were also made in line with this change.
- Eliminated the
ResultCommandQueueIsFull result code, which indicated that the command queue was full.
- Added
SENDER_STATE_OPEN_REQUESTED and SENDER_STATE_CLOSE_REQUESTED as new states for Sender instances.
- Changed the result codes returned by the various RDT functions.
See the Function Reference Manual for details.
Added the nn::snd::Bcwav::IsBcwav function, which determines whether a file is in BCWAV format.
In CTR-SDK 0.11 and subsequent versions, there was a bug that (on rare occasions) caused control to not return from the nn::snd::Initialize function. This bug has been fixed.
Changed the sound namespace from nn::snd to nn::snd::CTR.
Because the "::CTR" portion of the namespace can be omitted, this change makes no difference from a usage standpoint.
Added the nn::snd::GetDroppedSoundFrameCount function, which gets the number of dropped sound frames, and the nn::snd::ClearDroppedSoundFrameCount function, which resets that number.
As a result of the addition of the NetworkSetting tool, all demos now directly use AC to use the settings written to NAND.
The dummy_util functions will be deleted from the next release.
Made the following changes to the Config tool.
- Added feature to load a settings file placed on an SD Card and use it to batch-configure the user settings.
The settings file (ctrsetting.txt) is under $CTR-SDK/resources/configtool.
- Added feature to rewrite a portion of the stereo camera calibration values.
Made the following changes to the DevMenu.
- Added feature that imports all the CIA files in the current directory if the user presses the L+R+A button combination.
- Added features to display and delete additional data (expanded save data).
Deletion is done with the X Button, the same as the other modes.
Added the font conversion utilities ctr_FontConverter and ctr_FontConverterConsole.
Their content is the same as the FontConverter included in NintendoWare for CTR.
Created a tool that configures the security mode, SSID, and key (or passphrase) for network configurations 1-3.
Added the following items to RSF files.
See the ctr_makerom reference page for details.
BasicInfo/Logo: Specifies logo data
TitleInfo/Category: Specifies the application type
TitleInfo/ChildIndex: Specifies the index of a download child program
Previously, if an RSF file contained a string that was enclosed in double quotes ("") and included a hash mark (#), parsing of the string would fail and an error would be generated.
This bug has been fixed.
Added the following features to the ctr_TexturePackager32 tool.
For details, see $CTR_SDK/documents/TechnicalNotes/TexturePackagerLibrary/TPLTexturePackageTool.pdf.
- Added the
-nw4c option.
Specify this option to use a TGA file that was created with the Photoshop plug-in (NW4C_tga).
- Added the
etcmethod attribute to <texture> nodes.
This option explicitly specifies to use the ETC1 compression method for the ETC1 and ETC1_A4 formats.
Made the following changes to ctr_WaveConverter32.exe.
- Fixed the following bugs, which occurred when a looping waveform was converted using the
--imaadpcm option:
- Bug where the data portion would be filled with
0
- Bug where values would be written that were invalid in the loop context, causing noise when the waveform was played
- Added the
--loopStart/--loopEnd options, which set the loop frames.
See the ctr_WaveConverter manual reference page for details.
- Fixed bug where looping noise would occur in DSP ADPCM-encoded files whose loop start frame was 0.
Reconversion of the waveform data is required.
Added the file compression tool ctr_compress.
Added ctr_makebanner, a tool for creating banner data.
Banners and icons created with ctr_makebanner can be embedded in CCI files using ctr_makerom.
However, currently there exists no method to check the embedded banners and icons.
Also added the makebanner demo in line with this change.
Added ctr_makeciaarchive32.exe, which gathers multiple CIA files to create archives.
Although this tool can be used within the build system when creating multiplayer child programs, for now, do not execute it directly.
Previously, if the "value" string in the -Dname=value option included whitespace, there was a bug where only the string up to the whitespace would be recognized. This bug has been fixed.
Before fix: -DTITLE="TEST ROM" → TITLE="TEST"
After fix: -DTITLE="TEST ROM" → TITLE="TEST ROM"
Changed part of the ctr_makerom processing to now be performed in multiple threads.
Added the following options to ctr_makerom.
See the reference page for details.
-content: Specifies what content to store in the CCI file
-banner: Specifies a banner file
-icon: Specifies an icon file
-f data: Specifies to output in CFA file format
Note: The -cxi option, which was used in some demos in previous SDK versions, has been eliminated and replaced by the -content option.
The shader assembler now supports files that are UTF-8 (with BOM).
Changed the default UniqueId value from 0x200 to 0xf7fff.
Changed the values of the formats defined by the nn::tpl::CtrTexFormat enumerated type.
The new values are such that you can take the bitwise OR of a new value with 0xf and set the resulting value directly in a PICA register.
(However, TEXFMT_REF and TEXFMT_UNSUPPORT are exceptions.)
This specification change means that the format of CTPK files created with previous versions of the SDK will no longer be parsed correctly.
Recreate such files with ctr_TexturePackager32.exe.
Added the nn::uds::AllowToSpectate function, which allows reconnection by spectators after the EjectSpectator function has been run.
Added members to the nn::uds::ConnectionStatus structure so that the nn::uds::GetConnectionStatus function is now able to get the number of nodes currently connected to the network, the maximum number that can connect, and other similar information.
Up until now, there was a chance that, depending on signal strength, the eject notification might not be received after the EjectSpectator function was run. (This would lead to the spectator remaining connected.) Changes have been made so that spectators are now disconnected from the network even when the eject notification could not be received.
Also made changes so that spectators cannot newly connect to the network after the EjectSpectator function has been run.
In addition to the preexisting GetLinkLevel function, which takes an nn::uds::LinkLevel pointer as an argument, added a GetLinkLevel function whose return value is an nn::uds::LinkLevel enumerated type.
Also revised the function to complete in a shorter time than was required in CTR-SDK 0.12 and previous versions.
Added a function that can confirm whether the target network is allowing spectators to connect.
Added the CreateLocalCommunicationId function, which creates a 32-bit ID (until now referred to in the Function Reference as the "ID assigned to each title") based on the unique ID assigned to each title by the Licensing department.
Specify the ID created by the CreateLocalCommunicationId function to CreateNetwork, Scan, and similar functions.
Previously, StereoCamera(const nn::WithInitialize &) did not perform initialization in the way described in the Function Reference. It was revised and now calls the StereoCamera::Initialize function.
Prefixed "const" to all member function arguments and return values in the nn::ulcd::StereoCamera class where that prefix could be applied.
Updated documentation to reflect the fact that the restrictions on parallax for stereoscopic display have now been finalized in the Guidelines.
See the Guidelines for details.
Note, however, that the ULCD library itself has not been revised to reflect these restrictions.
The StereoCamera class Initialize and Finalize functions were not designed to accommodate this class being generated in multiple threads. To fix this deficiency, added a flag to determine whether individual instances of the class have been initialized.
If an instance is uninitialized and a CalculateMatrices* function is called, execution will stop on an assert.
Added structure definitions for Color, Rect, and Float to the util namespace.
These are ported versions of the same definitions from the ut namespace in NintendoWare for CTR.
- If you run Ctr Info Setting in the
Config tool when a settings file is not present on the SD Card, the system will freeze.
- After you have connected to and finished communicating with your first StreetPass partner, you cannot communicate with another partner. Both systems must be reset to communicate again.
Previously, there was a bug that sometimes prevented subsequent reconnections if a connection was cancelled while connection processing was underway. This bug has been fixed.
Previously, it was required to pass this function an argument consisting of an Event that received function completion, but this was deemed unnecessary.
It is considered an equivalent notification when the Connect function returns from blocking, or when the ConnectAsync function signals an Event.
Previously, there was a bug where network configurations would not be reflected in NAND when a connection was completed, even when those network configurations were set by the DebugSetNetworkSetting1 function. This bug was fixed.
Added the BOSS library, which is used for data download features that employ download servers.
If the SetNoiseFilter function was used to turn noise filter features OFF and then exposure was changed by the SetExposure function, image brightness would start to flicker. This problem has been fixed.
If the system is closed while the cameras are active, capturing is stopped and then the cameras are stopped. When the system is opened again the cameras are started and returned to the same state they were in before.
Note: Capturing is not restarted.
Added the SetAutoWhiteBalanceWindow function, which changes the region (sensor window) used to calculate auto white balance.
Note: The definition of the PackageParameterCameraSelect structure was changed to allow the SetPackageParameterWithoutContext function to make settings similar to the above function.
Previously, a bug prevented voices from being muted while the shutter sound was playing. This bug has been fixed.
Changed the StreetPass library (formerly the Chance Encounter Communication library) as follows.
- Added the
MessageId class.
Changed MessageId from an 8-byte array to a class.
- Removed functions.
Deprecated the following functions and invalidated unused value definitions.
- Format of
cec::MessageBox::ReadMessage that used void* as an argument
- Format of
cec::MessageBox::WriteMessage that used void* as an argument
cec::Message::SetFlag_Unread
cec::Message::GetFlag_Unread
cec::Message::SetFlag_New
cec::Message::GetFlag_New
cec::Message::OutputMessage
cec::Message::InputMessage
cec::MessageBox::GetMessageFlag_Unread
cec::MessageBox::GetMessageFlag_New
- Changed daemon operations
Beginning with this version, background communication starts automatically and the StreetPass daemon begins operation at system startup.
To access a Box or a Message, you must first begin accessing the daemon, then put the daemon in IDLE state.
Operations must occur in this order:
[After startup] => [Put daemon in IDLE state with StopScanning] => [Box operations] => [Return control rights to the system with StartScanning and start daemon operation].
- Added
GetCecRecvEventHandle and GetCecInfoBuffer
These functions get reception events and received Message information.
- Added information that can be obtained with the
MessageBox class
Information obtainable by the MessageBoxInfoReader class can now also be obtained by the MessageBox class.
This change makes the MessageBoxInfoReader class unnecessary.
[MessageBoxInfoReader] [MessageBox]
<Get Box information>
GetMessageBoxInfoFlag --> GetBoxFlag (GetMessageBoxFlag was removed)
GetBoxSizeMax --> GetBoxSizeMax
GetMessNumMax --> GetBoxMessNumMax
GetMessNum --> GetBoxMessNum
GetBoxGroupNumMax
GetBoxGroupNum
SetBoxGroupNumMax
GetBoxSessionNum
<Get Message information>
GetMessage*** --> GetMessage*** (Added)
Fixed a bug in the nn::cfg::CTR::GetBirthday function that prevented it from correctly getting birthdays. Also changed the function argument from a DateTime class instance to a Birthday structure.
Added the ForceClientToDownload function, which forcibly downloads child programs to clients, to dlp_Server.h.
Forced downloads are only valid on development hardware and are ignored by retail hardware.
Re-adjusted detailed parameters of the LCD active backlight settings and brightness levels.
Also applied a policy change regarding the initial settings. Now the initial brightness level is 4 and the active backlight is OFF by default.
Until now, test units displayed the DevMenu after system startup. Now they display a provisional HOME Menu.
Press START from this menu to launch the DevMenu.
If you start the DevMenu or an application (using the debugger) from this provisional HOME Menu, you can use APPLET library functions to return to the provisional HOME Menu.
(See demo1 and demo2 for examples.)
Previously, if the system time surpassed 2099/12/31 and returned to 2000/01/01 while an application was running, and the nn::fnd::DateTime::GetNow function was called a short time later, it would return invalid values. This bug has been fixed.
NOTIFICATION_FRIEND_PRESENCE is no longer delivered when the game description string is the only item updated by UpdateGameModeDescription or UpdateGameMode.
Applying this System Updater makes it possible to connect to a new server intended for CTR-SDK 0.13.
Note: All friend relationships established up to that point, and all account information, is deleted and reinitialized.
When placing display buffers in VRAM, previously there was a restriction that stated that buffers could not be placed in the last 0.5 MB of either VRAMA or VRAMB. This off-limits range was widened: now display buffers cannot be placed in the last 1.5 MB of either VRAMA or VRAMB.
Previously, there was a bug where key sampling would not resume after recovery from Sleep Mode. This bug has been fixed.
When the system is closed but does not enter Sleep Mode, the Touch Panel and all pad user inputs except the L and R Buttons now return disabled sampling values (0).
Abolished the size restriction on data registered by the AddPostData*** functions.
In line with this change, the specification now states that modules that use the AddPostData*** functions must use the nn::http::Initialize function to register a buffer for POST data.
Previously, using the GetHeaderField function to read a nonexistent header field would cause all subsequent functions on that Connection to return communication errors. This bug has been fixed.
Previously, when Keep-Alive was enabled, connections would sometimes fail depending on their timing. This bug has been fixed.
When the local host communicated with a server which had Keep-Alive enabled and the local host switched between HTTP and HTTPS, execution would hang. This problem has been fixed.
Set the default sizes of HTTP communication buffers to 32640 B for incoming data and 16320 B for outgoing data. (Both these sizes are multiples of the default MSS.)
(Previously, both sizes were 8 KB.)
Revised behavior of the LEDs during Sleep Mode, so that now the power LED blinks during Sleep Mode and the wireless LED dims.
Made changes so that now microphone sampling (if running) is stopped when the system is closed, and resumes when the system is opened again.
In CTR-SDK 0.12, the memory set by SetBuffer had ReadOnly attributes beginning from the time it was set and extending through to after the call to ResetBuffer. This has been changed so that the memory has ReadWrite attributes beginning from the call to SetBuffer.
This change gives applications read/write access to the targeted memory regardless of the timing of calls to the SetBuffer and ResetBuffer functions.
Made the resident program (daemon) that performs network processing active by default.
This change means that access points, Nintendo Zone areas, and other networks will be searched for in the background of applications.
Also added the NDM library for controlling background communication.
The Sleep feature, activated by closing the system, is now available for use.
To enable this feature, you must register APPLET Sleep-related callbacks.
See demo1 and demo2 for more details.
Added the following two functions, which get information about the amount of available memory.
nn::os::GetAppMemorySize
nn::os::GetUsingMemorySize
Previously, the GetBatteryLevel function would return BATTERYLEVEL_2 when the remaining battery life was 5% or less, even though the function was required to get BATTERYLEVEL_1 in that situation. This problem has been fixed.
The times for which it is possible to set an alarm with the SetRtcAlarm function are now restricted to the range 2000/01/01 to 2099/12/31.
Previously, when CIA files created with past versions of the CTR-SDK were imported into the DevMenu, the DevMenu would generate an error and would continue to generate errors with subsequently-imported valid CIA files. This bug has been fixed.
Previously, when you deleted an application on the DevMenu and then imported an application with the same unique ID, the program display list would become invalid and the application would not run. This bug has been fixed.
Added the RegionSelector tool, which changes the system region and language settings.
Previously, when the local host was operating as a master and ran the nn::uds::EjectClient function on certain specific nodes, the master would sometimes hang when the clients were ejected from the network. This bug was fixed.
Previously, when 3 or more nodes were connected, the beacon information sent out by the master would sometimes become incorrect after one or more clients disconnected from it, and the node information obtained by the NetworkDescriptionReader::GetNodeInformationList function would sometimes become abnormal. These bugs were fixed.
During UDS communication, the master periodically distributes the user names and local friend codes of all the nodes connected to the network.
This data is encrypted to prevent its collection by other devices, and the key used for this encryption has been changed.
Because of this change, applications built with CTR-SDK 0.13 cannot communicate with applications built with earlier SDK versions.
Previously, running nn::uds::GetConnectionStatus frequently during communication (running it less than once every few milliseconds for a sustained length of time) would cause the library to behave incorrectly. This bug has been fixed.
- Although this release enables support for Sleep Mode when the system is closed, there are some stability problems. In some cases (depending on timing) the system is unable to correctly recover from Sleep Mode.
- Save data access is not thread-safe.
- Running the
NN_LOG function during communication sometimes causes the debugger to hang.
We recommend communicating in parallel with log output via calls to the NN_LOG function.
- Execution sometimes aborts if
CancelConnectAsync is run repeatedly or if Wi-Fi is toggled ON/OFF repeatedly.
- If about 30 seconds elapse after power-on while the system is in a state where it can connect to an access point (meaning that valid network configurations are saved in system NAND memory or there is a Nintendo Zone nearby), then the
SuspendScheduler function will not complete.
Use the following procedure as a workaround for this bug.
nn::ndm::Initialize();
nn::ndm::Suspend(nn::ndm::DN_FRIENDS); // Add this line
nn::ndm::SuspendScheduler();
nn::ndm::Resume(nn::ndm::DN_FRIENDS); // Add this line
Added support for jumping to the HOME Menu when the HOME Button is pressed in sample demos demo1 and demo2.
Currently, they return to a provisional HOME Menu.
Added the sample_nadl_simple demo as an example of a task that downloads data from a download server.
Added the Compress sample demo, which demonstrates run-length, Huffman, and LZ encoding.
Changed the display buffer of the lib_demo library of Sample Demos. Now the display buffer is initialized to solid black before the LCD screens are turned on.
Changed the method for embedding child programs, as shown below.
- If using OMake, specify the child CIA file in
CHILD_APPS[] in the OMakefile.
See $Sample Demos/dlp/SimpleServer/OMakefile.
- If not using OMake, pass a CFA file created by
ctr_makeciaarchive to ctr_makerom.
However, note that you must use the -rsf option of ctr_makeciaarchive to specify $CTR_SDK/resources/specfiles/Child.rsf.
Made the following changes related to identification of child devices.
- Changed so that now the
Server::Initialize function fails if the child and parent UniqueId do not match.
- Changed so that the parent and child are told apart by their
Category, and the Server::Initialize function fails if the child's Category is not DlpClient.
Children tell each other apart by their ChildIndex. The ChildIndex is specified by the RSF file's TitleInfo/ChildIndex, and can take a value from 0-255.
Note that TitleInfo/Version is now replaced by TitleInfo/ChildIndex, so do not use TitleInfo/Version.
Added Font library sample demos.
These demos are ports of the font sample demos included in NintendoWare for CTR.
Added the DrawPrimitive demo, which uses the GR library to render spheres and cuboids.
Added the MultiPicture demo, which handles MultiPicture (MP) format data, and the StopDecoder demo, which stops decoding in progress.
Made the resident program (daemon) that performs network processing active by default.
This change means that access points, Nintendo Zone areas, and other networks will be searched for in the background of applications.
Also added the NDM library for controlling background communication.
Added support to the demo1 and demo2 sample demos for entering Sleep Mode when the system is closed.
However, depending on timing, sometimes the system is not able to correctly recover from Sleep Mode. This will be fixed in a future release.
Added the SharedFont demo as an example of getting shared fonts.
As a result of the addition of the NetworkSetting tool, all demos now directly use AC to use the settings written to NAND.
The dummy_util functions will be deleted from the next release.
Added ctr_makebanner, a tool for creating banner data.
Banners and icons created with ctr_makebanner can be embedded in CCI files using ctr_makerom.
However, currently there exists no method to check the embedded banners and icons.
Also added the makebanner demo in line with this change.
As an example of the use of ctr_TexturePackager32.exe, added XML files and texture data for creating CTPK files (which are themselves used in the TPL sample demos).
Fixed a bug in the com_demo1 demo of the UDS library, where old communication data was not cleared after disconnection, and when systems communicated again, they would get incorrect results because of the influence of this old data.
Now that the CreateLocalCommunicationId function is available, the demos were modified to use the CreateLocalCommunicationId function to create the local communication IDs that they use.
Fixed a bug in the ULCD samples where specifying a value of 0.0f for the Depth Level variable would cause execution to stop on an assert during subsequent normal calculations.
- The
demo1 and demo2 demos are the only demos with support for Sleep Mode. Closing the system during any other demo causes undefined behavior.
- Because of a known bug in System Updater (running the
NN_LOG function during communication cause execution to hang), the http demo sometimes hangs.
Fixed a bug where resuming playback would not work properly after using the SetState function to specify STATE_STOP for a Voice object and then later setting the state to STATE_PLAY.
- After you have connected to and finished communicating with your first Chance Encounter Communication partner, you cannot communicate with another partner. Both systems must be reset to communicate again.
- The Function Reference Manual for the FRIENDS library describes
ResultConnected incorrectly. This result is never returned when the local host connects.
Removed the IsBufferError function. Starting with CTR-SDK 0.11, the CAMERA library clears the buffer and the error state whenever a buffer error occurs. This change caused the function to be unable to correctly identify buffer errors.
To determine whether a buffer error has occurred, check the event state obtained by the GetBufferErrorInterruptEvent function.
Fixed a bug that prevented the SetExposure function from properly configuring the exposure in some environments where particular framerates have been set.
Modified the SynchronizeVsyncTiming function's internal processing to improve performance.
As a result of these changes, the V-Sync signals after this function is run do not have as large a discrepancy as they did before the changes were made.
However, two issues have not really been fixed. First, the screen used to turn extremely dark for four frames after this function was run. Now, when the brightness of the two camera images is very different, the screen turns extremely bright for three frames after this function is run. Second, it still takes as long as before for the auto-exposure to stabilize.
Added processing that, when the white balance is set, applies parameters measured at the factory to compensate for differences between individual systems.
However, these parameters are not stored in systems manufactured prior to mid-August.
White balance settings have not changed for these systems.
Changed the Chance Encounter Communication library as follows.
- Changed the data storage location from the SD Card to NAND memory.
- Made the caller of
Initialize specify the allocator for the library to use.
- Changed some function arguments to be specified as
const variables.
- Added functions for getting the timestamps of when data is sent and received.
- Removed the
SetModuleFilter_MCR function.
- Renamed
OutputMessage to MakeMessageBinary.
- Added
GetMessageMessIdPair.
Beginning with this CTR-SDK version, the daemon no longer begins to run if the user has agreed to a EULA version prior to version 1.0. Start the daemon after you have set Agree Version to a value of at least 1.0 under the Config tool's Eula Setting.
Note: As of CTR-SDK 0.12, the Chance Encounter Communication library does not start communicating automatically. You must use the CecControl class to start communication.
Added functions that convert CTR-specific country codes, region codes, and language codes into corresponding 2- or 3-character strings.
Added DlpChild.desc, which is used to build child programs for Download Play.
When you build a child program, specify DlpChild as the TitleInfo/Category entry in the RSF file and then add the following line in the OMakefile.
DESCRIPTOR = $(CTRSDK_ROOT)/resources/specfiles/DlpChild.desc
Added support for the PARTNER-CTR Capture/Debugger (all-in-one debugger hardware).
Added a build option that allows VFP instructions to be used by default when assembly language files are built.
It is now possible to also change the inline expansion options with the CCFLAGS_DEV_OPT variable in Development builds of applications.
This was actually changed in version 0.10 but was accidentally omitted from the change log.
The FRIENDS library, which provides operations related to system friends and the presence feature, was made public.
Fixed the nn::fs::FormatSaveData function so that it no longer parses the maxFiles and maxDirectories arguments in reverse.
Also fixed a related error in the Function Reference Manual argument descriptions.
Added a function to determine whether it is possible to write to the SD Card.
Implemented functions for SD Card insertion and removal events.
You must call the nn::fs::InitializeForFileSystemEvent function in advance.
Added the nn::fs::hio::MountHioArchive function.
The first argument specifies the archive name to assign and the second argument specifies the corresponding absolute path to assign on the computer.
To use this function, you must call nn::hio::Initialize(void* pDeviceMemory) in advance.
Use DeviceMemory, which is contiguous memory, to initialize the HIO library.
Until now, the placement of 2D and environment map textures was restricted to locations that did not span 32-MB boundaries. Upon further testing, it was determined that this restriction can be safely lifted.
If you are directly generating commands that reference PICA register information, however, you must properly clear the texture cache when switching textures.
(You do not need to be aware of this if you are using the GL API.)
The main changes can be summarized as follows.
See each document for further details.
- DMPGL 2.0 System API Specifications
- Mentioned the situations and timing when the framebuffer cache must be cleared using a combination of register
0x111 and 0x110.
- Added information on the settings of undocumented bits. (Bit [18:18] of register
0x1c4 must always be set to 1. Fragment lighting results are not guaranteed if this bit is 0.)
- Added detailed information on commands related to the rendering API.
- DMPGL 2.0 Specifications
- Documented the conditions for updating shadow depth values and intensity values during the shadow accumulation pass.
- Added section 7.33 Depth-Value Textures. This section explains rendering depth values to textures and copying textures.
- DMPGL 2.0 Programming Guide
- Added section 19.16 Load Sizes for Each Data Type. This section lists the size of each type of PICA data that is loaded (vertex buffers, textures, and command buffers).
Fixed a bug that occurred when NN_LOG was used to output a large number of log messages. This bug prevented completion notifications from being sent for graphics commands and, among other problems, caused the nngxWaitCmdlistDone function to stop returning.
Made the following changes to the PICA macro headers.
gx_MacroMisc.h
- Renamed macros (the original names were moved to
gx_MacroOld.h).
- Renamed
PICA_CMD_DATA_FOG_OP_WSCALE to PICA_CMD_DATA_FRAGOP_WSCALE.
- Renamed
PICA_CMD_DATA_FOG_OP_WSCALE_DATA to PICA_CMD_DATA_FRAGOP_WSCALE_DATA.
- Renamed
PICA_CMD_DATA_FOG_OP_CLIP to PICA_CMD_DATA_FRAGOP_CLIP.
- Renamed
PICA_CMD_SET_FOG_OP_CLIP to PICA_CMD_SET_FRAGOP_CLIP.
- Renamed
PICA_CMD_DATA_FOG_OP_CLIP_DATA to PICA_CMD_DATA_FRAGOP_CLIP_DATA.
- Renamed
PICA_CMD_DATA_FOG_SHADOW to PICA_CMD_DATA_FRAGOP_SHADOW.
gx_MacroShader.h
- To comply with the specifications,
1 is now set in bit [18:18] of register 0x1c4.
PICA_CMD_DATA_FRAG_LIGHT_FUNC_MODE1
PICA_CMD_DATA_FRAG_LIGHT_FUNC_MODE1_LIGHT_SOURCE
- To comply with the specifications, a command that writes a value of
0 to bits [31:24] of register 0x25e is now generated twice immediately after a render kick command.
PICA_CMD_SET_START_DRAW_ARRAY
PICA_CMD_SET_START_DRAW_ELEMENT
- Renamed macros (the original names were moved to
gx_MacroOld.h).
- Renamed
PICA_CMD_DATA_VERTEX_ATTR_ARRAYS to PICA_CMD_DATA_VERTEX_ATTR_ARRAYS0.
- Renamed
PICA_CMD_DATA_LOAD_ARRAY0_ELEMENT to PICA_CMD_DATA_LOAD_ARRAY_ELEMENT0.
- Added new macros.
PICA_CMD_DATA_VERTEX_ATTR_ARRAYS1
PICA_CMD_DATA_LOAD_ARRAY_ELEMENT1
PICA_CMD_DATA_VS_GS_OUT_REG_NUM0
PICA_CMD_DATA_VS_GS_OUT_REG_NUM1
PICA_CMD_DATA_VS_GS_OUT_REG_NUM2
gx_MacroTexture.h
- To comply with the specifications,
0 is now written to bits [23:17] of register 0x80.
PICA_CMD_DATA_TEXTURE_FUNC
- Revised the internal implementation for flushing the texture cache to comply with the requirement to run the flush operation commands separately from enabling texture units.
PICA_CMD_SET_TEXTURE_FUNC_CLEAR
Revised the nngxInitialize function to configure bit [16:16] of register 0x25e and bit [0:0] of register 0x253. The rendering functions (glDraw*) no longer configure these bits.
Fixed the uniforms dmp_FragmentLightSource[i].distanceAttenuationScale to have an initial value of 1.0f, as documented, rather than 0.0f as they had been mistakenly set.
Removed commands generated within the glBindFramebuffer function because they were determined to be unnecessary. These commands cleared the framebuffer cache.
Fixed a bug that prevented textures from being reallocated properly in the glCopyTexImage2D function when only the texture argument type changed. (For example, when the values GL_RGBA and GL_UNSIGNED_BYTE were changed to GL_RGBA and GL_UNSIGNED_SHORT_4_4_4_4.)
Stopped checking for the following errors in the glCopyTexSubImage2D function's arguments.
GL_INVALID_VALUE errors when target is a cube map texture and width and height are different.
GL_INVALID_ENUM errors when textures are not specified using (NN_GX_MEM_VRAMA | GL_NO_COPY_FCRAM_DMP), (NN_GX_MEM_VRAMB | GL_NO_COPY_FCRAM_DMP), or (NN_GX_MEM_FCRAM | GL_COPY_FCRAM_DMP).
Allowed NN_GX_MEM_FCRAM | GL_NO_COPY_FCRAM_DMP to be used to specify the texture attached to the framebuffer. Until now this had generated a GL_INVALID_OPERATION error. (It has been possible to specify NN_GX_MEM_FCRAM | GL_COPY_FCRAM_DMP for some time.) However, hardware specifications do not allow the glClear function to clear a texture that was allocated in main memory and attached to the framebuffer.
Fixed a bug that prevented the glGetTexParameteri and glGetTexParameterf functions from getting values when GL_GENERATE_MIPMAP was specified for their pname argument.
Fixed a bug that prevented the glReadPixels function from correctly reading depth values in the GL_DEPTH24_STENCIL8_EXT format from a buffer when the stencil values were nonzero.
You can now set the format argument of the glReadPixels function equal to GL_STENCIL_INDEX to read from the stencil buffer.
However, you must set the type argument equal to GL_UNSIGNED_BYTE.
The 3D command buffer must be a multiple of 16, so the buffersize argument to the nngxAdd3DCommand function must now be a multiple of 16 rather than a multiple of 8 when copycmd is GL_FALSE.
Added a function that gets whether stereoscopic display is permitted.
This allows applications to determine whether the 3D depth slider is completely down or the system has disabled stereoscopic display.
Added timeout processing to the nngxWaitCmdlistDone function.
(This cannot be used in Release builds, though.)
You can also use the nngxSetTimeout function to specify the timeout duration and the callback function to invoke when a timeout occurs.
Fixed a bug that prevented data from being transferred correctly when the yflip argument was GL_TRUE and the source buffer was larger than the destination buffer.
Fixed the driver because it was not correctly checking that all six faces of texture data were placed within the same 32-MB boundary, as required by the hardware. (Errors could not be generated correctly for texture data that violated this placement restriction.)
Although the address of the GL_TEXTURE_CUBE_MAP_POSITIVE_X face of a cube map texture must be less than or equal to the address of every other face, this was not documented. Information has now been added to $CTR_SDK/documents/DMPGL20/DMPGL20_system_API_specification.pdf.
Changed the error code generated when command requests have exceeded (or when it has been determined that they will exceed) the limit already configured for a command list object. The new error code is GL_ERROR_COMMANDREQUEST_FULL_DMP; the old error code was GL_INVALID_OPERATION.
Allowed the glCopyTexImage2D and glCopyTexSubImage2D functions to copy from the depth (depth/stencil) buffer.
Allowed the depth buffer to be specified with the render-to-texture feature (it is no longer limited to the color buffer).
A command that sets the layer configuration to 0 is now generated when validation is performed if the uniform dmp_FragmentLighting.enabled has been set equal to GL_FALSE by a glUniform* function and has not been changed since.
This was done because even if fragment lighting is disabled, the number of processing cycles corresponding to the specified layer configuration are still used.
Fixed a bug that prevented proper validation when a texture attached by the glFramebufferTexture2D function was deleted.
Added macro definitions that indicate the locations of reserved uniforms.
To use them, include $CTR_SDK/include/nn/gx/CTR/gx_UniformLocationForFragmentShader.h.
Fixed a bug in the register settings (specifically for register 0x227) generated by the glDrawArrays function when a vertex buffer was in use.
Removed unnecessary register settings (also for register 0x227) generated by the glDrawArrays function when a vertex buffer was not in use.
The library used to begin sampling the accelerometers when the system started up. Now, it starts sampling when an instance of the AccelerometerReader class is created and stops when the instance is destroyed.
Added several functions that can get and set Exif information during encoding and decoding.
Added the following functions, which can get and set JPEG decoding options.
JpegMpDecoder::SetOption
JpegMpDecoder::GetOption
Added error codes that can be obtained by the GetLastError function when errors occur during encoding or decoding.
Added pixel formats that can be specified during encoding and decoding.
Fixed a bug that caused program execution to stop at an ASSERT statement while decoding particular JPEG files.
Added the StartJpegDecoderShrink function, which can both decode and shrink images.
Fixed the GetLastSamplingAddress function to return a pointer to the address where the most recent microphone sampling results are stored, rather than the previous address.
Added the SetLowPassFilter function, which configures whether a low-pass filter is applied to microphone input data.
Added overloaded functions that read the region and language settings and then check for profanity using the appropriate list, which is automatically selected.
Removed the overloaded CheckProfanityWords function that specified a region code, replacing it with an overloaded function that specifies a pattern list.
Following this change, you must initialize the FS library before you call the CheckProfanityWords function.
Added the GetContentVersion function, which is used to get the version number of the profanity patterns installed on the system.
Rather than being put to sleep, a thread is now forced to spin-wait with nn::os::SpinWaitCpuCycles if the sleep time specified to the nn::os::Thread::Sleep function is less than a certain value.
When exceptions occur outside of the debugger environment, applications now exit rather than displaying a red upper screen and stopping.
The nn::os::SetUserExceptionHandler function was added for exception processing in applications.
To allow an application to process exceptions, set Exception Handler equal to enable in the Config tool.
Explained CTR-SDK 0.10 specification changes for memory management with the OS library in the Function Reference Manual.
This was accompanied by the addition of version 0.1 of the System Programming Guide.
$CTR_SDK/documents/TechnicalNotes/SystemProgramingGuide/SystemProgramingGuide.pdf
Modified the Process function to return unchanged any UDS-level error codes that are detected when it is run.
This was actually changed in version 0.11 but was accidentally omitted from the change log.
There were errors in the explanations of how a Receiver instance is finalized.
These explanations were fixed to mention that the Close function must be called during the finalization process.
Established the result codes returned by the RDT API.
See the Function Reference Manual for explanations of the result codes and to learn which result codes can be returned by each function.
Revised the GetStatus function to return SENDER_STATE_NOT_INITIALIZED or RECEIVER_STATE_NOT_INITIALIZED if it attempts to get the state of an uninitialized Sender or Receiver instance.
Improved the audio quality of 3D surround sound.
Changed specifications for the GetHeadphoneStatus function and added the UpdateHeadphoneStatus function.
For details, see the Function Reference Manual.
Fixed a bug in the nn::snd::GetSampleLength function that caused it to return incorrect values for the ADPCM format.
Added the SetAuxFrontBypass function, which handles front bypass settings for 3D surround sound on the AUX bus.
Removed the nn::snd::Bcwav namespace and added a class with the same name.
This involves no changes other than making using namespace unusable.
Added a soft clipping feature to reduce clipping noise generated at the final stage of sound output.
Also added functions for changing and getting the clipping mode.
Added the nn::snd::Voice::SetStartFrameFadeInFlag function, which configures whether to fade in from a volume of 0 over a single sound frame immediately after playback starts.
Added a feature to configure the EULA with the Config tool.
Fixed a bug that caused the screens to turn yellow if the SD Card was removed while DevMenu was running.
Added an item for specifying the media size in RSF files.
For details, see the makerom reference page: $CTR_SDK/documents/tools/ctr_makerom.html.
Fixed a bug that prevented ctr_TexturePackager32.exe from obtaining the correct results (or caused it to exit illegally) when a texture node in the input XML file did not have a miplimit written. In such cases, the default value was an invalid value.
The default value was therefore changed to 1, indicating no mipmap levels, and the tool's version number was changed to 1.0.0.
Added a feature to ctr_makerom32 for compressing static regions.
This feature is enabled by default.
For details, see the makerom reference page: $CTR_SDK/documents/tools/ctr_makerom.html.
Fixed a bug that caused the upper screen to turn red and the lower screen to turn yellow when DevMenu returned an unexpected Result.
Sped up encryption performed by makerom.
Fixed a bug in the ConnectNetwork function that prevented statusUpdateEvent from being signaled when the local host connected to a network as an Audience node.
Changed the CreateEndpoint function so that it can create up to 16 endpoints that exist simultaneously rather than 16 endpoints total.
If the DestroyEndpoint function deletes an endpoint, the CreateEndpoint function can now be run more than 16 times.
Fixed a bug that allowed the CreateEndpoint function to successfully run even when the UDS library had not been successfully initialized.
Fixed a bug that caused the NetworkDescription::GetMacAddress function to return NULL when run on a NetworkDescription obtained either prior to initialization or when an invalid beacon was received.
Fixed a bug that only allowed the CreateEndpoint function to create 15 endpoints even though the Function Reference Manual stated that up to 16 (provisional specification) can be created.
Renamed Audience mode to Spectator mode for UDS communication.
Unchanged Audience-related definitions and function names can be used for now, but at some point in the future that support will be removed.
Added a note to the descriptions of the CreateNetwork, Scan, and ConnectNetwork functions, stating that they require time to complete.
Starting with this version, you must run Reset Setting in the Config tool before using the StereoCamera class.
Also, the StereoCamera::Finalize function did nothing in the past, but now processing has been added to it. You must now call it when you destroy an instance of the StereoCamera class.
- After you have connected to and finished communicating with your first Chance Encounter Communication partner, you cannot communicate with another partner. Both systems must be reset to communicate again.
- The Function Reference Manual for the FRIENDS library describes
ResultConnected incorrectly. This result is never returned when the local host connects.
Renamed functions and reorganized C functions that had not kept up with other additions.
- Nonexistent implementations
- Deleted
nnacCancelConnect
- Function Name Changes
- Renamed
nnacDebugSetNetworkSettingA to nnacDebugSetNetworkSetting1
- Addition
nnacGetLastErrorCode
nnacGetLastDetailErrorCode
nnacGetConnectingApType
nnacGetConnectingNintendoZoneBeaconSubset
Fixed a bug that made it impossible to use WPA to connect to an access point in WPA/WPA2 mixed mode.
Removed the DebugFlushNetworkSetting function.
Settings made by DebugSetNetworkSetting1 can be used as temporary network settings, but these settings can no longer be saved permanently in NAND memory.
Added a function that can register an event to detect unintended access point disconnections.
Removed the IsBufferError function. Starting with CTR-SDK 0.11, the CAMERA library clears the buffer and the error state whenever a buffer error occurs. This change caused the function to be unable to correctly identify buffer errors.
To determine whether a buffer error has occurred, check the event state obtained by the GetBufferErrorInterruptEvent function.
Fixed a bug that prevented the SetExposure function from properly configuring the exposure in some environments where particular framerates have been set.
Modified the SynchronizeVsyncTiming function's internal processing to improve performance.
As a result of these changes, the V-Sync signals after this function is run do not have as large a discrepancy as they did before the changes were made.
However, two issues have not really been fixed. First, the screen used to turn extremely dark for four frames after this function was run. Now, when the brightness of the two camera images is very different, the screen turns extremely bright for three frames after this function is run. Second, it still takes as long as before for the auto-exposure to stabilize.
Replaced the shutter sound played by the PlayShutterSound function with the final version of the sound.
Added processing that, when the white balance is set, applies parameters measured at the factory to compensate for differences between individual systems.
However, these parameters are not stored in systems manufactured prior to mid-August.
White balance settings have not changed for these systems.
Fixed a bug that illuminated the camera LED when the shutter sound was played while the inner camera was in use.
Fixed camera LED behavior while the outer cameras are in use so that the camera LED begins flashing when the recording-started sound is played and returns to being steadily illuminated when the recording-ended sound is played.
Changed the Chance Encounter Communication daemon as follows.
- Added the
CecControl::StartScanning function to start scanning and the CecControl::StopScanning function to stop scanning. These functions can be used after the nn::cec::Finalize function.
These functions represent a provisional specification.
- Added a feature to remember the MAC addresses of previous communication partners and refrain from communicating with them again as a measure to reduce power consumption. Follow the steps below to erase these stored addresses and allow further communication with previous partners.
- Start running the daemon with
CecControl::StartScanning(true).
- Write data to the outbox.
- Delete the data in the outbox.
- Delete the box.
- Move the data storage location to NAND memory.
Fixed a bug that caused the nn::cfg::CTR::GetRegion function to get undefined region codes.
Added support for system updates through Download Play for card-based software only. (NAND-based software will be supported in the future.)
Card-based software distributes the system required for running the child program to clients from its own update partition. Following a system update, the server (the card-based software) enters the SERVER_STATE_WAITING_RECONNECT state and waits until rebooted clients reconnect. You must therefore provide a user interface for canceling Download Play.
While an application is under development it cannot include an update partition. Be aware that you cannot perform system updates through Download Play during development.
Restricted the number of titles that can be simultaneously scanned to 16. Previously this number was unlimited.
Use a value of 16 or less for the scanNum argument to the FakeClient::Initialize function.
Server and title information that differs from the local system's region is now filtered out while scanning.
Following this change, a system can no longer connect to a server with a different region.
Also, the type of the region information handled by Download Play has been changed to nn::cfg::CfgRegionCode.
The RebootInfo structure stores child reconnection information. Replaced its mac member variable with the bssid member variable.
Copy the server's MAC address into the bssid member variable as you did prior to this change.
Allowed child programs to be embedded in applications and distributed.
In line with this change, child programs can no longer be distributed from SD Cards.
To learn how to embed programs, see the OMakefile for $Sample Demos/dlp/SimpleServer.
To distribute an embedded child program, specify the child program's ID in the Server::Initialize function.
With CTR-SDK 0.11 an SD Card was required to write parameters, but this is no longer necessary.
You can now use the nn::dlp::GetRebootInfo function to get parameters from the system-specific memory region.
Servers can now read information (icons and metadata) from ICN files embedded in child programs.
For examples of child programs with embedded ICN files, see $Sample Demos/dlp/Child.
This eliminates the need to specify the icon and program title with the Server::Initialize function, so its arguments were changed.
Fixed a bug that prevented the nn::fs::FormatSaveData function from formatting data properly and caused it to create fewer than the specified number of files when a large number of files (or other similar characteristic) was specified.
Fixed a bug that occurred when NN_LOG was used to output a large number of log messages. This bug prevented completion notifications from being sent for graphics commands and, among other problems, caused the nngxWaitCmdlistDone function to stop returning.
Fixed a bug that caused programs to show red screens and stop at a random time if vertex data and textures had been placed in VRAM and were being used from VRAM.
Fixed a bug that prevented the debug pad from working properly during debug log output.
The library used to begin sampling the accelerometers when the system started up. Now, it starts sampling when an instance of the AccelerometerReader class is created and stops when the instance is destroyed.
Fixed a bug that caused invalid data to be sent in multipart lazy POST operations.
Fixed a bug that caused the next round of HTTP communication to a server to fail following a keepalive timeout on the server.
Added Read and Send functions that block until communication has completed and allow a timeout to be specified.
Fixed the GetLastSamplingAddress function to return a pointer to the address where the most recent microphone sampling results are stored, rather than the previous address.
Added the SetLowPassFilter function, which configures whether a low-pass filter is applied to microphone input data.
Fixed the microphone input gain settings, which had been unsuitable.
This revision increases the base input amplitude by approximately 6 dB.
When the nn::dbg::Break function is not called from the debugger environment, applications now exit rather than displaying a yellow upper screen and stopping.
By setting Break Stop equal to enable with the Config tool, however, you can force applications to stop rather than exit.
Rather than being put to sleep, a thread is now forced to spin-wait with nn::os::SpinWaitCpuCycles if the sleep time specified to the nn::os::Thread::Sleep function is less than a certain value.
When exceptions occur outside of the debugger environment, applications now exit rather than displaying a red upper screen and stopping.
The nn::os::SetUserExceptionHandler function was added for exception processing in applications.
To allow an application to process exceptions, set Exception Handler equal to enable in the Config tool.
Implemented a high-pass filter with a cut-off frequency of 10 Hz to protect headphones and reduce power consumption.
There is no detectable change in audio quality.
Added support for SSL communication with SHA-256 certificates.
Added support for SSL communication using pre-installed (built-in) commercial CA certificates.
Added a feature to ctr_makerom32 for compressing static regions.
This feature is enabled by default.
See the reference page for details.
Fixed a bug that prevented the correct information from being obtained when the GetConnectionStatus function was run in Audience mode.
- The debugger software cannot import CIA files.
- Save data access is not thread-safe.
- In the AC library, network settings made by
DebugSetNetworkSetting1 are applied to NAND memory when a connection succeeds, even though they should not be.
Allowed child programs to be embedded in applications and distributed.
In line with this change, child programs can no longer be distributed from SD Cards.
To learn how to embed programs, see the OMakefile for $Sample Demos/dlp/SimpleServer.
To distribute an embedded child program, specify the child program's ID in the Server::Initialize function.
Servers can now read information (icons and metadata) from ICN files embedded in child programs.
For examples of child programs with embedded ICN files, see $Sample Demos/dlp/Child.
This eliminates the need to specify the icon and program title with the Server::Initialize function, so its arguments were changed.
The process of generating quaternions from normal and tangent vectors was confirmed to produce invalid results with the vertex shader files included with the DMPGL samples.
A bug in the calculations following the branch at the l_full_quaternion_calc_fallback or l_full_quaternion_calc_fallback_reflection label resulted in invalid lighting at the boundary between results of entering the branch and results of not entering the branch. This bug has been fixed.
Fixed the lookup table generated by the LoadLamp function in the ProctexClamp sample. Formerly this lookup table was not set with correct values for the number of elements (the first half of 128 elements and the latter half of 128 delta values).
Allowed any value, rather than only 2, to be specified as the number of display buffers to generate (separately for the upper and lower screens) with the Initialize function in the demo::RenderSystem* classes.
Specifying any value other than 2 used to result in an error.
Fixed the basic sample demo so that even Release builds generate log output.
Added the bidirectional RDT sample demo.
This demo shows sample code for sending and receiving data between two systems simultaneously.
Changed the StreamPlayer SND sample demo so that it now performs streaming playback of ADPCM files in the BCWAV format.
Changed the synchronous objects used for mutual exclusion in the com_demo1 demo from Mutex to CriticalSection.
You can also now set the priority of individual threads.
Renamed AUDIENCE Mode to SPECTATOR Mode.
- If the remaining battery life reaches Level 0 even once, the
Battery PTM demo stops running properly.
Fixed a bug that stopped sound during non-looping playback of a short waveform that ends within a single sound frame (5 ms).
Fixed a bug that prevented ROM files from being created at or beyond a fixed size (of approximately 400 MB).
- The
nn::fs::FormatSaveData function parses the maxFiles and maxDirectories arguments in reverse. To deal with this, pass the opposite values as arguments in CTR-SDK 0.11.
- The
statusUpdateEvent that is signaled when a system connects to a network as a Master or Client is not signaled when the same system connects as an Audience.
- You cannot use the following functions in the profanity library.
- The
CheckProfanityWords function that checks all regions
- The
CheckProfanityWords function that checks each region separately, called using CFG_REGION_TAIWAN
The ngc_simple demo therefore does not run properly.
- After you have connected to and finished communicating with your first Chance Encounter Communication partner, you cannot communicate with another partner. Both systems must be reset to communicate again. Communication data that has been sent and received is saved on the SD Card and is therefore not erased even after a reset.
- The Power Button originally needed to be pressed for two or more seconds to start the shutdown process, but because of a bug the system may shut down even if the Power Button is held down for a shorter period of time.
Fixed the nn::fs::GetRomRequiredMemorySize function to return the correct values.
Fixed a bug that created noise when a buffer jump was performed during streaming playback of an ADPCM format audio source.
- The
nn::fs::FormatSaveData function parses the maxFiles and maxDirectories arguments in reverse. To deal with this, pass the opposite values as arguments in CTR-SDK 0.11.
- The
statusUpdateEvent that is signaled when a system connects to a network as a Master or Client is not signaled when the same system connects as an Audience.
- You cannot use the following functions in the profanity library.
- The
CheckProfanityWords function that checks all regions
- The
CheckProfanityWords function that checks each region separately, called using CFG_REGION_TAIWAN
The ngc_simple demo therefore does not run properly.
- After you have connected to your first communication partner and finished communication, you cannot communicate with another partner. Both systems must be reset to communicate again. Communication data that has been sent and received is saved on the SD Card and is therefore not erased even after a reset.
- The Power Button originally needed to be pressed for two or more seconds to start the shutdown process, but because of a bug the system may shut down even if the Power Button is held down for a shorter period of time.
Removed C wrapper functions from the camera library because they cannot be supported.
Revised the Finalize function to turn off the camera LED if it is illuminated.
Added the GetSuitableY2rStandardCoefficient function, which gets conversion coefficients suitable for converting YUV data output by the cameras (on the CTR system running the program) into the RGB format using the Y2R library.
Revised the Initialize and Finalize functions to initialize and clean up settings.
Removed the SynchronizeWhiteBalance function because it had a bug that proved difficult to fix.
We are considering an alternate method of synchronizing the brightness and contrast between the left and right cameras to adjust image brightness and coloring.
Changed the following camera setting functions to return an nn::Result value because there was a need for applications to handle errors.
Initialize
Activate
SwitchContext
SetExposure
SetWhiteBalance
SetSharpness
SetAutoExposure
IsAutoExposure
SetAutoWhiteBalance
IsAutoWhiteBalance
FlipImage
SetDetailSize
SetSize
SetFrameRate
SetPhotoMode
SetEffect
SetContrast
SetLensCorrection
SetOutputFormat
SetAutoExposureWindow
SetNoiseFilter
- SynchronizeVsyncTiming
PlayShutterSound
Removed SHUTTER_SOUND_TYPE_CONTINUOUS, a ShutterSoundType that indicates continuous shutter sounds, and added SHUTTER_SOUND_TYPE_MOVIE and SHUTTER_SOUND_TYPE_MOVIE_END, which indicate the start and end of video filming, respectively.
Data has also been updated for the normal shutter sound.
Removed the GetRebootEvent function, which gets a notification event when a malfunction causes a recovery, and the IsRebootSuccessful function, which determines whether the recovery succeeded or failed.
From now on, a notification is sent for events with the GetBufferErrorInterruptEvent function regardless of whether recovery succeeded or failed.
If recovery fails, an error is returned afterwards by a call to a camera setting function that returns a Result value.
If a camera setting function is called during a recovery, it blocks internally until recovery has completed (successfully or not).
Removed the following functions, which automatically received image data from the camera at every frame.
SetReceivingAuto
SetReceivingRgbAuto
StopReceivingAuto
StopReceivingRgbAuto
Added the following functions, which change multiple camera settings all at once.
SetPackageParameterWithoutContext
SetPackageParameterWithContext
Changed the notation "GameID" to "CecTitleId".
If the most-significant 24 bits of a new Chance Encounter box's CecTitleId match an existing box, it can no longer be created because it is considered to be a box for the same title.
Added support for the CEC library starting with CTR-SDK 0.11.
- Changes from the beta version
- Added the
MessageBoxInfoReader class.
- Limitations
- Data is saved on an SD Card, which must be inserted in the system.
- Because communication does not start automatically, you must start it using the
CecControl class.
Renamed the Chance Encounter Communication library's namespace, classes, files, and so on from "cecd" to "cec".
Class names no longer begin with "Cec".
- Changed
<nn/cecd.h> to <nn/cec.h>
- Changed
libnn_cecd to libnn_cec
- Changed
nn::cecd::CecdXXX() to nn::cec::XXX()
- Renamed the
CecMessageBox class to MessageBox
Made the following changes to the API for getting user information.
- Added constants used to parse simple address information IDs.
- Removed functions for getting the area code (it is now obtained from the simple address information ID).
- Added Taiwan to the region list.
Unlike on a Nintendo DS, CTR Download Play saves downloaded child programs in NAND memory.
However, when a new child program is downloaded it overwrites the old one.
There is no support for this library with CTR-SDK 0.11.
- Added elements
- Server API
- Loads and distributes a child program from ROM. Child programs are temporarily being distributed from SD Cards.
- Simulated client API
- Connects to a server without downloading.
DlpClient
- A client application used for development. It downloads and boots a child program.
- Sample Demos
SimpleServer: Sample demo for a server
FakeChild: Sample demo for a simulated client
Child: Sample demo for a child program
- Usage Restrictions
- Prepare the server location for storing the child program on an SD Card. The child program will be included in the server ROM in the future.
- The rating and ULCD flags are not supported in the child meta-information broadcast by the server. Invalid values are always distributed.
- Parameters for re-connecting to the network after the child program boots are tentatively being written to an SD Card.
- Behavior has only been verified with up to three systems, including the server.
- Currently Known Bugs
- The child program cannot boot if
DlpChild was specified as the TitleInfo/Category entry in the RSF file. Specify Application.
- After the client has been re-initialized, it halts if the
StartScan function is called to start scanning.
Revised all constants and macros defined by #define statements so that they start with NN_DSP_.
Fixed a bug that caused actual processing for the nn::fnd::HeapBase::DebugFillMemory function to be run even in Release builds.
Fixed a bug that under specific conditions prevented access to save data at paths beginning with "data:" on CTR Cards.
Save data regions must now be explicitly formatted and mounted when save data archives are used.
The nn::fs::FormatSaveData and nn::fs::MountSaveData functions were added to format and mount save data, respectively.
The nn::fs::CommitSaveData function was also added for the save data commit feature that will be added in the future.
Stopped volume labels from being listed when directories are read.
Volume labels had been listed until now.
Fixed a bug that prevented seek operations to the end of a file in functions such as Seek and SetPosition for nn::fs::FileStream classes.
Added functions for accessing expanded save data: nn::fs::CreateAndMountExtSaveData creates it and nn::fs::MountExtSaveData mounts it.
Also added the nn::fs::ReadExtSaveDataIcon function for accessing the icon data in expanded save data.
The following are the main changes to each document.
DMPGL20_system_API_specification.pdf
- Added tables with the registers corresponding to uniforms for the reserved geometry shaders.
- Added information on address restrictions for cube map textures.
- DMPGL20_specification.pdf
- Added section 5.1.14 Texture Coordinate Precision under section 5.1 Texture Units in Chapter 5 Rasterization.
DMPGL20_programing_guide.pdf
- Added precautions for a texture filter mode of
GL_NEAREST.
- Added text related to the vertex buffer in Chapter 19 Performance-Enhancement Techniques.
Revised the macro headers as follows.
gx_MacroShader.h
- Fixed an error in a bitwise AND for
index in PICA_CMD_DATA_GS_FLOAT_ADDR(mode, index).
- Revised
PICA_CMD_DATA_VS_FLOAT_ADDR(mode, index) to take a bitwise AND for index like PICA_CMD_DATA_GS_FLOAT_ADDR.
gx_MacroTexture.h
- Fixed errors in the argument names used by the internal implementation of
PICA_CMD_DATA_TEXTURE_LOD_LEVEL(lodBias, maxLodLevel, minLodLevel).
- Renamed
PICA_DATA_TEXTURE_FORMAT_HILO8_DMP_UNSIGNED_BYTE_DMP to PICA_DATA_TEXTURE_FORMAT_HILO8_DMP_UNSIGNED_BYTE to match the specifications (the old definition was moved to gx_MacroOld.h).
Fixed a mistake in the description of the nn::gx::CTR::MemAccessPrioMode definition.
Added information on the specifications of the primary color equation for fragment lighting. When light source 0 is disabled (dmp_FragmentLightSource[0].enabled is GL_FALSE), it disables the sum that is multiplied with the emission and global ambient color.
Fixed a bug that prevented attributes output to the o3 register of DMP_subdivision3.obj from being interpolated properly.
Fixed a bug that created invalid silhouettes when two vertices in a single TWN primitive overlapped.
Fixed a bug that caused the currently bound texture collection to be deleted immediately and 0 to be bound as the texture collection, rather than waiting for another texture collection to be bound.
Increased the number of values that can be passed to the pname argument of the nngxGetCmdlistParameteri function for the current command list, allowing you to get a variety of information.
Note: See the documentation for further details.
Added the nngxTransferLinearImage function. This is the opposite of the nngxTransferRenderImage function: It adds commands that convert image data into block format and transfers it to the specified render buffer or texture.
Fixed a bug that occurred during validation after the current program object had been unset by a function call such as glUseProgram(0), preventing scissoring-related commands with no relationship to the original program object (NN_GX_STATE_SCISSOR) from being generated.
Fixed the line shader to no longer use the b0 register, which originally should have been unnecessary.
Note that this revision has changed the values required when you directly generate commands to configure the reserved geometry shader.
Specifically, the value written to 0x280[15:0] has changed from 0x0001 to 0x0000.
Made it possible to get the address of the bound render buffer by specifying GL_RENDERBUFFER_DATA_ADDR_DMP to the pname argument of glGetRenderbufferParameteriv.
Added information on the following hardware restriction that had been omitted from the documentation: GL_LIGHT_ENV_SP_DMP and GL_LIGHT_ENV_CP_DMP cannot be specified for dmp_LightEnv.lutInput{FR,RR,RG,RB}.
Added the nngxInvalidateState function, which can disable the update flag for the specified state with an argument.
In STICK_CLAMP_MODE_CROSS mode alone, the latter half of values that should have been continuous from 0 to 103 jumped instead (for example, from 80 to 103).
This problem has been corrected.
Reviewed the maximum and minimum clamp values that can be specified with the SetStickClamp function.
const s16 LIMIT_OF_STICK_CLAMP_MAX = 150 <- 153 in SDK 0.10.2
const s16 MIN_OF_STICK_CLAMP_MODE_CIRCLE = 50 <- 50 in SDK 0.10.2 (unchanged)
const s16 MIN_OF_STICK_CLAMP_MODE_CROSS = 38 <- 46 in SDK 0.10.2
Any specified argument values that do not conform to these restrictions are corrected to the limit values.
The SetStickClamp and GetStickClamp functions used to use common parameters regardless of the clamp mode, but now these parameters are managed separately. This is because threshold values have different limits in each clamp mode. Note that the SetStickClamp and GetStickClamp functions handle threshold values for the current clamp mode.
Removed libnn_hiolow.*.a because the libnn_hiolow features are included in the libnn_dev library.
Sped up the SinIdx, CosIdx, and SinCosIdx functions.
Each function's output has remained the same.
Removed C wrapper functions for the Microphone library because they cannot be supported.
Added the GetForbiddenArea function, which gets the maximum and minimum values for the region within which it is prohibited to determine that there is input. These limits change with the microphone amp and gain.
Added constants for each sampling type's guaranteed microphone input range, which are different.
TYPE_8BIT_GUARANTEED_INPUT_MIN
TYPE_8BIT_GUARANTEED_INPUT_MAX
TYPE_16BIT_GUARANTEED_INPUT_MIN
TYPE_16BIT_GUARANTEED_INPUT_MAX
TYPE_SIGNED_8BIT_GUARANTEED_INPUT_MIN
TYPE_SIGNED_8BIT_GUARANTEED_INPUT_MAX
TYPE_SIGNED_16BIT_GUARANTEED_INPUT_MIN
TYPE_SIGNED_16BIT_GUARANTEED_INPUT_MAX
Changed the heap mutex object used by the default implementation of malloc and free from nn::os::Mutex to nn::os::CriticalSection.
Added interfaces under nn::ptm::CTR for the remaining battery life, the battery recharge state, and the existence of an AC plug.
Fixed a bug that occurred when a Sender sent an Open request to a Receiver and the Receiver's confirmation response packet got lost, preventing the Sender from properly transitioning between states afterward.
Changed the effect of selecting 3D surround sound mode so that it is appropriate for the test unit.
Added a feature to specify the loop position in the EncodeAdpcmData function.
Added the DecodeAdpcmData function, which converts DSP-ADPCM data into 16-bit PCM data.
Added the ConvertAdpcmPos2Nib and ConvertAdpcmNib2Pos functions, which convert between DSP-ADPCM nibble counts and sample counts.
Changed the specifications for the relationship between the sound output mode specified by the system settings and the mode argument specified by the nn::snd::SetSoundOutputMode function.
The downmix coefficients for monaural output were also changed.
For details, see the Function Reference Manual and the CTR Programming Manual.
Changed the nn::snd::SetSurroundDepth function's argument from a u16 value to an f32 value.
The initial depth value is now 1.0f.
Changed constraints related to the buffer to register.
For details, see the Function Reference Manual and the CTR Programming Manual.
Fixed a bug that turned small volume changes given to the nn::snd::Voice::SetVolume function into noise.
Added the nn::snd::Voice::SetupBcwav function, which parses a BCWAV file and then configures the required nn::snd::Voice settings.
Fixed a bug that caused noise when the nn::snd::Voice filter feature was used with the biquad filter type set.
Revised all constants defined by #define statements so that they start with NN_SND_.
Reviewed the volume configuration for the overall system.
Specifically, the digital volume was increased and the analog volume was decreased.
The total volume has not changed.
Always run ResetSettings with the Config tool after applying the System Updater for CTR-SDK 0.11.
Otherwise, the proper volume will not be used.
The Initialize function used to accept an allocator, but it has been changed to accept a memory region that is 4096-byte aligned.
You can still try to use the old function for the time being, but we plan to remove it because it uses memory inefficiently.
Fixed a bug that prevented the backlight brightness and active backlight setting (on or off) from being applied immediately after being changed by the Config tool.
Made the following changes to the DevMenu.
- Revised error dialog boxes to display textual Result information.
- Fixed a bug that caused the screen to break up on application startup.
- Fixed a bug that caused the program to freeze when an SD Card was inserted and then immediately removed.
- Allowed the user to erase all displayed programs by pressing the L Button, R Button, and X Button simultaneously.
- Changed the list order to use ascending program IDs.
Made the following changes to ctr_makerom32.
For details, see $CTR_SDK/documents/tools/ctr_makerom.html.
- Added an option to output a list of files stored in ROMFS as well as the output image title when
ctr_makerom is run.
- Changed
ctr_makerom to output a warning when it is run with BasicInfo/InitialCode specified in an RSF file. We plan to delete this item in the next release.
- Allowed the following items to be specified in an RSF file.
BasicInfo/CompanyCode
BasicInfo/ProductCode
TitleInfo/UniqueId
Added the TPL library, which loads textures from packages at runtime, and a tool that loads TGA image files and then converts them into the native PICA format (compressed or otherwise) to create a package file that combines multiple textures.
Overloaded the == and != operators of the NetworkDescriptor class so that objects of that class can be compared.
The NetworkDescriptionReader::GetNetworkDescription function has always returned an error when it gets an invalid UDS network beacon, but it succeeds even when the data is invalid. The function was changed so that data will not be obtained in such cases.
The NetworkDescriptionReader::GetNodeInformationList function has always returned an error when it gets an invalid UDS network beacon, but it succeeds even when the data is invalid. The function was changed so that data will not be obtained in such cases.
The absence of data that should have been received has been treated as an error when the NO_WAIT option is specified, but now the function itself succeeds and returns 0 as the received data size.
Reviewed and adjusted the Result values returned by the functions in the UDS library.
For details, see the Function Reference Manual.
Definitions prior to CTR-SDK 0.10.2 can still be used, but we plan to remove them in the next release.
Revised this function to return rather than ignore send errors caused by depleted resources within the wireless driver when the NO_WAIT option is specified.
Nothing has changed when the NO_WAIT option is not specified.
Revised the SendTo and Attach functions to not allow the use of port 0, which is reserved by the system.
Revised the Network section in the index of the Function Reference Manual because there was no link to the UDS library, making it hard to access.
Removed C wrapper functions for the Y2R library because they cannot be supported.
Revised the Initialize and Finalize functions to initialize and clean up settings.
Revised the conversion coefficients set by COEFFICIENT_ITU_R_BT_601 and COEFFICIENT_ITU_R_BT_709 in the SetStandardCoefficient function.
These revisions have caused the R and B output values to be 1 smaller and the G output values to be 1 larger than before with COEFFICIENT_ITU_R_BT_601.
The G value is sometimes 1 larger than before with COEFFICIENT_ITU_R_BT_709.
Both COEFFICIENT_ITU_R_BT_601 and COEFFICIENT_ITU_R_BT_709 assume that the YUV input values are between 0 and 255. Two new conversion coefficients, COEFFICIENT_ITU_R_BT_601_SCALING and COEFFICIENT_ITU_R_BT_709_SCALING, were added to support Y input values between 16 and 235 and UV input values between 16 and 240.
Changed the StartConversion function to return an nn::Result value because there was a need for applications to handle errors.
Added the SetPackageParameter function, which changes multiple Y2R settings all at once.
- The
nn::fs::GetRomRequiredMemorySize function has been confirmed to return incorrect values when it is called with useCache set to true. Because you may encounter memory corruption or other fatal errors if you use these values to mount a ROM, pass the sum of the following values to nn::fs::MountRom.
- The value obtained from
nn::fs::GetRomRequiredMemorySize with useCache set to false
- (the number of files in the ROM) * 64 bytes
- (the number of directories in the ROM) * 64 bytes
- 1 KB
- The
nn::fs::FormatSaveData function parses the maxFiles and maxDirectories arguments in reverse. To deal with this, pass the opposite values as arguments in CTR-SDK 0.11.
- The FS library may not always be thread-safe in its timing. Further details are still under investigation, but please inform us if you encounter any symptoms that you think may be caused by this.
- The
statusUpdateEvent that is signaled when a system connects to a network as a Master or Client is not signaled when the same system connects as an Audience.
- You cannot use the following functions in the profanity library.
- The
CheckProfanityWords function that checks all regions
- The
CheckProfanityWords function that checks each region separately, called using CFG_REGION_TAIWAN
The ngc_simple demo therefore does not run properly.
- After you have connected to your first communication partner and finished communication, you cannot communicate with another partner. Both systems must be reset to communicate again. Communication data that has been sent and received is saved on the SD Card and is therefore not erased even after a reset.
- The Power Button originally needed to be pressed for two or more seconds to start the shutdown process, but because of a bug the system may shut down even if the Power Button is held down for a shorter period of time.
Revised the Connect function as follows.
- Fixed a bug that caused the kernel to abort when a Nintendo Zone was discovered.
- Fixed a bug that kept the system connected to an access point when it failed an Internet connection test.
Added a function to get the wireless signal strength for the access point that is currently connected.
Revised the Finalize function to turn off the camera LED if it is illuminated.
Added the GetSuitableY2rStandardCoefficient function, which gets conversion coefficients suitable for converting YUV data output by the cameras (on the CTR system running the program) into the RGB format using the Y2R library.
Revised the Initialize and Finalize functions to initialize and clean up settings.
Removed the SynchronizeWhiteBalance function because it had a bug that proved difficult to fix.
We are considering an alternate method of synchronizing the brightness and contrast between the left and right cameras to adjust image brightness and coloring.
The LED was revised to illuminate only when an outer camera, rather than any camera, starts up.
Changed the following camera setting functions to return an nn::Result value because there was a need for applications to handle errors.
Initialize
Activate
SwitchContext
SetExposure
SetWhiteBalance
SetSharpness
SetAutoExposure
IsAutoExposure
SetAutoWhiteBalance
IsAutoWhiteBalance
FlipImage
SetDetailSize
SetSize
SetFrameRate
SetPhotoMode
SetEffect
SetContrast
SetLensCorrection
SetOutputFormat
SetAutoExposureWindow
SetNoiseFilter
- SynchronizeVsyncTiming
PlayShutterSound
Removed SHUTTER_SOUND_TYPE_CONTINUOUS, a ShutterSoundType that indicates continuous shutter sounds, and added SHUTTER_SOUND_TYPE_MOVIE and SHUTTER_SOUND_TYPE_MOVIE_END, which indicate the start and end of video filming, respectively.
Data has also been updated for the normal shutter sound.
Removed the GetRebootEvent function, which gets a notification event when a malfunction causes a recovery, and the IsRebootSuccessful function, which determines whether the recovery succeeded or failed.
From now on, a notification is sent for events with the GetBufferErrorInterruptEvent function regardless of whether recovery succeeded or failed.
If recovery fails, an error is returned afterwards by a call to a camera setting function that returns a Result value.
If a camera setting function is called during a recovery, it blocks internally until recovery has completed (successfully or not).
Removed the following functions, which automatically received image data from the camera at every frame.
SetReceivingAuto
SetReceivingRgbAuto
StopReceivingAuto
StopReceivingRgbAuto
Added the following functions, which change multiple camera settings all at once.
SetPackageParameterWithoutContext
SetPackageParameterWithContext
Unlike on a Nintendo DS, CTR Download Play saves downloaded child programs in NAND memory.
However, when a new child program is downloaded it overwrites the old one.
There is no support for this library with CTR-SDK 0.11.
- Added elements
- Server API
- Loads and distributes a child program from ROM. Child programs are temporarily being distributed from SD Cards.
- Simulated client API
- Connects to a server without downloading.
DlpClient
- A client application used for development. It downloads and boots a child program.
- Sample Demos
SimpleServer: Sample demo for a server
FakeChild: Sample demo for a simulated client
Child: Sample demo for a child program
- Usage Restrictions
- Prepare the server location for storing the child program on an SD Card. The child program will be included in the server ROM in the future.
- The rating and ULCD flags are not supported in the child meta-information broadcast by the server. Invalid values are always distributed.
- Parameters for re-connecting to the network after the child program boots are tentatively being written to an SD Card.
- Behavior has only been verified with up to three systems, including the server.
- Currently Known Bugs
- The child program cannot boot if
DlpChild was specified as the TitleInfo/Category entry in the RSF file. Specify Application.
- After the client has been re-initialized, it halts if the
StartScan function is called to start scanning.
Made the system's 3D LED (the green light) illuminate when NN_GX_DISPLAYMODE_STEREO is specified by the nngxSetDisplayMode function to enable stereoscopic display.
Revised the input buffer address assigned when the Initialize function is called so that it does not overlap with addresses that can be used as an application heap.
In STICK_CLAMP_MODE_CROSS mode alone, the latter half of values that should have been continuous from 0 to 103 jumped instead (for example, from 80 to 103).
This problem has been corrected.
Reviewed the maximum and minimum clamp values that can be specified with the SetStickClamp function.
const s16 LIMIT_OF_STICK_CLAMP_MAX = 150 <- 153 in SDK 0.10.2
const s16 MIN_OF_STICK_CLAMP_MODE_CIRCLE = 50 <- 50 in SDK 0.10.2 (unchanged)
const s16 MIN_OF_STICK_CLAMP_MODE_CROSS = 38 <- 46 in SDK 0.10.2
Any specified argument values that do not conform to these restrictions are corrected to the limit values.
The SetStickClamp and GetStickClamp functions used to use common parameters regardless of the clamp mode, but now these parameters are managed separately. This is because threshold values have different limits in each clamp mode. Note that the SetStickClamp and GetStickClamp functions handle threshold values for the current clamp mode.
Changed accelerometer axis settings, taking compatibility with existing Nintendo hardware into account.
Note that these changes have replaced axes and reversed signs.
- Previous axis settings
- Positive x-axis: Right from the +Control Pad
- Positive y-axis: Down from the +Control Pad
- Positive z-axis: Into the Touch Screen
- Changed axis settings
- Positive x-axis: Left from the +Control Pad
- Positive y-axis: Into the Touch Screen
- Positive z-axis: Up from the +Control Pad
Fixed a bug that prevented input from keys other than the L Button and R Button when the Sleep Mode switch was set to "sleep" at startup.
Fixed a bug that prevented more than 998 bytes of data from being set with the AddPostData* functions.
Fixed the spelling of the NofityFinishSendPostData function by changing "Nofity" to "Notify."
Fixed a bug that caused a terminating null character to be sent as POST data along with the string.
Added support for a Nintendo Class 2 CA certificate built into the system.
Revised the Finalize function to stop any sampling in progress when it is called, turn off the microphone, and then set the microphone's amplifier gain equal to its initial value of 43.
Changed the initial value of the microphone's amplifier gain from 50 to 43.
Revised the microphone to be silent when it is turned on or recovers from Sleep Mode because for the first second microphone input is unstable.
Changed the interval between scans for Chance Encounter zones from 20 seconds to 10 seconds.
Fixed a bug that prevent the debugger's VFP register value from being updated properly.
Added a feature that can cancel the display of a red upper and lower screen, which notifies the user that abnormal processing was detected on the system.
Press the L Button, R Button, START, and SELECT simultaneously to stop forcing the screen to be displayed.
Fixed a bug that prevented recovery from a call to Wait in nn::os::WaitObject::WaitAll.
Starting with CTR-SDK 0.10, the power turned off four seconds after the Power Button was held down for two seconds. This has been changed in CTR-SDK 0.11 so that the power turns off when the Power Button is held down for six seconds.
Fixed a bug that on rare occasions increased the volume irrespective of the system volume.
Fixed a firmware bug that on rare occasions decreased the volume.
Reviewed the volume configuration for the overall system.
Specifically, the digital volume was increased and the analog volume was decreased.
The total volume has not changed.
Always run ResetSettings with the Config tool after applying the System Updater for CTR-SDK 0.11.
Otherwise, the proper volume will not be used.
Added an SSL function to get pseudorandom numbers that use internal system information.
Added support for getting all the data in a server certificate chain verified by an SSL handshake.
Added the GetCertVerifyErrors function, which collectively gets the causes of a failure to verify a server certificate.
Added support for SSL communication using non-blocking sockets.
Fixed a memory leak that occurred when the system disconnected from an access point during socket communication.
Changed the maximum number of socket descriptors that can be created by the application to 16.
Added Sound Output and System Mode to Other Settings in the Config tool.
For details, see the Function Reference Manual.
Fixed a bug that caused the detection of lower signal strength values than expected in Client systems.
Stopped adding unnecessary empty data to the data sent with a beacon.
Modified the nn::uds::Initialize function to return an error if it is called while wireless functionality is disabled.
Likewise, if the Wi-Fi Button is pressed while the UDS library is in use, the system disconnects from the current network regardless of its wireless mode and then any function other than Finalize fails.
Revised the Initialize and Finalize functions to initialize and clean up settings.
Revised the conversion coefficients set by COEFFICIENT_ITU_R_BT_601 and COEFFICIENT_ITU_R_BT_709 in the SetStandardCoefficient function.
These revisions have caused the R and B output values to be 1 smaller and the G output values to be 1 larger than before with COEFFICIENT_ITU_R_BT_601.
The G value is sometimes 1 larger than before with COEFFICIENT_ITU_R_BT_709.
Both COEFFICIENT_ITU_R_BT_601 and COEFFICIENT_ITU_R_BT_709 assume that the YUV input values are between 0 and 255. Two new conversion coefficients, COEFFICIENT_ITU_R_BT_601_SCALING and COEFFICIENT_ITU_R_BT_709_SCALING, were added to support Y input values between 16 and 235 and UV input values between 16 and 240.
Changed the StartConversion function to return an nn::Result value because there was a need for applications to handle errors.
Added the SetPackageParameter function, which changes multiple Y2R settings all at once.
- The debugger software cannot import CIA files.
Added sample demos that get the remaining battery life and recharge state.
Revised the BcwavPlayer sample demo to use nn::snd::Voice::SetupBcwav.
Added code that explicitly specifies stereo output in every snd sample demo except 3DSurround.
Renamed the AdpcmEncoder sample demo to AdpcmEncDec and added sample code for the decoder.
Added the following sample demos for the TPL library: IconSample, ReadTexturePackage, ReadTexturePackage2, and ReadTexturePackage3.
Made the demos adhere to the changed Result values for the UDS library.
For details on how to handle the Result values, see the simple demo.
Fixed a bug that caused program execution to freeze when a client called a master-only function or a master called a client-only function.
Replaced the NN_OS_DEVICE_MEMORY_SIZE macro used in the sample demos with the nn::os::GetDeviceMemorySize function.
None.
Fixed a bug that occurred when the single camera module was in use: even if the camera was running normally, a problem would be detected and the camera restarted.
- The volume sometimes increases momentarily regardless of the position of the volume control.
- The Chance Encounter communications data format was changed from CTR-SDK 0.11. If earlier data remains, it must be deleted.
Added FRAME_RATE_10 to the nn::camera::FrameRate enumerated type.
You can specify FRAME_RATE_10 to the nn::camera::SetFrameRate function to fix the framerate at 10 fps.
Fixed a bug that could prevent the address conversion table from being updated normally as well as corrupt data when the total number of writes to a backup device (NorFlush within a card) reached a certain count.
Made adjustments to reduce screen flickering in images displayed by the application when active backlight controls are enabled.
To apply these revisions, you must launch the Config tool and run Reset setting.
Fixed a bug that caused the library to trigger an assert statement when the display buffer was placed in VRAM-B.
Added the following memory-related functions.
SetDeviceMemorySize
GetDeviceMemorySize
GetHeapAddress
SetHeapSize
GetHeapSize
Some specifications for memory-related functions in the OS library have also changed, but these could not be applied to the Function Reference Manual. Details are planned to be added in the next release of the CTR-SDK.
This was changed in version 0.10 but was left out of the changelog.
Reviewed the system volume.
It is now approximately 5.5 dB louder than it was in CTR-SDK 0.10.
Revised the waveform converter, ctr_WaveConverter, as follows.
- Fixed a bug that prevented sample output when the
--pcm16 and --pcm8 options were specified.
- Fixed a bug that caused audio to break up and stop playing when WAV and AIFF files in the 8-bit PCM format were converted.
Rather than halting at a yellow screen as it used to, the program now displays an error dialog box when there is an error in the SD Card file system.
Added StereoCameraCalibrator, a tool that manually sets calibration data for the stereo cameras, as well as image files to use with the tool.
The tool itself was included in version 0.10 but was left out of the changelog.
Prior to CTR-SDK 0.10, ctr_makesimplecia32.exe was used to generate CIA files. From now on, ctr_makecia32.exe will be used.
CIA files will therefore be encrypted.
Note33-86 mistakenly stated that ctr_makecia32.exe was added: the tool was actually included in CTR-SDK 0.10.1.
Fixed a bug that prevented 256 MB or larger CCI files from being generated in some environments.
The UseAes option, which was released as a temporary workaround, has been removed.
- You cannot import CIA files generated by
ctr_makesimplecia32.exe into DevMenu.
Added FRAME_RATE_10 to the nn::camera::FrameRate enumerated type.
You can specify FRAME_RATE_10 to the nn::camera::SetFrameRate function to fix the framerate at 10 fps.
There was a bug in the nn::fs::Directory::Read function that caused it to list one less than the actual number of entries in a directory.
This problem was fixed.
This was changed in version 0.10 but was left out of the changelog.
Added the following memory-related functions.
SetDeviceMemorySize
GetDeviceMemorySize
GetHeapAddress
SetHeapSize
GetHeapSize
Some specifications for memory-related functions in the OS library have also changed, but these could not be applied to the Function Reference Manual. Details are planned to be added in the next release of the CTR-SDK.
This was changed in version 0.10 but was left out of the changelog.
- The volume sometimes increases momentarily regardless of the position of the volume control.
Fixed a bug that prevented the proper application of settings made during standby if nn::camera::SELECT_OUT1_OUT2 or nn::camera::SELECT_IN1_OUT2 was specified as an argument to the nn::camera::Activate function.
This revision causes an irregular shift in the timing of the two camera V-Sync signals immediately following the Activate function call. To suppress this shift, call the SynchronizeVsyncTiming function after Activate.
Fixed a bug that caused the SetAutoWhiteBalance function to succeed when the white balance was not set to WHITE_BALANCE_NORMAL, even though it should have failed in this case.
This fix causes the SetAutoWhiteBalance function to behave as described in the Function Reference Manual.
Fixed a bug in the SetNoiseFilter function that, when the function was used to turn off the noise-reduction feature, either prevented the feature from being turned off or introduced image noise.
Fixed bugs in the SetTrimmingParams and SetTrimmingParamsCenter functions that prevented trimming from the top line and that shifted the first trimmed line up by one line.
Added processing that lights up the camera LED when any camera is started by the nn::camera::Activate function.
The camera LED turns off when active cameras are put into standby mode.
Added a feature that automatically recovers the camera to its state immediately before beginning capture if it malfunctions.
The GetRebootEvent function was added to get event notifications sent when this recovery process occurs and the IsRebootSuccessful function was added to determine whether recovery succeeded or failed.
Added the nn::camera::PlayShutterSound function to play the shutter sound and momentarily turn off the camera LED.
Revised the Initialize function to return false when indicating that a camera or Y2R feature cannot be reused when it is already being used by another process.
You can only use such features when true is returned.
Added the cecd Chance Encounter Communication daemon and the API to access it.
It can get, set, receive, and send data.
When the daemon starts running after data has been set, it begins a search and exchanges data via wireless communication.
Limitations:
- The TITLE ID (GameID) must be set manually.
- Data is saved to an SD Card.
(An error occurs if an SD Card has not been inserted.)
Added functions to get the user name, birthday, country, area, language, and simple address.
Added a function to get region information.
Added descriptions of uses for the nn::dsp::LoadComponent function in the Function Reference Manual.
The following functions are no longer supported and have been removed from the public API.
CreateSharedMemory
DeleteSharedMemory
CopyBetweenDSPWramAndSharedMemory
GetVirtualAddress
GetPhysicalAddress
ConvertProcessAddressFromDSP
GetSemaphoreEventHandle
SetSemaphoreEventMask
Removed the DSPSND library. Use the SND library for DSP sounds.
Fixed a bug that prevented version.h from being accessed within an OMakefile.
Suppressed compiler warning 96: "a translation unit must contain at least one declaration."
Changed omake builds to generate binaries for TS boards, rather than for TEG2 boards, by default when FILTER is not specified.
Added the CTRSDK_RVCT_VER environment variable to set the version of the ARM compiler to use for builds.
This environment variable only specifies the major and minor versions of the ARM compiler and is unrelated to updates of the build number alone.
Allowed the optimization level of development builds of applications to be specified using CCFLAGS_DEV_OPT in the OMakefile.
A CTR_APPTYPE value can now be set in the OMakefile.
CXI and CIA files are generated if the OMakefile sets CTR_APPTYPE=NAND, and CCI files are generated if CTR_APPTYPE=CARD.
All file types—CCI, CXI, and CIA—are generated if CTR_APPTYPE=BOTH.
The CTR_NANDAPP build variable, which has similar functionality, is planned to be removed in the next SDK release.
Although it has been left in CTR-SDK 0.10 to maintain compatibility, use CTR_APPTYPE instead.
Added 64, 128, -64, and -128 as specifiable alignment values in the ExpHeapTemplate::Allocate member function.
Although the FrameHeap::Free function can free just regions allocated from either the head or the tail, it used to free all regions regardless of what was specified.
This function has been fixed to release only the specified memory.
Other FrameHeap functions have been modified along with this one.
Changed HeapBase::HasAddress to be a const member function with a const pointer as an argument.
The HasAddress member functions for ExpHeapBase, ExpHeapTemplate, FrameHeapBase, FrameHeapTemplate, UnitHeapBase, and UnitHeapTemplate have also been revised.
ROM regions accessible by the "rom:" syntax used to be automatically mounted when the nn::fs::Initialize function was called, but now the nn::fs::MountRom(size_t maxFile, size_t maxDirectory, void* workingMemory, size_t workingMemorySize) function must be called explicitly to mount them. You must pass a memory buffer to workingMemory that is as large as the size returned by the nn::fs::GetRomRequiredMemorySize(size_t maxFile, size_t maxDirectory) function. When calling the nn::fs::MountRom function, the user can now specify the number of files and directories that can be opened simultaneously using the "rom:" syntax. These settings are only restricted by memory capacity.
To support the extended FAT specifications for Windows, a long path name can now be obtained as expected for any file or directory having an 8.3 path name that contains only lowercase characters on an SD Memory Card.
Previously, all entry names were recognized as uppercase characters based on the standard specification of FAT.
Added the nngxAddVramDmaCommand function, which adds DMA transfer commands to the current command list.
It is now confirmed that hardware restrictions require that data in 4-bit texture formats (L4 or A4) be placed in a different memory region than data in non-4-bit formats when both types of texture formats are enabled at the same time and are used for multitextures.
(The ETC format is treated as a non-4-bit format for the purposes of these restrictions.)
Note: This restriction is described as above in the current specifications, but further tests have revealed that when data that uses a 4-bit format is placed in main memory (FCRAM), multitexture rendering is possible regardless of where data that uses a non-4-bit format is placed.
(The specifications will be updated in the next release.)
Fixed a bug that prevented some necessary commands (commands that set registers 0x06e and 0x11e) from being generated in the NN_GX_STATE_FRAMEBUFFER complete commands.
Updated the DMPGL 2.0 System API Specifications.
The following PICA register information was updated. See the document for further details.
- Added supplementary information about cases when the command buffer Byte Enable (BE) setting is 0.
- Added register information for the
dmp_Gas.autoAcc uniform.
- Added register information related to clearing the early depth buffer.
- Added register information for the rendering API.
- Added register settings relevant when a reserved geometry shader is used.
- Added register information related to clearing the framebuffer cache.
- Added register information related to commands that issue interrupts.
- Added a list of PICA registers.
Added the SetMemAccessPrioMode function, which sets the access priority of the CPU and/or GPU when they access main memory.
You can now read the content of the depth buffer with the glReadPixels function by setting the format argument equal to GL_DEPTH_COMPONENT and the type argument equal to the bit width of the depth values to get.
Changed the bufferaddr argument type from GLvoid* to const GLvoid*.
Revised the nngxValidateState function so that a GL_ERROR_8066_DMP error occurs when this function's validation operation generates more commands than the current command buffer can hold.
Changed the error codes that occur during validation with the nngxValidateState function from GL_INVALID_OPERATION to GL_ERROR_806C_DMP.
For more information on what causes errors during validation, see the System API Specifications.
Extended the VRAM regions that can be used by applications from 2 MB to 3 MB in both VRAMA and VRAMB, for a total of 6 MB.
(However, there are limitations on where display buffers can be placed. For details, see the nngxDisplayBufferStorage page in the Function Reference Manual.)
Each of a cube map texture's six faces has been required to share the same most-significant 10 address bits. However, because all six faces must fit in the same 32-MB boundary, it is actually sufficient for only the most-significant 7 bits to be the same.
Internal address checks have been revised accordingly.
Added the nngxClearFillCmdlist function, which not only clears the bound command list object but also initializes the command buffer with a specified 32-bit value.
A GL_INVALID_OPERATION error used to be generated when the current command list's command buffer overflowed. Now a dedicated error code, GL_ERROR_COMMANDBUFFER_FULL_DMP, is generated.
Ten dummy commands used to be generated for register 0x080 when the texture cache was cleared. Further testing revealed that these dummy commands are unnecessary, so they have been deleted.
Fixed a bug that prevented all subsequent particles from being generated after any one particle was clamped and therefore not generated.
Processing has also been added to clamp particles when the dmp_Partsys.time uniform has a value of 0 or less.
Added the nngxFilterBlockImage function, which issues commands to apply a 2x2 antialias filter on block-formatted data while transferring it to a specified address.
Changed macro header files as follows.
- Changed specifications and other areas in a way that breaks compatibility (this cannot be circumvented even with
gx_MacroOld.h).
You must address the following issues if they apply to any macros that you are using. Otherwise, build errors and unintended behavior might occur.
- Enumerated type constant definitions for the comparison functions for alpha tests, depth tests, and stencil tests (
PICA_DATA_ALPHA_TEST_*) have been changed from 32-bit values (which accounted for the position of the bit that was set in the register) to 1-bit values.
PICA_CMD_DATA_DEPTH_COLOR_MASK, PICA_CMD_DATA_STENCIL_TEST, and PICA_CMD_DATA_FRAG_OP_ALPHA_TEST were changed along with these.
- Added parentheses to the following macros.
PICA_CMD_SET_DISABLE_ALPHA_TEST
PICA_CMD_SET_BLEND_DEFAULT
PICA_CMD_SET_BLEND_NOTHING
PICA_CMD_SET_DISABLE_EARLY_DEPTH_TEST
PICA_CMD_SET_GS_ATTR_IN_MAP_RESERVED
PICA_CMD_SET_GS_MISC_REG0_DISABLE
PICA_CMD_SET_GS_MISC_REG0_SUBDIVISION
PICA_CMD_SET_GS_MISC_REG0_PARTICLE
- The
PICA_CMD_DATA_VS_GS_OUT_REG_NUM and PICA_CMD_DATA_VS_GS_OUT_REG_NUM3 macros used to require an argument value that was one less than the number of output registers used in the vertex shaders, because this value was then set in bits [2:0] of register 0x4f and bits [3:0] of registers 0x24a, 0x25e, and 0x251. These macros have been revised to internally subtract one from the value that is passed in.
- The
PICA_CMD_DATA_VS_ATTR_NUM0 and PICA_CMD_DATA_VS_ATTR_NUM1 macros used to require an argument value that was one less than the number of input vertex attributes to the vertex shaders, because this value was then set in bits [3:0] of registers 0x2b9 and 0x242. These macros have been revised to internally subtract one from the value that is passed in.
- Deleted
PICA_DATA_FRAG_LIGHT_ENV_LAYER_CONFIG{8-10} following their deletion from the specifications.
- Changed the value set in
PICA_REG_FRAG_LIGHT_SRC_NUM (0x1c2) by the PICA_CMD_DATA_FRAG_LIGHT_NUM macro to one less than the number of light sources (or 0 when all light sources are disabled).
- Deleted unnecessary arguments from the following macros.
PICA_CMD_DATA_TEXTURE1_WRAP_FILTER
PICA_CMD_DATA_TEXTURE2_WRAP_FILTER
- Changes caused by new items
- Added a new file,
gx_MacroReg.h, that puts all macro definitions for register addresses together.
- Added a new file,
gx_MacroOld.h, as the old version of macros for which current updates broke compatibility with the previous header files.
(We are considering gradually removing this header file in future releases.)
- Added the following new macro definitions for register addresses.
PICA_REG_INTERRUPT (0x10), the register that sets commands that generate interrupts
PICA_REG_EARLY_DEPTH_CLEAR (0x63), the register with settings related to the early depth buffer
- Added new
PICA_DATA_* enumerated types (these types were previously incomplete) as well as new macro functions, PICA_CMD_DATA_* and PICA_CMD_SET_*.
- Changes caused by bug fixes
Fixed known bugs in gx_MacroMisc.h, gx_MacroTexture.h, gx_MacroShader.h, and gx_MacroFragment.h.
Added a feature to automatically generate mipmaps for textures that use antialias-filtered block image transfers.
For details on the formats for which mipmaps can be generated as well as size restrictions, see the DMPGL specifications.
The following were determined to have poor performance and were thus deleted from the specifications: GL_LIGHT_ENV_LAYER_CONFIG8_DMP, GL_LIGHT_ENV_LAYER_CONFIG9_DMP, and GL_LIGHT_ENV_LAYER_CONFIG10_DMP.
There are no perfect substitutes for these configurations, but the following methods can reduce the number of cycles to two.
- Layer configuration 8: Use layer configuration 6 with D1 and FR disabled.
- Layer configuration 9: Use layer configuration 4 with RR, RG, and RB disabled.
- Layer configuration 10: Use layer configuration 4 with D1, D2, and SP disabled.
Revised the glShaderBinary and glLinkProgram functions to stop unnecessarily operating on the invalid bit [17:17] in register 0x6f.
Fixed a bug that caused incorrect behavior when vertex arrays were placed in main memory and index arrays were placed in VRAM.
Changed the threshold values for clamping the Slide Pad.
The minimum value for circular clamping (MIN_OF_STICK_CLAMP_MODE_CIRCLE) was changed from 66 to 50.
The maximum value for clamping (LIMIT_OF_STICK_CLAMP_MAX) was changed from 133 to 153.
These threshold values are still under consideration and may change in the future.
Moved the PC-side HostIO library and its header files, all of which have been included in the CTR-SDK, to the $KMC_CTRHOSTIO/SDK directory.
Added the following functions for MP-format data.
SetMpTypeFlags
SetMpIndividualNum
ClearMpIndividualNum
SetMpPanOrientation
ClearMpPanOrientation
SetMpPanOverlapH
ClearMpPanOverlapH
SetMpPanOverlapV
ClearMpPanOverlapV
SetMpBaseViewpointNum
ClearMpBaseViewpointNum
SetMpConvergenceAngle
ClearMpConvergenceAngle
SetMpBaselineLength
ClearMpBaselineLength
SetMpVerticalDivergence
ClearMpVerticalDivergence
SetMpAxisDistanceX
ClearMpAxisDistanceX
SetMpAxisDistanceY
ClearMpAxisDistanceY
SetMpAxisDistanceZ
ClearMpAxisDistanceZ
SetMpYawAngle
ClearMpYawAngle
SetMpPitchAngle
ClearMpPitchAngle
SetMpRollAngle
ClearMpRollAngle
StartMpEncoderNext
GetMpRegionsToBuildJpegData
Added the following functions for setting parameters used during JPEG encoding.
SetThumbnailSize
SetInputBufferWidth
- SetDateTime
Added the following functions for getting EXIF values and analyzing only EXIF information while decoding.
ExtractExif
GetLastDateTime
GetLastSoftwarePointer
GetLastSoftwareLength
GetLastTwlPhotoMakerNote
Added the following functions for MP-format data.
GetMpIndex
GetMpNumberOfImages
GetMpImageUidListSize
GetMpImageUidListOffset
GetMpTotalFrames
GetMpEntry
GetMpImageType
GetMpImageSize
GetMpImageOffset
GetMpDependentImage1EntryNum
GetMpDependentImage2EntryNum
GetMpAttribute
GetMpIndividualNum
GetMpPanOrientation
GetMpPanOverlapH
GetMpPanOverlapV
GetMpBaseViewpointNum
GetMpConvergenceAngle
GetMpBaselineLength
GetMpVerticalDivergence
GetMpAxisDistanceX
GetMpAxisDistanceY
GetMpAxisDistanceZ
GetMpYawAngle
GetMpPitchAngle
GetMpRollAngle
Added the following functions to use when decoding results are output to a buffer that has a larger image width than the image to decode.
- SetOutputBufferWidth
GetLastOutputBufferWidth
Changed the SetThumbnailSize function so that it can set thumbnail output formats other than YUV422.
Added the following functions to get and set data embedded in the MakerNote region of a created JPEG file.
SetUserMakerNote
GetLastUserMakerNotePointer
GetLastUserMakerNoteSize
GetLastTwlUserMakerNotePointer
GetLastTwlUserMakerNoteSize
- SetImageUid
GetLastImageUid
Added the following functions that run "safe" Normalize operations, returning the default values for vectors with a size of 0.
VEC2SafeNormalize
VEC2::SafeNormalize
VEC3SafeNormalize
VEC3::SafeNormalize
VEC4SafeNormalize
VEC4::SafeNormalize
Revised some values that did not fully utilize float accuracy in the internal table used to find the sine and cosine.
The following functions have been added.
VEC{2,3,4}Mult
VEC{2,3,4}::operator*=(const VEC{2,3,4}&)
Fixed processing that accidentally treated a 2x3 matrix as a 3x2 matrix within the GetRow and GetColumn functions in math_Matrix23.h.
Optimized implementations of the following functions.
Hermite, MTX33Copy, MTX33MAdd, MTX33Mult, MTX33ToMTX34, MTX34Add,
MTX34CameraRotate, MTX34Copy, MTX34Inverse, MTX34InvTranspose,
MTX34LookAt, MTX34MAdd, MTX34Mult, MTX34MultArray, MTX34MultScale,
MTX34MultTranslate, MTX34RotXYZFIdx, MTX34RotXYZRad, MTX34RotXYZTranslateFIdx,
MTX34Scale, MTX34ToMTX33, MTX34ToQUAT, MTX34Translate, MTX34Transpose,
MTX43Add, MTX43Copy, MTX43Mult, MTX43Transpose, MTX44Add, MTX44Copy,
MTX44Frustum, MTX44FrustumPivot, MTX44Inverse, MTX44Mult,
MTX44MultArray, MTX44MultScale, MTX44MultTranslate,
MTX44Ortho, MTX44OrthoPivot, MTX44PerspectivePivotRad, MTX44RotXYZRad,
MTX44Scale, MTX44T, MTX44Transpose, QUATInverse, QUATMult,
QUATNormalize, QUATToMTX34, VEC3Cross, VEC3Len, VEC3Normaliz,
VEC3Transform, VEC3TransformArray, MTX44Pivot, MTX34RotAxisRad_,
MTX44PerspectiveRad, MTX44RotAxisRad_
The optimizations are valid for Release and Development builds. Note, however, that these optimizations are not applied to Debug builds.
Revised the mic::FreeBuffer function to return an error if it is called during microphone sampling.
It used to be necessary to explicitly add the microphone library to an OMakefile to use it, but this is no longer necessary because the library has been added to the build system's default libraries.
The microphone library used to allocate memory internally with the AllocateBuffer function. This process has been revised in CTR-SDK 0.10 so that the application allocates memory and SetBufferis used to set it to the microphone library.
The application must provide memory with a size and address that are 4-KB aligned.
Call the ResetBuffer function to stop using the memory set in the microphone library.
Added the MIDI library.
Added the RDT library, which runs local communications with trusted data.
The RDT library is a high-level library located above the UDS library.
Added support for 3D surround sound output.
(Effects are still provisional, however, and are highly likely to change in the future.)
Fixed a bug that corrupted waveforms only in the first data to have AppendWaveBuffer called on a Voice during ADPCM playback.
Fixed a bug that caused AllocVoice to return invalid results.
Added the nn::snd::EncodeAdpcmData function, which is a DSP-ADPCM encoder, and the nn::snd::GetAdpcmOutputBufferSize function, which returns the size of the encoding results.
Fixed a bug that caused the GetPlayPosition function to return an undefined value immediately after the AllocVoice function was called.
Added the nn::snd::GetMixedBusData function, which gets the MixBus final output information for DSP sounds.
Added a constructor for the MixParam structure.
Added functions to the nn::snd::Bcwav namespace for loading waveform (BCWAV) files generated by ctr_WaveConverter.
Fixed a bug that caused the nn::snd::WaitForDspSync function to enter an endless loop in situations such as during playback of a high-pitched Voice with a high sampling rate.
Added the const modifier to the pAdpcmContext member variable of the WaveBuffer structure.
Fixed a bug that caused program execution to halt on a null assertion during sound playback with the Voice class's AppendWaveBuffer function.
Fixed a bug that would suddenly stop all audio output during audio playback with the SND library.
Added functions to set a one-pole low-pass filter and a two-pole filter for a Voice.
Added the nn::snd::GetHeadphoneStatus function, which gets the headphone connection state.
Fixed errors in the Function Reference Manual for the SND library.
Fixed bugs that prevented proper loop playback of a high-pitch or high-sampling-rate Voice when the PCM data buffer was small.
Added ctr_WaveConverter32.exe, a tool that converts waveform (WAV and AIFF) files into the DSP ADPCM format. For details, see ctr_WaveConverter.
Fixed a bug that caused the playback position to lag behind the original position during long playback.
Allowed the user name to be edited with the Config tool.
A description of how to edit the user name has been added to the documentation.
Made the following changes to the DevMenu.
- Made it possible to use
DevMenu to launch applications written to a CTR Card (by selecting "CARD" from the program list).
- Stopped the application startup screen from being displayed immediately after an import with
DevMenu. (Start these applications from the program management screen.)
- Added support for hot-swapping SD Cards (although execution freezes if an SD Card is inserted and then immediately removed).
- Changed display to include the product code on the list of items.
- Revised the program IDs displayed on the program list from 16-digit numbers to 8-digit numbers.
- Fixed a bug that caused a program to be deleted when X was pressed on the Import screen after the program was selected from the Programs screen.
- Fixed a bug that caused corrupted display of the list.
Added ctr_makecia32.exe, which generates CIA files.
The CXI files generated when a NAND application is built are now encrypted.
In the current release, CDI files (unencrypted CXI files) are also generated at the same time.
In future releases they will no longer be generated by default.
Updated the shader assembler and linker as follows.
- Added support for evaluating an equality, inequality, bitwise OR, bitwise AND, or any combination of these in
#if and #elif statements.
- Added support for
#line.
- Revised so that unused regions are initialized with a value of 0.
- Revised
#pragma output_map to cause an error when texture3 is specified to it.
The buffer used internally by the UDS library is now allocated and specified by the application rather than allocated and obtained automatically within the library.
Note that the specifications for the nn::uds::Initialize function have changed.
Fixed a bug that prevented existing networks from being detected on the channel(s) specified for scanning with the nn::uds::Scan function.
Changed the UDS library to get the user name and local friend code from the system information because this was just made possible.
You no longer have to specify anything with the nn::uds::SetNodeInformation function.
(Currently, any specified information is simply not applied. In the next release, this function is scheduled for deletion.)
Definitions in the nn::uds::NodeInformation structure have also been changed following the shift to get data from the system information.
Local communication IDs were originally planned to be set by the system automatically, but this has changed so that now applications must always set the IDs themselves. Consequently, the CreateNetwork and Scan functions, which do not set a local communication ID, were removed.
Added a feature that determines whether a user-specified string has any problems that make it unusable.
Added features to register, clear, and search for information on the authors of user-generated content.
Calculations in the nn::ulcd::StereoCamera::CalculateMatrices[Real] functions assumed that viewing volume parameters were set in advance so that left < right and bottom < top. If these conditions were not satisfied, the proper results were not output.
This was revised so that each parameter does not depend on its size relative to the others.
Changed the CalculateMatrices[Real] functions so that the depthRange argument only accepts values in the range [0, 1] rather than any value greater than or equal to 0.
The argument was also renamed to factor to reflect its current use.
This function used to return the distance between the left and right cameras as the parallax required to display an object at the greatest stereoscopic depth.
That specification applied a parallax that is larger than necessary, though, so the function was changed to return a maximum parallax value that is fixed in advance.
Updated the Description of the ULCD Library.
For details on what was updated, see the documentation.
$CTR_SDK/documents/TechnicalNotes/AboutULCDLibrary/AboutULCDLibrary.pdf
Added the nn::ulcd::StereoCamera::SetLimitParallax function to set the parallax to generate for objects at the far clipping plane in a stereoscopic representation.
This parallax is created from the maximum separation between the images for the left and right eyes.
However, you can only set a maximum parallax that is within a fixed range.
Because this fixed range has currently not yet been decided, there is not actually an upper limit and any value can be set.
A warning is output if you specify a value larger than the one in the guidelines.
The nn::ulcd::StereoCamera::GetLimitParallax function was also added to get this value.
The value set by this function is valid when the nn::ulcd::StereoCamera::CalculateMatrices function is used.
Changed the SetDitheringWeightParam function's arguments from pass-by-value to pass-by-reference.
Added the ability to specify an offset to the following function that transfers the source data for conversion. This offset value is added independently of the single-transfer size.
If the offset is omitted, this function will behave as it did with previous versions of the CTR-SDK.
None.
Fixed the following problems with the AC_Connect function:
- Fixed bug when connecting to an access point with a stealth SSID
- Keyless access points were assumed to use open system authentication and keyed access points were assumed to use shared key authentication, resulting in a bug where keyed open system authentication access points could not be connected to. This is now worked around by attempting an open system authentication connection on the third retry.
Fixed a bug that caused connection attempts via the AC_ConnectAsync function to always fail if the same function had been used to connect and disconnect earlier.
Changed the network setting slot names from A-C to 1-3. Changed function names accordingly. There have been no changes to arguments or behavior.
Changed the destination to which the AC_DebugSetNetworkSetting1 function writes network settings from the SD Card to NAND.
Fixed bug where, after a successful WPA connection, data could not be sent or received.
Fixed a bug where, after a failed attempt to connect to an access point, scan results would not be returned.
Fixed a bug that prevented the proper application of settings made during standby if nn::camera::SELECT_OUT1_OUT2 or nn::camera::SELECT_IN1_OUT2 was specified as an argument to the nn::camera::Activate function.
This revision causes an irregular shift in the timing of the two camera V-Sync signals immediately following the Activate function call. To suppress this shift, call the SynchronizeVsyncTiming function after Activate.
Fixed a bug that caused the SetAutoWhiteBalance function to succeed when the white balance was not set to WHITE_BALANCE_NORMAL, even though it should have failed in this case.
This fix causes the SetAutoWhiteBalance function to behave as described in the Function Reference Manual.
Fixed a bug in the SetNoiseFilter function that, when the function was used to turn off the noise-reduction feature, either prevented the feature from being turned off or introduced image noise.
Fixed bugs in the SetTrimmingParams and SetTrimmingParamsCenter functions that prevented trimming from the top line and that shifted the first trimmed line up by one line.
Added processing that lights up the camera LED when any camera is started by the nn::camera::Activate function.
The camera LED turns off when active cameras are put into standby mode.
Added the nn::camera::PlayShutterSound function to play the shutter sound and momentarily turn off the camera LED.
Revised the Initialize function to return false when indicating that a camera or Y2R feature cannot be reused when it is already being used by another process.
You can only use such features when true is returned.
Fixed bug where the system would freeze after failed access to NAND or SD Card memory.
This fix also applies to attempts to write to a write-protected SD Card.
Fixed bug where the system would freeze if the nn::fs::Directory::Read function was run in a root directory with no entries.
Formerly, attempts to access locations higher than 4GB in SD Memory Cards would sometimes cause invalid accesses, resulting in data and format corruption.
This problem was fixed.
Added the ability to access save data by specifying data:/... in the path.
To support the extended FAT specifications for Windows, a long path name can now be obtained as expected for any file or directory having an 8.3 path name that contains only lowercase characters on an SD Memory Card.
Previously, all entry names were recognized as uppercase characters based on the standard specification of FAT.
Added the ability to access add-on data by specifying extdata:/... in the path.
Updated the LCD backlight-related parameters so that the active backlight control features (which reduce power consumption) are enabled by default.
This active backlight control can be turned On/Off and the brightness level can be changed using the Config tool.
Added the SetMemAccessPrioMode function, which sets the access priority of the CPU and/or GPU when they access main memory.
Fixed bug where vertical line noise would appear on screen when the CPU attempted a large number of main memory accesses while camera(s) or other devices were being used.
(Note that this problem may still occur depending on the settings of the SetMemAccessPrioMode function, added in this version.)
Added support for device-internal CA and client certificates.
Also overhauled API functions for using these certificates.
Added the MIDI library.
Implemented feature to turn wireless on/off by pressing the Wi-Fi Button.
The wireless LED is lit when wireless is on, and blinks when a wireless signal is being sent.
There was a bug where control would not return when using the nn::os::WaitObject::Wait* functions with a timeout.
This problem has been corrected.
Fixed a bug where, when multiple threads were waiting for a single synchronous object, threads would not wake up in order of priority.
Changed the length of time the Power Button must be held down before the system will power off.
Hold the Power Button down for at least 2 seconds to power off.
The system will power off 4 seconds after that.
Fixed bug that produced a high-pitched whine while the headphone jack was inserted, which would continue if the jack was only inserted partway.
Added the nn::snd::GetHeadphoneStatus function, which gets the headphone connection state.
Socket headers previously depended on headers in nn/net and below, but this dependency has been removed.
In line with this change, symbols beginning with NSOC can no longer be used.
nn/net remains for compatibility purposes, but will be deleted in future.
Fixed a bug where the system would deadlock when under load due to very frequent sending and receiving.
Added ability to connect to a UDS network as an audience member (spectator) by setting CONNECT_AS_AUDIENCE with the ConnectNetwork function.
The EjectAudience function has now been implemented and can be used. Formerly it had not actually been implemented within the library and would always return an error.
Fixed bug where data could not be set or obtained when setting arbitrary data to a beacon using the SetApplicationDataToBeacon function, or when getting data from a connected master beacon using the GetApplicationDataFromBeacon function.
Reduced processing load when receiving UDS communication.
Added support to automatically turn the parallax barrier off and disable stereoscopic display when the 3D depth value is 0.
Changed the SetDitheringWeightParam function's arguments from pass-by-value to pass-by-reference.
Added the ability to specify an offset to the following function that transfers the source data for conversion. This offset value is added independently of the single-transfer size.
If the offset is omitted, this function will behave as it did with previous versions of the CTR-SDK.
- The debugger cannot import CIA files.
One of the multifeature demos (demo1) has been modified to read and write save data (data:/).
Writing to an SD Card in the ScreenCapture sample has been accelerated by 15-20% by using an intermediate buffer. (The caller must provide the intermediate buffer.)
The following bugs were also fixed.
- Fixed bug where the last 5 bytes of the BMP header template (
u8 array) used when writing were not initialized.
- Fixed bug where a display buffer allocated for saving could not be released after a failed attempt to save the display buffer. After repeated save failures, the system would halt due to insufficient memory.
Added the following samples related to the graphics library.
TriangleSimpleCmd: Demo that uses PICA register macro headers to directly create a 3D command buffer and render a triangle.
FragmentLightingSimpleCmd: Demo that uses PICA register macro headers to directly create a 3D command buffer and perform simple fragment lighting.
Changed the libraries used by the sample, in line with moving the PC-side HostIO library to the $(KMC_CTRHOSTIO)/SDK directory.
Added the basic sample demo, which uses the RDT library to perform very basic communication.
Added the following samples related to the SND library.
FilterSample: Demo that uses IIR filters.
BcwavPlayer: Demo that handles BCWAV files.
AdpcmEncoder: Demo of the DSP-ADPCM encoder.
3DSurround: Demo of 3D surround sound.
Added the ngc_simple demo, which performs a profanity check without specifying a region.
Added the ubl_simple demo, which registers and checks author information.
- There is a bug in the
Release - small build of uds/com_demo1 that prevents scans from working properly.
Communication works properly when using other build options.
- The
camera/Simple demo freezes on rare occasions if the settings are changed by pressing the buttons repeatedly.
- The
Seek functions of file control classes under nn::fs do not operate properly when nn::fs::POSITION_BASE_END is specified as an argument.
- The
nn::fs::FileReader::TryInitialize function sometimes returns an error depending on the folder layout or the content of files in the ROM or on an SD Card.
- The
nn::ac::CTR::DebugFlushNetworkSetting function does not operate correctly unless an SD Card is inserted.
Fixed a bug that caused the audio output by headphones to be very quiet and/or distorted.
None.
There was a bug where the texture cache was not flushed correctly. This bug was introduced in the CTR-SDK 0.9.2, but has been fixed.
- The
Seek functions of file control classes under nn::fs do not operate properly when nn::fs::POSITION_BASE_END is specified as an argument.
- The
nn::fs::FileReader::TryInitialize function sometimes returns an error depending on the folder layout or the content of files in the ROM or on an SD Card.
- The
nn::ac::CTR::DebugFlushNetworkSetting function does not operate correctly unless an SD Card is inserted.
There was a bug where calling the following functions in the camera and y2r libraries would occasionally not return. This has been fixed.
nn::camera::SetReceiving
nn::camera::SetReceivingAuto
nn::camera::SetReceivingRgbAuto
nn::y2r::SetReceiving
nn::y2r::SetSendingY
nn::y2r::SetSendingU
nn::y2r::SetSendingV
nn::y2r::SetSendingYuv
There was a bug where calling the following functions in the camera library would occasionally not capture. This has been fixed.
nn::camera::SetReceivingAuto
nn::camera::SetReceivingRgbAuto
None.
Fixed a bug that caused noise to occur if the volume changed from approximately 0.005 to a smaller value when the nn::snd::Voice class was used for playback.
- The
Seek functions of file control classes under nn::fs do not operate properly when nn::fs::POSITION_BASE_END is specified as an argument.
- The
nn::fs::FileReader::TryInitialize function sometimes returns an error depending on the folder layout or the content of files in the ROM or on an SD Card.
- The
nn::ac::CTR::DebugFlushNetworkSetting function does not operate correctly unless an SD Card is inserted.
Fixed a bug in the SetVolume function (nn::snd::Voice) that caused noise to occur when there was a significant change in volume.
- The
Seek functions of file control classes under nn::fs do not operate properly when nn::fs::POSITION_BASE_END is specified as an argument.
- The
nn::fs::FileReader::TryInitialize function sometimes returns an error depending on the folder layout or the content of files in the ROM or on an SD Card.
- The
nn::ac::CTR::DebugFlushNetworkSetting function does not operate correctly unless an SD Card is inserted.
As a special measure for E3, changed the 3D LED to always be illuminated.
Fixed a bug that caused the volume to increase temporarily.
Fixed a bug that caused the power and LCD to suddenly turn off and the system to reset.
As a special measure for E3, changed the Power Button to turn off the power when it is held down for one second.
Fixed a bug that caused the firmware to halt after running for a long time.
When this bug occurs, execution halts with a red screen.
None.
Added a header file with macro definitions for addresses and other PICA register information based on the DMPGL 2.0 System API Specifications.
This is not linked by default and must be directly included if it is needed.
Updated the following documentation. For details on what was updated, see each document's Revision History.
- DMPGL20_programming_guide.pdf
- DMPGL20_specification.pdf
DMPGL20_system_API_specification.pdf
- VertexShaderReferenceManual.pdf
Added a new parameter, GL_TEXTURE_DATA_ADDR_DMP, that can be used with the glGetTexParameteriv function.
This gets the address of the bound texture object.
Set params equal to a 6-element array when target is GL_TEXTURE_CUBE_MAP. The params argument gets the following addresses in order: GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
Fixed a bug that prevented fixed vertex attributes included in vertex data from being updated properly when program objects were switched.
Updated the glGetBufferParameteriv function so that you can set pname equal to GL_BUFFER_DATA_ADDR_DMP to get the address of vertex data for the bound vertex buffer object.
- The
Seek functions of file control classes under nn::fs do not operate properly when nn::fs::POSITION_BASE_END is specified as an argument.
- The
nn::fs::FileReader::TryInitialize function sometimes returns an error depending on the folder layout or the content of files in the ROM or on an SD Card.
- The
nn::ac::CTR::DebugFlushNetworkSetting function does not operate correctly unless an SD Card is inserted.
Fixed a bug that caused the application to freeze when it was started at particular times in some environments.
None.
Defined formats of calibration data required for correcting the position of stereo cameras and added functions to access data.
The following functions were added.
GetStereoCameraCalibrationData function
GetParallaxOnChart function
GetStereoCameraCalibrationMatrix function
Updated the following documents.
- Updated
DMPGL20_load_pattern_setting.pdf.
- Updated
DMPGL20_programming_guide.pdf.
- Updated
DMPGL20_specification.pdf.
- Updated
DMPGL20_system_API_specification.pdf.
- Updated
VertexShaderReferenceManual.pdf.
Revised each of the GL and NNGX functions to prevent GL errors from occurring in Release builds.
(Behavior is undefined when a process causes an error.)
Fixed a bug that prevented an error from occurring when a depth buffer was attached to a color attachment point (GL_COLOR_ATTACHMENT0).
(A GL_INVALID_OPERATION error is generated.)
Fixed a bug that prevented the correct format from being recognized when glTexImage2D was called multiple times with only the type argument changed.
Added a new function to get the current command output mode (set by the nngxSetCommandGenerationMode function).
Fixed a bug that prevented the bottom line of pixels from being displayed on the lower screen of the TS board.
Fixed a problem that caused the GPU to hang when every vertex attribute used was a constant (specified by glVertexAttrib*).
Added support for the Classic Controller PRO for development tools.
You can only use this controller if it is connected to a TS board when the system starts up.
You can get input values with the DebugPadReader class.
The analog sticks are calibrated at startup and when the following buttons are pressed simultaneously.
- The A Button, + Button, - Button, and Left on the +Control Pad.
Do not touch the Slide Pad while it is being calibrated.
Fixed a problem that caused distorted sounds to be played back.
Fixed a bug that caused all voices to stop during DSP sound playback if there is no specified loop or buffer jump.
Added the DevMenu tool, which can import and execute CIA files from an SD Card.
Changed the shader assembly language as follows.
- Added a feature to specify a single register to
bind_symbol.
(#pragma bind_symbol(symbol name, register id))
Adjusted the following conditions assumed by internal library calculations.
These values have not been set in stone and may be fine-tuned later.
- Inter-eye distance
This was previously 65 mm and is now 62 mm.
- Distance between the viewer's eyes and the display
This was previously 290 mm and is now 289 mm.
- The maximum depth that the human eye can naturally experience three dimensions
This was previously 29.49 mm and has been revised to 30.96 mm.
Defined different, easy-to-understand macro names that specify the display to bind when autostereoscopy is in use.
(The existing macros can also be used as before.)
NN_GX_DISPLAY0 corresponds to NN_GX_DISPLAY0_LEFT
NN_GX_DISPLAY0_EXT corresponds to NN_GX_DISPLAY0_RIGHT
- The
Seek functions of file control classes under nn::fs do not operate properly when nn::fs::POSITION_BASE_END is specified as an argument.
- The
nn::fs::FileReader::TryInitialize function sometimes returns an error depending on the folder layout or the content of files in the ROM or on an SD Card.
- The
nn::ac::CTR::DebugFlushNetworkSetting function does not operate correctly unless an SD Card is inserted.
The debugger can now import and debug CIA files.
To use this feature, you need PARTNER-CTR/S version 2010/05/06 or later.
However, the CIA import feature in PARTNER-CTR/S version 2010/05/06 is still in evaluation; official support is planned for the next release of PARTNER-CTR/S.
Fixed a bug that caused the debugger to hang while loading applications that run together with multiple processes.
Fixed a bug that prevented Client nodes from reconnecting under particular conditions.
Fixed a bug that was found to corrupt some network management data held by the Master node when a Client node failed to connect.
None.
Added ScreenCapture samples that output the content of the specified display buffer to an SD Card.
- There is a bug in the
Release - small build of demo1 where triangles do not render to the upper screen.
Triangles render properly when using other build options.
- There is a bug in the
Release - small build of uds/com_demo1 that prevents scans from working properly.
Communication works properly when using other build options.
- There is a bug in the
Release - small build of gx/Api/RenderToTexture that causes extremely slow rendering speeds.
There is no problem when using other build options.
- The
camera/Simple demo freezes on rare occasions if the settings are changed by pressing the buttons repeatedly.
Fixed a bug that caused the following symptoms when the file system was used to perform a read or a write operation of data of certain sizes to or from certain addresses.
- The operation would never return.
- Some of the transferred data would be corrupted.
The update period for sound parameters was changed to approximately 5 milliseconds.
The maximum number of allocatable voices has also been changed to 24.
Added the ctr_makesimplecia32.exe tool, which is used to generate .cia files.
In the future, .cia files will be used to import NAND applications. However, data in this format cannot yet be used.
The nn::uds::Finalize function has been revised so that it now finalizes status update events that were initialized using nn::uds::Initialize.
It was discovered that the UDS library used std::vector. The library has been revised to eliminate its use of std::vector.
- There is a bug that causes distorted sound playback roughly once every 30 times after the TS board is powered on.
If this occurs, noise will continue until the board is powered off.
- The lowest line on the lower LCD does not display.
- The
Seek functions of file control classes under nn::fs do not operate properly when nn::fs::POSITION_BASE_END is specified as an argument.
- The
nn::fs::FileReader::TryInitialize function sometimes returns an error depending on the folder layout or the content of files in the ROM or on an SD Card.
- The
nn::ac::CTR::DebugFlushNetworkSetting function does not operate correctly unless an SD Card is inserted.
CTR-SDK 0.9 used a different adjustment value for flickering than the previously released SDKs did.
This adjustment value was revised to fix a bug that caused vertical stripes to appear on the LCDs.
However, please note that this value is just an average. If you want to use values that are customized for each system, you will need to run the Config tool and select the ResetSetting option.
After running the Config tool, use the sliding-type power switch on the TEG2 or TS board to power cycle the board. The setting will be applied once the board is powered back on.
With the TS board, the setting will not be applied if the slider to the left of the coin battery is set to the Batt position.
In this case, move the switch to the 4V position and restart the system.
Fixed a bug that caused the socket library to halt if the startup and finalization for sockets were handled directly (without using the AC library), and finalization was initiated shortly after initialization.
Fixed a bug that caused invalid regions to be accessed when sending packets.
None.
Fixed a bug with the lib_demo library used by the Sample Demos package. This bug caused only one of the display buffers to be shown for the right eye and the lower LCD.
- There is a bug in the
Release - small build of demo1 where triangles do not render to the upper screen.
Triangles render properly when using other build options.
- There is a bug in the
Release - small build of uds/com_demo1 that prevents scans from working properly.
Communication works properly when using other build options.
- There is a bug in the
Release - small build of gx/Api/RenderToTexture that causes extremely slow rendering speeds.
There is no problem when using other build options.
- The
camera/Simple demo freezes on rare occasions if the settings are changed by pressing the buttons repeatedly.
Added the AC (auto-connection) library and demos.
This library is not supported by CTR-SDK 0.9.
With prior versions, only one of the outer cameras could be used, but this update adds support to the CAMERA library for using the second outer camera.
In line with this change, the following functions were changed to add a port argument.
StartCapture
StopCapture
IsBusy
ClearBuffer
IsBufferError
GetVsyncInterruptEvent
GetBufferErrorInterruptEvent
SetReceivingAuto
SetReceivingRgbAuto
StopReceivingAuto
StopReceivingRgbAuto
SetReceiving
IsFinishedReceiving
SetReceivingRgb
IsFinishedReceivingRgb
SetTransferLines
SetTransferBytes
GetTransferBytes
SetTrimming
IsTrimming
SetTrimmingParams
GetTrimmingParams
SetTrimmingParamsCenter
With this added support, SELECT_ALL now specifies the use of the inner camera and outer cameras 1 and 2.
Consequently, the former meaning of SELECT_ALL can now be specified using SELECT_IN1_OUT1 instead. Please change affected code accordingly.
On boards that do not have stereo cameras, this feature cannot be used, so do not use any settings that include outer camera 2 in the above functions.
Revised the FlipImage function for flipping images, inverting the left-right flip for the specified value.
The revised Flip enumerated type and image orientation correspond as follows.
Flip enumerated type: Image orientation
------------------------------
FLIP_NONE: Normal
FLIP_HORIZONTAL: Mirrored
FLIP_VERTICAL: Flipped top to bottom
FLIP_REVERSE: Mirrored, then flipped top to bottom
With this change, the Flip enumerated type matches the CAMERAFlip enumerated type used in the TWL-SDK.
The maximum values returned by the GetMaxBytes and GetMaxLines functions previously equaled to the buffer size, but these are now half of the buffer size in order to help prevent buffer errors.
Despite being able to capture at 30 fps at sizes larger than QVGA, the reference page stated otherwise. This description has been removed.
Adjusted the contrast parameter set by the SetContrast function.
Image quality when contrast has been adjusted is therefore different from that in CTR-SDK 0.8.
The default contrast is the same as CTR-SDK versions 0.8 and earlier.
In line with this change, the setting values corresponding to the Contrast enumerated type's CONTRAST_HIGH and CONTRAST_LOW have also been changed.
- (Previous)
CONTRAST_HIGH = CONTRAST_PATTERN_05
CONTRAST_LOW = CONTRAST_PATTERN_07
- (Revised)
CONTRAST_LOW = CONTRAST_PATTERN_05
CONTRAST_HIGH = CONTRAST_PATTERN_07
Added SetReceivingAuto, SetReceivingRgbAuto, StopReceivingAuto, and StopReceivingRgbAuto functions to set and stop automatic reception of camera image data.
Added the cecd Chance Encounter Communication daemon and the API to access it.
This only provides the API to save and get data.
There are currently the following restrictions.
- No features included to exchange via network.
- Data is saved to an SD Card.
Changed build system to allow for enabling/disabling debug output and ASSERTs/WARNINGs regardless of build type.
However, the debug output and ASSERTs/WARNINGs used internally by the SDK cannot be enabled or disabled.
Specifying DEBUG_PRINT=true to the macro enables NN_LOG, and specifying DEBUG_PRINT=false leaves NN_LOG empty.
Specifying ASSERT_WARNING=true to the macro enables NN_*ASSERT/NN_WARNING, and specifying ASSERT_WARNING=false leaves NN_*ASSERT/NN_WARNING empty.
Example: omake BUILD=release DEBUG_PRINT=false ASSERT_WARNING=true
Changed the nn::demo library class structure, and moved to the Sample Demos/common directory as the lib_demo library.
We plan to remove the previous demo library in the next release.
In this transition period, we have included just the demo library itself and the header files, and have deprecated the function reference and documentation.
Be aware of the following points when transitioning from the nn::demo to the lib_demo library.
- The upper and lower screens now share one framebuffer object (color buffer / depth buffer) to reduce VRAM usage.
Consequently, when rendering to both the upper and lower screens, rendering alternately to the upper and lower screens will produce a mixed display of the rendering results, so instead first complete rendering to one target screen and then proceed to rendering for the next.
For example, you can render to both the upper and lower screens as follows.
- Set the upper screen as the target, clear the framebuffer, complete rendering, and then send the results to the display buffer and swap the buffer.
- Set the lower screen as the target, clear the framebuffer, complete rendering, and then send the results to the display buffer and swap the buffer.
See the sample demo source code in the Sample Demos/gx directory for programming specifics.
Categorized dsp header files and moved to sub-directories named MPCore and Common.
Added --gnu option for Release and Development builds.
This --gnu option was not added for Debug builds.
In the past, size was prioritized during optimization even for fast builds. This was changed to instead prioritize speed during optimization.
A small build still optimizes for size.
Added support for running on a TS board.
Added support for developing CTR applications in a Windows 7 64-bit environment.
Added NN_VERSION_MICRO, NN_VERSION_RELSTEP, and NN_VERSION_PATCH to version.h, and commented out the unneeded NN_VERSION_DATE and NN_VERSION_TIME.
Added a UTF-8 BOM to CTR-SDK header and source code files.
Rebuilding modified source files sometimes would fail previously. This bug has been fixed.
In line with this change, build times are now slightly longer.
Function call optimizations are now restricted in order to improve call stack display in the debugger.
Specifically, we added a --retain=calls compiler option for non-Release builds.
Added features to the nn::fnd::DateTime class required to handle date and time.
Added nn::fnd::DateTimeParameters as a structure that can represent an individual date and time value separate from the nn::fnd::DateTime class.
Changed ROMFS creation using makerom to make file data 4-byte aligned.
Added nn::fs::Directory for scanning files and directories located in a directory.
Changed the nn::fs::DirectoryEntry structure's entrySize member type from a u32 to an s64.
Fixed a bug where no command would be generated for the glViewport function when validating with NN_GX_STATE_OTHERS specified for the command cache feature's state.
Added the following features, only for TS boards.
- Expanded texture combiners from 3 steps to 6.
- Added buffering feature for texture combiner intermediate calculation results.
- Added LA4, A4, and ETC1 with alpha to the texture formats.
- Added operand for swapping color elements to the texture combiners (RGB to RRR or GGG or BBB).
Added the following features, only for TS boards.
- Increased fragment lights from 4 to 8.
- Extended LUTs from 16 to 32.
- Increased layer configurations from 8 types to 11.
- Added the distance attenuation feature.
- Spotlight features have been extended to allow attenuation curves to be specified individually.
Fixed a bug where lighting would not work properly when dmp_LightEnv.bumpRenorm is set to GL_FALSE and dmp_LightEnv.bumpMode is set to GL_LIGHT_ENV_BUMP_NOT_USED_DMP.
Fixed a bug where no error would occur even when the texture specified in a call to the glFramebufferTexture2D function has the data transfer pattern of having no copy in main memory and with the GPU accessing main memory.
Changed the specifications for the nngxAdd3DCommand function to raise no error if the buffersize argument is a multiple of 4 when GL_TRUE is specified for the copycmd argument.
The nngxCopyCmdlist function would previously result in an error if the the nngxRunCmdlist function was called and the copy destination command list was in a waiting state unless the state was reset using the nngxClearCmdlist function.
Now this restriction is only effective during execution (while the GPU is actually processing the command).
Copying is allowed even while execution is halted with the nngxStopCmdlist function.
A portion of the internal state of a destination command list was previously retained despite copying and overwriting when using a command list copied using the nngxCopyCmdlist function.
The counter from previous completed executions would remain, such that the copied commands would not run. This bug has been fixed.
Deprecated the nngxReserveSwapBuffers function, as the nngxSwapBuffers function has equivalent functionality.
Changed specifications to raise a GL_ERROR_8053_DMP error if the specified display buffer address is not 16-byte aligned after calculating all the settings from nngxDisplayEnv and other functions.
Added nngxAddCmdlist function, which appends a copy of a command list object rather than overwriting, and the nngxGetUpdatedStatus function, which gets the current updated graphics state.
The data transfer pattern was specified by the bitwise OR as the first argument of the glBufferData and other functions, and it included both whether data could be duplicated to the main memory and whether the GPU should access main memory or VRAM. Previously, it was required to explicitly specify both, but now it is also possible to specify only one or the other.
The unspecified pattern will default to the value described in the function reference and in $CTR_SDK/documents/DMPGL20/DMPGL20_load_pattern_setting.pdf.
Fixed unintended implementation of DMP_stripLine0.obj.
The geometry shader is not designed to work correctly if the number of output vertex shaders is greater than the attribute count (number of files) input for the geometry shader. However, this was not true with the line shader.
Fixed a bug where no error would occur even when the data address was NULL for the vertex buffer in the data transfer pattern where a copy is created in main memory and the GPU is accessing the VRAM.
Added a 5-pixel clamp to the outer edge of the touch panel, where it is difficult to touch the screen with the stylus.
Touching outside this border returns coordinates for inside the border.
In line with this change, the obtainable coordinates are now as follows.
- X axis: 5 <= x <= 314
- Y axis: 5 <= y <= 234
Added HIO library samples and documentation.
It is no longer required to explicitly open a channel for host-side file operations.
In line with this change, the following has also changed.
- The
HostSystemChannel class member functions Open/Close/Puts/Gets have been removed, and the other functions have been moved to the nn::hio::CTR namespace.
- The
HostFile and HostDirectory class member functions have had any reference to a HostSystemChannel instance removed from their arguments.
Added functions and classes for handling wide-character strings.
Added the HTTP library and demos.
This library is not supported by CTR-SDK 0.9.
Added a library for encoding and decoding JPEG files.
These functions are not supported by CTR-SDK 0.9.
Added the following functions to the MATH library.
VEC2IsZero
VEC3IsZero
VEC4IsZero
VEC4IsZeroWOne
MTX22IsIdentity
MTX33IsIdentity
MTX34CameraRotate
Fixed a bug where the above functions would return incorrect values.
Changed the math library to use the inline modifier by default for vector and matrix calculation functions.
Added API similar to the member functions of the MATH library's matrix and vector classes.
Rewrote MTX33Mult, MTX34Mult, MTX34Copy, and Hermite functions in assembler to optimize speed.
Assembler versions are used by default.
The C-language versions can be used by explicitly calling the function name with C appended.
(Example: MTX33MultC)
Fixed a bug where operations would become unstable when specifying a value greater than 8MB in a call to the nn::init::InitializeAllocator function.
The nninitStaticInit function was defined as a standard weak symbol function, but this was changed to match the NITRO and TWL-SDK specifications.
It was previously required to call the nn::os::Initialize function when replacing the nninitStartUp function with a user-defined function. This was changed so that nn::os::Initialize is called before nninitStartUp.
Added LightSemaphore, LightEvent, and LightBarrier classes as high-speed synchronization mechanisms with no restrictions on how many can be used.
Fixed a bug where specifying a pitch greater than 14 would produce noise when playing back from an ADPCM sound source.
Added Aux bus and related features and parameters.
Added functions related to DSP cycle count.
Changed the nn::snd::MixParam structure format.
Increased the channels to 4. However, as of the CTR-SDK 0.9 release, the REAR_LEFT and REAR_RIGHT channels are not yet supported, and specifying them will have no effect on processing.
During a loop playback of a small amount of audio data (not necessarily a short sample length), clearing the loop flag and finishing playback without a buffer jump would cause a bug where playback would continue even after reaching the end of the sample. This has been fixed.
Changed the default snd parameter to an appropriate value.
See the related function references for details.
Categorized snd header files and moved to sub-directories named MPCore and Common.
Fixed a bug where releasing buffers managed by a voice (such as the Voice::Stop or nn::snd::FreeVoice functions) would not work properly.
Optimized the library, reducing processing overhead.
There was a bug where clearing a loop flag during loop playback and then performing a buffer jump would sometimes result in the buffer jump not occurring and the playback buffer ceasing to exist, depending on when the loop flag is cleared.
This bug has been fixed.
Added functions to set and get the interpolation method.
Added the socket library and demos.
This library is not supported by CTR-SDK 0.9.
Added the SSL library and demos.
This library is not supported by CTR-SDK 0.9.
Added the Config tool ($CTR_SDK/tools/TargetTools/CTR-T*/Release/Config.csu) for configuring system setting initialization and HID calibration.
Added documentation for the Config tool.
Added the UDS (local communication) library and demos.
Added API to switch LCD modes, as required to implement autostereoscopy on the CTR.
Also added the ULCD library for creating the different images for the left and right eyes needed for 3D.
In line with this change, also added library documentation.
Fixed a bug in the SetDitheringWeightParams function where only patterns 0 and 1 of the 0-3 dithering weights could be set. All four are now usable.
Added the ability to specify an offset to the following functions that transfer the source data for conversion. This offset value is added independently of the single-transfer size.
If the offset is omitted, these functions will behave as they did with previous versions of the CTR-SDK.
SetSendingY
SetSendingU
SetSendingV
SetSendingYuv
- There is a bug that causes distorted sound playback roughly once every 30 times after the TS board is powered on.
If this occurs, noise will continue until the board is powered off.
- The lowest line on the lower LCD does not display.
- The
Seek functions of file control classes under nn::fs do not operate properly when nn::fs::POSITION_BASE_END is specified as an argument.
- The
nn::ac::CTR::DebugFlushNetworkSetting function does not operate correctly unless an SD Card is inserted.
Added the AC (auto-connection) library and demos.
This library is not supported by CTR-SDK 0.9.
With prior versions, only one of the outer cameras could be used, but this update adds support to the CAMERA library for using the second outer camera.
In line with this change, the following functions were changed to add a port argument.
StartCapture
StopCapture
IsBusy
ClearBuffer
IsBufferError
GetVsyncInterruptEvent
GetBufferErrorInterruptEvent
SetReceivingAuto
SetReceivingRgbAuto
StopReceivingAuto
StopReceivingRgbAuto
SetReceiving
IsFinishedReceiving
SetReceivingRgb
IsFinishedReceivingRgb
SetTransferLines
SetTransferBytes
GetTransferBytes
SetTrimming
IsTrimming
SetTrimmingParams
GetTrimmingParams
SetTrimmingParamsCenter
With this added support, SELECT_ALL now specifies the use of the inner camera and outer cameras 1 and 2.
Consequently, the former meaning of SELECT_ALL can now be specified using SELECT_IN1_OUT1 instead. Please change affected code accordingly.
On boards that do not have stereo cameras, this feature cannot be used, so do not use any settings that include outer camera 2 in the above functions.
Revised the FlipImage function for flipping images, inverting the left-right flip for the specified value.
The revised Flip enumerated type and image orientation correspond as follows.
Flip enumerated type: Image orientation
------------------------------
FLIP_NONE: Normal
FLIP_HORIZONTAL: Mirrored
FLIP_VERTICAL: Flipped top to bottom
FLIP_REVERSE: Mirrored, then flipped top to bottom
With this change, the Flip enumerated type matches the CAMERAFlip enumerated type used in the TWL-SDK.
The maximum values returned by the GetMaxBytes and GetMaxLines functions previously equaled to the buffer size, but these are now half of the buffer size in order to help prevent buffer errors.
Adjusted the contrast parameter set by the SetContrast function.
Image quality when contrast has been adjusted is therefore different from that in CTR-SDK 0.8.
The default contrast is the same as CTR-SDK versions 0.8 and earlier.
In line with this change, the setting values corresponding to the Contrast enumerated type's CONTRAST_HIGH and CONTRAST_LOW have also been changed.
- (Previous)
CONTRAST_HIGH = CONTRAST_PATTERN_05
CONTRAST_LOW = CONTRAST_PATTERN_07
- (Revised)
CONTRAST_LOW = CONTRAST_PATTERN_05
CONTRAST_HIGH = CONTRAST_PATTERN_07
Added SetReceivingAuto, SetReceivingRgbAuto, StopReceivingAuto, and StopReceivingRgbAuto functions to set and stop automatic reception of camera image data.
Added support for running on a TS board.
Fixed a bug where files and directories on a FATFS could not be accessed.
Added DMA transfer support for access to NAND and SD Memory Cards.
Implemented the directory scanning via an nn::fs::Directory object also for the directories in ROM that can be accessed using "rom:".
When transferring vertex data or textures to VRAM in DMPGL2.0, in addition to the restrictions described in the specification, data addresses had to be 8-byte aligned. This additional restriction has been removed.
Fixed a bug where Display 1 (the lower screen) could skip a frame, depending on when the nngxSwapBuffers function is called.
Fixed a bug where the X coordinate reported using the TouchPanelReader class's Reader function could be invalid when called at the moment the touch panel is touched.
Added the HTTP library and demos.
This library is not supported by CTR-SDK 0.9.
Fixed a memory leak in the nn::os::Timer::ClearSignal function.
Raised the limit to 32 for the number of threads an application can run at any one time.
Fixed a bug where the debugger would display a command error and fail when loading cci files.
Fixed a bug in the debugger where performing a hard break when a breakpoint address is being executed would cause the debugger to freeze.
Changed code so the debugger is notified of undefined command exceptions and prefetch aborts.
There was a bug in mutual exclusion in the firmware that, in rare cases, could cause various issues such as threads not starting or access exceptions occurring.
This problem was fixed.
Fixed a bug where the cycles set using the nn::os::Timer::StartPeriodic or nn::os::Alarm::SetPeriodic functions would become longer than the specified value.
Added LightSemaphore, LightEvent, and LightBarrier classes as high-speed synchronization mechanisms with no restrictions on how many can be used.
In CTR-SDK 0.8, there was a bug where sound volumes would be around half the levels expected for CTR-SDK 0.7 and earlier.
This bug has been fixed.
Fixed a bug where the volume + / - symbols were backwards.
Added the socket library and demos.
This library is not supported by CTR-SDK 0.9.
Added the SSL library and demos.
This library is not supported by CTR-SDK 0.9.
Added the UDS (local communication) library and demos.
Added the ability to specify an offset to the following functions that transfer the source data for conversion. This offset value is added independently of the single-transfer size.
If the offset is omitted, these functions will behave as they did with previous versions of the CTR-SDK.
SetSendingY
SetSendingU
SetSendingV
SetSendingYuv
None.
Changed the nn::demo library class structure, and moved to the Sample Demos/common directory as the lib_demo library.
In line with this change, the released function reference and documentation has been deprecated.
Be aware of the following points when transitioning from the nn::demo to the lib_demo library.
- The upper and lower screens now share one framebuffer object (color buffer / depth buffer) to reduce VRAM usage.
Consequently, when rendering to both the upper and lower screens, rendering alternately to the upper and lower screens will produce a mixed display of the rendering results, so instead first complete rendering to one target screen and then proceed to rendering for the next.
For example, you can render to both the upper and lower screens as follows.
- Set the upper screen as the target, clear the framebuffer, complete rendering, and then send the results to the display buffer and swap the buffer.
- Set the lower screen as the target, clear the framebuffer, complete rendering, and then send the results to the display buffer and swap the buffer.
See the sample demo source code in the Sample Demos/gx directory for programming specifics.
Added / removed the following graphics demos.
- Added
Draw3d demo that renders cuboids, spheres, and cylinders.
- Added
FragmentLightingSimple demo that uses simple fragment lighting.
- Added
VertexBuffer demo of how to specify the region where a vertex buffer object is allocated.
- Added
RenderToTexture demo of rendering to a texture.
- Removed
DemoFont demo of font display.
Fixed double-writing to output register in the vertex shader assembly language (VSH files) included in the sample demos under the gx directory.
Added the following sample demos under the gx/DMPGL directory.
LightingDistanceAtte (distance attenuation sample)
LightingSpotAtte (spotlight sample)
Changed SimplePlayer's wav sound source.
Added AuxBusSample demo showing delay effects (BusA) and sine wave synthesis (BusB) using AuxBus.
Added ulcd/Simple and ulcd/RealMode as ULCD sample demos.
Changed demo1 so features were not mutually dependent, allowing each to operate independently.
Removed using namespace declaration from sample demos, and now the demo uses explicit specification of namespaces that was previously omitted.
- There is a bug in the
Release - small build of demo1 where triangles do not render to the upper screen.
Triangles render properly when using other build options.
- There is a bug in the
Release - small build of uds/com_demo1 that prevents scans from working properly.
Communication works properly when using other build options.
- There is a bug in the
Release - small build of gx/Api/RenderToTexture that causes extremely slow rendering speeds.
There is no problem when using other build options.
- The
camera/Simple demo freezes on rare occasions if the settings are changed by pressing the buttons repeatedly.
This function has been revised following the addition of the nngxWaitCmdlistDone function, which waits for the CPU to finish running a command list.
The nngxReserveSwapBuffers function has been replaced with the nngxSwapBuffers function in anticipation of its future elimination from the SDK.
Made the following document revisions.
DMPGL20_system_API_specification.pdf
DMPGL20_specification.pdf
- DMPGL20_programming_guide.pdf
DMPGL20_load_pattern_setting.pdf
DMPGL20_statecache_specification.pdf (The name of this file has also been changed from "DMPGL20_commandcache_specification.pdf.")
- VertexShaderReferenceManual.pdf
Fixed a bug that caused cube map textures to remain enabled even after one of the dmp_Texture*.samplerType reserved uniforms was changed from a cube map setting (like GL_TEXTURE_CUBE_MAP) to a 2D texture (like GL_TEXTURE_2D).
Fixed a bug that prevented alpha components from being set properly with the glBlendEquation and glBlendEquationSeparate functions.
Fixed a bug that prevented an error from being detected if the data argument was NULL(0) when NN_GX_MEM_FCRAM | GL_NO_COPY_FCRAM_DMP was specified for the glBufferData function.
Fixed a bug that caused validity checks on the data argument to be skipped if NN_GX_MEM_FCRAM | GL_NO_COPY_FCRAM_DMP was specified for the glBufferSubData function.
With previous versions of the SDK, using the "no copy in the main memory (FCRAM) and PICA accessing the main memory" as the method to load the target vertex buffer would cause a GL_INVALID_OPERATION error. The specifications have now been changed so that the cache for the specified partial region is flushed.
Fixed a bug that caused the program not to be updated correctly if the current program that was set with the glUseProgram function was relinked with the glLinkProgram function.
Fixed another bug that caused the program not to be updated correctly in the following sequence of events: (1) the glDetachShader or glAttachShadershader function was used to switch the shader of the current program that was set with the glUseProgram function, after which (2) the glUseProgram function was used to switch to another program without first relinking using the glLinkProgram function.
Added two additional definitions for the param argument to the nngxGetCmdlistParameteri function: NN_GX_CMDLIST_TOP_BUFADDR and NN_GX_CMDLIST_BINDING.
Fixed a bug that caused failed initializations not to be detected if the nngxInitialize function failed to allocate memory.
A bug was found in the nngxReserveSwapBuffers function, and its functionality is already provided by the nngxSwapBuffers function, so it will be removed from the SDK in the future.
To facilitate a transition period, this function now serves as a wrapper for the nngxSwapBuffers function.
This function will be removed in the next release of the CTR-SDK.
Fixed a bug that prevented errors from being detected if an application used a display buffer that hadn't been allocated by the nngxTransferRenderImage or nngxSwapBuffers functions.
Overhauled the command cache system.
As a result of the specification changes, the "command cache" feature has been renamed the "state cache," and the following functions have been added.
nngxStartCmdlistSave
nngxStopCmdlistSave
nngxUseSavedCmdlist
nngxExportCmdlist
nngxImportCmdlist
nngxGetExportedCmdlistInfo
nngxCopyCmdlist
nngxValidateState
- nngxForceStateUpdate
nngxUpdateState
- nngxSetCommnadGenerationMode
Note that the functions that relate to this feature may be changed in a future release.
It is now possible for the nngxDeleteCmdlist and nngxClearCmdlist functions to delete or clear command lists without generating errors, even if the command list still contains unexecuted commands.
Added the nngxWaitCmdlistDone function, which waits until a command list finishes executing.
It is now possible to call the nngxEnableCmdlistCallback and nngxDisableCmdlistCallback functions on command lists that are still being executed.
Changed the errors returned by the system API (the functions with the "nngx" prefix) from GL error codes to extended error codes.
Fixed a bug that caused the delta values (indicating the deltas between adjacent entries) in the noise modulation lookup table for procedural textures not to contain the expected values.
Changed the shader assembly language as follows.
- Added support for the
#if defined(), #if !defined(), and #elif directives.
- If the
-debug option is not specified, the input file's path is now deleted.
- Added a single
nop instruction immediately after the end instruction during assembly to resolve a hardware bug.
None.
The nngxReserveSwapBuffers function has been replaced with the nngxSwapBuffers function in anticipation of its future elimination from the SDK.
Although the Cessna model did not contain any texture coordinates or tangent data, this demo had a shader that used these vertex attributes.
This has been changed to use an appropriate shader.
The Cessna model in the demo now uses shading.
The same depth buffer as the one used in the upper screen's framebuffer object is now explicitly attached for framebuffer objects used during the gas density information rendering pass.
The final entry in the noise lookup table was not set.
There was also an error in the method used to generate the noise lookup table.
These issues have been fixed.
The following demos that use the command cache feature have been added
- Sample Demos/gx/Api/CommandCacheSimple
- Sample Demos/gx/Api/CommandCacheVSUniformFrame
- Sample Demos/gx/Api/CommandCacheVSUniformModel
- There is a bug with the linker included in the RVCT 4.0 20100209 version that generated invalid inline operations. As a result of this bug, the following sample demos do not function properly with "small" (size-optimized) release builds.
This linker bug will be fixed in the next release of the ARM compiler.
- gx/Api/CommandCacheSimple
- gx/Api/CommandCacheVSUniformFrame
- gx/Api/CommandCacheVSUniformModel
- gx/Api/CommandListDouble
- gx/DMPGL/SubdivisionLoopSimple
Fixed a portion of the initialization process that was insufficient.
If the same pointer was specified for both the input and output of the VEC3Transform function using CTR-SDK 0.8.1, the function would return an invalid result.
This problem has been corrected.
Fixed a bug that caused the playback length to be shorter than the specified length during playback of ADPCM sound sources.
This change was actually made in version 0.8.1, but it was inadvertently left out of the changelog.
Fixed a bug with one-shot (non-looping) playback that caused the playback state not to change to false, even after the end of the sound source data was reached.
Fixed a bug that caused the nn::snd::Voice::GetPlayPosition function to return an unexpected value if it was called immediately after interrupt notification from the DSP.
Fixed a bug in the code that updates the status of voice buffers. In certain circumstances, this bug failed to provide buffer information for the application to update (for example, information about the release of voices). This in turn would lead to an assertion failure because the buffer could not be found, and ultimately cause the program to halt.
None.
Changed the compiler and linker options used by the build system and in the creation of the CTR-SDK libraries.
- Compiler options:
- No specification → --remove_unneeded_entities
- Implicit specification → --littleend
- --debug_macros → --no_debug_macros
- --dwarf2 → --dwarf3
- --no_unaligned_access → No specification
- Linker options:
- No specification → --no_eager_load_debug
- No specification → --vfemode=force
- Implicit specification → --debug
- Implicit specification → --exception_tables=nocreate
- Added the
--no_bestdebug --inline --tailreorder options for Release builds.
- Added the
--bestdebug option for non-Release builds.
Made a change so that __use_c99_matherr is imported within librtport.*.a.
As a result of these changes, the use of CTR-SDK 0.8.1 requires the RVCT 4.0 20100209 or a later version of the ARM compiler.
Fixed a bug that caused load failures if an attempt was made to run a CCI file that uses the HIO library.
Fixed a bug that caused noise to be generated as a result of an inability to decode properly while looping and buffer jumping during ADPCM playback.
With the previous versions of the SDK, there was a chance that streaming playback would not operate properly because reads would occur even if there were no updates to the data received from the DSP.
The spec has been changed so that no reads will occur if the data has not been updated.
Changed bufferSize (which sets the buffer size using a member variable of the nn::snd::WaveBuffer structure) to sampleLength (which sets the sample length).
None.
In line with the change described in Note 9-05, revised demo1, demo2, snd/SimplePlayer, and snd/StreamPlayer.
None.
Applications no longer need to call the StopDmaRecv[Rgb] function explicitly, so this function has been removed.
Made the following revisions to the function reference for the camera library.
- Added an explanation of the data format output by the cameras.
- Added a note to the reference about the number of frames required until the auto-exposure stabilizes when the cameras are first activated.
Fixed a bug that disabled the auto-exposure feature in the SetAutoWhiteBalance function, which is used to enable/disable automatic white balance.
The following functions have been added to set the operating mode of the cameras.
SetDetailSize: Specifies the size (in pixels) of the images output from the cameras
SetContrast: Changes the contrast
LensCorrection: Changes the level of vignetting correction
The following enumerated types were added following the addition of the functions listed above.
The specifications of the following functions have been changed.
- The functions below now have a return value of
void:
Initialize
- Finalize
StartCapture
StopCapture
ClearBuffer
GetVsyncInterruptEvent
GetBufferErrorInterruptEvent
- DmaRecv
SetTransferLines
SetTrimming
SetTrimmingParams
GetTrimmingParams
SetTrimmingParamsCenter
- Functions that now return
bool:
ActivateModule
- SwitchContextModule
- SetExposureModule
- SetWhiteBalanceModule
- SetSharpnessModule
- SetAutoExposureModule
- IsAutoExposureModule
- SetAutoWhiteBalanceModule
- IsAutoWhiteBalanceModule
FlipModule
- SetSizeModule
- SetFrameRateModule
- SetPhotoModeModule
- SetEffectModule
- The functions below now return data:
IsBusy
IsBufferError
- IsDmaRecvFinished
GetMaxLines
IsTrimming
To support the latest SoC, the arguments or the return values of some of the functions have been changed. Other functions have been removed altogether.
New functions have also been added.
- The arguments or return values of the following functions have been changed:
SetTransferLines
GetMaxLines
- The following functions have been removed:
- GetTransferLines
- GetBytesAtOnce
- The following functions have been added:
SetTransferBytes: Specifies the number of bytes to accumulate in the buffer
GetTransferBytes: Gets the number of bytes currently accumulated in the buffer
GetMaxBytes: Returns the maximum number of bytes that can be stored in the buffer
Any references to the GetTransferLines and GetBytesAtOnce functions that have been removed should be replaced with references to the GetTransferBytes function.
Some of the function names have been changed, as shown below:
DmaRecv -> SetReceiving
- IsDmaRecvFinished -> IsFinishedReceiving
ActivateModule -> Activate
SwitchContextModule -> SwitchContext
SetExposureModule -> SetExposure
SetWhiteBalanceModule -> SetWhiteBalance
SetSharpnessModule -> SetSharpness
SetAutoExposureModule -> SetAutoExposure
IsAutoExposureModule -> IsAutoExposure
- SetAutoWhiteBalanceModule -> SetAutoWhiteBalance
IsAutoWhiteBalanceModule -> IsAutoWhiteBalance
- FlipModule -> FlipImage
SetSizeModule -> SetSize
SetFrameRateModule -> SetFrameRate
SetEffectModule -> SetEffect
SetPhotoMode -> SetPhotoMode
The enumerated types used by the functions that configure the camera settings have been revised. In addition, the range of values that can be specified for some of those functions has been expanded.
Size enumerated type
Deleted the value indicating 298x224 resolution, and added a value indicating the native size of the CTR's upper screen (400x240).
Effect enumerated type
Increased the number of levels that can be set for the parameters from 6 to 22.
- Values set with the
SetSharpness function
Changed the range from [-3, +5] to [-4, +5].
It is now possible to get events that notify of data transfer completion during calls to the SetReceiving and SetReceivingRgb functions. These functions are used to receive camera data.
Added functions to get the IDs of framebuffer objects and render buffer objects managed by the DrawFramework class.
Removed the second and fifth arguments, which had not been used.
Added the DSP reference manual.
Deleted the PIPE number that used to be specified as the third argument in previous versions of the SDK.
Added the LoadDefaultComponent function for loading components used by the SND library.
Increased the number of pipes used for communication with DSP to 8.
The register number is now specified as the first argument.
The PIPE number is now specified as the first argument.
Added a reference page for build rules: $CTR_SDK/documents/SDKRules/BuildRules.html.
Added an overloaded function to the Adjust function of the nn::fnd::ExpHeap, which lets the developer shrink the size of the heap. This overloaded function allows the direction of adjustment to be specified.
Added the nn::fnd::DateTime class to get the current date and time.
Revised return values in the nn::fnd::ExpHeapBase::GetSizeOf function reference page.
Added arguments to the nn::fnd::*Heap::Create classes that allow the developer to specify where the management region should be located. These functions are used to create nested heaps in the ExpHeap, FrameHeap, and UnitHeap within the nn::fnd namespace.
Fixed the following two problems that involved nngx thread behavior.
- Low-priority threads would not run when the
nngxWaitVSync function was running.
- Calling the
nngxInitialize function in a thread with a priority of zero would result in a freeze.
Removed unnecessary arguments from the definition of the nngxInitialize function.
A related change was made to the portion of the code that calls the nngxInitialize function in the DEMO library.
Note that this function is no longer compatible with previous versions of the CTR-SDK.
- Bugfixes
- Fixed an issue with the default settings for the diffuse colors of light 0 and materials in DMP fragment lighting.
- Fixed a bug in the default value of the reserved uniform
dmp_LightEnv.clampHighlights.
- Fixed a bug that caused an error when the
GL_GAS_DMP format was used with the glCopyTexImage2D function.
- Fixed a bug where you could not use textures in the
GL_GAS_DMP format with texture units 1 and 2.
- Fixed a bug where you could not set
dmp_TexEnv[i].combineAlpha to GL_DOT3_RGBA.
- Added error checking.
- New Features and Changed Specifications
- Added two new functions:
glUniformsDMP and glGetUniformsDMP.
- Changed the maximum value for the V-Sync counter to
0x7FFFFFFE.
- Implemented an optimization that reduces the number of searches for texture and vertex objects.
- Shader assembler tool-related fixes
- Errors and warning messages are now output to
sdterr instead of stdout.
Made cosmetic and layout improvements to the function references of the gl and nngx APIs.
Changed the terminology used to represent the tolerances that determine the sensitivity of the accelerometers. This used to be referred to as the "play radius," but is now simply called "play" (or sometimes "play range").
This change was made because the "play" is applied to the amount of change in acceleration (in other words, the "snap") along each axis, not to the coordinates' distances from the origin.
Fixed a bug that resulted in invalid coordinates obtained for locations tapped at the left or top edge of some touch panels.
Added the const modifier to the GetStickClamp and GetStickClampMode member functions of the nn::hid::CTR::PadReader class.
Added the HIO library, which provides access between the CTR development hardware and a PC.
Errors will now always occur if the size or offsets specified for the AllocateBuffer and StartSampling functions are not two-byte aligned, or if the specified size exceeds the size of the buffer that has been allocated.
Added descriptions to the MIC function reference.
Renamed the NSTD library to libnn_nstd.
The documentation for the C-language wrapper functions has been standardized to text that links to the corresponding C++ functions.
The documentation for the following functions is now accessible from the list of OS-related C language wrapper functions:
nnosInitializeAlarmSystem
- nnosInitializeDeviceMemory
- nnosGetDeviceMemoryAddress
The following C wrapper functions have been added.
nnosTimerSignal
nnosThreadGetId
nnosThreadIsAlive
nnosThreadGetMainThread
nnosInitialize
Deleted the following functions:
nnosEventInitializeNoCreate
The nn::os::CriticalSection class can now obtain locks recursively, just like the nn::os::Mutex class.
The sizes of the nn::os::CriticalSection and nn::os::BlockingQueue classes have been changed following this revision.
Functions that use DMAC internally for data transfer used to require that the buffer be aligned to larger boundaries than the alignment the functions originally required.
This restriction has been lifted.
Fixed a bug that sometimes caused DESCRIPTION_OUT_OF_MEMORY errors to occur after repeated DMA system calls.
Corrected an error in the reference for nn::os::StackMemoryBlock that describes regions where physical memory is not allocated.
Revised the return values listed in the function reference for the nn::os::WaitObject::WaitAny function.
Added typedefs for the nn::fnd::ThreadSafeExpHeap, nn::fnd::ThreadSafeUnitHeap, and nn::fnd::ThreadSafeFrameHeap functions, which implement thread-safe heaps by using critical sections on a per-heap basis.
Released the sound library.
The ctr_makerom tool now outputs images in CCI format.
As a result of this change, CCI files that were created using CTR-SDK 0.7 or earlier versions can no longer be loaded.
Added the Reject item to the RSF format. This setting makes it possible to specify files and directories that should be excluded from the ROM file system.
For details, see $CTR_SDK/documents/tools/ctr_makerom.html.
Applications no longer need to call the StopDmaRecv or StopDmaSend* functions explicitly, so these functions have been removed.
Added a description of input and output data formats of the Y2R library.
Fixed a bug that caused transfers to fail in the individual YUV mode of the Y2R library.
Fixed an error in the conversion coefficients that can be set using the SetStandardCoefficient function.
The specifications of the following functions have been changed.
- The functions below now have a return value of
void:
Initialize
- Finalize
SetInputFormat
SetOutputFormat
SetRotation
SetBlockAlignment
SetSpacialDithering
SetTemporalDithering
SetTransEndInterrupt
GetTransEndEvent
DmaSendY
DmaSendU
DmaSendV
DmaSendYuv
DmaRecvRgb
SetInputLineWidth
SetInputLines
SetStandardCoefficient
SetAlpha
SetDitheringWeightParams
GetDitheringWeightParams
StartConversion
StopConversion
- The functions below now return data:
GetInputFormat
GetOutputFormat
GetRotation
GetBlockAlignment
GetSpacialDithering
GetTemporalSpacialDithering
GetTransEndInterrupt
IsDmaSendFinished
- IsDmaRecvFinished
GetInputLineWidth
GetInputLines
GetOutputFormatBytes
GetOutputBlockSize
GetOutputImageSize
GetAlpha
IsBusyConversion
The following functions were added to check whether DMA transfers in the Y2R library have completed:
IsFinishedSendingY
IsFinishedSendingU
IsFinishedSendingV
Some of the function names have been changed, as shown below:
GetTemporalSpacialDithering -> GetTemporalDithering
SetTransEndInterrupt -> SetTransferEndInterrupt
GetTransEndInterrupt -> GetTransferEndInterrupt
GetTransEndEvent -> GetTransferEndEvent
DmaSendY -> SetSendingY
DmaSendU -> SetSendingU
DmaSendV -> SetSendingV
DmaSendV -> SetSendingV
DmaSendYuv -> SetSendingYuv
IsDmaSendFinished -> IsFinishedSendingYuv
DmaRecvRgb -> SetReceiving
- IsDmaRecvFinished -> IsFinishedReceiving
The functions below are no longer publicly available, since applications no longer need to explicitly configure the settings for data transfer requests during use of the Y2R library.
SetOutputDreq
GetOutputDreq
SetInputDreq
GetInputDreq
The functions that configure the detailed conversion coefficient parameters are no longer publicly available. The SDK now only provides functions for selecting one of the standard conversion coefficient types.
The functions that are no longer publicly available are listed below.
SetCoefficientParams
GetCoefficientParams
GetStandardCoefficientParams
None.
Fixed a but that caused the Finalize function to not operate properly.
Applications no longer need to call the StopDmaRecv[Rgb] function explicitly, so this function has been removed.
Fixed a bug that disabled auto exposure in the SetAutoWhiteBalance function, which is used to enable/disable automatic white balance.
The following functions have been added to set the operating mode of the cameras.
SetDetailSize: Specifies the size (in pixels) of the images output from the cameras
SetContrast: Changes the contrast
LensCorrection: Changes the level of vignetting correction
The following enumerated types were added following the addition of the functions listed above.
The specifications of the following functions have been changed.
- The functions below now have a return value of
void:
Initialize
- Finalize
StartCapture
StopCapture
ClearBuffer
GetVsyncInterruptEvent
GetBufferErrorInterruptEvent
- DmaRecv
SetTransferLines
SetTrimming
SetTrimmingParams
GetTrimmingParams
SetTrimmingParamsCenter
- Functions that now return
bool:
ActivateModule
- SwitchContextModule
- SetExposureModule
- SetWhiteBalanceModule
- SetSharpnessModule
- SetAutoExposureModule
- IsAutoExposureModule
- SetAutoWhiteBalanceModule
- IsAutoWhiteBalanceModule
FlipModule
- SetSizeModule
- SetFrameRateModule
- SetPhotoModeModule
- SetEffectModule
- The functions below now return data:
IsBusy
IsBufferError
- IsDmaRecvFinished
GetMaxLines
IsTrimming
To support the latest SoC, the arguments or the return values of some of the functions have been changed. Other functions have been removed altogether.
New functions have also been added.
- The arguments or return values of the following functions have been changed:
SetTransferLines
GetMaxLines
- The following functions have been removed:
- GetTransferLines
- GetBytesAtOnce
- The following functions have been added:
SetTransferBytes: Specifies the number of bytes to accumulate in the buffer
GetTransferBytes: Gets the number of bytes currently accumulated in the buffer
GetMaxBytes: Returns the maximum number of bytes that can be stored in the buffer
Any references to the GetTransferLines and GetBytesAtOnce functions that have been removed should be replaced with references to the GetTransferBytes function.
Some of the function names have been changed, as shown below:
DmaRecv -> SetReceiving
- IsDmaRecvFinished -> IsFinishedReceiving
ActivateModule -> Activate
SwitchContextModule -> SwitchContext
SetExposureModule -> SetExposure
SetWhiteBalanceModule -> SetWhiteBalance
SetSharpnessModule -> SetSharpness
SetAutoExposureModule -> SetAutoExposure
IsAutoExposureModule -> IsAutoExposure
- SetAutoWhiteBalanceModule -> SetAutoWhiteBalance
IsAutoWhiteBalanceModule -> IsAutoWhiteBalance
- FlipModule -> FlipImage
SetSizeModule -> SetSize
SetFrameRateModule -> SetFrameRate
SetEffectModule -> SetEffect
SetPhotoMode -> SetPhotoMode
The enumerated types used by the functions that configure the camera settings have been revised. In addition, the range of values that can be specified for some of those functions has been expanded.
Size enumerated type
Deleted the value indicating 298x224 resolution, and added a value indicating the native size of the CTR's upper screen (400x240).
Effect enumerated type
Increased the number of levels that can be set for the parameters from 6 to 22.
- Values set with the
SetSharpness function
Changed the range from [-3, +5] to [-4, +5].
It is now possible to get events that notify of data transfer completion during calls to the SetReceiving and SetReceivingRgb functions. These functions are used to receive camera data.
It is now possible to perform file and directory operations on SD Cards.
To do so, specify an sdmc archive and call the necessary functions in the FS library API.
Added functions for deleting and renaming files, as well as functions for creating, deleting, and renaming directories.
Currently, these operations can only be done on archives stored on SD Cards.
Added a class for reading and writing files.
Currently, files can only be written to archives stored on SD Cards.
Fixed a bug in the firmware that caused a resource leak when files failed to open.
Adjusted the sampling period for the buttons, the analog stick, and the touch panel to 4 milliseconds.
Sampling of the accelerometer will occur every (approximately) 12 milliseconds.
These sampling periods are shorter than they were with previous versions of the SDK.
Fixed a bug where the microphone was not usable once the Finalize function was called.
Fixed a bug that caused the ending address to be incorrect when a breakpoint is set in the Thread::Start function of CTR-SDK 0.7.
Fixed a bug that caused deadlocks within the system under certain conditions.
Fixed a bug that prevented values of the VFP register from being obtained. This bug caused the debugger to always display a value of zero.
Fixed a bug that caused strings output to the debugger to be output twice.
Fixed a bug that caused a hang if the processes for the camera and other demos were run continuously for a while in the debugger.
Previous versions of the SDK only allowed 64 MB of memory to be used, even on development hardware, but this has been increased to 96 MB.
Note that the amount of memory that will be usable on the production hardware has not changed from 64 MB.
Fixed a bug that caused the debugger to hang when running applications that start and end threads frequently.
As a result of this bug fix, small (size-optimized) builds of the OS demos will no longer hang when run.
The ctr_makerom tool now outputs images in CCI format.
As a result of this change, CCI files that were created using CTR-SDK 0.7 or earlier versions can no longer be loaded.
Fixed a but that caused the Finalize function to not operate properly.
Applications no longer need to call the StopDmaRecv or StopDmaSend* functions explicitly, so these functions have been removed.
Fixed a bug that caused transfers to fail in the individual YUV mode of the Y2R library.
Fixed an error in the conversion coefficients that can be set using the SetStandardCoefficient function.
The specifications of the following functions have been changed.
- The functions below now have a return value of
void:
Initialize
- Finalize
SetInputFormat
SetOutputFormat
SetRotation
SetBlockAlignment
SetSpacialDithering
SetTemporalDithering
SetTransEndInterrupt
GetTransEndEvent
DmaSendY
DmaSendU
DmaSendV
DmaSendYuv
DmaRecvRgb
SetInputLineWidth
SetInputLines
SetStandardCoefficient
SetAlpha
SetDitheringWeightParams
GetDitheringWeightParams
StartConversion
StopConversion
- The functions below now return data:
GetInputFormat
GetOutputFormat
GetRotation
GetBlockAlignment
GetSpacialDithering
GetTemporalSpacialDithering
GetTransEndInterrupt
IsDmaSendFinished
- IsDmaRecvFinished
GetInputLineWidth
GetInputLines
GetOutputFormatBytes
GetOutputBlockSize
GetOutputImageSize
GetAlpha
IsBusyConversion
The following functions were added to check whether DMA transfers in the Y2R library have completed:
IsFinishedSendingY
IsFinishedSendingU
IsFinishedSendingV
Some of the function names have been changed, as shown below:
GetTemporalSpacialDithering -> GetTemporalDithering
SetTransEndInterrupt -> SetTransferEndInterrupt
GetTransEndInterrupt -> GetTransferEndInterrupt
GetTransEndEvent -> GetTransferEndEvent
DmaSendY -> SetSendingY
DmaSendU -> SetSendingU
DmaSendV -> SetSendingV
DmaSendV -> SetSendingV
DmaSendYuv -> SetSendingYuv
IsDmaSendFinished -> IsFinishedSendingYuv
DmaRecvRgb -> SetReceiving
- IsDmaRecvFinished -> IsFinishedReceiving
- The volume control slider settings are the reverse of those indicated by the silk-screened notations on the target boards.
Fixed an issue that prevented data from being fully repositioned when an image was rotated using the rotation feature of the Y2R library output buffer.
Added a feature to the multifunction demos (demo1 and demo2) that retrieves and displays the current date and time.
The same depth buffer as the one used in the upper screen's framebuffer object is now explicitly attached for framebuffer objects used during the gas density information rendering pass.
Deleted unnecessary mov instructions for tangent values that are input as vertex data.
Added a CommandListDouble demo that performs double-buffering on a command list for rendering.
Changed the preferred processor from core 1 to core 0 within the thread demos.
Added the SimplePlayer sample demo, which demonstrates how to play, stop, and alter the pitch of 8-bit and 16-bit PCM data. Also added the StreamPlayer sample demo, which plays dynamically generated sine sweep.
Added a feature to demo1 that plays back data input from the microphone in pass-through mode. Also added a feature to demo2 that plays sound effects of a sphere falling.
None.
Made revisions required to support the sound library of NintendoWare for CTR 0.4.0.
None.
Added the CAMERA library, which is used to access the camera.
A new crypto library was added.
Currently, only SHA-1, SHA-256, SHA-1 HMAC, and SHA-256 HMAC functions are supported.
Added the following classes for simple rendering of 2D geometric shapes:
nn::demo::CTR::DrawFrameworkEx
nn::demo::CTR::RenderData
nn::demo::CTR::TextsRenderData
nn::demo::CTR::TrianglesRenderData
nn::demo::CTR::ColorFillProgram
nn::demo::CTR::DecalTextureProgram
nn::demo::CTR::FontProgram
nn::demo::CTR::ProgramObject
Added a new document that explains the DEMO library and contains more detailed information than that provided in the function reference.
$CTR_SDK/documents/TechnicalNotes/AboutDemoLibrary.pdf
When the LCD serving as the rendering target is changed using the DEMO_SetRenderingTarget function, glViewport is now called.
The following specifications of the DrawFramework class were changed:
- The location where renderbuffers are allocated is now split between VRAM-A and VRAM-B, depending on the type.
- Changed the display buffer format to RGB8.
- Added the ability to specify the stencil buffer during calls to the
ClearDisplay function.
In earlier SDKs, the DrawFramework::SwapBuffer would always wait for a V-Sync, but the addition of the new isWaitVSync argument lets you specify whether or not to wait.
When this is set to true (the default value), the function waits for a V-Sync.
The file demo_MemoryManager.h was previously undisclosed, but it is now a public header.
The SwapBuffer function has been made into a virtual function for convenience when inheriting the DrawFramework class.
The maximum number of characters that can be output using the nn::demo::TextDrawFramework class has been increased from 30 to 50.
The macro name also contained a spelling error, so it has been changed from MAX_CHAR_NUM_PAR_LINE to MAX_CHAR_NUM_PER_LINE.
The address alignment used for the destination for transfers has been changed from 4 bytes to 8 bytes when allocating vertex buffers in VRAM using the MemoryManager class in the DEMO library.
This is not due to a change in the DMPGL 2.0 System API Specifications, but rather a restriction in the current implementation of DMA transfers.
Added the NN_ENDIAN macro for determining the endianness of the platform.
This lets you use the endianness as a conditional in your programs by using code like the following:
#if NN_ENDIAN == NN_ENDIAN_VALUE_LITTLE
The structure of the subdirectories of the documents folder was changed so that all documentation contained within the CTR-SDK can now be accessed from the top-level page ($CTR_SDK/documents/index.html).
Changed the data type for u32 and s32 from [unsigned|signed] long int to [unsigned|signed] int.
It is now possible to use C preprocessor directives (such as #define, #if, and #end) within assembly files.
Fixed a bug that caused duplicate macro-related options to be specified when compiling from the command line.
The library source files that are included for certain parts of the SDK are only intended for reference during debugging. Their operation is not guaranteed if they are rebuilt by developers, so the OMakefiles for the libraries have been deleted in order to avoid confusion.
Fixed a bug that caused the nn::fnd::ExpHeap class to erroneously determine that the class was in an invalid state.
It is now possible to allocate the frame heap in both directions.
By specifying a negative alignment value when allocating a memory block, it is now possible to allocate from the end of the heap.
It is now also possible to shrink the size of the heap in both directions using the FrameHeap::Adjust function.
Added the Allocator classes to the class templates of nn::fnd::ExpHeapTemplate and nn::fnd::UnitHeapTemplate. These allocator classes share the same interface.
Added the following functions to the ExpHeap, FrameHeap, and UnitHeap classes in the nn::fnd namespace. These functions make it possible to create heaps within other heaps.
nn::fnd::*Heap::Create, which creates heaps within other heaps
nn::fnd::HeapBase::Destroy, which destroys heaps that have been created within other heaps
The following changes were made to the heap classes (ExpHeap, FrameHeap, and UnitHeap):
- It is now possible to specify options to perform zero-clearing and debug-filling during allocation.
- It is now possible to obtain the starting address and memory size of the memory regions.
- Added the
Dump function for displaying the content of the heap.
- Added the
ExpHeap::Adjust function for shrinking the size of the expanded heap region.
The ExpHeapTemplate, UnitHeapTemplate, and FrameHeapTemplate heap class templates have been added to the nn::fnd namespace. These templates can use the LockPolicy class to specify the thread-locking method.
As a result of this change, the ExpHeap, UnitHeap, and FrameHeap classes from previous versions of the SDK have been changed to typedefs for instances of the corresponding class templates.
There have been no changes to their interfaces.
Added the nn::fnd::HeapBase::FindHeap function, which is used to find the heap associated with the memory block at the specified address.
Overloaded versions of the constructors, the Initialize function, and the TryInitialize function in the nn::fs::FileReader class have been added. These overloaded functions allow path names to be specified as ASCII strings using the char* data type.
The remaining DMPGL samples from POD that were not included in CTR-SDK 0.6 have all been revised to support the CTR-SDK.
Added function reference manuals to the CTR-SDK for the graphics APIs (gl* and nngx*).
The format of these pages is provisional and will be overhauled in future versions of the SDK.
- Fixed the following bugs in the DMPGL 2.0 drivers:
- In previous versions of the SDK, the progs argument in the
glRestoreProgramsDMP function did not follow the specifications. Specifically, if an invalid value for progs (for example, a null pointer) was passed to the function, the error GL_INVALID_VALUE would result instead of the expected error GL_INVALID_OPERATION. This has been corrected.
- Similarly, in previous versions of the SDK, if a non-zero value was specified for the level argument to the
glCopyTexImage2D or glCopyTexSubImage2D functions, the error GL_INVALID_VALUE would occur instead of the expected value of GL_INVALID_OPERATION. This has been corrected.
- Added and revised the following features of the DMPGL 2.0 drivers:
- Added support for early depth tests
- Changed GL_DEPTH_COMPONENT24_STENCIL_INDEX8_DMP to GL_DEPTH24_STENCIL8_EXT
- Changed
GL_DEPTH_STENCIL_ATTACHMENT_DMP to GL_DEPTH_STENCIL_ATTACHMENT
- Added support for 32-block format (added the
glRenderBlockModeDMP function)
- The
glGet function now supports GL_TEXTURE_COLLECTION_BINDING_DMP
- Added support for selecting the texture coordinate input
- Added the reserved uniforms
dmp_Texture[2].texcoord and dmp_Texture[3].texcoord
- The texture coordinates for procedural textures used by the particle system shader can now be output to
GL_TEXTURE2
- Revised the following specifications for vertex shader uniforms:
- Changed all MAT-type uniforms so that they can be handled as arrays of VEC-type data
VEC-type arrays can now be set using both the glUniformf and glUniformMatrixf functions
GL_TRUE can now be specified for the transpose argument to the glUniformMatrix function
- Made it possible to specify individual elements within a
VEC-type array by adding an offset to the location value obtained using the glGetUniformLocation function.
- Changed the upper limit of the number of uniforms within vertex shaders and geometry shaders that can be linked to a single program object to 2048.
- Established an upper limit of 8191 on the number of program objects that can be used simultaneously.
- Changed
GL_REPEAT to GL_SYMMETRICAL_REPEAT_DMP for the reserved uniforms dmp_Texture[3].ptClampU and dmp_Texture[3].ptClampV
- Changed
GL_MIRRORED_REPEAT_DMP to GL_MIRRORED_REPEAT
- Added
GL_TEXTURE3 to the values that can be set for the reserved uniform dmp_LightEnv.bumpSelector
- Added
GL_TEXTURE1, GL_TEXTURE2, and GL_TEXTURE3 to the values that can be set for the reserved uniform dmp_LightEnv.shadowSelector
- Added the following features for the command state cache:
- Added an argument for checking the buffer size to the "save" API
- Added an argument for specifying the first object to the "restore" API
- Added vertex shader uniforms and flags for restoring geometry shader uniform to the program state restoration API
- Bindings to object 0 within a
LUT texture are now considered to be detached, and will no longer cause errors
- Added the
glTexSubImage1D function
- Added error checking if
GL_COLOR_ATTACHMENT0 is provided as the second argument to the glFramebufferRenderbuffer function (attachment).
- Changed the specifications so that
GL_INVALID_OPERATION will occur if an invalid color format is specified for the renderbuffer (or if the color format is anything other than GL_GAS_DMP)
- In previous versions of the SDK, the error
GL_INVALID_OPERATION would occur during error-checking within the glReadPixels function if the framebuffer was set incorrectly. This has been corrected so that the error GL_INVALID_FRAMEBUFFER_OPERATION will occur instead.
- Fixed bugs with the point shader
- Fixed the following bugs and changed the following features of the shader assembly language
- Added support for selecting the texture coordinate input (deleted
#pragma output_map(texture3, oN) from the specifications)
- The use of
#pragma bind_symbol to set multiple input registers is now treated as an error
- Fixed a bug in the code that checks for consecutive calls to the
mova instruction
- Revised the following documents:
- DMPGL20_specification.pdf
DMPGL20_system_API_specification.pdf
- DMPGL20_programming_guide.pdf
DMPGL20_commandcache_specification.pdf
- VertexShaderReferenceManual.pdf
The timing of V-Sync notification for the upper and lower screens would vary widely with previous versions of the SDK, but this has been corrected.
Fixed a bug that caused the uppermost line of pixels on the lower LCD not to be displayed.
The initialization and finalization functions of the HID library were changed from InitializeHid/FinalizeHid to Initialize/Finalize.
The use of the SELECT button is prohibited for CTR native applications.
Pressing SELECT is therefore now treated as presses of START.
The PadReader class can now be used to obtain input from the analog stick that mimics input from the +Control Panel. This +Control Pad emulation can be obtained in the same way as button input.
Added the const modifier to the GetStickClamp and GetStickClampMode member functions of the nn::hid::CTR::PadReader class.
Added the AccelerometerReader class for using the accelerometer.
The names of the symbols for the +Control Pad were changed to use "BUTTON" instead of "KEY."
For example, KEY_LEFT was changed to BUTTON_LEFT, and PLUS_KEY_MASK was changed to PLUS_BUTTON_MASK.
Added the MTX44PerspectiveDeg and MTX44PerspectiveRad functions.
The MTX44Perspective function has been retained as an alternate name for the "degree" version for compatibility.
Added the Set method to the Vector2, Vector3, and Vector4 classes.
Fixed a bug in the algorithm used within the DistSqPoint3ToPolyline3 function to select the shortest distance.
Added an API to find the product of a projection matrix and a rotation matrix that takes into account the actual layouts of the hardware's LCDs.
Added the MIC library, which is used to access the microphone.
The documentation for the C-language wrapper functions has been standardized to text that links to the corresponding C++ functions.
The documentation for the following functions is now accessible from the list of OS-related C language wrapper functions:
nnosInitializeAlarmSystem Function
- nnosInitializeDeviceMemory
- nnosGetDeviceMemoryAddress Function
The following functions have been added.
nnosTimerSignal Function
nnosThreadGetId Function
nnosThreadIsAlive Function
nnosThreadGetMainThread Function
nnosInitialize Function
Deleted the following functions:
nnosEventInitializeNoCreate Function
The nn::fnd::FileReader class, which is supposed to be "no copy," but was not in previous versions of the SDK. This has been fixed.
Changed the access label for the nn::os::HandleObject::Finalize function to protected.
Added the nn::os::SafeBlockingQueue class, which implements a blocking queue, using mutexes to ensure exclusive access.
Fixed a bug that caused the obtained size of the nn::os::StackBuffer class template to be up to 8 bytes more than expected.
Added the nn::os::Thread::GetMainThread function, which obtains the main thread object, to the nn::os::Thread class.
Fixed a bug that caused the nn::os::Tick::ToTimeSpan function to return incorrect results.
Added the nnosAlarmCanSet function, which acts as a C-language wrapper for the nn::os::Alarm::CanSet function.
Added the nnosInitializeDeviceMemory and nnosGetDeviceMemoryAddress functions, which are used to perform operations on the device's memory from C.
Added a mechanism for checking whether the version of the system installed on the development board matches the version of the system expected by the SDK that was used to build the program.
This version check is performed when the program is started. If the versions do not match, execution of the program halts.
The overloaded versions of functions used to start threads in the nn::os::Thread class (including the Start function) have been revised to allow more flexibility in the values that can be accepted.
With previous versions of the SDK, there used to be a slight time lag before the timer was signaled if a function like StartOneShot in the nn::os::Timer class was used to set a timer to expire after zero seconds. This time lag has been removed, and the timer is now signaled immediately.
Added the nn::os::LockPolicy class, which is used to specify the lock policy for implementing thread safety.
Generation of CCI files used to require only an ELF file, but now requires RSF and DESC files as well.
In addition, configuration of CCI files is now done through the RSF file instead of by specifying command-line arguments.
For more details, refer to the reference manual for the ctr_makerom tool.
${CTRSDK_ROOT}/documents/tools/ctr_makerom.html
None.
Fixed a bug that caused a resource leak even after files opened using classes like nn::fs::FileReader were closed. This bug caused a limit on the number of files that could be opened.
Removed the restriction that the size of all DMA transfers from main memory must be a multiple of four when allocating memory in VRAM.
The timing of V-Sync notification for the upper and lower screens would vary widely with previous versions of the SDK, but this has been corrected.
Corrected a bug that caused failures when attempting to load static regions 2 MB or greater in size.
It is now possible to load static regions up to 31 MB in size.
VFP context switching now only occurs when the application uses the VFP.
Added a mechanism for checking whether the version of the system installed on the development board matches the version of the system expected by the SDK that was used to build the program.
This version check is performed when the program is started. If the versions do not match, execution of the program halts.
Communication with the target board used to occur while running PARTNER-CTR/S, but this has been fixed.
PARTNER-CTR/S will need to be updated after the 2009/11/25 version.
Improved the performance when applications are run.
The debugger API now has multi-core support.
This makes it possible to attach the debugger monitor to processes that support multiple cores.
In previous versions of the firmware, if a certain thread was waiting on a semaphore, and multiple higher-priority threads then released that semaphore in succession, the thread that was waiting on that semaphore would acquire it multiple times. This issue has been corrected.
- Setting a breakpoint in the
Thread::Start function sometimes causes a kernel panic with the following output:
> KernelPanic[core1]: kern_Debug.cpp:526
> KDebug::OnDebuEvent : already event (4 1)
One of the multifunction demos (demo1) has been modified to use the camera.
Added the Draw2d demo (which draws 2D geometric shapes) and the DrawTexture2d demo (which performs texture mapping on polygons).
The source code for the graphics sample demos were changed to reflect the new ability to transpose matrices using an argument to the glUniformMatrix** functions.
Changed the directory structure under Sample Demos/gx.
The code for vertex shaders is now stored in the shaders directory, and the group of files loaded into ROMFS is now stored in the romfiles directory.
The vertex shader code for "Sample Demos/demo1" and "Sample Demos/demo2" were moved to the shaders directory.
The HostRoot was also changed to the romfiles directory so that the shader binaries will be created in the romfiles directory during builds.
The following changes were made to the multifunction demos (demo1 and demo2).
- Changed to use the accelerometer
- Changed the button assignments so that SELECT is not used
- Changed the button operations to use holding the buttons down
The multifunction demos (demo1 and demo2) now use the microphone.
None.
CONFIDENTIAL