libnds
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Typedefs | Enumerations | Functions
console.h File Reference

nds stdio support. More...

#include <nds/ndstypes.h>
#include <nds/arm9/background.h>

Data Structures

struct  ConsoleFont
 a font struct for the console. More...
 
struct  PrintConsole
 console structure used to store the state of a console render context. More...
 

Typedefs

typedef struct ConsoleFont ConsoleFont
 a font struct for the console.
 
typedef struct PrintConsole PrintConsole
 console structure used to store the state of a console render context. More...
 

Enumerations

enum  DebugDevice {
  DebugDevice_NULL = 0x0,
  DebugDevice_NOCASH = 0x1,
  DebugDevice_CONSOLE = 0x02
}
 Console debug devices supported by libnds. More...
 

Functions

void consoleClear (void)
 Clears the screan by using iprintf("\x1b[2J");.
 
void consoleDebugInit (DebugDevice device)
 Initializes debug console output on stderr to the specified device. More...
 
PrintConsoleconsoleDemoInit (void)
 Initialize the console to a default state for prototyping. This function sets the console to use sub display, VRAM_C, and BG0 and enables MODE_0_2D on the sub display. It is intended for use in prototyping applications which need print ability and not actual game use. Print functionality can be utilized with just this call. More...
 
PrintConsoleconsoleGetDefault (void)
 Gets a pointer to the console with the default values this should only be used when using a single console or without changing the console that is returned, other wise use consoleInit() More...
 
PrintConsoleconsoleInit (PrintConsole *console, int layer, BgType type, BgSize size, int mapBase, int tileBase, bool mainDisplay, bool loadGraphics)
 Initialise the console. More...
 
PrintConsoleconsoleSelect (PrintConsole *console)
 Make the specified console the render target. More...
 
void consoleSetFont (PrintConsole *console, ConsoleFont *font)
 Loads the font into the console. More...
 
void consoleSetWindow (PrintConsole *console, int x, int y, int width, int height)
 Sets the print window. More...
 

Detailed Description

nds stdio support.

Provides stdio integration for printing to the DS screen as well as debug print functionality provided by stderr.
General usage is to initialize the console by: consoleDemoInit() or to customize the console usage by: consoleInit()
The default instance utilizes the sub display, approximatly 15KiB of vram C starting at tile base 0 and 2KiB of map at map base 30.
Debug printing is performed by initializing the debug console via consoleDebugInit() as follows:
consoleDebugInit(DebugDevice_NOCASH);
fprintf(stderr, "debug message in no$gba window %i", stuff);
OR
consoleDebugInit(DebugDevice_CONSOLE);
fprintf(stderr, "debug message on DS console screen");
The print console must be initialized to use DB_CONSOLE

Typedef Documentation

typedef struct PrintConsole PrintConsole

console structure used to store the state of a console render context.

Default values from consoleGetDefault();

PrintConsole defaultConsole =
{
Font:
    {
        (u16*)default_font_bin, //font gfx
        0, //font palette
        0, //font color count
        4, //bpp
        0, //first ascii character in the set
        128, //number of characters in the font set
        true, //convert to single color
    },
    0, //font background map
    0, //font background gfx
    31, //map base
    0, //char base
    0, //bg layer in use
    -1, //bg id
    0,0, //cursorX cursorY
    0,0, //prevcursorX prevcursorY
    32, //console width
    24, //console height
    0,  //window x
    0,  //window y
    32, //window width
    24, //window height
    3, //tab size
    0, //font character offset
    0, //selected palette
    0,  //print callback
    false, //console initialized
    true, //load graphics
};

Enumeration Type Documentation

Console debug devices supported by libnds.

Enumerator
DebugDevice_NULL 

swallows prints to stderr

DebugDevice_NOCASH 

Directs stderr debug statements to no$gba debug window.

DebugDevice_CONSOLE 

Directs stderr debug statements to DS console window.

Function Documentation

void consoleDebugInit ( DebugDevice  device)

Initializes debug console output on stderr to the specified device.

Parameters
deviceThe debug device (or devices) to output debug print statements to
PrintConsole* consoleDemoInit ( void  )

Initialize the console to a default state for prototyping. This function sets the console to use sub display, VRAM_C, and BG0 and enables MODE_0_2D on the sub display. It is intended for use in prototyping applications which need print ability and not actual game use. Print functionality can be utilized with just this call.

Returns
A pointer to the current PrintConsole.
PrintConsole* consoleGetDefault ( void  )

Gets a pointer to the console with the default values this should only be used when using a single console or without changing the console that is returned, other wise use consoleInit()

Returns
A pointer to the console with the default values
PrintConsole* consoleInit ( PrintConsole console,
int  layer,
BgType  type,
BgSize  size,
int  mapBase,
int  tileBase,
bool  mainDisplay,
bool  loadGraphics 
)

Initialise the console.

Parameters
consoleA pointer to the console data to initialze (if it's NULL, the default console will be used)
layerbackground layer to use
typethe type of the background
sizethe size of the background
mapBasethe map base
tileBasethe tile graphics base
mainDisplayif true main engine is used, otherwise false
loadGraphicsif true the default font graphics will be loaded into the layer
Returns
A pointer to the current console.
PrintConsole* consoleSelect ( PrintConsole console)

Make the specified console the render target.

Parameters
consoleA pointer to the console struct (must have been initialized with consoleInit(PrintConsole* console)
Returns
a pointer to the previous console
void consoleSetFont ( PrintConsole console,
ConsoleFont font 
)

Loads the font into the console.

Parameters
consolepointer to the console to update, if NULL it will update the current console
fontthe font to load
void consoleSetWindow ( PrintConsole console,
int  x,
int  y,
int  width,
int  height 
)

Sets the print window.

Parameters
consoleconsole to set, if NULL it will set the current console window
xx location of the window
yy location of the window
widthwidth of the window
heightheight of the window