- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2023-04-12T00:17:14+09:00","","")
* Doc.2 エミュレータのインストール [#iac0ab67]
#author("2023-04-12T08:39:48+09:00","","")
* 画像加工ツール [#f485af67]
** エミュレータ [#jce26e31]
エミュレータは完成の域まで高まっており、パソコン環境に関しても速度的に申し分ありません。~
ただし最新のエミュレータはデバッグコンソール出力(Mappy方式)がない為、%%大昔の%%VisualBoyAdvance-1.8.0-beta3をオススメします。~
** grit [#x985a128]
gritとは、BMP,PNGなどの画像ファイルをGBA用のフォーマットに変換してくれるツールのことです。実行ファイルは「C:\devkitPro\tools\bin」内にあります。
-[[VisualBoyAdvance-1.8.0-beta3.zip:http://akkera102.sakura.ne.jp/test/VisualBoyAdvance-1.8.0-beta3.zip]]
-[[VisualBoyAdvance-1.8.0-beta3.tar.gz:http://akkera102.sakura.ne.jp/test/VisualBoyAdvance-1.8.0-beta3.tar.gz]]
** 使用方法 [#aac23f78]
使い方はとても簡単です。コンソール上でコマンドを入力して、いくつかの変換オプションを指定してあげます。makefileに設定することや、バッチ処理として組むことも可能です。以下に簡単な例を表します。~
** BIOS [#a573242d]
BIOSとはゲームボーイアドバンス本体に内蔵されたプログラムのことで、除算や画像データの解凍などの機能を提供してくれます。~
- モード0に使用する画像の変換例~
grit.exe image.bmp -gt -gB4 -fts -gu16
| オプション | カテゴリー | 指定内容 |
| -gt | フォーマット | タイル |
| -gB4 | 色 | 16色 |
| -fts | 出力タイプ | GNU asm |
| -gu16 | 配列のサイズ | 16bit |
たとえばLZ77圧縮された画像データを解凍させてみると・・・~
→ BIOSが存在する場合:BIOS内をエミュレート(実行)してCPUサイクルに見合ったタイミングで解凍されます。~
→ BIOSが存在しない場合:PC側に処理が移譲されてしまいPCの速度で解凍されます。PC速度依存で爆速。~
- モード3に使用する画像の変換例~
grit.exe image.bmp -gb -gB16 -fts -gu16
| オプション | カテゴリー | 指定内容 |
| -gb | フォーマット | ビットマップ |
| -gB16 | 色 | 15bitColor |
| -fts | 出力タイプ | GNU asm |
| -gu16 | 配列のサイズ | 16bit |
自作ゲームのオープニングシーンなどでは音楽と画像のタイミングにズレが発生します。その点は注意してください。~
*** 出力例 [#d3f2d2a1]
上記の例(モード3)での出力結果は次のとおりです。
** 入手方法 [#a573242d]
同人サークル「CUBIC STYLE」さんの方法をご紹介させて頂ければと思います。~
[[マルチブートで GBA BIOS を吸い出す:https://cubic-style.jp/2018/09/24/dump-bios-multiboot/]]~
- image.h
** エミュレータの設定(VisualBoyAdvance-1.8.0-beta3) [#r04b9bd8]
- ウィンドウのフォーカスが外れた時でも動作してほしい~
Options -> Emulator -> Pause when inactive チェックを外す~
//======================================================================
//
// 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__
- 画面を大きくする~
Options -> Video -> 2x window size~
- 描画方法の変更~
Options -> Video -> Render API -> Direct3D 9のFilter : Nearest~
- image.s
- デバックコンソールのショートカット追加(''地味にオススメ!'')~
Tools - > Customize~
ToolsLoggingをshift + 1に割り当てる~
@=======================================================================
@
@ 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
...(以下略)
- 知っておくと便利なショートカット~
-- ctrl + x エミュレータを閉じる~
-- ctrl + r リセット~
-- space フレームスキップ(''こちらも知っておくと役に立ちます!'')~
注意点として画像ファイルの名前がそのまま変数名に使われます。image.bmpを変換すると''image''BitmapLen、''image''Bitmapとなります。また、奇数サイズの場合、gritがアライメントを考慮してサイズを変更します。作る前から余計な苦労をしない為にも画像データは偶数サイズで統一してください。~
** grit-readme.txt [#d4218655]
コマンドオプションは一読する価値があります。暇なときにでも読んでおくことをオススメします。~
[[https://www.coranac.com/files/grit-readme.txt]]
** 履歴 [#vdac93be]
** demo project [#e28bcaad]
説明用ロムもありますのでちょっと触ってみるのもいいかもしれません。[[こちら:http://akkera102.sakura.ne.jp/test/gritdemo.zip]]をどうぞ。~
#ref(1.png,nolink)
#ref(2.png,nolink)
** 履歴 [#k390a23f]
- 2023/04/11
- 2015/10/07
- 2014/10/28
- 2007/09/04
- 2007/09/07