« マップ的におかしいトコロ 【X1でゼビウスを作る】 | トップページ | 父が亡くなりました。 »

2015年12月12日 (土)

ハードウェア(?)スクロール【X1でゼビウスを作る】

今回はテストプログラムです。
 
無印のX1にハードウェア・スクロールなんて機能あったの?
CRTCをイジって160×200を4画面にする事により、2ドットスクロールを実現させてみました。
当時(約30年前)にはそんな発想が出来なかった・・・というか(無印)X1で4画面に出来る事を知りませんでした。
 
「4画面にして、その先頭アドレスを変化させればスクロールして見える」という事なので、ハードウェアスクロールと言えなくもないのかと思います。
 (スクロール機能と言う訳ではありませんけどね)
 
この場合、ただでさえX1はVRAMの配置がややこしいのに、この手法を使う事により、常にVRAMアドレスが変化してしまいます。
 
VRAMアドレス計算が、かなり煩雑にはなるのですが、従来の差分描画スクロールと比較しても、その(スクロールにおける)処理コストは大幅に激減しました。
 
それ以外のデメリットは、マップチップ・データの増大です。
(綺麗に出来るのだからメリットとも言う)
従来スクロールでは1プレーン描画でしたが、このスクロール手法により3プレーン描画だろうが、処理コストに大きな差は無いのです。
しかし、マップチップ容量を3倍にすると(従来1800Byte→5400Byte)かなりメモリを圧迫してしまいますね。
 
今回は、2プレーン描画でやってみました。
2倍のマップチップデータなんて、Newゼビウスに組み込む容量はありません。だって残り200Byte位しか残っていなののですから・・・
 
大幅にメモリ節約をするには、マップデータの圧縮しか考えられません。
マップは(マップチップ単位で)横80×縦160個です。(12800Byte)
こいつをランレングス圧縮したら、約5200Byte(約40%)になりました。
(データ自体は40%になりましたが、それに「展開マップ」用として2880Byteがプラスされるので、トータルで言えば約63%、5000byte程の削減です)
 
これは、従来のスクロールが縦方向に対してデータが連続するように作ってあったから、圧縮効果が出たのだと思います。
 
森や海(湖?)なんてベタ状態でしたからね。
しかし、折角のハードウェアスクロールなのだから、少しは見栄えを良くしたいものです。
 
なので、森や海はデータ的には同一としておいて、マップ展開時に(これはエリア開始時に行う)データ展開とは別に「森パターン展開」「海パターン展開」のロジックを組み込んでデータ量の削減をしています。
 
 
 
※従来のスクロールスピードの約2倍で動作させています。もちろんウェイト処理を掛けてあり、ノンウェイトにしたら、動画キャプチャが追いつかない程の速度で動きます。
その位、処理速度においての恩恵が大きいのです。流石ハード処理!
 
スクロール画面は(2プレーン描画なのですが)電波版X1ゼビウスに近づいた気がしませんか?
 
これをゲームとして動かしてみたいな~
まぁ、追々と・・・

|

« マップ的におかしいトコロ 【X1でゼビウスを作る】 | トップページ | 父が亡くなりました。 »

NEWゼビウス for X1」カテゴリの記事

コメント

こんにちは。

これはすごい。X1のCRTCっていろいろできるのですね。
X1でハードウェアスクロール的なことができるとは本当に驚きです。

投稿: S.F. | 2015年12月12日 (土) 17時21分

S.Fさんへ

>X1のCRTCっていろいろできるのですね。

そうですね。かなり自在なコントロールが出来そうです。
当時(約30年前)には、知りませんでした。
(電波ゼビウスがCRTCをイジっているのは、どこかの記事で読んだ記憶だけはありますが)

>X1でハードウェアスクロール的なことができるとは本当に驚きです。

ハードウェアスクロール機能と言う訳では無いのですが、うまく利用すれば結果的にそう言う事が出来ます。
画面左上のVRAM開始アドレスがCRTCにより変更可能なので、ソレを使っています。

投稿: トモカズ | 2015年12月14日 (月) 17時57分

そういえば試験に出るX1に4画面にする云々の記述がちらっと在ったなあ、と
もやっと思い出しながら口半開きのまま動画見入ってしまいました

投稿: | 2015年12月16日 (水) 21時56分

X1にしろX68000にしろテレビ事業部のPCはCRTC周りの自由度が高い気がしますね。やはり映像部門だからなのかな。
地上グラフィックがかなりグレードアップしてさらに素晴らしくなったように思います。
引き続き陰ながら応援をさせていただきますので、頑張ってください。

投稿: ぱおとう | 2015年12月23日 (水) 16時36分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/502190/62855522

この記事へのトラックバック一覧です: ハードウェア(?)スクロール【X1でゼビウスを作る】:

« マップ的におかしいトコロ 【X1でゼビウスを作る】 | トップページ | 父が亡くなりました。 »