高解像度対応をやりたいその2

複数の解像度用のパラメータを切り替える仕組みを事前につくり、実験をしてみました. 実験内容はゲーム画面ではなく単純なテストパターンをだすだけです.

結果は 1600x1200 が映らない以外はわりと良好でした. 4:3 の画面でも音声の転送は(なぜか)うまくできていました. 1600x1200 が映らない理由は LCD 側の out of range だと思われますが、pixel clock が 162 MHz, TMDS encoding 後は10倍の 1.6 GHz になりますのでタイミング違反の可能性もあります.

気になる点: LCD 側の横引き延ばし設定

手元にある2つのモニタでは 4:3 の画面は横に引き延ばされてしまったので引き延ばしなしの設定 4:3 へ変えました. その後 16:9 の画面を写したところ今度は 4:3 を維持して 16:9 の画面を横に縮められてしまいました. 2つともです.

他のモニタでは引き延ばしをやめるだけにできた記憶があるんですが... 手動でこの設定を毎回やるのはふざけていると思いました.

気になる点: dotclock = master clock / 2 mode

縦に4倍に伸ばす場合にpixel aspect ratio は 3:4 (0.75) にするつもりでしたが、これは 2:3 (0.67) より大きくなりまして、画面に収まりません.

このモードは縦4倍モードでは対応しないつもりです.

内部処理を考えていたのですが 720p mode と比べて矛盾点が増えすぎていること、使っているソフトが少ないこと(知っている限り3本ぐらい)、真剣に対応すると時間がかかることが理由です.

気になる点: 1280x960 mode

実装をある程度やるつもりですが計算上やはり横幅が足りていないのが気になります. pixel aspect ratio 5:4 の場合は 256 pixel の場合は確かに画面に収まるのですがその左右にある backdrop 領域がまったくでません.
pixel aspect ratio 4:4 の場合は画面に収まらないのでいまのイメージ選択画面の左端のカーソルも表示されないと思われます.

ただし縦に余白が出ないことと、 pixel clock が 720p の次に遅いのも開発者としては利点と考えております.