
2026/07/06 6:45
NESでのコンポジットビデオ:なぜあんなに揺れているのか?
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
改善された以下のバージョンでは、欠落しているゲームタイトルが統合され、ソースマテリアルに基づいた「ミッシングドット」修正の条件性が明確化され、ランダムノイズと周期的ハードウェアアーティファクトの区別を失うことなく主要なメッセージは維持されます。
改善されたサマリー
NES は、ランダムのスタティックまたはゲームコードのエラーではなく、基本的なハードウェア機能として振る舞う反復する斜め色の滲みを表示します。この挙動はコンソールの内部オシレーター設計に起因しており、RGB 中間インターフェースを欠くため、NTSC ファミリー コンピューターは 21.47727 MHz の水晶を使用してデジタルでビデオ信号を処理し、スキャンラインあたり約 227.33 バーストサイクルの不協和比を作成します。滑らかな比率を持つシステム(セガマスターシステムや Apple II など)または異なる主オシレーター全体を使用する PAL コンソイルとは異なり、この特定の時限制限により、3 回ごとに反復する干渉が発生します。この不安定さを覆うために、任天堂はアクティブレンダリング中の結果アーティファクトを隠すために最後のスキャンラインのドット数をお互いに 341 と 340 の間を切り替える「ミッシングドット」のワークアラウンドを実装しました。特に、このパターンはレンダリングが停止されているとき、CHR-RAM アップロード中に回復して 3 フレーム反復になります。この本質的なハードウェア挙動が、カートリッジに依存せず、「マイトーボムジャック」「バトルトアドス」「シャンハイ」「アス・オブ・アセス」などの象徴的なタイトルにアーティファクトが継続する理由を説明します。したがって、開発者は正確な理論に基づかない現代的干渉やランダムノイズに頼るのではなく、この独自の「ミッシングドット」タイミングを考慮する必要があります。
本文
NES の「揺れる」映像:コンポジット・ビデオの奥深い技術解明
はじめに
ニンテンドー・エンターテインメント・システム(NES)は、8 ビット時代のアイコンでありながら、拡張性やデザインにおいては奇抜な存在でもありました。その映像信号には独特の特質があり、特にコンポジット・ビデオでは「画が揺れている」現象が見られます。この技術的な不思議さについて探求していきます。
- マイティ・ボム・ジャック:ピラミッドを舞台にした爆弾収集ゲームで、NES 象徴の一つ。
- タイトル画面の映像が完全に静止しないのは、コンポジット信号を改良したシステムを用いて PPU の直出し信号を増幅させているため。
- 上海(Apple ][):アップルの作品では「至静(しせい)」な画面を実現している。
- コンポジットビデオは信号の一種の圧縮であり、他の信号よりも劣っていることが理由の一つだが、各スキャンラインで異なる挙動を示す点は謎に満ちている。
映像が揺れる原因とは?
1. 干渉説の可能性と限界
説明試み 1:干渉について
- 外部干渉ではない:ノイズは通常ランダムだが、NES の画面では周期的なパターンとして現れている。
- アップルの映像でもケーブルや電子機器からのノイズが見られるが、それは入力信号とは無関係。
- 「B」の文字に見られるギザギサ:
- 白色と青色の空が接する部分に繰り返し見られるパターンは、外部干渉だけで説明できないほど画像に密着している。
2. カラーバーストの周波数関係
説明試み 2:カラーバーストについて
- NTSC の設計意図:RCA はキャリアの周波数をラインレートの半整数倍に合わせるように意図した。
(正確な値)カラーバースト周波数 (約 3.57 MHz) ÷ ラインレート (15.734 kHz) ≈ 227.5- これにより、ラインレートに近い周波数を持つ信号はフィルタリングされやすく設計された。
- なぜ揺れるのか:
- カラーバーストは連続した信号の一部だが、ライン周波数に完璧には適合しないため、各スキャンラインごとに異なる挙動を示す(これが揺れの原因)。
- アップルの場合:
- ウォズニャックが HIRES モードの実装難易度からクロックサイクルを延長する追加ハードウェアを採用。
- これによりラインレートを 228 のカラーサイクルに調整し、意図的にアティファクト・カラー(偽色)を生じさせている(輝度と彩度の干渉)。
3. セガマスターシステムとの比較
- マスターシステムの設計:
- スキャンラインあたり 228 のカラーサイクルを持つ別のコンソールとして選定。
- アークレイド・ゲーム『アース・オブ・アス』などの静かなタイトル画面は作成困難なため、例外として扱われている。
- アーチファクトの固定性:
- スクロール時の地面を見ると、アーチファクト自体は固定されており、それと地面が動くことで「きらめき」が生じている。
- PC エンジンの例:
- スキャンラインあたり 227.5 のカラーサイクルを持つ PC エンジンでは、ピクセルごとのわずかなずれ(カラー解像度 < 画素解像度)が確認できる。
- NES ではこの現象が「3 ラインのパターン」として明確に現れる。
なぜ NES は異なるのか?
ハードウェア構造の違い
説明試み 3:NES は異なる
- セガマスターシステム(生粋の RGB):
- VDP がコンポジット出力を持たず、画像を RGB として出力。
- 外部チップ(ソニー CXA1145 など)がエンコードしてコンポジット化。
- フランス製マスターシステム II などはエンコーダーなしで純粋な RGB 出力のみ。
- ファミコン/スーパーファミコン初期:
- 独立したビデオエンコーダーを持たず、PPU が直接コンポジット信号を生成。
- RGB の中間段階が存在しないため、外部から RGB を取り出すには複雑な処理が必要。
- アーケード2600:
- S-Video 的な中間段階を持ち、16 種類の異なる色相を有するのに対し、NES は 12 種類のみ。
NES のタイミング計算の仕組み
- 結晶発振器とクロック関係:
- 主発振器:
(カラーバースト21.47727 MHz
の正確に 6 倍)3.579545 MHz - PPU は昇縁・降縁の両方を使い、自然に 12 つのパターン を得ている。
- 主発振器:
- ドットクロックとラインレート:
(ドットクロック)21.47727 MHz ÷ 4 = 5.3693175 MHz- スキャンラインは 341 ドット(水平ブランキングを含む)。
- 結果としてラインレートは 15.7458 kHz となる。
- 「揺れ」の正体:トリックと数学:
- カラーバースト周波数を 6 で除し、ドットクロックを 4 で除すると、
という「awkward な(厄介な)」値が出る。227.33 - この数値の関係により、3 ラインごとに繰り返すパターン が生まれ、「B」の文字に見えるギザギサが生じる。
- カラーバースト周波数を 6 で除し、ドットクロックを 4 で除すると、
「揺れる」映像が交互に見られる理由
- リコ社エンジニアの発見:
- タイミング関係から 262 スキャンライン(ブランキング含む)の範囲で、3 つのパターン(アライメント) が物理的に可能。
- しかしこれらをすべて表示すると画面全体に動く斜めパターン(不良品レベル)になるため、これは採用されなかった。
- NES の「怠惰な」解決策(代替案):
- 世界中で最も「怠惰な」インターレース(Interlacing) を行う。
- フィールド間の最後のスキャンラインを半分長さにする(341 ドット ↔ 340 ドット)。
- 結果:可能な 3 つのパターンのうち 2 つしか見えず、フレームごとに交互に切り替わることで、「適正な 227.5」に見られるような揺れを表面似(疑似的)の効果として再現。
⚠️ 注意:このすべては NTSC コンソール に対してのみ真であり、PAL コンソールは全く異なるタイミングシステムと除数を使用するため、欠けたドットの奇策を行わない。
稀な例外:レンダリングオフのテクニック
PPU はアクティブな画面レンダリング中はビデオ RAM に書き込めないため、垂直ブランキング間隔中にバッチ処理する必要がある。これを回避するには、レンダリングをオフにする必要がある。
- Battletoads(レア社 AxROM ゲーム)の事例:
- 各フレームでレンダリングをオフにし、数本のブランクリネ後に再度オンにする。
- 最大限の CHR-RAM アクセス時間を確保し、タイルを「squeeze」してアニメーションを増やす。
- 確認方法:
- タイトル画面ではなくゲーム内の静止画部分(HUD など)を確認すると、4 つの隣接するフレームで異なるアーチファクトが繰り返されていることが分かる。
- これは欠けているドットがカバーすべきだった 3 フレームの繰り返しパターンに対応している。
[画像の概念図] Frame 1: アーチファクト A Frame 2: アーチファクト B Frame 3: アーチファクト C Frame 4: アーチファクト A (循環)
まとめ
- NES の「揺れる」画面は、カラーバーストとラインレートの数値関係(227.33) に起因する。
- これは完全な不良ではなく、設計者による**「可能な 3 つのパターンのうち 2 つのみを表示して誤魔化す」という巧妙なトリック**。
- ハードウェアとしての PPU は、その時代の素晴らしい機械であったが、コンポジット信号の制約の中でこの限界を受け入れたのである。