16色カラーのフォント変更は custom_font というサンプルがあるのですが
ならばこちらは単色フォント変更サンプルだということで作ってみました。
というか、
半年前くらいに学習したことの再確認の意味でサンプル起こししました。
そのうち使う日も来ると思うので…自分用テンプレ(爆)。
libnds console, change 1bpp Font sample
main.c
/*--------------------------------------------------------------------------------- libnds console, change 1bpp Font sample version 0.01 Oct 31, 2009 By. REGEKATSU ---------------------------------------------------------------------------------*/ #include <nds.h> #include <stdio.h> #include "font.h" // フォント変更を適用する為のコンソール構造体と、 // フォントステータスを設定する為のフォント構造体を用意する。 PrintConsole console; ConsoleFont font; //--------------------------------------------------------------------------------- int main(void){ //--------------------------------------------------------------------------------- //フォント変更を適用するコンソールステータスを得る。 console = *consoleDemoInit(); //フォント変更の為の各種設定を行う。 font.gfx = (u16*)fontTiles; // フォント画像データのある先頭アドレスを指定する。 //font.pal = (u16*)fontPal; // パレット定義データのある先頭アドレスを指定する。 // 但しシングルカラーモードの場合、この指定は意味を成さない。 font.bpp = 4; // フォント描画のカラーモードを指定する。 // 4 : 16色モード, 8 : 256色モード // 但しシングルカラーモードの場合、この指定は意味を成さない。 font.asciiOffset = 0; // アスキーコード開始オフセットを指定する。 // フルセットある場合は 0 、空白スペースから始まるようなら 32 という具合に、 // アスキーコードセットに準じた指定をする必要がある。 font.numChars = 256; // 利用可能とするキャラクタ数を指定する。 // アスキーコード開始オフセットで定義した位置から数えて // 何文字までを利用可能とするか指定する。 font.convertSingleColor = true; // シングルカラーモードを利用するかどうか指定する。 // true : 標準コンソールと同じパレット定義が適用される。 // false : pal メンバーに設定したパレット定義が適用される。 //フォント変更の為の設定を現在のコンソールステータスに適用する。 consoleSetFont(&console, &font); BG_PALETTE_SUB[0] = RGB8(0, 0, 231); BG_PALETTE_SUB[255] = RGB8(231, 227, 231); printf(" devkitPro version 1.5.0\n" " Copyright 2009 by devkitPro\n" " 4294967296 Bytes free\n" " Ok\n" " %c\n" "\x01b[23:0H color auto goto list run", 255); while(1) { } } //---------------------------------------------------------------------------------
font.c、font.h は MSX2J 風フォントリソースを使ってます。
http://d.hatena.ne.jp/dumbo001/20090322/1237762244
プロジェクト一式は下記 URL からダウンロードすることができます。
ttp://page.freett.com/ntr/example/chgfont.zip