gritとは、BMP,PNGなどの画像ファイルをGBA用のフォーマットに変換してくれるツールのことです。
実行ファイルは「C:\devkitPro\tools\bin」内にあります。
使い方はとても簡単です。
コンソール上でコマンドを入力して、いくつかの変換オプションを指定してあげます。
makefileに設定することや、バッチ処理として組むことも可能です。以下に簡単な例を表します。
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
公式サイトには使い方を説明したソースコードがあるのでダウンロードしてみることをおすすめします。
コンパイルが面倒という方はこちらをどうぞ。