#include <nitro/os.h>
BOOL OS_IsRunOnTwl( void );
None.
If TRUE
, the application is running in TWL mode. The actual operating environment may be either an actual TWL system or the IS-TWL-DEBUGGER hardware.
If FALSE
, the application is running in some other mode (that is, in NITRO mode). The actual operating environment may be either an actual NITRO console or IS-NITRO-DEBUGGER. This also applies to the case of running an application in NITRO mode on IS-TWL-DEBUGGER.
Determines whether the program is running in TWL mode.
The OS_IsRunOnTwl
function determines the operating mode. It does not determine the operating environment. For example, this function will sometimes return TRUE
and sometimes return FALSE
, even though the application is running on the IS-TWL-DEBUGGER hardware in both cases. In other words, programs run on IS-TWL-DEBUGGER will sometimes be run in TWL mode and will sometimes be run in NITRO mode.
OS_IsRunOnTwl
is a useful function when creating TWL/NITRO hybrid ROMs. Hybrid ROMs will run in TWL mode on TWL, and in NITRO mode on NITRO. This function will return TRUE
when run on a TWL, and FALSE
when run on NITRO. This can be used to switch between code dynamically.
Example: How to Split Up Code That Supports NITRO/TWL Hybrid ROMs
if ( OS_IsRunOnTwl() )
{
// Code you want to run in TWL mode
}
else
{
// Code you want to run in NITRO mode
}
Also, while this will not be a very common case during normal development, you can use code like the following to match the #define
directives defined for the SDK during development of libraries that support all three types of ROMs (NITRO-exclusive, TWL-exclusive, and NITRO/TWL hybrid). This code could be included in the library's source code.
Example: How to Split Up Code That Supports NITRO-Exclusive ROMs, TWL-Exclusive ROMs, and NITRO/TWL Hybrid ROMs
if ( OS_IsRunOnTwl() )
{
#ifdef SDK_TWL
// Code you want to run in TWL mode
#endif
}
else
{
#ifndef SDK_TWLLTD
// Code you want to run in NITRO mode
#endif
}
The OS_IsRunOnTwl
function determines the platform at run time for hybrid ROMs, but for NITRO-exclusive ROMs, it will return the constant FALSE
, and for TWL-exclusive ROMs, it will return the constant TRUE
. When creating NITRO-exclusive ROMs or TWL-exclusive ROMs, you can expect the cases that do not match the conditions of the if
statement to be deadstripped. However, we have used SDK_TWL
(defined at compile time for TWL-exclusive ROMs and NITRO/TWL hybrid ROMs) and SDK_TWLLTD
(defined at compile time for TWL-exclusive ROMs) to avoid undefined errors and other problems with functions appearing in the code that will be deadstripped.
Below is a list of values that can be returned by the OS_IsRunOnTwl
function. There are no differences as a result of the build type (DEBUG, RELEASE, FINALROM).
For NITRO Mode | |
---|---|
Operating Environment | Value of OS_IsRunOnTwl |
Actual DS unit | FALSE |
Actual TWL unit | FALSE |
IS-NITRO-DEBUGGER | FALSE |
ENSATA EMULATOR | FALSE |
IS-TWL-DEBUGGER (For standard development: ARM9) |
FALSE |
IS-TWL-DEBUGGER (For component development ARM9 + ARM7) |
FALSE |
For TWL Mode | |
Operating Environment | Value of OS_IsRunOnTwl |
Actual TWL unit | TRUE |
IS-TWL-DEBUGGER (For standard development: ARM9) |
TRUE |
IS-TWL-DEBUGGER (For component development ARM9 + ARM7) |
TRUE |
Makes the judgment based the value in the System Configuration register.
2007/11/16 Added information.
2007/11/06 Initial version.
CONFIDENTIAL