intent上で動作するアスキー公式のMSXエミュレータは、あらゆるPC、あらゆるゲーム機、あらゆる家電に組み込みが可能であることを意味します。公式MSXエミュレータがどのような雰囲気で各機種で動作されるのか、ここでは解像度について考えてみましょう。
アスペクト比
MSX-BASICのCIRCLE文を用いて画面上に正円を描くと、テレビやディスプレイを通して映し出されるMSX実機の映像は、実は正円に見えません。やや横長の円として見えます。かたやPC上で描いた正円はほぼ正円に見えます。
これはなぜかと言うと、1ドットの縦横比(アスペクト比)がMSXとPCで異なるからで、PCを始めとする多くのハードウェアはドットが正方形なのに対し、MSXの場合はドットが横長ということが分かります。
公式エミュレータの場合、MSX以外のハードウェアでMSXの画像を映し出さなければならないため、このアスペクト比が、どうしても変わってしまいます。さらに言えば、MSX実機で見ていた画面はエミュレータではやや縦長に見えてしまいます。MSX実機で描いた人物画をPCで見ると痩せて見えるし、PCで描いた人物画をMSX実機で見ると太って見えるのです。
256とか512とかいう“2のべき乗”という数字をMSXではよく使われますが、これは当時のハードウェア的な限界から出てきた要因が強く、CPUパワーやメモリは有り余っているから、それらをブン回してきりの良い数字で開発する…というような現在のハードウェア事情からすれば、256や512といった数字はかえって面倒くさい数字となってしまいました。最近のPCやPDA、ゲーム機の画面解像度が似たり寄ったりな感じでほぼ統一されているのは、大量生産によるコスト削減や開発効率といった事情が影響しています。
よって、アスペクト比をMSX実機そのものに合わせることは、現状ではかなり厳しいです。公式エミュレータの動作機種に“横256ドット/512ドットで全画面表示できる機能”を搭載していれば、MSX実機に近いアスペクト比で画面表示できる可能性はありますが、あまり期待はできないかもしれません。
MSXより高い解像度の機種
PC系、次世代ゲーム機など、最近では少なくとも640×480ドットの画面モードを持っており、MSXの最大解像度である512×424ドットを越える解像度があります。
そこで、640×480ドットの実画面にMSXの仮想画面(512×424)を中央にはめ込み、余白をMSXの背景色で埋めます。
また、ハードウェア的・ソフトウェア的に可能である場合、512×424の仮想画面を640×480ドットをアンチエイリアシング処理で拡大表示するモードの搭載を検討しています。これはMSX実機に近いアスペクト比で画像を表示させる為です。
MSXより低い解像度の機種
主に液晶画面を採用した携帯端末では、以下の解像度にほぼ限定されます。- 320×240ドット (Pocket PC、Zaurus、各種PDA)
- 240×160ドット (ゲームボーイアドバンス、各種PDA)
- 240×120ドット (Data Slimなど)
- 160×160ドット (Palm)
- 94×72ドット (iモード)
320×240ドットの場合
すべてのスクリーンモードを256×212ドットで表示します。320×240ドットの実画面にMSXの仮想画面(256×212)を中央にはめ込み、余白をMSXの背景色で埋めます。
例外については以下の通りです。
- SCREEN6/7は横2ドット毎に色を合成して横256ドットに収め、アンチエイリアシング処理で縮小表示する
- インターレース表示を行う場合は、縦2ドット毎に色を合成して縦212ドットに収め、アンチエイリアシング処理で縮小表示する
320x240ドットあれば、ほぼ問題無く表示できる |
左右を切り落とす必要があるが、縦は圧縮せずに使える | 画面を横に使うと問題無く表示できるが、使いづらい? |
240×160ドットの場合
240×160ドットの画面は厄介で、これだけ画面を縮小してもまだ面積が足りません。ここからが議論のしどころなのですが、とりあえず私の解決法を挙げたいと思います。
- 横256ドットのうち、左右8ドットを切り落として240ドットにする
- 縦192/212ドットを、縦160ドットに縮小表示する(アンチエイリアス処理)
- 何かのキー操作で、256×212ドットの実画面をスクロール表示する
まず横方向への対応ですが、テレビによっては画面の端から数ドットは映らない場合があり、ゲーム業界では実画面いっぱいに画面を利用することはタブーとされています。よって左右8ドットを切り落としてもゲームの表示はそれほど差し支ないだろうと考え、実際には256ドット分表示しているものの、両端16ドット分が“映っていない”状態を作り出します。
次に縦方向への対応ですが、アスペクト比が大幅に変化するものの、アンチエイリアスで強制的に縦160ドットで縮小表示すべきと考えました。とは言え、MSX1用のソフトならまだしも、MSX2用のソフトとなると縦に52ドット分も圧縮しなくてはならず、しかもSCREEN7に至っては横の解像度も半分になり、こんなに圧縮して文字が読めるのだろうかと不安は残ります。(ただ、ブラウン管やトリニトロン管などを通すとぼやけて見えても、液晶ではそれほどぼやけて見えないのかもしれません)
そこでせめてもの解決策で、縦212ドットの実画面表示も組み込みます。例えば、通常は240×160ドットで縮小表示するところを、何かキー(ここでは仮にシフトキー)を押すと縦212ドットの実画面で表示します。このままでは画面外が見えないので、シフトキーを押しながらカーソルキーを押すと窓の中をのぞくように自由にスクロール表示します。シフトキーを離すと縮小画面に戻りますが、シフトキーが縮小ON/OFFのトグルスイッチになっても良いかもしれません。
この方法が240×160ドットの画面モードでMSXのソフトを表示する最善策と考えたのですが、皆さんはどうお考えでしょうか?ぜひともご意見ください。
明るい矩形領域が240×160ドットの面積 | 文字がぼやけるが、かろうじて読める!? |
出典: The Castle (アスキー) | MSX1用のゲームは意外とイケるかもしれん… |
携帯電話
携帯電話は解像度がこれといって定まらないまま各社が新製品を続々と発表しており、今後も予想がつきません。参考までにiモードの(現在の)推奨解像度は94×72ドットですので、これを元に携帯電話での可能性を探ります。
画面中央の明るい部分がiモードで標準とされる面積です。いくら画面を縮小したところで、このサイズでは焼け石に水です。はっきり言って、携帯電話では過去のコンテンツは満足に楽しめないでしょう。携帯電話向けにコンテンツを興す必要がありそうです。
iモードの94×72ドット | 参考: D502iにハメコミ合成 |
出典: テセウス (アスキー) | これでテセウスやれるかっつーの! |
携帯電話の画面をPC上で見ると縦につぶしたような絵に見えるかもしれませんが、これもアスペクト比がPCと違うためで、携帯電話は縦にやや長いドットで構成されているようです。ちなみに携帯電話のカラー256色は、なんとMSXのSCREEN8と同じデジタル256色なのです。SCREEN8用のグラフィックは、そのままの色で携帯電話へ反映させることができます。また、6万色表示が可能な携帯電話がついに登場しましたが、MSX2+の自然画モード(19268色)がようやく実現できると考えれば、たいへん喜ばしいことです。
問題は、携帯電話ではMSXの仮想画面からどの位置で切りぬくか、です。プログラムのし易さから言えば画面の左上から切り抜くのが妥当なのですが、携帯電話は日に日に性能を上げている現状から言えば、実画面の中央で切り抜り、来るべき広い解像度にも対応できるようにしておくのも手かもしれません。
また、携帯電話用のコンテンツをMSX実機や公式エミュレータで動作させるにあたり、全画面表示する解像度を自由に設定できるモードをVDPに追加して、公式エミュレータから機能を盛り込んでおくといった野心的な意見も出始めています。携帯電話向けの機能については更なる議論が必要でしょう。
まとめ
MSX公式エミュレータが各機種に移植されるにあたり、解像度の問題は避けられません。そして恐らく以下の2択を迫られると思います。
- 頑張って全画面表示する(試みる)
- 全画面表示をあきらめ、切り抜き画像で表示する
仮に切り抜き画像で表示することになった場合、その機種に向けてコンテンツを制作することを想定し、どの位置で画面を切り抜くのがベストなのか、MSXユーザー間で議論する必要があります。これは新たな「仕様」を決める重要な問題です。
また、仮想画面を拡大・縮小表示する場合も、どのドットを間引いたり引き伸ばしたり、ドットを合成したりすると平均して良い画質が得られるのか、といった地味な研究も必要です。