1 ポイント 投稿者 GN⁺ 2024-07-30 | 1件のコメント | WhatsAppで共有

スーパーファミコンのビデオシステム設計

90年代初頭のテレビの内部
  • スーパーファミコンは標準的なテレビ受像機に映像を出力する
  • テレビはアンテナを通じてアナログテレビ放送(NTSC)を受信し、チューナーで信号を受け取ってCRT(ブラウン管)に画像を表示する
  • テレビには補助入力(AUX)があり、一般的なテレビ受像機には映像信号を送るコンポジット端子(黄色)と、ステレオ音声信号を送る専用ジャック(白色および赤色)がある
CRTの動作原理
  • CRTは15kHzで動作し、1秒あたり約15,000本の走査線を描く
  • CRTの内部には3つの電子銃があり、電子銃は常に正面へ電子を発射し、2組の磁石(垂直および水平)が電子を上下左右に移動させる
  • CRTにはピクセルはなく、電子銃から発射された電子は常に正しい色のストライプに到達する
CRTの制御方法
  • CRTは赤、緑、青の信号をそれぞれの電子銃に接続して受け取る
  • 同期信号(HSYNCおよびVSYNC)は1本の白いワイヤを通じて伝送され、これをコンポジット同期(CSYNC)と呼ぶ
  • CRTは信号を受け取り、電子銃を同期させようとする
CRTが画像を描く方法
  • CRTは左から右へ線を描く
  • HSYNCイベントを受け取ると画面左端(X=0)に戻り、VSYNCイベントを受け取ると画面最上部(Y=0)に戻る
  • CRTは右へ移動しながら下方向へ傾いて線を描く
CRT理解の核心
  • CRTの核心は、電子銃が画面右方向へ移動しながら下方向へ傾くことを理解する点にある
  • VSYNCが最後のHSYNCと同時に発生すると、線は常に画面上の同じ位置に描かれる
  • VSYNCが2つのHSYNCの間で発生すると、線は交差するように描かれる
線の内部の内容
  • CRTは線を描くときはデジタル的だが、線の内部の内容はアナログである
  • 3つの電子銃はRGBワイヤに直接接続されており、システムは色信号を自由に変化させられる
従来システムへの対応
  • SNESの設計者はCRTが扱える信号を提供しなければならなかった
  • NTSC信号の仕様に従う必要があった
  • 4:3の画面比率、1フィールドあたり262.5本の走査線、1本あたり341.25ドット、フィールド周波数59.94Hz
任天堂のエンジニアになる
  • CRTの動作原理を理解したあと、ビデオシステムを設計する必要があった
  • 262本の走査線を使ってプログレッシブモードを作り、59.94Hzのフレームレートを目標にした
  • 4:3の画面比率に合わせるため350ドットを使い、5,496,498Hzのドットクロックが必要だった
問題の解決
  • 5,496,498Hzのドットクロックは使用できなかった
  • マスターオシレーターを使い、サブシステムは分周器を通じてそれを利用する必要があった
  • オーバースキャンの問題を解決しなければならなかった
オーバースキャンの導入
  • 電子銃が水平または垂直にリセットされる際に電子を発射し続けると、目に見えるアーティファクトが発生する
  • テレビは画面領域をオーバースキャンし、画面がやや大きく表示される
  • VSYNCおよびHSYNCの後には電子銃を止める時間が必要である
SNESの垂直解像度の選択
  • 競合システムは224本の可視走査線を使用していた
  • 任天堂は262本の走査線を224本の可視走査線と38本の空白走査線に分けた
SNESの水平解像度の選択
  • 262本の走査線を使い、21.47727MHzのマスタークロックを用いて5.3693175MHzのドットクロックを得た
  • 341ドットを使って60.098Hzのフレームレートを得た
SNESの水平オーバースキャンの選択
  • 341ドットのうち256ドットを可視領域に使い、85ドットをHBLANKとして使用した
  • 画面比率は8:7となり、わずかな歪みが生じる
高解像度モード: インターレース
  • 垂直解像度は448本の走査線まで2倍に増やせる
  • 水平解像度を2倍にするのは難しい
PAL と NTSC
  • ヨーロッパではNTSCの代わりにPALが使われ、フランスではSECAMが使われる
  • PALは50Hzのフレームレートと1フィールドあたり312.5本の走査線を使用する
  • PAL版SNESは17.7344750MHzのマスタークロックを使用する
  • 可視解像度は224本の走査線と256ドットを使い、フレームレートは50.00697891Hzである
出力
  • SNESはCRT信号をコンポジットおよびS-Videoに変換する
  • AVコネクタを通じて純粋な"RGB/CSync"信号、"Composite"信号、そしてS-Video信号を提供する

GN⁺の要約

  • この記事はスーパーファミコンのビデオシステムの設計過程を説明し、CRTの動作原理と信号処理の方法を扱っている
  • CRTの動作方式と信号処理への理解を通じて、SNESビデオシステムの設計上の判断を説明している
  • この記事はビデオゲーム機のハードウェア設計に関心のある人にとって有益であり、CRT技術の歴史と動作原理を理解する助けになる
  • 類似した機能を持つ他のプロジェクトとしては、Sega Genesis と Neo-Geo AES がある

1件のコメント

 
GN⁺ 2024-07-30
Hacker Newsのコメント
  • 224は16で割り切れる数なので、グラフィックレンダリングパイプラインのタイルマップとうまく噛み合う

    • CGA/EGA/VGAはいずれも320x200モードを備えていた
    • NESは256x224で、SNESも同様だった
    • Pac-manはアーケードで288x224だった
    • PC上のPacmanクローンはいつも妙に見えた
    • その仕組みの詳細を学んで初めて理解できた
    • ピクセルはPCの解像度では正方形ではない
    • Pacmanの移植版やクローンを見ると、世界の大きさ、タイルの大きさ、スプライトの大きさを把握しようとしていた
  • 59.94Hzは奇妙な数字だ

    • 北米といくつかの他地域では60Hzの電力網を使っている
  • 8:7のアートワーク比率は、他プラットフォームに移植されたSFC/SNESゲームで見られる

    • PSX/Saturn/PC版は元のアートを維持し、4:3になるようパディングを追加している
    • Saturn版のスクリーンショットを見ると、すべてが少し細すぎるように見える
  • ヨーロッパのゲームは50.00697891HzでVSYNCが発生するため、ゲームが意図より17%遅く動作する

    • Sonic the HedgehogをMega Driveで初めて遊んだときはがっかりした
    • NTSCとPALの速度差はYouTubeで知った
    • 音楽もPALではひどく聞こえる
    • SNES版DoоMはNTSC版のほうが画面が大きかった
    • NESでPunch-Outが得意だったが、アメリカで対戦していたら第1ラウンドで負けていただろう
  • TFAに誤字がある; 8:6の比率は4:3と同じだ

    • RF出力を使ってSNESとテレビアンテナを切り替えていた
  • 256x224(8:7)の出力解像度は4:3の画像に拡大される

    • SNESのドットクロックはATSC標準の正方形ピクセルのクロックより遅い
    • ピクセルが横方向に8/7だけ拡大され、8:7の解像度が64:49に拡大される
    • 224*(4/3) = 298 の可視ドットになる
    • 224*(7/6) = 261.33... の可視ドットのほうが近い
  • CRTの見た目を正確にシミュレートするエミュレータがあるのか気になる

    • GPUシェーダーで性能的には可能なはずだ
  • これによって、象徴的なゲームデザインがどのように成り立ったのかについての洞察が得られることを期待していた

    • SNESは大好きだったが、親を説得できなかった
    • 記事を書いてくれてありがとう。とても興味深かった