nds上で怪しげな品を作ってみる

現在手元にある、

に加え、衝動的に注文してしまったm3 perfect-microsdがそろそろ届きそうなので、準備する事にした。


適当に検索して断片的に理解したところによると、
「とりあえずdevkitProというツールを入れれば万事okらしい」
ので、 http://www.devkitpro.org/ の(たまたま)一番上に書いてあった「devkitPro installer updated」という記事のリンクからUpdaterをもらってきてダブルクリックして適当にボタンを押してインストール完了。
とりあえずインストールされたアイコン等を一通り見てみると、どうやらこれは、「Programmers Notepad」というプロジェクト管理ツール兼エディタと、mingw開発環境一式の入ったものらしい。
(多分、自分はProgrammers Notepadは使わなさそうだが)


次に、

を見ながら、demo1.zipをコンパイルしてみる事に。
とりあえず元サイトの http://www.double.co.nz/nintendo_ds/demo1.zip 辺りからdemo1.zipをもらってきた(helloworld.jpの方はなんかリンクが切れていた)。
とりあえずbashを起動してmakeしようとすると、前述の日記の通り、PATHが通っていなかったので、/etc/profileをいじってPATHを通しておいた(.bash_loginとか.bashrcを作ってみたりもしたが、なんか認識されなかった)。
具体的には、以下の二行を末尾に追加した。vimの方は、標準で入っているvimが気に入らなかったので、自前のvimを使うように。

export PATH="/d/devkitPro/devkitARM/bin:/d/devkitPro/devkitARM/arm-eabi/bin:$PATH"
export PATH="/c/software/vim-6.2.069-w32j:$PATH"

参考にしようとする人は当然、PATHを自分の環境通りに修正する事。
これでmakeしようとすると、更に前述の日記の通り、arm-elf-g++が無いと言われる。
これも前述の日記に書かれている通り、コマンド名が変更になっているのが原因なので、Makefile中の「arm-elf-*」になっているコマンド名を全部「arm-eabi-*」に置換。
そして再度makeしようとすると、またもや前述の日記の通り、DISP_SRがどうのこうのとエラーが出るので、コメント欄に書いてある通り、arm7_main.cppのDISP_SRをREG_DISPSTATに置換する。
これでmakeしたところ、makeが通り、demo1.ndsとdemo1.nds.gbaが生成された。
先に挑戦してくれている人が居るというのは実に有難い……。自分だけではDISP_SRから先を調べるのはちょっと難儀そうだった。


このdemo1.ndsを、どこかで拾ってきたndsエミュに放り込んでみたところ、「Hello World!」と、タッチ座標が表示された。
この状態で下画面をクリックしてみると、クリックした座標値が表示される。正常に動作しているようだ。
ちなみに上画面をクリックしても反応は無い、当然だが。


あとはこのMakefileと*.cppをテンプレートとしてどんどん改造していき、可能であれば、以下を実現したいところだ。

  • boehm gcが使えるか調べる(と言うか、nds開発環境ってposix満たしてるのか?)
  • schemeインタプリタが動くようにする(可能ならGaucheを、それが無理ならtinyとかminiとか)
  • wi-fiを通して、tcpで通信して動く何かを作る(多分しょぼいネットゲー)


先に書いておくが、これまで通り、飽きたら中止する事にする。


次回は、m3が届いたら、実機でdemo1.ndsが動作するかを確認する予定。