ひとりゲームジャム3日目(SDGK SetUp)

ちゃんとやることにしました。
ていうか最近まともな休日とれてないのでいいじゃないか。
大変なんだぞ毎月45時間近く残業させられて…風邪もひいて…
ブツブツ. . . .
ブツブツ. . . .
(エサ)
(テレレレー→浄化→そして誰もいなくなる)

さて。メガドライブのゲームを作るため、
気持ち新たにSDGK(メガドラのゲームをC言語で作成できる、ある種のミドルウェア?)の
インストールから。SGDK installationの内容をなぞります。
https://github.com/Stephane-D/SGDK/wiki/SGDK-Installation
ここね。
まずJAVA入れます。入れろっていうから入れます。
http://icy.bioimageanalysis.org/upload/jre-8u281-windows-x64.exe
次に、
https://github.com/Stephane-D/SGDK/releases/tag/v1.90
最初に取り組み始めたのがv1.70でしたが今は1.90のようなので
とりあえず最新版を落としました。

でもinstallationを見るとなんかコマンド打たなきゃいけないらしいです。
C:\直下にsgdk190てフォルダ作って中身を解凍したらコマンドプロンプトで
cd c:\sdgk190
と打ってディレクトリ移動した後に
.\bin\make -f makelib.gen
ってやってあげると、ファイルが展開されます。

最終的にlibフォルダに「libmd.a」てファイルが生成されたら終了。
なんか慣習的に?ルート直下にフォルダ作るのがいいっぽくて
あーなんかユーザ名とか変な日本語フォルダが途中にあったりして
おかしくなるの、WindowsMeのころに食らったなあなどと思い出したりしました。


Windowsへ環境変数の追加、というのも必要のようです。

私はWin10ですが、システムのプロパティ→詳細設定→詳細設定タブ→環境変数。
ユーザ環境変数の新規をクリックし、
変数名「GDK」、
変数値にsgdkフォルダへのパスを入れます。私の場合は
c:\sdgk190
というカンジです。
さらに。システム環境変数カテゴリのPath変数に
%SYSTEMROOT%\sgdk190
てのを追加。C直下のインストールフォルダを指定。

これ、消すと後述のVSCodeの挙動がおかしくなります。ファイルパスねーよとか。
つかHidecadeさんの解説ではバックスラッシュがスラッシュだったり
GDK_WINて変数も必要だと書かれてるんですが
なんか、とりあえず上記のカンジで動いてます(笑)。
これはIDEによるのか?バージョンなのか?なんなんだ??うーん。
ネットワーク保守してて、よくわからんけど大事だったり
説明めんどくさかったりするコンフィグ部分のことを
「おまじない」なんて言ったりしますが、それだと理解しています。
動いてるっぽいのでヨシとします。


さらに制作環境を構築します。メモ帳でなんてやってられないからです。
メガドライブミニ収録ダライアスEXのベースを作成されたHidecadeさんは
Code::BlocksというC特化なIDEを使われていたようです。
あとなんか日経ムックにもそれでやるって書いてあったし
ほかのなんか…作る残骸みたいなサイト?にもそうありました。
これはもう、先駆者であるHidecadeさんに乗っかろうと思ったんですが
画面のカンジとかしっくりこないし設定が大変。
Unity触ったときにMicrosoft Visual Studio Code(通称VSCode)がなんとなく好きで
それは使えないのかと思っていたら
昨日書いた悩める個人製作者のAndrej Preradovicさん
VSCodeいけるって書いてたのでそれでやることにしました。

https://code.visualstudio.com/
VSCodeインストールしたあと(オレはしてあったけど)、
https://marketplace.visualstudio.com/items?itemName=zerasul.mega-drive-mega-pack
笑っちゃうんだけど「Mega Drive Mega Pack」なる
VSCodeでメガドラ開発に必要なセットがVictor Suarezさんから提供されているんで
とりあえずそれブチ込みました。
が、
…ここでハマりました。
Mega Drive Mega Packの中にあるGenesis Codeというライブラリは
プロジェクト作成とか、コンパイルするのを簡単にしてくれるものですが、
プロジェクトファイルの保存場所を
SDGKのインストールフォルダ配下にしてしまうと、正常に動かない様子。

なので、同じルートにいろいろファイルを置くフォルダを作りました。
c:\sdgk190(SDGKインストールフォルダ)
c:\sdgkfile(プロジェクトや素材やエミュレータ入れとくフォルダ)
こんな構成。


VSCode上で「Ctrl+Shift+P」をたたき、
genesis codeと打ち込むと…なんかいろいろ出てきます。

Genesis Code: Create Projectを選ぶと、任意フォルダに必要なファイルやフォルダ構成を
ぜーんぶ作ってくれます。hello worldのプログラム付き。
Genesis Code: Compile Projectを選ぶと、
プログラムをエミュレータで動くゲーム形式(*.bin)に書き出してくれます。
だからこの2つをやれば、簡単にhello worldができてしまうのです。

こんな感じです。先のとおりコンパイルできずハマったので
さらっと行きませんでしたが、わかっていればさらっといけます。

ちなみにプロジェクトのフォルダ名をうっかり変えたら
バグって使えなくなりました。
AviUtlもblenderもそうだけど、参照の相関関係崩れることはしないほうがいっすね。


動かすエミュレーションソフトは再現性が高いらしい
「BlastEm」てソフトを使ってみてます。あんま挙動スキじゃないけど。
Genesis Code: Set Gens Emulator Command Pathを出して、ソフトまでフルパスで書いてあげると、
Genesis Code: Compile & Run Projectを実行することでコンパイルからBlastEmでの実行まで
ワンストップでやってくれます。便利ですね。
デバッグ機能のある「Gens KMod」もあるといいらしいっす。使い分けってことかな。


とまあHelloworld出せました。
やったことを日記に残しておくと脳内整理がはかどるしとてもいい!
明日は大晦日ですか。普通にまたがんばります。


バルダーズゲート3がやりたい。買ってしまった。買ってしまったんだ!