プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

NDS開発: サンプルプログラムとかTIPSとか


先日作ったサンプルプログラムのソースコードを、Geocitiesにアップしました。


http://www.geocities.jp/yasuho68k/


しょーもないプログラムですが、テンプレートぐらいには使えるかと。:)

PassMeで実行するためにはbootの入れ替えが必要


そうそう。大事なことを言い忘れていました。
NDSDevEnvのsampleを適当にmakeしても、そのままでは実機では動きまへん。
ここに書いてあるのですが、PassMeを使って自作アプリを動かすには、bootを書き換える必要があります。

For the new PassMe method, replace main() in template/boot/main.cpp: 

 
int main(int argc, char ** argv) {
  LoadBin(GETRAW(arm9_bin), 0x02004000, GETRAWSIZE(arm9_bin));
  LoadBin(GETRAW(arm7_bin), 0x02380000, GETRAWSIZE(arm7_bin));
  *(volatile uint32 *)0x027FFE24 = 0x02004000;
  CallARM7();
  while (1) ;
  return 0;
}


最初これに気が付かず、ずいぶん悩んでしまった。
「技術情報はちゃんと読め」ってことですね。^^;

NDSの開発環境について


NDS Dev Env最新版は2.4.0なんだけど、インストールして使ってみたら、ds_arm7cart.specsが見つからないというエラーになってリンクできない。
必要なリンカースクリプトだけ持ってくればいいのかもしれないけど、なんか面倒なので、結局2.3.0に戻す。
エミュレータだけは2.4.0のを持ってきた。


GBAのようにinsightデバッガが使えるといいんだけど、現時点ではムリかなあ。
そもそもARM7側とARM9側を同時にデバッグできるようにするのは、けっこうしんどいのかもしれない。
せめてARM9側だけでもできるといいんだけど。


って、ここじゃなくて、開発元に言わないとね。^^;