ここからちょくちょくと
devkit proの初心者がNDS開発をしていこうと思います
まず必要なもの一式をそろえましょう
必要なもの
・devkitpro
・grit
・やる気
これさえあれば開発できます
初心者どうしがんばりましょう
じゃあまずは
C:\devkitPro\examples\nds\Graphics\Backgrounds\16bit_color_bmp
これのファイルから見ていきましょう
(何故Hello worldからじゃないかというとHello worldだと達成感が少ないから)
これはおそらく16bitカラーの画像を表示させるプログラムですね
中身を見てみよう
#include <nds.h>
#include <stdio.h>
// git outputs a nice header to reference data
#include "drunkenlogo.h"
int main(void) {
// set the mode for 2 text layers and two extended background layers
videoSetMode(MODE_5_2D);
// set the sub background up for text display (we could just print to one
// of the main display text backgrounds just as easily
videoSetModeSub(MODE_0_2D); //sub bg 0 will be used to print text
vramSetBankA(VRAM_A_MAIN_BG);
consoleDemoInit();
iprintf("\n\n\tHello DS devers\n");
iprintf("\twww.drunkencoders.com\n");
iprintf("\t16 bit bitmap demo");
// set up our bitmap background
bgInit(3, BgType_Bmp16, BgSize_B16_256x256, 0,0);
decompress(drunkenlogoBitmap, BG_GFX, LZ77Vram);
while(1) {
swiWaitForVBlank();
scanKeys();
if (keysDown()&KEY_START) break;
}
return 0;
}
わお
何がなんだかわからないゾ
これは画像を表示するプログラムだから画像差し替えてみよう
一個ずつ見てみよう
#include <nds.h> //ここでDS関係のファイル一式をインクルード
#include <stdio.h> //標準ライブラリstdio.hをインクルード
// git outputs a nice header to reference data
#include "drunkenlogo.h" //画像ファイルをインクルード
ここやな
画像ファイルをインクルードしてる
画像ファイルのデータは
drunkenlogo.hと
drunkenlogo.sにわかれてて
hにヘッダー、sにソース(つまり画像データの中身)
が入ってるらしい
つまりここの画像をさしかえれば表示できるわけやな?
さっそくgritを起動しよう
好きな画像(大きさは256*192)を用意して変換や!!
今回はDSなのでNDSを選択して
なぜか知らんけどLZ77を選択(こうしないと上手くいかなかった)
そしてOKを押す!
すると画像ファイルのあったところに
画像名.hと
画像名.sができたはず
これで
#include <nds.h>
#include <stdio.h>
// git outputs a nice header to reference data
#include "画像名.h"
でいけるかな
と思ったけどいけなかった
何がいけないかと思ったら
画像インクルードするとこだけ名前変えてもそりゃできないわな
表示するとこも変えないと
で見たところ
decompress(drunkenlogoBitmap, BG_GFX, LZ77Vram);
↑ここっぽい
これを
decompress(画像名Bitmap, BG_GFX, LZ77Vram);
に変更!
これでmakeすると…
できた!!!
さて
ここからコードの推察
int main(void) {
// set the mode for 2 text layers and two extended background layers
videoSetMode(MODE_5_2D);//ここでモード変更をしてる
//2D、モード5らしい
// set the sub background up for text display (we could just print to one
// of the main display text backgrounds just as easily
videoSetModeSub(MODE_0_2D); //sub bg 0 will be used to print text
//こちらのモードセットはsubがついてる
//下画面ってことかな?
//あとで詳しく調べてみる
vramSetBankA(VRAM_A_MAIN_BG);
//不明
consoleDemoInit();
//もっと不明
iprintf("\n\n\tHello DS devers\n");
iprintf("\twww.drunkencoders.com\n");
iprintf("\t16 bit bitmap demo");
//iprintfで下画面に文字を描画できるらしい
//さっきの実行結果に出てたな
// set up our bitmap background
bgInit(3, BgType_Bmp16, BgSize_B16_256x256, 0,0);
//16bit画像を表示する前準備?
decompress(drunkenlogoBitmap, BG_GFX, LZ77Vram);
//ここで描画
//LZ77VramというのがさっきのLz77じゃなきゃいけない理由かもな
while(1) {
//メインループ
swiWaitForVBlank();
//同期待ち…だったはず
scanKeys();
//名前からしてキー入力受付っぽい
if (keysDown()&KEY_START) break;
}
//下ボタンとスタートボタンが押された時メインループから抜け出す…だと思う
return 0;
}
関数一覧みたいなのはここ(http://libnds.devkitpro.org/index.html)にあるみたいなので活用すべし
以上!!!!
また暇があったらやるよ