超暇人MSX

X1

X1

X1メモリマップ          ↓バンク切替↓        I/O  0000H ―――――――  ――――――――  ―――――――              IPL ROM  1000H          ‐‐‐‐‐‐‐‐                          省略     IOCS       BIOS ROM      ‐‐‐‐‐‐‐4000H     モニター     BASICインタープリタ             グラフィック                        VRAM(青)  8000H ‐‐‐‐‐‐‐  ――――――――  ‐‐‐‐‐‐‐8000H     フリーエリア     ‐‐‐‐‐‐‐←NEWONで指定      グラフィック     テキスト・エリア               VRAM(赤)     ‐‐‐‐‐‐‐     BASICワーク・エリア     ‐‐‐‐‐‐‐←  から引く100H   ‐‐‐‐‐‐‐C000H     FAC領域      ↓     ‐‐‐‐‐‐‐←LIMITで指定      グラフィック     マシン語用フリーエリア  (又はCLEAR)      VRAM(緑)  FF00H ‐‐‐‐‐‐‐     システムワーク・エリア  FFFFH ―――――――            ―――――――FFFFH  0000H〜7FFFHのROM、RAM切替えはI/Oポート0番にデータを出力して行う  ポート データ 機能    (例)ROM切替え   RAM切替え  00H  1DH  ROM選択     LD A,1DH   LD A,1EH     1EH  RAM選択     OUT (0),A   OUT (0),A X1のVRAMアドレスと画面の対応  (例)青バンク4000H〜7FFFH    (0,0)         (639,0)   1 4000・4001・・・・・・・・404E・404F 0列目     1段目の次は9段目とい   2 4800・4801・・・・・・・・484E・484F 1列目     う具合にアドレスが繋が     ・  ・      ・   ・        っており、193段目の   8 7800・7801・・・・・・・・784E・784F 7列目     終りまで来ると48バイ   9 4050・4051・・・・・・・・409E・409F 0列目の続き トの非表示部分を置いて  10 4850・4851・・・・・・・・489E・489F 1列目の続き 再び上に戻って2段目、     ・  ・      ・   ・        10段目という具合に、     ・  ・      ・   ・        Y方向8ピクセル置きに 200 7F80・7F81・・・・・・・・789E・789F 7列目の最後 連続したメモリと対応し    (0,199)        (639,199)     ている  計算しやすいようにVRAM青のオフセット4000H(16384)を引いて考えると     1段目  9段目   193段目   非表示   2段目  VRAM 0〜3F 40〜9F ・・・ 780〜7CF  7D0〜7FF  800〜84F  10進 0〜79 80〜159・・・1920〜1999 2000〜2047 2048〜2127  具体的な色の出し方 LD A,0FFH ;Aにデータ LD BC,4000H ;BCに青の先頭アドレス(Bに40H、Cに0) OUT (C),A ;ポート0番にAのデータを出力 LD BC,8000H ;BCに赤の先頭アドレス(Bに80H、Cに0) OUT (C),A ;ポート0番にAのデータを出力 LD BC,0C000H ;BCに緑の先頭アドレス(BにC0H、Cに0) OUT (C),A ;ポート0番にAのデータを出力  これで、画面の左上に横8ピクセルの白い線が出る ゲーム機として見た場合のX1の特徴  特有の機能   PCG    ・・・8×8、8色の文字を最大256個定義できる   表示優先度変更・・・文字面と背景面のどちらを手前に表示するか変更可能   これらの機能を生かせば8ドット単位で移動する擬似スプライトが可能   (背景画面にキャラを描くより、かなり速い)    特有の弱点   割込みが無い ・・・なぜか1秒毎の割込みしか無いので、自分でZ80の             サイクル(ステート)を数えて、キャラを移動したり             BGMを鳴らしたりする必要が有る。エエッ!   変則VRAM ・・・上記「X1のVRAMアドレスと画面の対応」参照     キー遅延   ・・・キーの入力判定が遅いので、リアルタイムゲームでは             入力が間に合わないことが頻繁に有る!  

こういう特徴から見て私が思うに、80年代後期の市販クラスのゲームを作ろうとする場合、かなり考えて作らないと、スクロールで画面が波打ったり、BGMが間延びしたりしやすいかもしれません。思っただけで、実際はどうなのか知りません。でも、割込みが1秒毎って・・・。
 表示優先度を変えられるPCGは良さそうです。

X1ゲーム (と88ゲームのスクロール) について良く分かる“無断リンク”です
  富山県のソフトハウス、『風雅システム』のテクニカル記事

ページのTOPへもどる

このページは、1024×768画面に合わせて作りました。ちゃんと見えなかったらスミマセン