gritとは、BMP, PNGなどの画像ファイルをGBA用のフォーマットに変換してくれるツールのことです。実行ファイルは「C:\devkitPro\tools\bin」内にあります。
使い方はとても簡単です。コンソール上でコマンドを入力して、いくつかの変換オプションを指定してあげます。以下に簡単な例を表します。
grit.exe image.bmp -gt -gB4 -fts -gu16
オプション | カテゴリー | 指定内容 |
-gt | フォーマット | タイル |
-gB4 | 色 | 16色 |
-fts | 出力タイプ | GNU asm |
-gu16 | 配列のサイズ | 16bit |
grit.exe image.bmp -gb -gB16 -fts -gu16
オプション | カテゴリー | 指定内容 |
-gb | フォーマット | ビットマップ |
-gB16 | 色 | 15bitColor |
-fts | 出力タイプ | GNU asm |
-gu16 | 配列のサイズ | 16bit |
オプションはテキストファイルに保存して指定する方法もあります。サンプルプログラムは基本的にテキストファイル指定です。
上記の例(モード3)での出力結果は次のとおりになります。
//====================================================================== // // image, 240x160@16, // + bitmap not compressed // Total size: 76800 = 76800 // // Time-stamp: 2007-09-07, 16:28:51 // Exported by Cearn's GBA Image Transmogrifier // ( http://www.coranac.com ) // //====================================================================== #ifndef __IMAGE__ #define __IMAGE__ #define imageBitmapLen 76800 extern const unsigned short imageBitmap[38400]; #endif // __IMAGE__
@======================================================================= @ @ image, 240x160@16, @ + bitmap not compressed @ Total size: 76800 = 76800 @ @ Time-stamp: 2007-09-07, 16:28:51 @ Exported by Cearn's GBA Image Transmogrifier @ ( http://www.coranac.com ) @ @======================================================================= .section .rodata .align 2 .global imageBitmap @ 76800 unsigned chars imageBitmap: .hword 0x4A5F,0x4A5F,0x4A5F,0x4A5F,0x4A5F,0x4A5F,0x4A5F,0x4A5F .hword 0x4A5F,0x4A5F,0x4A5F,0x4A5F,0x4A5F,0x4A5F,0x4A5F,0x4A5F ...(以下略)
注意点として画像ファイルの名前がそのまま変数名に使われています。image.bmpを変換するとimageBitmapLen、imageBitmapとなります。また、奇数サイズの場合、gritがアライメントを考慮してサイズを変更します。作る前から余計な苦労をしない為にも画像データは偶数サイズで統一してください。
コマンドオプションは一読する価値があります。暇なときにでも読んでおくことをオススメします。
https://www.coranac.com/files/grit-readme.txt
取説書のdemoロムもありますので触ってみるのもいいかもしれません。