2014-10-26 Sun [ ゲームについて::歴史のこと ]
Twitterでギャプラス98版の話がたまたま出て、それ絡みのことがあったので、まとめてメモとして残しておく話。
ギャプラスはナムコのギャラクシアン→ギャラガと続いてきたナムコの固定型画面の縦シューティングの第三弾で1984年にリリースされた作品だ。
そしてギャプラスのPC-9801版(NECから出ていたパソコンのシリーズ)はキャリーラボが移植して発売しているのだけど、これの移植は非常にレベルが高いので有名だった(そしてナムコミュージアムで出るまではギャプラスの唯一の移植だったはず)。
移植したのはHahi君。
当時、キャリーラボの社員で、アルファシステムの創業者の一人だ。
なんでこんなことを知っているのかというと、たまたま凄ノ王伝説だのイース1・2だのを作っている間に、彼が移植したという話を聞いていたから。だから、そういう内容をひょいとツイートしたわけなのだけど…そこにこんな質問が来た。
と、聞かれ、確かにそれについては知らないなと思ったので、今でも連絡がつくHahi君にちょっと聞いてみた。
さすがに25年以上も前の話なので、覚えていない可能性もあるとは思ったけれど…そこはHahi君、キッチリ覚えていた。
答えは以下のとおり
若干わかりにくいところがあるので、コメントがてら、いろいろ解説しておきたい。
●基板からROMを引っこ抜いて、逆アセ読みました。
ROMを引っこ抜いて、中身をディスアセンブラにかけてソースを読める形にしたってこと。つまりナムコからソースは提供されていない(これは当時のアーケードの移植の常識だったと思う)。ついでに書いておくと、当時はオールアセンブラでゲームを書くのは常識だった。
●初めて6809のコード読みました。
6809は当時のインテルと並ぶ2大CPUメーカーの一つ、モトローラが出した「究極の8bit」と謳い文句があったCPU。確かにアドレッシングとか使いやすかったよ。1984年というと、もうFM-7が出ていて一大勢力だったのだけど、キャリーラボはMZシリーズに主力があった=Z80系だったので、読んだことがなかったのだろう。
このあとしばらくして、キャリーラボは"DOG"に参入し、ファミコンディスクシステムのゲーム『ハオ君の不思議な旅』をHahi君は書くことになるので6502も書けるようになる。
●グラフィックデータもROMから全部抽出
当時のアーケードはVRAMではなくVROMなので、ROMに直にキャラクタパターンが焼きこまれていたのである。
●2つのCPUが同期しながら動いていて…
ギャプラスは6809のデュアルプロセッサ(2つのCPUが搭載されていること)だったので、プログラムの解析のためにICEで片方のCPUを止めると、もう一方のCPUにリセットがかかるから、解析がしづらかったって話。
というわけで、ギャプラスのPC-9801移植版は、目コピではなく、ソースを解析し、カッチリと移植されていた作品だったわけだ。
ちょっとした記録として残しておく次第である。
ギャプラスはナムコのギャラクシアン→ギャラガと続いてきたナムコの固定型画面の縦シューティングの第三弾で1984年にリリースされた作品だ。
そしてギャプラスのPC-9801版(NECから出ていたパソコンのシリーズ)はキャリーラボが移植して発売しているのだけど、これの移植は非常にレベルが高いので有名だった(そしてナムコミュージアムで出るまではギャプラスの唯一の移植だったはず)。
移植したのはHahi君。
当時、キャリーラボの社員で、アルファシステムの創業者の一人だ。
なんでこんなことを知っているのかというと、たまたま凄ノ王伝説だのイース1・2だのを作っている間に、彼が移植したという話を聞いていたから。だから、そういう内容をひょいとツイートしたわけなのだけど…そこにこんな質問が来た。
いま思い返しても、16bitとはいえ初期のPC98でよくもあれだけスムーズに動かせたものだと感心してしまいます。
アルゴリズム的にもかなりイケてたように思うのですが、あれは目コピだったのでしょうか?
アルゴリズム的にもかなりイケてたように思うのですが、あれは目コピだったのでしょうか?
と、聞かれ、確かにそれについては知らないなと思ったので、今でも連絡がつくHahi君にちょっと聞いてみた。
さすがに25年以上も前の話なので、覚えていない可能性もあるとは思ったけれど…そこはHahi君、キッチリ覚えていた。
答えは以下のとおり
ROM引っこ抜いて、逆アセ読みました。初めて6809のコード読みました。グラフィックデータもROMから全部抽出しました。2つのCPUが同期しながら動いていて、ICEでメインCPU止めるとサブがリセット掛けやがるので苦労した覚えがあります。
若干わかりにくいところがあるので、コメントがてら、いろいろ解説しておきたい。
●基板からROMを引っこ抜いて、逆アセ読みました。
ROMを引っこ抜いて、中身をディスアセンブラにかけてソースを読める形にしたってこと。つまりナムコからソースは提供されていない(これは当時のアーケードの移植の常識だったと思う)。ついでに書いておくと、当時はオールアセンブラでゲームを書くのは常識だった。
●初めて6809のコード読みました。
6809は当時のインテルと並ぶ2大CPUメーカーの一つ、モトローラが出した「究極の8bit」と謳い文句があったCPU。確かにアドレッシングとか使いやすかったよ。1984年というと、もうFM-7が出ていて一大勢力だったのだけど、キャリーラボはMZシリーズに主力があった=Z80系だったので、読んだことがなかったのだろう。
このあとしばらくして、キャリーラボは"DOG"に参入し、ファミコンディスクシステムのゲーム『ハオ君の不思議な旅』をHahi君は書くことになるので6502も書けるようになる。
●グラフィックデータもROMから全部抽出
当時のアーケードはVRAMではなくVROMなので、ROMに直にキャラクタパターンが焼きこまれていたのである。
●2つのCPUが同期しながら動いていて…
ギャプラスは6809のデュアルプロセッサ(2つのCPUが搭載されていること)だったので、プログラムの解析のためにICEで片方のCPUを止めると、もう一方のCPUにリセットがかかるから、解析がしづらかったって話。
というわけで、ギャプラスのPC-9801移植版は、目コピではなく、ソースを解析し、カッチリと移植されていた作品だったわけだ。
ちょっとした記録として残しておく次第である。
コメント
この記事のトラックバックURL :
トラックバック