This chapter provides information about extended applications that can take advantage of the improved hardware of SNAKE.
An application that runs on CTR-equivalent hardware even on SNAKE is referred to as a standard application.
CTR game software applications that have already been released to the market are considered standard applications.
2.1. Enhanced Features in Extended Applications (Important)
When an extended application is run on SNAKE, the CPU performance and amount of main memory available is increased as follows.
Feature
Standard Application
Extended Application
CPU Clock
268 MHz
804 MHz
L2 Cache
None
2 MB
Main Memory
64 MB
124 MB
Due to the large size of the CPU L2 cache that is enabled in extended applications, the nngxUpdateBuffer
function and other functions that are called when using the results of CPU memory operations in other components (such as the GPU) can have an effect on performance.
For more information, see Section 3.4.10. Differences Between nngxUpdateBuffer and nngxUpdateBufferLight (Important).
2.2. Running Extended Applications on CTR
Any application built as an extended application can be run on CTR without any changes.
However, applications only run with the same hardware performance as a standard application.
2.3. Checking the Operating Environment (Important)
Functions are provided to determine the environment that an application is running in so that the application can be adjusted based on the operating environment.
Function
Description
nn::os::IsRunOnSnake
Returns whether the application is running on SNAKE hardware.
nn::os::IsRunningAsExtApplication
Returns whether the application is running as an extended application.
Nintendo recommends calling these functions when the application starts and caching the return value. The nn::os::IsRunningAsExtApplication
function in particular can have a negative effect on performance when called frequently.
2.4. Standard Applications With Reduced Performance Only on SNAKE
Due to differences in scheduling and the configuration of threads running on the system core, some standard applications might experience performance problems only when running on SNAKE hardware.
In such cases, the performance problems can typically be resolved by building the application as an extended application.
When an extended application is run on SNAKE, the CPU performance and amount of main memory available is increased as follows.
Feature | Standard Application | Extended Application |
---|---|---|
CPU Clock | 268 MHz | 804 MHz |
L2 Cache | None | 2 MB |
Main Memory | 64 MB | 124 MB |
Due to the large size of the CPU L2 cache that is enabled in extended applications, the nngxUpdateBuffer
function and other functions that are called when using the results of CPU memory operations in other components (such as the GPU) can have an effect on performance.
For more information, see Section 3.4.10. Differences Between nngxUpdateBuffer and nngxUpdateBufferLight (Important).
Any application built as an extended application can be run on CTR without any changes.
However, applications only run with the same hardware performance as a standard application.
2.3. Checking the Operating Environment (Important)
Functions are provided to determine the environment that an application is running in so that the application can be adjusted based on the operating environment.
Function
Description
nn::os::IsRunOnSnake
Returns whether the application is running on SNAKE hardware.
nn::os::IsRunningAsExtApplication
Returns whether the application is running as an extended application.
Nintendo recommends calling these functions when the application starts and caching the return value. The nn::os::IsRunningAsExtApplication
function in particular can have a negative effect on performance when called frequently.
2.4. Standard Applications With Reduced Performance Only on SNAKE
Due to differences in scheduling and the configuration of threads running on the system core, some standard applications might experience performance problems only when running on SNAKE hardware.
In such cases, the performance problems can typically be resolved by building the application as an extended application.
Functions are provided to determine the environment that an application is running in so that the application can be adjusted based on the operating environment.
Function | Description |
---|---|
nn::os::IsRunOnSnake
|
Returns whether the application is running on SNAKE hardware. |
nn::os::IsRunningAsExtApplication
|
Returns whether the application is running as an extended application. |
Nintendo recommends calling these functions when the application starts and caching the return value. The nn::os::IsRunningAsExtApplication
function in particular can have a negative effect on performance when called frequently.
Due to differences in scheduling and the configuration of threads running on the system core, some standard applications might experience performance problems only when running on SNAKE hardware.
In such cases, the performance problems can typically be resolved by building the application as an extended application.