OS_GetConsoleType

C Specification

#include <nitro/os.h>

u32 OS_GetConsoleType( void );

Arguments

None.

Return Values

A type u32 value that depends on the program's execution environment. Details are provided in the Description section above.

Description

Returns a type u32 value which indicates the environment in which the program is executing

This function is an effective way to automatically switch processes depending on the operating environment. It allows you to create a common program for multiple operating environments.

The function examines and identifies devices, memory, and other factors when it is called the first time; but on subsequent calls, it returns the same value that was previously returned. However, in the latest ROM version library (FINALROM), it always returns constant (OS_CONSOLE_NITRO | OS_CONSOLE_DEV_CARD | OS_CONSOLE_SIZE_4MB).

Performing an AND operation on the return value and OS_CONSOLE_MASK results in a value that depends on the operating environment in which the program is running:

OS_CONSOLE_ENSATA Running on ensata NITRO Software Emulator
OS_CONSOLE_ISEMULATOR Running on the TEG version of IS-NITRO-EMULATOR
OS_CONSOLE_ISDEBUGGER Running on IS-NITRO-DEBUGGER
OS_CONSOLE_NITRO Running on an actual NITRO console

Performing an AND operation on the return value and OS_CONSOLE_DEV_MASK results in a value that depends on the device that reads the Game Card data:

OS_CONSOLE_DEV_CARD Load from a Game Card device
OS_CONSOLE_DEV_CARTRIDGE Load from a Game Pak

Performing an AND operation on the return value and OS_CONSOLE_SIZE_MASK results in a value that depends on the size of the implemented memory:

OS_CONSOLE_SIZE_4MB 4MByte
OS_CONSOLE_SIZE_8MB 8MByte


Example:
switch( OS_GetConsoleType() & OS_CONSOLE_MASK ) case OS_CONSOLE_ENSATA: OS_Printf( "running on ENSATA" ); break; case OS_CONSOLE_ISEMULATOR: OS_Printf( "running on IS-NITRO-EMULATOR" ); break; case OS_CONSOLE_ISDEBUGGER: OS_Printf( "running on IS-NITRO-DEBUGGER" ); break; case OS_CONSOLE_NITRO: OS_Printf( "running on retailed NITRO" ); break;

See Also

OS_IsRunOnEmulator

Revision History

10/12/2004 Explained the constants returned with FINALROM version.
08/17/2004 Standardized the notation of IS-NITRO-EMULATOR.
06/08/2004 Initial version.