MSXの表示についてへ戻る

MSXの表示領域について

 MSX PLAYer(MSX公式エミュレータ)では例外を除いて、256x212あるいは512x424ドットの図形表示可能領域のすべてが画面に表示される。今なら、そんなこと当たり前ではないか、と考えられるであろう。しかし、私の使っていたMSX2では横256ドットの両端は画面からはみ出てしまい、幸い、専用ディスプレイを買っていたため、スイッチ操作で辛うじてほぼ全体が表示できたと記憶している。テレビをディスプレイとして使っていた方は、はみ出ることが多かったと思う。

● カラーテレビの都合

 なぜ、横がはみ出ることになったのかを理解するには、MSX開発当時のディスプレイ事情から知る必要がある。パソコンがまだ珍しかった時代、コンピュータ専用のディスプレイ、ましてや高解像度のカラーディスプレイはとても高価であった。だから、各社のパソコンにはRFコンバータというテレビ接続用の小型の箱が付属していた。つまり、パソコンのディスプレイと言えば、すなわち家庭用テレビの時代であったわけだ。MSXはRFモジュレータ内蔵の機種が多かったのではないかと思う。もちろん、カラーテレビはとっくに普及していた。

 カラーテレビは白黒テレビとの互換性のために、巧妙な仕掛けでカラー表示を実現している。白黒に相当する輝度信号はそのままにして、色の成分を分離し3.579545MHz(≒3.58MHz)の色副搬送波を色の濃さで振幅変調して輝度信号に重層しているのである。色相は位相で表現する。
 3.58MHzには思い当たる方もおられるであろう。そう、MSX〜MSX2+のクロック周波数である。Z80A CPUの能力は4MHzなのでわずかに(約10%)損をしていることになる。
 ちなみに3.579545は半端に思えるが、これは音声搬送波4.5MHzとの関係で巧妙に計算された値だそうである。3.579545≒4.5/286*(455/2)

● VDP TI TMS9918A

 最初のMSXにはTexas Instruments(TI)社のTMS9918A(以下9918と略記)という型番のICがディスプレイ用にそのまま使われていた。もともとはTI社のオリジナル16bit CPU LSI向けのICである。
 SCREENモードについては別に説明する機会があると思うので、ここでは9918のマニュアルからビデオ信号に関する部分を抜粋してみたい。

 9918では10.738635MHzのマスタークロックから6相の3.579545MHzの内部クロックが生成される。通常、ビデオの標準信号であるNTSC信号では3.579545MHzの1/2波分の時間が水平の単位になるのだが、9918では4相分、つまり3.579545MHzの4/6波分を水平1ドット分とし、この時間をpixel clock cycleと称している。
 NTSCでは水平1期間は3.579545Hzの(455/2)波分だが、9918では極めて近い(456/2)波分を採用している(つまり、MSXの画像信号は厳密にはNTSCではなかった)。この水平一期間を9918のドットに換算すると342ドット分となる。
 また、縦1期間(フィールド)はNTSCではインターレースを採用しているので(525/2)ライン分になるが、MSXでは262本になっている。今流行の言葉で言うとプログレッシブ表示だったわけだ。

● テレビの有効表示範囲

 通常のテレビは横4:縦3の表示比率になっている。4:3で表示されるのは、水平有効期間、有効走査線の部分である。NTSCの水平有効期間は82.8%で、有効走査線は480本(91.4%)程度である。アナログだけに、きっちりしたものではなさそうである。
 MSXの表示領域は水平342(=456*3/4)ドットの時間中256ドット表示だから、74.9%の表示となり、水平有効期間内には入っている。縦は262本中212本だから、80.9%となり、こちらも有効走査線内である。

水平 パターン
マルチカラー
テキスト
有効ドット数 256 240
右周辺部 15 25
右ブランク 8 8
水平同期 26 26
左ブランク1 2 2
バースト信号 14 14
左ブランク2 8 8
左周辺部 13 19
合計 342 342
垂直 走査線数
有効ライン数 192
下周辺部 24
下ブランク 3
垂直同期 3
上ブランク 13
上周辺部 27
合計 262
TMS9918Aマニュアルより

● オーバースキャン

 ところで、通常のテレビは水平有効期間、有効走査線のすべてを表示しているわけではない(オーバースキャン)。元々は画面の端の表示が安定しないことから取られた措置、ということである。だから、視聴者に見せたい画像は上下・左右とも有効領域の90%の範囲に入れる。さらに、テロップなどの必ず読めないといけない情報は80%の範囲に入れる。計算してみると分かるが、MSXの横は90%にぎりぎり入らず、縦はぎりぎり入る。
 以上が、MSXの画面の左右の端の部分がテレビ表示ではわずかに見えない理由である。MSX仕様書では端の部分は意味のある情報を表示しないことが推奨されている。
 なお、私は実機を持っていないので試しようがないが、パソコンのビデオキャプチャ等ではNTSCの有効表示領域全体をキャプチャできる(アンダースキャン)から、キャプチャできたら表示の問題は生じないと思う。

 MSX2以降については手許に資料がないため、私には確かなことは言えない。

● 正方画素

 一ドットの縦と横の大きさが1:1の画素は正方画素と呼ばれる。正方画素はディジタル処理が容易になるので、最近のパソコンはほとんどが正方画素のはずである。
 MSXはテレビ規格に準じていたから、(4:3の有効画面を283x240ドットと仮定すると)画素は1.13:1と、わずかに横長となっていた。つまり、正方画素なら正円と表示されるものが、少し横長となる。
 MSX PLAYerは正方画素で表示されるので、当時開発されたソフトの人物像は少し痩せて表示されることになる。

● 今後の開発では

 ここからは私見になるが、今後は正方画素を前提とし、256x212(512x424)画素のすべてを使うソフトを開発すれば良いであろう。というのも、今の時代、正方画素以外のディスプレイは特注になってしまいそうだし、わざわざ両端を見えなくする理由もない、と思えるからである。
 私の知る限り、MSX PLAYerの開発段階では、表示に関してかなりの議論があったようだが、結局現在の形に落ち着いたようである。

2004年2月22日