この記事はAgent Grow Advent Calendar 2023 19日目の記事です。
こんにちは。
昔懐かしのゲームボーイソフトをC言語+VsCodeで開発出来る環境構築方法について説明させて頂きます。
宜しくお願いします。
※Windows OSでの環境構築になります。
1.必要なソフトウェア一覧
必要な物は以下です。
・Visual Studio Code(コーディングに使用)
・GBDK(開発キツールです。ビルドしてROMイメージを作成します)
・romusage(ビルド後のROM、RAM使用量を計算するツールです)
・Emulicious(デバッガとして使用するエミュレータです)
2.Visual Studio Codeのダウンロード&インストール
VsCodeについてはこの場で説明しませんが以下からダウンロード、インストールしてください。
https://azure.microsoft.com/ja-jp/products/visual-studio-code
日本語化は以下を参考にしてください。
https://www.javadrive.jp/vscode/install/index4.html
3.GBDKのダウンロード
GBDKはフリーウェアのGBプログラムの開発ツールです。
C言語で書いたソースコードをビルドして実機やエミュレータで動作可能なROMイメージファイルを作成します。
以下からPCの環境に合った物をダウンロードしてください。
https://github.com/gbdk-2020/gbdk-2020/releases
4.emuliciousのダウンロード
ゲームボーイのROMイメージが実行可能なエミュレータです。
別途VsCode用の拡張機能「emulicious-debugger」と合わせてVsCodeでデバッグ実行が可能になります。
以下からPCの環境に合った物をダウンロードしてください。
※Javaインストール済みの場合はEmulicious(一番上)をダウンロード、
Java未インストールの場合は2つ目か3つ目をダウンロードしてください。
5.romusageのダウンロード
GBDKにてビルド後のROM、RAM使用量を計算するツールです
以下のURLからダウンロードしてください。
https://github.com/bbbbbr/romusage/releases
6.作業フォルダ作成
ここから環境構築になります。
まずは任意のディレクトリに作業フォルダを作ります。(今回はgbdkと名前を付けます)
7.「Resources」フォルダ作成
作業フォルダに「Resources」というフォルダを作ります。
8.gbdkを配置
3番でダウンロードしたzipファイルの中身の「gbdk」フォルダを「Resources」の直下にコピペしてください。
「gbdk\Resources\gbdk」フォルダが以下のようになっていれば大丈夫です。
9.emuliciousを配置
「gbdk\Resources」フォルダに「emulicious」フォルダを追加してください。
「gbdk\Resources\emulicious」フォルダの中に4番でダウンロードしたzipファイルの中身をコピペしてください。
※下の画像は「Emulicious-with-Java64.zip」をコピペ時の物です。
10.「Project」フォルダを用意
「gbdk」フォルダに「Project」というフォルダを作成してください。
「gbdk\Project」フォルダ内に開発ソフト毎にフォルダを作成していきます。
以下のURLからビルドとデバッガの設定まで済んでいるサンプルプロジェクトを用意したのでダウンロードしてください。
https://github.com/NorimitsuY/GB-SAMPLE
「gbdk\Project」が以下のようになっていれば大丈夫です。
11.romusageの配置
「gbdk\Project\GB-SAMPLE-main」フォルダ内に「lib」というフォルダを追加して、
その中に5番でダウンロードしたzipファイルを解凍して「romusage.exe」を配置してください。
「gbdk\Project\GB-SAMPLE-main\lib」フォルダが以下のようになっていれば大丈夫です。
12.フォルダ構成確認
フォルダ構成が以下のようになっているか確認してください。
gbdk/
├ Resources/
│ ├ gbdk/
│ └ emulicious/
│
└ Project/
└ GB-SAMPLE-main/
├ .vscode
├ headers
├ lib
└source
13.VsCode拡張機能インストール
VsCodeを起動して拡張機能から「Emulicious」と検索して「Emulicious Debugger」をインストールしてください。
C言語の拡張機能もインストールしてください。
※ここはお好みの物でも良いと思います。
14.デバッグ実行
キーボードのF5キーを押すとビルドが実行されます。
成功すると「gbdk\Project\GB-SAMPLE-main\dist\Debug」フォルダにgbファイルが出力されてデバッガが起動します。
初回は以下の画面表示時は許可をクリックしてください。
Emuliciousの起動時に以下画面が表示されたら一番下を選択してOKをクリックしてください。
※自動UPDATEをするとデバッガが起動しなくなることがあったので念のため。
問題なければ以下のようにサンプルゲームが起動します。
※戦士が目玉の怪物を倒すだけのサンプルです。キーボードの矢印キーで上下左右に移動し、Sキーで剣を振って攻撃できます。
ブレークポイントで止めることも出来ます。(止められない場所もあります)
左上の変数と表示されている場所では各種レジスタの値を確認することが出来ます。
Emuliciousでは「Tools」からデバッグに役立つツールを起動できます。
下の画像のようにVRAM上のデータを表示などが可能です。
15.Releaseビルドについて
Releaseビルドについては「gbdk\Project\GB-SAMPLE-main」フォルダにてターミナルからmakeと打つと
「gbdk\Project\GB-SAMPLE-main\dist\Release」フォルダに出力されます。
「gbdk\Project\GB-SAMPLE-main」フォルダのmake.batがReleaseビルド用、make_debug.batがDebugビルド用となります。
Releaseビルドで出力したものをライタを使用して空のROMに書き込むことで以下のように実機で動かすことも出来ます。
16.参考にしたサイト等
・Larald’s Jubilant JUNKYARD
https://laroldsjubilantjunkyard.com/
全編英語ですが画面描画の仕組み等かなり詳細に記載されています。
環境構築についてはあまり記載されていません。
・Game Boy Development – 01. Reading Buttons
https://www.youtube.com/watch?v=eYT9s9bvKYU&list=WL&index=2
全編英語ですが環境構築について説明している動画です。
・CUBIC STYLE
https://cubic-style.jp/
書き込み可能な空のカートリッジとライタを販売している日本のサークル