1985年、高校3年生でした。その当時使っていたパソコンがシャープX1(ck)
昔からゲームはやりませんでしたが、ゼビウスがすごい(良い出来の)ゲームである事は知っていました。
そのゼビウスが電波新聞社からX1へ移植されたのです。
よく出来ているとは思いましたよ。綺麗なグラフィックでした。動き(滑らかさ)としても当時としてはゼビウスのパソコン版としてはトップクラスだったのでは無いでしょうか?
現に、ゼビウスがやりたいが為にX1を購入する人もいたとか・・・・
その位、X1ゼビウスの評判は良かったという記憶があります。
その当時は、パソコンへのゼビウス移植の完成度(アーケード版とどれだけ近いか)が、そのパソコンの性能を評価していたような気がしていました。
ゼビウスの完成度が高ければ、その移植されたパソコンは高性能だったと・・・そう思っていました。
友人が、X1ゼビウスを持っていましたので、かなりやる機会が増えました。
もともとゲームをやらない私でも、かなりはまりましたね。
そのうち、X1ゼビウスを見慣れてくると、”滑らか”だと思っていたスクロールも、4ドットスクロールでガタガタしてるし、キャラクターの重ね合わせも、もう一歩といった感じがしてきました。
【ココからが本題】
ならば、
「自分でゼビウスタイプのスクロールゲームを作ってみよう!」
と言う感じでX1で作り始めてみました。
目標としては、
「X1ゼビウスが4ドットスクロールであれば、2ドットスクロールを実現する」
です。
X1の画面モードは640×200ドットと320×200ドットの2つがありました。共にドット単位にカラー8色※の描画が可能です。
※当時は1ドット単位に8色表現できれば高性能(普通?)だったのです。
主にゲーム作成は、320×200ドットが多かったという記憶があります。これは処理速度(描画時間)を上げる為だろうと考えられます。
VRAM※の構成として、以下のような感じです。これは多くのパソコンがそうだったはずです。
※グラフィックRAM (GRAM) なんて呼ばれました。初代X1はGRAMはオプション
さらに、X1には、その上にテキストRAMがあり、カラー8色の自作キャラクターを表示できます。(キャラクタージェネレーター機能→これがX1の特徴のひとつ)
基本設計としては、以下の通りです。
「グラフィック画面を2ドットスクロール」
「空中キャラ描画は(キャラクタジェネレータで作成したものを)テキスト画面」
「地上キャラはグラフィック画面」
・・・で実際スクロールプログラムを実行してみると
カラー(8色)のスクロールは処理が遅すぎて無理でした。もちろん機械語です。
(これは、やる前から実行速度を計算していたので分かっていた事ですが・・・)
VRAM
3枚 (R G B) の書き換えを行うには、Z80の実行スピードでは無理です。
(X1はVRAMアドレスの並び方がちょっと変わっていて、一気に転送が出来ない事もひとつの理由です)
実行スピードを計算すると、せいぜいVRAM
1枚のスクロールが精一杯です。
まずは、テストで緑(G)のVRAMだけをスクロールさせてみます。
再現したのは、以下の通りです。(多分こんな感じだったハズです)
http://www.youtube.com/watch?v=qY_WprAFhiM
やはり、1色では寂しい限りです。
見た目として、複数の色がスクロールして見える案は無いかと模索をして、考え付いたのが、
「青と赤のタイリングペイントの上(?)で緑(G)VRAMのスクロール」
どう言う事かと言えば
このパターンを予めスクロール画面全体に描画させておきます。
拡大してみると、↓こんな感じです。
これに緑(G)のスクロール背景を重ねるのです。
つまり、
緑のみ |
|
|
|
= |
|
※1 |
緑なし |
|
+青 |
|
=青 |
|
|
緑 |
|
+青 |
|
=水色 |
|
|
緑なし |
|
+赤 |
|
=赤 |
|
|
緑 |
|
+赤 |
|
=黄色 |
|
|
|
|
|
|
|
|
|
となりますね。
上記のタイリングペイントの上をスクロールさせる事によって、4色(青、水色、赤、黄色)がスクロールして見えるようになるのです。
※1
タイリングペイントをする事によって緑単色は存在しなくなります。
これをパレット機能(指定の色を変えて見せる機能)を使用し以下のようにしてみます。
緑のみ |
|
|
|
= |
|
→ |
|
に変更※1 |
緑なし |
|
+青 |
|
=青 |
|
→ |
|
に変更 |
緑 |
|
+青 |
|
=水色 |
|
→ |
|
に変更 |
緑なし |
|
+赤 |
|
=赤 |
|
→ |
|
に変更 |
緑 |
|
+赤 |
|
=黄色 |
|
→ |
|
に変更 |
|
|
|
|
|
|
|
|
|
パレット機能を使うのは、自分のイメージするスクロール背景に近づける為です。
上記の例が正解と言う訳ではありません。
そうすると、以下のように動作します。
緑(G)
VRAMしかスクロールさせていないのに、あたかも4色が動いているかのように見えますね。
http://www.youtube.com/watch?v=zhfJNRDH-Ss
地上キャラクターは(これが再現していませんが・・)赤と青のVRAMを使用し動かします。
これによって、上記※1の水色も表現出来ます。
一応、Windowsでも見れるようにしました
→ ダウンロード
ファイルを解凍後、以下のファイルを実行してみて下さい。
Explosion1-1.exeが単色スクロール、Explosion1-2.exeが4色スクロールです。
一応、自機はカーソル移動キーで動き、ZとXキーで弾を発射できます。(それだけですが・・・)
1985年当時は、こんな苦労をしてスクロールを実現していた訳です。
まさに、隔世の感ですね。
最新版(Windows移植版)はコチラ
今となっては簡単に実現できる事ですが、当時としては「出来そうに無い事を実現させると言う楽しみ」はあったのかもしれません。