サーカスチャーリーを動かしてみたい

単にタイトル画面の星がばーとでる演出が好きなだけだったりする。こいつは縦画面なので高解像度で出して、画面回転もかかった状態でだしてみたい。

元の解像度

  • width: 288
  • height: 264
  • pixel freq: 18.432 MHz / 4
  • line freq:16.0 kHz
  • frame freq: 60.6060Hz (循環小数で60が無限に続く)
  • 表示領域: [0, 16] -> [256, 240] (256x224)

この頃のコナミ基板の解像度は大体これで、ブラウン管に映す場合に左右の黒い隙間を埋めるために横幅をものすごく広げるとなんとも言えない画面になる。

pixel freq が遅いのが原因で、このまま upscan すると横長な画面が出てくる。ブラウン管はともかく、液晶モニタでは今の標準規格にそれてて写らなかったりする。
てきとーに調整してもいいのだが、再現度を上げるためには frame freq は同じ時間にしたい。60.6060 Hz の値を出すには、pixel freq, width, height の3つのパラメータを一定の比率にすればでるみたいだが、よくわからないので総当たりで計算してみたらいくつかでてきたので動かしてみた。

300x550@40MHz (横画面, x2 upscan)

  • width: 330
  • height: 550
  • pixel freq: 40 MHz / 4
  • line freq: 33.3 kHz
  • frame freq:60.6060 Hz

表示領域が横に収まらない。 scanline 550 は VGA 規格の 525 からそれるので液晶モニタでは写らない可能性が高い。

375x528@48MHz (横画面, x2 upscan)

  • width: 375
  • height: 528
  • pixel freq: 48 MHz / 4
  • line freq: 32.0 kHz
  • frame freq:60.6060 Hz

pixel freq が高い分、横に収まる。scanline の本数も 3 多いだけなので許容範囲になりやすい。

1056x625@40MHz (縦画面向け)

  • width: 1056
  • height: 625
  • pixel freq: 40 MHz
  • line freq: 37.9 kHz
  • frame freq:60.6060 Hz

SVGA 800x600(60Hz) 規格とほとんど同じで scanine の本数が 3 少ない。pixel freq も同じなので液晶でも pixel がにじまずに写る。

1200x660@48MHz (縦画面向け)

  • width: 1200
  • height: 660
  • pixel freq: 48 MHz
  • line freq: 40.0 kHz
  • frame freq:60.6060 Hz

scanline の本数が大幅に増えるので、液晶モニタでは out of range とでやすい。

総括

pixel freq が同じであれば動作中にスイッチを切り換えて、縦横どっちでもいけますよみたいな設計もいけるんだが、横画面と縦画面で良い結果の master freq が違うのでどうしたものか。というところだった。

48MHz ベースでやるほうが DE1 の都合ではいいのと、片方の液晶モニタでは 1200x600 が写るのでそっちかなぁ。