今更ながら、ゲームボーイアドバンスで遊んでみた。
だいぶ前に、Linuxから目覚めるぼくらのゲームボーイ!という本を買って、積んだままになっていたのを思い出したので、今更ながら遊んでみた。
Linuxから目覚めるぼくらのゲームボーイ! 西田 亙 (著)
この本には、開発環境の整った、LinuxのブートCD-ROMが入っていて、特にインストールすることなく、このCD-ROMで起動すれば、開発環境込みのLinuxが起動し、ゲームボーイでプログラムを書くことができる。
おいらは、普段、Windowsを使っている。確かに、Linuxも使えるけど、いちいち切り替えるのが面倒くせぇ。
どーせWindowsでもGCCでやれば一緒じゃん。ケーブルのドライバさえあればなんとかなるんじゃない?
ということで、Windowsで同様の開発環境を整えてみた。と言っても、先人のWebページを参考に、そのまま作業しただけだけど。
この本に添付している「USB-ゲームボーイ接続ケーブル」の販売元のページをあさると、やっぱりWindowsに関する情報もいっぱい出ている。ということで非常に簡単に解決。
まずは、USBドライバ。http://optimize.ath.cx/bootcable/drvinst.htmlに詳しくインストールのやり方が書いてある。
要するに、
- http://optimiza.ath.cx/bootcable/src/driver.zip をダウンロード、展開。
- ケーブルをPCに接続。(GBAは接続しない。)
- Windowsが新しいハードウエアを見つけて、「新しいハードウエアの検出ウィザード」を起動するので、先の展開したフォルダを指定
これで、ドライバのインストールが終了。簡単なもんです。
次に、正しくドライバがインストールされているか、確認する。
- カセットの入っていないゲームボーイアドバンスとケーブルを接続
- ケーブルとPCを接続
- ゲームボーイのR(右手人差し指のボタン)を押しっぱなしで、起動。
- 「GAME BOY」 「Nintendo」の起動時のロゴがでて、ちろりん!と音が鳴っても押しっぱなし。
- 「JOYSTICK」と表示されたら、押しっぱなしにしていたボタンを離す。
- 「JOYSTICK」と表示された時点で、ヒューマンインターフェースデバイスとしてWindowsに認識される。
これで、ゲームボーイアドバンスが、ゲームコントローラ(いわゆるジョイスティック)として使用できる。コントロールパネルのゲームコントローラを見て、正しく動いているか確認できるので、これで、ゲームボーイ本体とPCが正しく通信できることがわかる。
次に、プログラムをPCからゲームボーイアドバンスに転送する練習。
「CWTA」というモールス練習ソフトを試してみる。
- http://optimize.ath.cx/bootcable/src/phost_usb.exe をダウンロード。こいつが、転送プログラム。展開しておく。
- http://homepage1.nifty.com/jr4qpv/CWTA111.zip をダウンロード。こいつが実際にゲームボーイ上で動かすソフト。展開しておく。
- カセットの外したゲームボーイとケーブルを接続。
- ケーブルとPCを接続。(先ほどつないでいるなら、一旦はずして、つなぎなおした方が無難。)
- ゲームボーイを起動。「GAME BOY」のロゴの後、画面がクリアして止まる。(ケーブルが繋がってないときは、画面はクリアしない)
- 先ほどダウンロードした、phost_usb.exeを起動。
- 「ファイルを開く」ダイアログが出るので、CWTA111.zipの中に入っていた、cwta.binを選択。
- PCの画面で、一瞬「LOADING」と表示された後、「HOSTING」と表示されれば転送終了。
- 既に、ゲームボーイの画面ではなにやら文字が表示されているはず。
- ケーブルを外す。
- ゲームボーイの「START」ボタンを押せば、モールスの音とともに文字が表示されてくる。
カートリッジが無くてもプログラムが動くことに感動できる。
モールス練習ソフトの使い方は、Yoko’s Libraryの「CWTA」 GAMEBOY ADVANCE用モールス練習ソフト に詳しく出ている。
これで、作ったソフトをゲームボーイで動作確認できるというわけだ。
最後に開発環境の整備。
というか、Yoko’s LibraryのGBAソフト開発の第一歩の記事をそのままやればOK。このページではDevkitAdvというgccを利用した開発環境を使用している。
- ここから、
- agb-win-binutils-r5-beta-3.zip
- agb-win-core-r5-beta-3.zip
- agb-win-gcc-r5-beta-3.zip
- agb-win-insight-r5-beta-3.zip
- agb-win-libstdcpp-r5-beta-3.zip
- agb-win-newlib-r5-beta-3.zip
をダウンロードして展開。
- 展開すると、ルートがdevkitadv-r5-beta-3というフォルダになるので、ひとつにまとめる。
- Cドライブのルートに移動。すなわち、C:devkitadv-r5-beta-3に移動する。
- C:devkitadv-r5-beta-3DevKit-Advance-R5-Beta-3.lnk をダブルクリック
- これが開発環境のDOS窓。ここから、gccを
- gcc -Wall -o hoge.out hoge.c
- objcopy – O binary hoge.out hoge.bin
とやればよし。最初のgccがコンパイルとリンク。objcopyは出来上がった出力ファイルから余分な情報を削除する。
- できあがった、hoge.binを先ほどのphost_usb.exeでゲームボーイに転送すれば、プログラムが起動する。
簡単なもんです。
これで、開発環境が整いました。
先のLinuxから目覚めるぼくらのゲームボーイ! で紹介されているプログラムもちゃんとコンパイル、実行できます。本では、ARM用の環境とI386用の環境がちゃんぽんで構築されているので、ARM用のコマンドには-armとついていますが、今回作成した環境は、ARM専用なので、-armなしでやります。
当然、Makefileのあるものは、Makefileを変更しないとだめですし、本書の中では、awkやら、その他のツールを使っているものもあるので、それらは各自用意する必要があります。そうゆう意味では、上の環境で、そのまま実際に動かせるのは第1章までですけどね。それでも、環境を整えていけば、すべてWindows上でも動作確認ができると思います。
なにはともあれ、Windowsでコンパイルできるのは楽しいです。
また、本書では、すべての環境を自力で作ることを目的としていますが、今回整えた環境は既に、いくつかの標準ライブラリが用意されているようです。
Devkitadv開発環境ですが
まとめるにはCドライブ画面を開きっぱなしのまま
それぞれのZIPファイル(チャックのついているもの)の中の
フォルダーをドラッグ&ドロップでCドライブに放り込みます。2回目以降から「同じファイル名です。」と出ますが、「はい」を押すと、統合を自動的に行ってくれます。
なんだかんだポイポイ放り込むと、それらしい画面が出来上がります。青いゲーム機のアイコンに「ショートカット」という名前がついていれば、開発画面の起動が出ます
ブログ作成者様と同じ事を言っています
私が初心者なのだけなのかもしれませんが
「同じファイル名です。上書きしますか?」のメッセージが出てとても混乱したので、書き込ませていただきました。