★ かびばぁのチョットいっぷく ★

HP作成は面倒なので取り合えず始めたブログ

「Hello World!」NDSプログラミングの基礎の基礎(1)

2006-07-08 19:54:50 | 雑記
今月のゲームラボ(2006年7月号)の「召しませ!おいしいDSハッキング」(Imaha486さんの連載)は、NDSのプログラミング環境の構築について書かれてありました。
このごろ、プログラム組めたら良いなぁ~、と思い始めていたので実にタイムリーな内容でしたね。
ゲームボーイはブートケーブルがらみで購入した、KNOPPIXでGCCプログラミング本がありますし、Windowsは雑誌の付録に付いてきた、BorlandC/C++コンパイラとか、VisualC++2005ExpressEditionとか有るので、雑誌を読みながら基礎の基礎を学ぶ環境は整っているんですが……NDSはどうしたら良いのか、さっぱり分りませんでしたから。
どうも、NDSのプログラミングには「DevKitPro」と言うツールを使用するようですね。
早速、Imaha486さんの連載の手順どおりに「DevKitPro」を導入してみることにしました。
まず「devkitPro」に行き、Windows InstallerをクリックしてdevkitProUpdater-1.3.1.exeをダウンロードして来ました。
Updaterを実行するとセットアップウィザ-ドが起動するので、記事を参考に進めて行けば良いみたいです。(ほとんど、NEXTを押せばいい)
しかし、インストーラーが必要なファイルをダウンロードする所までいくと、英語の警告画面が出てダウンロードが出来ません。
(Your internet connection seems to be not permitted or dropped out!……)
devkitProUpdater-1.3.1.exeを再度ダウンロードし直して何度も試してみましたが、どうしてもファイルをダウンロード出来ませんでした。
ん~、こんな事で質問したくないし……さてさて、どうしますかねぇ。
そう言えば、以前ファイルが落とせなかったのは、アンチウィルスソフトがらみだったのを思い出し、アンチウィルスソフトのファイアーウォール設定を無効にして、インストーラーを実行してみたところ、今度はチャンとダウンロードが始まりました。
とりあえず、無事にインストール完了のようです。(良かった~)
早速、インストールが完了したDevkitPROのフォルダを覗いてみました。
FLLインストールを選んでしまったので、DevkitARMの他にDevkitPSPやDevkitPPCとかプログラム用のテキストエディタ(ProgrammersNotepad)も有るんですね。
DevkitPSPがPSPのプログラム開発ツールだとは分りましたが、DevkitPPCて何だろうと思っていたらPowerPCのことなんですね……と言うことはゲームキューブ用ですかぁ。
ゲームキューブで自作プログラムを実行できる環境は整っていますが、残念ながらARMで手一杯ですね。(いつかは挑戦してみたい)
さてさて、次はいよいよビルドの仕方ですが……。
(現在ここでつまづいている最中)
今度は「Homebrew Nintendo DS Development」からdemo1.zipをダウンロードして解凍しました。
コマンドプロンプトを起動して、手順どおりにパスを通さずにMAKEしてみると
make: arm-elf-g++: Command not found
make: *** [arm7_main.o]Error 127
となります。
今度は、キチンとパスを通して実行して見ましたが、同じメッセージが表示されて中断してしまいます????
……そう言えば、マジコン関係では超有名なサイト「7MC.ORG」の管理人takeruさんのブログ「掌机魔法計算机」に、ファイル名がarm-elfからarm-eabiに変更されているため最新版ではMAKEが出来ない、と嘆いていたことを思い出しました。
それじゃ古いバージョンにすればいいかなぁと、最新バージョンをアンインストールして古いバージョンのインストーラーをダウンロードしてインストールしてみましたが、バージョンの古い物はインストール出来ないみたいですね。
結局、インストールされるファイルは新しいバージョンの物みたいですから。
(arm-elfではなくてarm-eabiになっていた)
仕方が無いのでググッてDevkitARMr17を落として来て、最新版のDevkitARMフォルダをr17の物に差し替えました。
今度は大丈夫かなぁ、とパスを通してMAKEを実行してみましたが……
arm7_main.cpp:96: error:'DISP_SR' was not declared in this scope
make: *** [arm7_main.o]Error 1
となってMAKE出来ません。
'DISP_SR'って一体何?カードリーダーとか繋げてないんだけれど……???
ん~、なかなか一筋縄ではいきませんねぇ。
でも、もう今日は寝不足でダメダメなんで、後日「Homebrew任天堂DS開発」のチュートリアルでも読んで見ますか。


最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
Unknown (kabiva)
2006-07-12 21:39:40
Imaha486さん、アドバイスありがとうございます。

DISP_SRのエラーがなぜ出るのか分りました、どうもr19から割り込み関連に変更があったようですね。

DISP_SRはREG_DISPSTATになってしまったようです。

gbadev.orgのフォーラムに書いてありました。

「DISP_SR out of scope」と言うスレがあったのでヘボな翻訳ソフトで読んでみたところ、そのようなことが書かれてありました。

それで、arm_7main.cppのDISP_SR をREG_DISPSTATに書き換えて試したところ、今度は、

c:/devkitPro/libnds/lib\libnds7.a: could not read symbols: File format not recog

nized

make: *** [arm7.elf] Error 1

となってしまいました。

ちょうどフォーラムの質問とは逆ですね。

それで関連スレを読んでみましたが、古いバージョンで新しいlib使うな、みたいな感じ?でしたので結局Makefileをarm-elfからarm-eabiに書き換えるしかないのかなぁと思いますが、書き換え方が良く分りません。

Makefileの書き方なんてゼンゼン分りませんからね。

しかし、以前とは互換性の無いものに急に変えないで欲しいですよね。

まぁ、今回は勉強にはなりましたが……。

ちなみに私は最終的にdevkitProUpdater-1.3.1を使用してインストールしました。

なので、まだdemo1をコンパイルできません。
返信する
Unknown (Imaha486)
2006-07-12 19:20:02
DevKitAdvとDevKitProは別物ですので、単純に上書きすると

NDS依存のプリプロセッサ周りの定義が全部破壊されます。

(DISP_SRはDevKitAdvには存在しませんので)。



make: arm-elf-g++: Command not found

make: *** [arm7_main.o]Error 127

はarm-elf-g++の実行パスが見つからずに中断しているエラーなので、

単純に「パスを通せてない」のが原因だと思われます。
返信する