Saturday, January 14, 2012

プチコンでMSXのタイトル画面 その1

プチコンでMSX(2,2+)のタイトル画面を再現してみようとおもいました。

実機やエミュレータで動きをみてると走査線割り込みを使っていそうなのですが、プチコンでそれはできません。
しかしプチコンには
  • 豊富なBG定義(上画面で1024個)
  • 2ページのスクロールレイヤー(BG)
  • ウィンドウ機能(BGCLIP)
があるので、それなりに再現できそうです。

MSXのロゴをBG画面に作るにあたり、
  1. グラフィック画面に描画
  2. グラフィック画面を読み取り
  3. キャラクタパターンへ変換
  4. BGキャラ定義
という流れで作ることにしました。

今回は1.の部分です。

方針が決まったところで、次はデータ作成です。
MSX2,2+のタイトルロゴはこんな感じです。
MSX2のタイトル画面。2+だとVRAMではなくRAMとなる
"MSX"の部分はSCREEN6らしいので、ピクセル数は512x212になります。
("VRAM:128KBytes"の部分はSCREEN5っぽいですが)
プチコンの画面は256x192なので、横方向を1/2にし、さらに縦192ドット以降は無視。

もととなる画像から位置を割り出し、GLINEで書いていきます。
黒い部分は(23,43)-(234,123)てな感じで。※この大きさが後で問題に。。

データを打ち込み、描画結果を見ながら適当に補正し、思いつきで短くしてみた結果が以下のプログラムです。
MSXタイトルロゴ作成プログラム。謎の文字列がいい感じ
期せずして1画面に収まりました。(1行目GOSUB @SETUPはとび先でRETURNしているだけです。消し忘れ)
とはいえ、いきなりこんなリストになったわけではありません。最初はDATA文で数字で座標を打ち込み、見栄えを確認してからデータを圧縮・プログラムを変更しています。

プチコンでの実行結果は次の画像です。
MSXタイトルロゴ作成プログラム実行結果。一瞬で表示される
なかなかそっくりにできたのではないでしょうか。
Sの曲線がそれっぽくできました。
ただ斜め線ががたがたに見えるのがやや残念なところです。
本物の画面をよく見るとわかりますが、斜め線では灰色も使用しており、アンチエイリアシングされています。
でもめんどくさい現状のできばえに満足してしまったので、灰色ピクセルの再現はしませんでした。

「MSX」はMSXライセンシングコーポレーションの登録商標です。