その1の続き。
応募する企画はSTG部分の見た目や音をFC版スターソルジャーそのままにする予定でしたが、まず一体どこまでFC版に忠実にできるのか・どの方法でどれほどの作業量になるのかを把握する必要があります。
先に結論から言うと、カセットのデータ吸い出しによりFC版スターソルジャーをかなりそのまま再現できる目処が付きました。スターソルジャーのプログラムを解析しUnity(ゲームエンジン)上でFC版の挙動を再現するというアプローチをとってます、バグやチラつき等は再現しない方向。それ以外はスターソルジャー上級者でもパッと見では違いに気づかないレベルで再現可能。
エミュレートというアプローチもありますが、それだとゲーム内容をいじる時にFC版のプログラムの方を自力改造しなくてはならず大変なのでナシ(そもそも他所のエミュレーターを改造して使う必要があり大掛かりで大変)。
最初は動きや判定などの挙動は目コピーで済ますつもりで、忠実な再現路線はそれほど考えていませんでした。それでもグラフィックはなんらかの方法で持ってくる必要があり、いちいちキャプチャしてドットに起こすのは面倒くさすぎるので、やはり素直にカセットからデータを吸い出す必要があるな、ということで、
ROMデータ吸い出しツールを購入して吸い出し。
ROMデータがあるということは、プログラムの解析もできて当たり判定とかFC版準拠にできるのでは?でも機械語というかアセンブリはデバッガで見かけるくらいで自分で扱ったことは無いんだよなぁ、と思いながらファミコンの解析について調べてみたら、スターソルジャーの解析をしてる方が!
すでにこれだけ情報があったら当たり判定どころか動きも完全再現できるのでは…?いやしかし全ての事が書いてるわけではないのでプログラムの解析もある程度自分でやることになる…アセンブリ素人が今からアセンブリ読めるようになるのだろうか…
ということで試しにスターソルジャーのプログラムを追ってみました。すると、あっ意外と読める!ネットにFCの解析方法の情報が充実してて、FCのCPUである6502もシンプルなせいか、結構すんなり読めてしまった。先人の情報様々である。
そして、
2022年1月の一次審査(企画書の提出)の頃には、スターソルジャー1面の道中を普通にプレイできるようになっていました。この動画はその頃Unityで36人分動かしてCPUやGPUの負荷がどれくらいかテストしてるところ。 pic.twitter.com/wchfX6juDp
— かき (@u_mid) 2022年10月2日
その3に続く。