PC-9801ギャプラスと、当時の開発環境

ギャプラスの話をいろいろ勘違いしている人がいるので、追記がてらにちょっと書いておくことにした。
まず第一に、キャリーラボのギャプラスは正式な許諾を受けた移植版で、コピー品などではない。
当時、キャリーラボはアーケードの様々なゲームを正式な形でパソコンに移植しており、ギャプラスもその一つだってことだ。

当時からキャリーラボの移植はレベルが高いことで有名だった。今から考えれば、アルファシステムの創業メンバーがコード書いてたんだから、そりゃあレベル高いだろうさってことになる。

第二に、当時のアーケードはリバースエンジニアリングが当たり前で、ソースは提供されたりされなかったりだった。
これには理由がある。

まず当時はインハウス(メーカー固有)のツールが多く、ソースをビルドするためにそういったツールが必要で、かつそれを提供するわけにはいかない場合があった。また仮に提供可能でも、環境がない場合もあった。例えば特殊なICEがあることが前提みたいな場合だ。
こんなふうになるとソースを渡してもしょうがないなんて話になり、もらえない。

まだ勘違いしてる人がいるのでもうちょっと追記しておく。当時はアセンブラやリンカなど、バイナリを生成するツール自体がインハウスのもの、つまりソースに方言があって、ひどい時には、なにを書いてあるのかわからないなんてこともあったのだ。インハウスツールの例を挙げるとハドソンのPCエンジンの開発環境だって、AS/LKは元はファミコン用のインハウスツールで、たまたまハドソンがPCエンジンの開発メーカーで、それらのツールを外に出したから標準になっただけで、外に出ていなかったらソースに謎の部分が出てくる。

そして、仮にソースが提供されても、ROMをぶっこぬいてのデータの確認はほぼ必須だった。
なぜなら、当時の開発環境の世界ではソースと実機のバイナリが一致していない場合が、かなりの確率であったからだ。

「なんの冗談じゃーい!」と今の人なら言うだろうが、ここで注意してもらいたいのは、当時のハードはメモリ保護など全くない。つまり実行しているプログラムとワークエリアの区別が全くなく、そして、その中のROMとなる領域をいじって、直接セーブすればもう製品になってしまう。
だから、例えばバランスの調整をしているとき、一番手っ取り早い方法はデバッガから数字をいじってみることだった。敵のHPだのこちらの火力だのいろいろ動かしながら調整するのが一番手っ取り早いし、それが当たり前だった(僕もバランス取る時は使いまくっていた)。

そしてだ…調整したデータをそのまま保存して、ROMに焼いたりすれば、製品ができることになる。でもソース(や資料)とは別物の数字が実際のデータには書かれてることになる。
また、アーケードなんかでギリギリで基板側にバグが見つかって、強引にパッチを当てるなんて話を酒の席で聞いて大笑いしたこともある。

と、こんなこと、今の人には信じられないと思いながら、ツイートなどをしていたら、松下さんが…

大爆笑。

LinkedIn にシェア
Pocket