[In English] [戻る]

スクリーン3のススメ


目次

18禁モザイク宣言!
SCREEN3に関する基礎知識
解明!SCREEN3強制212ラインモード
SCREEN3の疑似ビットマップ化(超必殺技伝授)
MSX初!SCREEN3モザイク画像(ダウンロード可能)
SCREEN5=>3コンバータの性能を知る
未成年もOK!MSX初の本格モザイク画ツール
空前絶後!MSX2でフル画面アニメーション(ダウンロード可能)
MSXのお部屋へ戻る



SCREEN3の18禁モザイク宣言!

解像度の低さのため、世間では全くと言っていいほど利用されていないSCREEN3。このSCREEN3の有効的な利用方法を紹介します。さあ、みんなもSCREEN3をしゃぶりつくそう!!

1996年4月24日 SCREEN3推進協議会




SCREEN3に関する基礎知識

解像度横64×縦48ドット(ブロック)
同時発色数512色中16色
別名マルチカラーモード
サポート機種初代MSX(1)以降
VRAMの様子パターン名称テーブル
一般人の見識「こんなん何の役に立つん?」
任意座標のVRAMアドレスを求める方法について。
(X,Y):座標とすると、AD:VRAMアドレスは、
   AD=(X/2)*8+(Y/8)*256+YMOD8
で求まる。ただし、
   Xが偶数ドットならVRAMのAD番地が示す内容の上位4ビット
   Xが奇数ドットならVRAMのAD番地が示す内容の下位4ビット
が求めるデータである。



SCREEN3の縦を53ドットに拡張する

SCREEN3の縦幅は48ドットである。しかし、以下の操作で53ドットにできる。

  1. スクリーンモードを3にする
  2. VDPレジスタR#9の最上位ビットを1にする(212ライン表示になる)
    しかし、このままでは、下5ラインは正確に表示できていない。
  3. VRAMのパターン名称テーブル&HB00から順に次のような値を書き込む。 192,193,194,...,222,223,192,193,...,222,223,192,193,...というように、192から223までの値を4回繰り返して合計128バイト分書き込んでいく。おしまい。

サンプルリスト
10 SCREEN3:COLOR15,4,7:CLS
20 VDP(10)=VDP(10)OR128
30 FOR I=0 TO 127
40 VPOKE &HB00+I,IMOD32+192
50 NEXT
60 GOTO60
その時のVRAMにあるパターン名称テーブルの様子を見る。

だがしかし、大きな欠点があります。「拡張された下の5ラインは通常のBASICで書き込めない」のです。つまり、下の5ラインはPSET、POINT、PAINT、LINE命令等が役に立ちません。直接VDPをアクセスして書き込む必要があります。なお、拙作の「モザイク90」では拡張BASICをつくって、下5ラインをBASICレベルでアクセスできるようにしています。




SCREEN3を疑似ビットマップにする裏技!

SCREEN3のVRAM構成は複雑で、矩形範囲のコピーがとてもしにくい。そこで、パターン名称テーブルをいじることでビットマップであるSCREEN5のようなVRAM構成にできます。これで、SCREEN3格闘ゲームも夢じゃない!

とりあえず、疑似ビットマップ化したSCREEN3のパターン名称テーブルの様子を見る。
任意座標のVRAMアドレスを求める方法について。
(X,Y):座標とすると、AD:VRAMアドレスは、
   AD=(X/2)*64+Y
で求まる。ただし、
   Xが偶数ドットならVRAMのAD番地が示す内容の上位4ビット
   Xが奇数ドットならVRAMのAD番地が示す内容の下位4ビット
が求めるデータである。
サンプルリスト解説
100 'save"new-sc3.bas
110 SCREEN3
120 'BLOAD"ad",S:GOTO220
130 FORK=0TO7
140 FORI=0TO31
150 FORJ=0TO3
160 VPOKE&H800+J*32+I+K*128,I*8+K
170 NEXT
180 NEXT
190 NEXT
200 BSAVE"ad",&H800,&HBFFF,S
210 '
220 BEEP:X=12:Y=12
230 AD=(X\2)*64+Y
240 VPOKE AD,&H79
250 '
260 FORI=0TO900:VPOKE I,&HF9:NEXT
270 GOTO270
130-190行で疑似ビットマップ化を行っています。

220-240行で、任意の座標に点を置きます。(正確には任意の1バイト)

260行で、疑似ビットマップ化されたパターン名称テーブルのVRAMのつながりがわかります。




驚愕!MSX初(?)のSCREEN3画像

screen3 picture

「SCREEN3バニーちゃん」
作者:LARz
サイズ:横64×縦53ドット
使用ツール:S3エディタ(ライジンオー氏作)
MSX用のファイル('96.4.24)を落とす




SCREEN5=>3コンバータの性能を知る

SCREEN5->3コンバータを利用した例を以下に示す。細かい部分はつぶれてしまいますがそれなりに雰囲気は残っているでしょう。目を細めて見るか、眼鏡をかけている人は眼鏡を外して見ればキレイに見えます。
なお、このコーナーの画像は全てLARzさんの描かれたものです。
screen5 picture screen3 picture
SCREEN5 SCREEN3


screen5 picture screen3 picture
SCREEN5 SCREEN3


screen7 picture screen3 picture
SCREEN7 SCREEN3




快感!SCREEN3フル画面アニメーション

メモリをくわないスクリーン3の特徴を利用すればフル画面アニメーションができます。「ソフ倫」規定にパス(!?)する4倍以上のモザイクがかかっていますが、アニメーションとして動けばその粗さは目立たなくなります。


sc3 animation

スクリーン3アニメのやり方について。VRAMの&H&H1000から&H800ごとにSC3のパターンジェネレータテーブルの内容を書き込んでいきます。つぎに、パターンジェネレータテーブルのVRAMにおける先頭位置を示すVDPレジスタR#2を3、4、5、....と書き換えていけばパラパラとアニメします。VDP切り替えなので秒間30コマアニメも可能です。

 サンプルをもとに各自挑戦してみよう!MSXで動くこのフル画面デモは、上の動画よりもっと動きがいいぞ!



スクリーン3フル画面アニメーションサンプル(MSX2以降に対応)
「月にかわって...」('96.5.2)をダウンロードする。
「ファイヤー...」('96.5.17)をダウンロードする。
SCREEN5のしゃべるアニメ('96.5.17)もあります。



[In English] [戻る]