1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

macOSでGBAの開発環境を整える

Posted at

これは何?

macOSでGame Boy Advance(GBA)のソフトを開発するために必要なツールのinstallやセットアップを行い、実際にサンプルをGBAのエミュレータで動かすまでの方法を示す。

必要なもの

  • macOS
    • 今回はSequoia 15.0で試した
  • Xcodeのコマンドラインツール
    • $ xcode-select --install
  • mgba
    • GBAのエミュレータ
    • $ brew install mgba
  • devkitPro
    • 主に任天堂のゲーム機向けの開発ツールチェーンを提供するプロジェクト
    • GBA、Nintendo DS、Nintendo Switch、Wiiなどのゲームを開発できる

devkitProのセットアップ

devkitProはinstallすれば終了というわけでもないので順に解説する。

install

Githubの最新のreleaseからdevkitpro-pacman-installer.pkgをダウンロードする。
スクリーンショット 2024-09-24 23.23.20.png
macOS Sequoiaの場合だと、installerを開こうとするとセキュリティの問題で止められるので、設定アプリ→プライバシーとセキュリティから「このまま開く」をクリックしてinstallする。

依存しているライブラリとツールのinstall

以下のコマンドでGBA開発用のライブラリとツールをinstallする
何をinstallするか聞かれるが全て必要なのでそのままEnterを押す。

$ sudo dkp-pacman -S gba-dev

:: There are 19 members in group gba-dev:
:: Repository dkp-libs
   1) armv4t-pkg-config  2) catnip  3) devkitarm-cmake  4) devkitarm-crtls  5) gba-cmake  6) gba-examples
   7) gba-pkg-config  8) libfat-gba  9) libgba  10) libtonc  11) maxmod-gba
:: Repository dkp-osx
   12) devkitARM  13) devkitARM-gdb  14) flock  15) gba-tools  16) general-tools  17) grit  18) mmutil
   19) pkg-config

Enter a selection (default=all):

(ここでgba-devではなくnds-devswitch-devにするとDSやSwitchの環境を整えられる)

更に聞かれるがYでEnterする

resolving dependencies...
looking for conflicting packages...

Packages (21) devkitarm-rules-1.5.1-1  dkp-cmake-common-utils-1.5.2-1  armv4t-pkg-config-0.28-1  catnip-0.1.0-1
              devkitARM-r65-1  devkitARM-gdb-14.1-1  devkitarm-cmake-1.2.2-1  devkitarm-crtls-1.2.6-1
              flock-0.4.0-1  gba-cmake-1.0.1-1  gba-examples-20240626-1  gba-pkg-config-0.28-4
              gba-tools-1.2.0-2  general-tools-1.4.4-1  grit-0.9.2-1  libfat-gba-1.1.5-1  libgba-0.5.4-1
              libtonc-1.4.3-3  maxmod-gba-1.0.15-1  mmutil-1.10.1-1  pkg-config-0.29.2-3

Total Download Size:    75.59 MiB
Total Installed Size:  314.50 MiB
Net Upgrade Size:      308.65 MiB

:: Proceed with installation? [Y/n]

すると諸々installされる。

環境変数のセット

後ほどサンプルのMakefileで参照されるので環境変数をセットする。
devkitProは/opt/devkitproにinstallされる。

$ vim ~/.zshrc
### devkitPro(GBA)用
export DEVKITPRO=/opt/devkitpro
export DEVKITARM=$DEVKITPRO/devkitARM
export PATH=$PATH:$DEVKITARM/bin
$ source ~/.zshrc

これで環境構築done.

サンプルを実行

devkitpro/example/にサンプルがあるので移動

$ cd $DEVKITPRO/examples/

examples/のgbaフォルダごと別のフォルダにコピーしてそこへ移動

cd 任意のフォルダ/gba

gba/にはMakefileが存在し、各フォルダにサンプルが入っている状態。

 $ ls
Makefile	audio		img		template	xboo
README.md	graphics	mbv2		utility

そのままmakeすると、各フォルダのMakefileも走り、各フォルダに.elfと.gbaが生成される

$ make

例えばgba/template/template.gbaをクリックして実行すると以下のようになる。
スクリーンショット 2024-09-24 20.06.27.png

なぜgbaフォルダをコピーするのか

コピーせず元のままでmakeするとPermission deniedになる。そこで$ sudo makeする必要があるが、今度は以下のように「DEVKITARMの環境変数が宣言されてない」とエラーになる。

Makefile:6: *** "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM".  Stop

これはsudoが現在のユーザではなくrootとして実行することになるので、設定した環境変数が引き継がれなくエラーになっている。
なのでコピーすることで$ makeだけで実行できるようにする。

おわりに

この記事をなぜ書いたかというと、SwiftでGBA開発ができることを知り、色々と試しているうちに「これSwiftじゃなくて普通にCで書いた方が楽じゃない?ネットに転がっている解説記事やサンプルもCで書かれたものだし。」と当たり前のことを思い始め、環境構築しようと思ったら今更しかもmacOSで環境構築してる人が少なくて少し苦戦したのでまとめてみました。
何か間違いなどあればご指摘ください。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?