酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

ゲームボーイの開発環境の導入とサンプルゲームを表示させるまで(macOS Sierra編)

Game Boy Advent Calendar 2017の第14日目です。前日の記事はすいラボけんさんの 「GBカートリッジのバッテリー交換方法(電池ホルダ使用編)」でした。次の記事はtakeshi0406さんの「lsdj関連で何か」です。

既に僕の手元からWindowsマシンがなくなって久しいので、今回はMacで開発環境を整えていきたいと思います。

古いMacでの開発環境構築の記事はいくつか見つけることができたのですが、Lion以降特に現役世代のSierra(macOS 10.12)やHigh Sierra(macOS 10.13.1)で動かす方法について書かれている記事を見つけることができませんでした。

本記事ではSierra 、High Sierraでのゲームボーイソフト開発環境とサンプルゲームをエミュレータで表示させるまでを扱います。

Macでゲームボーイソフトを開発する場合にどんなSDKやライブラリがあるんだろう?と、探してみました。アセンブラだとRGBDS、C言語でGBDKが現役のようです。

日本語で書かれた開発ドキュメントなど

このサイトではRGBDSを使った開発手法が書かれています。

日本語で読めるGBDKを使った開発サイトは消滅していて、Internet Archiveにその姿を残しています。

開発環境の導入

GBでHello Worldを表示させるまでやってみようと思います。前述した通り、Windowsマシンが手元にないためMacで開発します。

開発環境

  • macOS Sierra (10.12)
  • Xcode 8.0 (8A218a)
  • MacBook Pro (Retina, 15-inch, Mid 2015)
    • 2.5 GHz Intel Core i7
    • 16 GB 1600 MHz DDR3
    • AMD Radeon R9 M370X 2048 MB

去年下書きしていた記事をベースにしているためちょっと環境が古いです。High Sierraでも動くのを確認しています。

GBDKの導入

さて、GBDKを導入してみましょう。

STEP1 git cloneする

GitHub - jmle/gbdkをforkしてSierraでもビルドできるように修正した僕のリポジトリを使います(結局1年経ってもPRがマージされなかったね……)。下記は当時のエントリです。

macOSでターミナルを起動して以下のコマンドを実行してください。gitの使い方やGitHubへの接続の仕方等についてはここでは割愛します。

$ cd ~/Desktop/gbdk
$ git clone https://github.com/CH3COOH/gbdk.git

Cloning into 'gbdk'...
remote: Counting objects: 1491, done.
remote: Total 1491 (delta 0), reused 0 (delta 0), pack-reused 1491
Receiving objects: 100% (1491/1491), 2.09 MiB | 418.00 KiB/s, done.
Resolving deltas: 100% (427/427), done.
Checking connectivity... done.

STEP2 macOS用のパッチを当てる

$ cd gbdk
$ patch -p0 < macosx.patch

patching file sdcc/support/cpp2/configure

STEP3 GBDKをビルドする

$ mkdir -p sdcc/bin
$ make

ビルド自体は1,2分で終わります。

サンプルゲームをビルドする

GBDKにはいくつかのサンプルゲームのソースコードが含まれています。

$ cd ~/Desktop/gbdk/gbdk/build/ppc-unknown-linux2.2/gbdk/examples/gb
$ make

.gbファイルが作成されています。こっちは一瞬でビルドが完了します。

ビルドしたゲームをエミュレータで起動してみよう!

.gbファイルが生成されたのでエミュレータで実際に起動させてみましょう。

Mac向けのゲームボーイエミュレータはいくつかあるようなのですが今回ビルドしたソフトが動くところまで確認が取れれば良いので、参考元の記事と同じ「VisualBoyAdvance」というエミュレータを利用してみましょう

任意のディレクトリにコピーして実行してみましたが起動しませんでした。

f:id:ch3cooh393:20161023122009p:plain

嘘やん……macOS SierraではVisualBoyAdvanceは動かなかったようです。確かLion(Mac OS X 10.7 Lion)からPowerPCアプリのサポートが切れたんでしたっけ。

Boycott Advanceを使ってみるが謎のクラッシュが発生する…

代わりに、Boycott Advance v0.4.0を使ってみましょう。

スクリーンショットを撮り忘れてしまいましたが、作成したGBファイルを選択するとエミュレーターがクラッシュしてしまいました。

ゲームボーイで動く自作ゲームを有志で公開しているサイトがあるのですが、そのうちのひとつ「pretty-princess-castle-escape」をBoycott Advanceで起動させてみたところ、やはりクラッシュしてしまいました。

原因はわかりませんが、macOS SierraではBoycott Advanceは使えないようです。作成した.gbファイルが悪くないことはわかりましたがmacOSで動作確認できるエミュレータはないのでしょうか。

最終的に行き着いたのがGambatteでした

世界的にも出荷数の多いゲームボーイであればどのプラットフォームでもエミュレータを開発してる人(もしくはコミュニティ)はあると確信していたので、GitHubで開発が活発なゲームボーイエミュレータを探しました。

最終的に行き着いたのがGambatteでした。

github.com

f:id:ch3cooh393:20161023134648p:plain

参考

GBDKの導入方法が書かれていた。この記事のまんまですがより簡単にmacOSでGBDKがビルドできるようになっています。

qiita.com

関連記事

この他にもゲームボーイの修理・改造ネタを紹介しております。Tipsをまとめておりますのでこちらのページをご参照ください。