エンスージアストが古いS3ビデオカードのVBIOSを解読し、黒色を本当に暗くした。
YouTubeチャンネル *Bits und Bolts* は、古いビデオカード S3 Virge DX 4 MB において黒色が純粋な黒ではなく暗灰色に表示されることを発見しました。これはメーカーの意図的な設計であり、「黒レベルの上昇」(pedestal bit)と呼ばれ、NTSC規格のCRTモニターで画像がより柔らかく見えるようにするためでした。動画作者はVBIOSを変更し、本来の黒色を復元しました。
1. 何が起きたのか?
- S3 Virge DX は「上げられた」黒レベルを使用していました:
- BIOSでは色が `0x3F` に設定されていた。
- ビットをゼロにリセットすると `0x1F` になり、画像はより暗く見えました。
- これは古いモニターで暗部が「消えてしまう」ことを防ぐために意図的に行われていました。
2. 作者が問題を発見した経緯
1. 準備
- 作者はすでにビデオカードの経験があり、コミュニティの議論を読んでいた。
- デバッガーを開いてリアルタイムでレジスタ値を確認した。
2. ビットの検索
- ターゲットアドレスを追跡し、Windows計算機で16進数を二進数に変換した。
- 発見されたビットは `0x3C4` のアドレスにあった。
- 値をゼロに変更すると背景が黒くなった。
3. 影響の確認
- 元の値に戻し、8ビットのうち1つが黒レベル上昇に関与していることを確認した。
- どのビットかを除外法で特定した。
3. VBIOS の編集
1. エクスポートと修正
- VBIOS をファイルに抽出し、手動で変更した。
- アセンブリコードを解析して、必要なパラメータに一致する2箇所を見つけた。
2. 書き込みの変更
- `0x20` を `0x00` に変換した――これが黒レベル上昇だった。
- 変更後に VBIOS のチェックサムを再計算:
- 古いチェックサム = `0x77`。
- 新しいチェックサム = `0x97`。
3. 再書き込み
- 修正した BIOS をビデオカードチップにロードし、元のものと置き換えた。
4. 結果
初回起動時にファームウェアを書き換えた後、黒色は本当に純粋な黒になり、暗灰色のトーンが消えました。これにより、問題はバグではなく、CRTモニターでの視覚品質向上を目的としたメーカーの意図的な設計だったことが確認されます。
まとめ:
- 問題点:S3 Virge DX における黒レベルの人工上昇。
- 解決策:VBIOS を変更し、ビットとチェックサムを修正。
- 結論:書き換え後、画像はより自然に見えるようになった。
コメント (0)
感想を共有してください。礼儀正しく、話題に沿ってお願いします。
コメントするにはログイン