5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ブラウン管の「にじみ」を再現する——アナログTV信号チェーンを持つエミュレータの作り方

5
Posted at

ブラウン管の「にじみ」を再現する——アナログTV信号チェーンを持つエミュレータの作り方

Famemu というレトロゲームエミュレータを開発している Albert です。この記事では、Famemu が「カセットの中身」だけでなく「テレビまでの信号」まで再現する理由と、その仕組みを解説します。


はじめに:エミュレータが忘れてきたもの

いまのエミュレータは、カセットの中身——CPUやPPUの動き——を驚くほど正確に再現します。でも、ぼくらが子ども時代に見ていたのは「カセットの中身」ではありません。

ゲーム機が生んだ映像は、ケーブルを通り、テレビの中でアナログ信号に変換され、ブラウン管の上で光に変わる——その旅を経て、はじめて目に届きました。色のにじみ、やわらかな輪郭、独特の質感。あれは全部、信号の旅の産物です。

Famemu は、その旅そのものをエミュレーションします。

信号チェーンの全体像

[Ember] → フレーム生成
   ↓
[信号処理] → アナログ信号として符号化 → 復号
   ↓
[Macアプリ] → 旅を終えたフレームを表示

ポイントは、フレームに「ブラウン管風フィルター」をかけるのではない、ということです。そうではなく、実際に信号の符号化・復号のプロセスを経由させるんです。にじみは描画するのではなく、仕組みから生まれます。

なぜ「にじみ」が生まれるのか:コンポジット信号のおさらい

アナログTV(コンポジット信号)では、映像は1本のケーブルにまとめられます:

  • 輝度信号 (Y):明るさ。広い帯域が割り当てられる
  • 色信号 (C):色相・彩度。カラーサブキャリアに乗せられ、帯域が狭い

帯域が狭い = 高い周波数成分(= 細かい模様・シャープな色の境界)が伝わらない。これがカラーブリード(色のにじみ)の正体です。

ドット絵の職人は、このにじみを前提に絵を描いていました。隣り合うドットの色が混ざって完成する——つまり、にじみ込みで完成するデザインだったんです。シャープなドットのまま表示するのは、ある意味で「間違った」表示なんです。

Famemu のアプローチ

Famemu の信号処理は、おおまかにこう動きます:

  1. Ember が生成したデジタルフレームを受け取る
  2. それをアナログTV信号として符号化する
  3. 符号化した信号を復号して、表示用のフレームに戻す

色のにじみや輪郭の柔らかさは、この符号化・復号の過程で自然に生まれます。後から「それっぽい」効果を足しているわけではありません。

調整にはカラーバーのテストパターンを使っています。下は実際のデコード結果です——色の境界が柔らかくにじみ、アナログ信号らしい質感になっているのが分かると思います。

analog-colorbars.png

なぜフィルターではなく「信号」なのか

正直に言うと、見た目だけならポストプロセスのフィルターでも似た絵は作れます。でも2つ、信号チェーンを選ぶ理由があります:

  1. ゲームごとの調整が要らない。 フィルターは「それっぽさ」の調整だが、信号チェーンは物理の再現なので、どんなゲームにも同じ法則が適用される。
  2. ドット絵の意図が蘇る。 にじみ前提で描かれた絵は、信号を通したとき初めて「正しい」見た目になる。これは再現ではなく、復元です。

おわりに

Famemu は Mac ネイティブのエミュレータです。iPhone / iPad / Mac 向けに App Store で公開中です(2026年10月9日リリース)。エンジンは Ember 16 と Lantern の2つで、Lantern 用の小さな言語 Wick の解説書も公開しています。

信号処理の詳しい実装や Wick 言語の設計についても、そのうち書きます。質問・ツッコミはコメントでどうぞ。

5
1
12

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?