8bitパソコンにおけるハードウェアの限界をソフトウェアで乗り越える試み

公開:2015-07-11 09:08
更新:2017-11-15 21:58
カテゴリ:ハードウェア,コンピュータの歴史

X1実機でゼビウスを作る試み

X1でゼビウスを作り始めた: 85DATA-blogを読んだ。

驚いたのはそのスクロール手法である。X1でVRAM背景を単色ではなく、カラーでスクロールさせている。パレットとタイリングを使用してこのスクロールを実現している。筆者による詳細な説明は下記に書いてある。

85DATA-懐かしのパソコンネタ ニュー・イヤー・プログラム(X1版Newゼビウス): 85DATA-blog

当時電波新聞社版のX1ゼビウスはPCGによる4ドットスクロールであった。当時死ぬほどプレイしたものの、このカクカク感だけは本当に残念であった。

しかしこのPCGを4ドットでスクロールする技はどうやっていたのだろうか。ゼビウスをプレイした後えあれば、ゲームに使われているPCGキャラは簡単に表示できたので、それを見ると8×4ドットという縦サイズが半分のキャラクターが表示されていた。私はこのキャラを見て4ドットずつずれたキャラを交互に書き換えていたのかなと思っていたけれど実はそうでなかったことが分かった。先ほどのブログのコメントから引用すると、

(982の発言のみを抜粋)
>X1版ゼビウスのスクロールはCRTCのレジスタ(垂直表示文字数と最大ラスタ・アドレス)をいじり
>表示画面を横40×縦50文字(8×4ドットキャラ)にして実現している。
>この状態で普通にテキストRAMをスクロールさせれば4ドットスクロールになるわけ。

そうだったのか。。

しかしこの、当時はX1では不可能だと思われていた複数色でスムーズなスクロールが実現できていることは驚愕に値することだ。大御所の森田さんが作った「アルフォス」だって背景は2色である。PC88のスペックを考えるとこれはこれでものすごく驚異的なことなのだが。

ハードウェアの限界をソフトウェアで乗り越える試み

8ビットPCの時代はHWがとても貧弱であったので、ソフトウェアによってハードウェア設計側では考えもしなかったような機能を実現する例がしばしば見られた。例えば下のMZ-700での擬似グラフィック。

http://www.maroon.dti.ne.jp/youkan/mz700/y2k.html

http://www.maroon.dti.ne.jp/youkan/mz700/y2ksc1.gif

これも何がすごいのかはMZ-700というPCを知らないとわからないと思う。スペック上MZ-700のグラフィック機能は80×50ドットのセミグラフィックである。しかし上記の擬似グラフィックはその限界を超え、単色ではあるが88×176ドットのグラフィックを実現できている。これは「ラスタごとにキャラクタを書き換える」というソフトウェアでのテクニックを使用して実現されている。私もMZ-700を所有してはいたが、このようなことができるということは思いもしなかった。キャラクタによるセミグラフィックが不満で、すぐにX1に乗り換えたのだから。

さらに先ほどのX1のスクロールにしても、I/O空間へのVRAMのマッピングとか、特殊なVRAMの配列などでただスクロールさせるだけでも難しかったので、ゲームがプレイできるレベルにまでソフトウェアの工夫によって高めることができること自体本当にすごいことなのだ。ブログを読んで知ったのだが、さらにPCGを使用してもう少し色をたくさん出るようにしたテクニックがあるのだった。

技術的読み物 Offentlich die Kunst “リボルティー2”

技術的読み物 Offentlich die Kunst “リボルティー2”を読むとほんとに地道な努力によってこのスクロール機能が実現されていることがわかる。

こういうソフトウェアによって人を「あっ」と言わせるのはほんと楽しそうだ。できれば私もそういう境地に至りたいけど、いまだに実現できていないね。。