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

※なんか…SGDKで検索するとまあまあ上のほうに来るので…なんでウチ(笑)?
最近の話を追記したり、リンク修正したりしました(2024年7月15日)。

ちゃんとやることにしました。
ていうか最近まともな休日とれてないのでいいじゃないか。
大変なんだぞ毎月45時間近く残業させられて…風邪もひいて…

さて。メガドライブのゲームを作るため、
気持ち新たにSGDK(メガドラのゲームをC言語で作成できる、ある種のミドルウェア?)の
インストールから。SGDK installationの内容をなぞります。
https://github.com/Stephane-D/SGDK/wiki/SGDK-Installation
ここね。
まずJAVA Version8を入れます。入れろっていうから入れます。
https://www.java.com/ja/download/ie_manual.jsp
次に、SGDK本体。
https://github.com/Stephane-D/SGDK
最初に取り組み始めたのがv1.70でしたが今は1.90のようなので
とりあえず最新版を落としました。
※2024年7月現在ではver2.00。今後も更新されると思うのでトップにリンク張りなおしました。

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

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


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

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

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

ちなみにWin11でも同じでした。


さらに制作環境を構築します。
HidecadeさんはCode::BlocksというC特化なIDEを使われていたようです。
ほかにもeclipseという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というライブラリは
プロジェクト作成とか、コンパイルするのを簡単にしてくれるものですが、
プロジェクトファイルの保存場所を
SGDKのインストールフォルダ配下にしてしまうと、正常に動かない様子。

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

って、やってたんですが…
2024年7月、Win11に環境移行(つかsurface go4買った)したとき、逆の現象が起きて。
上記の構成だとうまくコンパイルされず、SGDKインストールフォルダに適当フォルダ作ってその下に入れると
ちゃんと動くようになりました。これマジでなんなの?ねえ、なんなの?わからない…。


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

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

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

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


動かすエミュレーションソフトは再現性が高いらしい
「BlastEm」てソフトを使ってみてましたが、あんま挙動スキじゃなくて
karu_gamoさんが使われているTASで有名らしい「Bizhawk」ていうソフトに乗り換えました。
Genesis Code: Set Gens Emulator Command Pathを出して、ソフトまでフルパスで書いてあげると、
Genesis Code: Compile & Run Projectを実行することでコンパイルからエミュレータの実行まで
ワンストップでやってくれます。便利ですね。
あとは「Gens KMod」があるとデバッグが捗るらしい。そのレベルに達してないので、使い分けってことかな。


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

タイトルとURLをコピーしました