Top / GBA開発 / KNOPPIX

KNOPPIX で GBA開発

コンパイラには devkitARM、エミュレータには VisualBoyAdvance を使うことにします。

  • ライブラリは簡単開発 SOLA を是非お使いください!

開発環境をそろえる

コンパイラ編 DevkitARM

ここでは /usr/local/gba にインストールするとします。

  • インストール
    まずは解凍します:
    % mv devkitARM_r11-linux.tar.bz2 /usr/local/src/
    % cd /usr/local/src
    % bzcat devkitARM_r11-linux.tar.bz2 | tar vxf -
    解凍すると devkitARM_r11 というディレクトリができます。 このディレクトリを /usr/local 下に移動 すればインストール完了です。
    % mv devkitARM_r11 /usr/local/gba
    コンパイラなどはその下の bin ディレクトリに入っています。 パスを通しておきましょう:
    % export PATH=$PATH:/usr/local/gba/bin
    パスを毎回設定するのは面倒ですので、/etc/profile の 一番最後の行に付け加えておいても構いません。
    export PATH=$PATH:/usr/local/gba/bin
  • 再配布するときの注意
    buildscripts にコピーライトが入っているので、 それを同梱しておく。buildscripts は DevkitARM と同様に http://sourceforge.net/projects/devkitpro から入手可能。
% tar vjxf buildscripts-20050303.tar.bz2
% mv buildscripts /usr/local/gba/

エミュレータ編 VisualBoyAdvance

  • インストール
    apt-get で手に入ります:
    % apt-get install visualboyadvance

動作確認

GBAプログラミング研究所さんの GCCコンパイラ利用法 DevKitAdvance編からサンプルプログラムを持ってきて、動作確認をすることにします。 ここでは、proto_devkit.zip を持ってくるとします。

% wget http://j-gbadev.hp.infoseek.co.jp/archives/devkit/proto_devkit.zip
% unzip proto_devkit.zip

解凍先のディレクトリで次のようにしてコンパイルします:

% cd proto_devkit
% arm-elf-gcc -mthumb-interwork -specs=gba_mb.specs main.c -o main.elf
% arm-elf-objcopy -O binary main.elf main.gba
% gbafix main.gba

なお、カートリッジROM向けに作成する場合には、arm-elf-gcc のオプションを -specs=gba.specs にします。

VisualBoyAdvance で実行してみましょう:

% vba main.gba &
sample1.png

GBAに転送

作成したプログラムを GBAで動かす方法は2通りあります。

  • マルチブート機能を使ってGBAの内部メモリに転送
    PCとGBAを接続するブートケーブルがあれば、作成したプログラムを GBAの内部メモリに転送して動作確認が行なえます。 ただし、内部メモリの容量は256KBですので、 それよりも大きなものは正しく動作しません。 また、GBAの電源を切ると転送したプログラムは消えてしまいます。
  • RAMカートリッジに転送
    GBAのゲームカートリッジの形状をしたフラッシュメモリが販売されています。 64KBから1GBのものまであるようです。 もちろん、GBAの電源を切ってもプログラム(やゲームの保存データ)は フラッシュメモリに保存されます。 なお、フラッシュメモリへの転送にもブートケーブルが必要です。
  • RAMカートリッジ
    カートリッジは Flash2Advance(http://www.flash2advance.com/) を使います。 ブートケーブルを取り扱っているITプラザでの話では、ブートケーブルと相性が良いらしいです。

転送のためのソフトウェア ugbatc

転送のソフトウェアには ugbabtc( http://gba.imou.to/ugbabtc.html ) を使います。

  • ダウンロード
  • インストール
    ここでは /usr/local/gba/bin/ に ugbatc をインストールすることにします。
% mv ugbatc-0.7.tar.bz2 /usr/local/src
% mv btcons_usb_v3541.zip /usr/local/src
% cd /usr/local/src
% tar vjxf ugbatc-0.7.tar.gz2
% unzip btcons_usb_v3541.zip
% mv btcons_usb ./ugbatc-0.7
% cd ugbatc-0.7
% make
% mv ./obj/ugbabtc /usr/local/gba/bin/
  • ugbatc の再配布における注意 [#g53ae0fd] ugbatc を再配布するときには 作者の copyright を忘れないようにする。ugbatc.c の最初の 28行目までが copyright の条文なので、/usr/local/gba/doc/ugbatc/copyright として保存する。
    % mkdir -p /usr/local/gba/doc/ugbatc
    % head -28 ugbatc.c > /usr/local/gba/doc/ugbatc/copyright

マルチブート機能で内部メモリに転送

さきほど作成した main.gba をGBAに転送して実行してみます。

  • ケーブルの接続
    • まず、GBAの電源は消しておいて、PC側のUSBポートとGBAをブートケーブルで接続します。
    • 次に、GBAの電源を入れます。Nintendo のロゴが点滅して、画面が真っ白になれば準備完了です。
  • GBAにプログラムを転送
    ugbatc で main.gba を GBA側に転送します。 なお ugbatc の実行には root権限が必要です。
    % ugbatc -H main.gba 

転送が完了すると、自動的にプログラムが起動します。 もう一度転送したいときには GBAの電源を入れ直し、ugbatc で転送します。

カートリッジに転送

先ほどの main.gba をカートリッジROM向けにコンパイルしておきます。

  • ケーブルの接続
    • まず、GBAの電源は消しておいて、PC側のUSBポートとGBAをブートケーブルで接続します。
    • 次に、SELECTボタンとSTARTボタンを両方押しながらGBAの電源を入れます。Nintendo のロゴが点滅して、画面が真っ白になれば準備完了です。
  • GBAにプログラムを転送
    ugbatc で main.gba を GBA側に転送します。 なお、ugbatc の実行には root権限が必要です。
    % ugbabtc -R -w main.gba
    これでカートリッジに書き込まれました。 電源を入れ直せばブートケーブルなしでもプログラムが起動します。

参考ページ

Counter: 7336, today: 1, yesterday: 6

添付ファイル: filesample1.png 632件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-10-03 (金) 06:37:00 (47d)