3DSクロス開発環境の構築

とりあえず3DS実機での実行環境とプログラミング環境は前回の記事を参照。
下記2つをブックマークに入れておくと幸せになれるかも。

gbatemp : Homebrew Development
3DS開発に関する情報収集はこのスレッドで。

EmuCR : Citra (上ほど最新版)
3DSエミュレータ(homebrew開発向け)の野良ビルド版。
hugefiles.netで”Download using download accelerator”のチェックを外して落とすのが無難。

そして前述のgbatempのスレッド4ページ目にある”3DS_Homebrew_nop90edition.zip”が
入門用としてかなり良い感じのテンプレートになっています。
zipを展開するとこんな感じ↓
nop90bin … ビルド後のhomebrew.elfを格納
lib … ライブラリ
obj … ビルド時のオブジェクトファイル
source … ココのmain.cなどをいじる。

 

とりあえずDevkitProとPythonにパスを通してない場合は build.bat を
テキストエディタで開いて下記の通りに修正
set path=%PATH%;C:\devkitPro\devkitARM\bin;C:\Python27
::python build.py
make
pause

そして、このテンプレートにはキー入力ルーチンも格納されているのでかなり参考になります。
試しにmain.cをテキストエディタで開いてこんな感じ↓に修正しても良いかも。
#include “main.h”
#include “memory.h”
#include “HID.h”
#include “utils.h”
#include “draw.h”
int main(){
  draw_string(“Hello,world!”,0,0,255,255,255, BOTTOM_FRAME0);
  return 0;
}
これで build.bat を実行して”Launcher.dat”が更新されれば成功。


これをSDカードに突っ込んで3DSで実行して、デバッグの都度に電源長押しで…
というのは大変なので、PCのエミュレータで動作検証できるようにしておきましょう。

先ほどのEmuCRで公開されている野良ビルド版『Citra』をダウンロード&展開し”citra_qtRelease.exe”を実行。
File → Load file.. でプログラムをロードするわけですが、Citraのビルドバージョンによっては
Launcher.datがまともに実行出来ないことも多々あります。
その場合はLauncher.dat生成前の homebrew.elf など生のELFイメージを読ませれば…
citra
こんな感じ。