機械学習周りのプログラミング中心。 イベント情報
ポケモンバトルAI本電子書籍通販中

ゲームボーイ上で強化学習を行う part8

前回、ソフトが完成しました。今回は実機動作確認です。

ゲームボーイ実機で動作させる

せっかくゲームボーイソフトを開発したので、エミュレータ上だけでなく実機でも動作させてみたいです。そのためには、パソコンから書き込めるカートリッジが必要です。 本プロジェクトでは、同人サークル「CUBIC STYLE」から頒布されている「GBカートフラッシャー開発セット (USB Type-C)」を用います。コミックマーケット102で入手できました。通販もあるようです。 パッケージには、何度も書き換え可能なROMを内蔵したフラッシュカートリッジと、パソコンからROMデータを転送するための書き込み機(GB Cart Flasher)が含まれています。まずパソコンからROMデータをカートリッジに書き込み、カートリッジをゲームボーイ実機に挿入することで自作のソフトをゲームボーイ実機で実行できます。

GB Cart Flasherの外観

ROMデータを書き込んだカートリッジをゲームボーイカラーで動作させました。動作画面を示します。ゴールに到達するまでには30分ほど学習時間がかかりますが、全く不具合なく動作しました。これにて実機動作確認成功です!

ゲームボーイカラー実機の画面

同様に、ゲームボーイアドバンスでも動作させました。ゲームボーイアドバンスにはゲームボーイソフトを動作させる互換機構があります。

ゲームボーイアドバンス実機の画面

ちなみに、コースが青く表示されているように見えますが、これはモノクロ液晶を搭載したゲームボーイ向けに作られたソフトを表示する際に、カラー液晶を搭載したゲームボーイカラーゲームボーイアドバンスが自動的に彩色しています。もちろん、ゲームボーイカラーに対応したソフトを作れば色をソフト側から指定できます。

【GBC20周年企画(1)】覚えてる? ゲームボーイカラーのトリビア20連発! - ファミ通.com

おわりに

ゲームボーイソフトの開発を始めてから完成させるまでおよそ40時間かかりました。 GBDKのCコンパイラは快適で、予想外に躓く点はなくPC向けプログラムとあまり変わらない実装ができました。 強化学習では当たり前に出てくる浮動小数点数演算を回避する工夫がポイントでした。今回は強化学習が動作しさえすればよいという要件でしたので極端に難しいことはありませんでしたが、当時ゲーム開発をされていた方は性能向上のためにより技巧的なテクニックを開発されていたのではないかと思います。 今回はプレイヤーの操作に依存する要素がなくゲームとは呼び難いものができましたが、もしうまいゲームデザインが考えられれば、プレイヤーと対戦して強くなっていくようなAIも作れるのではないかと思います。