スーパーファミコンのカートリッジ内部分析
(fabiensanglard.net)Here is a summary of the key points from the article on Super Nintendo cartridges, translated into Korean and organized using Markdown syntax:
スーパーファミコンのカートリッジ内部構造
- スーパーファミコンのゲームカートリッジには、ROMチップ上の命令やアセット以外にも追加要素が含まれることがある。
- CICコピー防止チップ、SRAM、さらには「性能向上プロセッサ」までPCB内部で見つけることができる。
CIC(コピー防止)
- SNESのコピー防止メカニズムは、コンソールとカートリッジにある2つのチップが同期した状態で通信する方式で動作する。
- コンソール側のCICが異常動作を検知すると、すべてのプロセッサをリセットする。
ROM: 命令 & アセット
- ゲームROMのサイズは、昔はバイトではなくビット単位で表記されていた(例: ゼルダの伝説3は8Mb)。
- 最大容量のゲームは Star Ocean(48Mb)で、スーパーマリオワールドのような名作は4MbのROMを1つ使うだけだった。
- 著者が自作したCSVには、3,378タイトルのROM使用量推定値が整理されている。
SRAM(セーブ機能)
- 一部のゲームはSRAMチップとバッテリーを使って進行状況のセーブ機能を提供していた。
- コンソールの電源が切れると、SRAMは低電力モードに切り替わってバッテリー消費を抑える。
性能向上プロセッサ(Enhancement Processor)
- 最も有名なのは、1993年のスターフォックスで使われた Super FX(別名「MARIO」「GSU-1」)。
- Wikipediaとsnescentral.comには、性能向上チップを使ったSNESゲームの全一覧がある。
- 合計13種類のチップが72本のゲームで使われている。
SA-1
- 「Super Accelerator 1」は性能向上チップのMVPで、34本のカートリッジで使われた。
- コンソールと同じ65C816 CPUだが、4倍速い10.74Mhzで動作する。
- 2KB SRAMと内蔵CICを備えている。
- SA-1には3つの動作モード(加速、並列処理、混合処理)がある。最も強力な設定では、システム全体の性能を5倍向上させる。
- レトロゲームコミュニティでは、SA-1を使って処理落ちのあった昔のゲーム(マリオワールド、グラディウス3、魂斗羅3など)のゲームプレイを改善している。
CX4
- CX4はカプコン製で、ロックマン X2、X3で使われた。
- 3Dワイヤーフレームレンダリングや各種演算、スプライトのスケール/回転機能をVRAM向けに提供する。
- ワイヤーフレーム効果で有名だが、ゲーム全体ではすべてのスプライト処理に使われており、画面のちらつきなしでより多くのスプライトを表示できるようにしていた。
その他の Enhancement Processor
CS-DD1: スプライト解凍チップ。2本のゲームで使用。DSPシリーズ: 16本のゲームで使用。高速16ビット乗算、sin/cos などの命令を提供。OBC-1: 1本のゲームで使用。(スプライト操作関連という推測のみあり)S-RTC: リアルタイムクロック機能を提供。1本のゲームで使用。SPC7110: データ解凍チップ。3本のゲームで使用。ST-010,ST-011,ST-018: SETA社のAI強化目的チップ。各1〜2本のゲームで使用。
SUPERFX (GSU-1, GSU-2)
- GSU-1は StarFox など5本のゲームで使用。
- 10.74Mhzで動作し、512バイトの命令キャッシュによりSNES CPUを飢えさせずに動作する。
- SNESのPPUがタイル/スプライト中心なのに対し、SuperFXはピクセルレンダリングとポリゴンラスタライズに特化している。
- 通常はカートリッジのフレームバッファにレンダリングし、VSYNC時にVRAMへ転送する。
- GSU-2は、GSU-1を21.47Mhzのフルスピードで動作させたもの。ヨッシーアイランド、Doom など3本のゲームで使用。
- SNESコミュニティでは、GSU-1、GSU-2を使って昔のゲームを改善するプロジェクトが進行中。
性能向上チップとエミュレータ
- 性能向上チップはプレイ体験を大きく改善し、パブリッシャーのコストも下げたが、後にはエミュレータ開発者にとって悩みの種になった。
- 一部のゲームは特殊なチップに依存しており、2012年になってようやく正しくエミュレーションされた。
- エミュレータのためには、チップをリバースエンジニアリングする多大な努力が必要だった。
- 内部ROMを持つチップ(ARMベース)は、エミュレータにBIOSファイルを提供する必要がある。
- 2020年時点でも、一部の希少なチップのエミュレーションは完了していない。
GN⁺の意見
- 性能向上チップは、ハードウェア設計とゲーム開発の歴史における興味深い事例である。限られたハードウェア性能を最大限活用するための多様なアイデアと努力が際立っている。
- 今日のエミュレータ開発の観点では厄介な存在だが、当時はゲーム品質を高め、開発コストを抑える効果的な方法だった。
- 業界の似た事例としては、セガメガドライブ/Genesisの各種追加チップ(SVP, Sega Virtua Processor など)、ネオジオのメモリーカードスロットなどがある。
- こうした拡張チップは、コンソールのライフサイクル後半に登場することが多いが、これは限界に達したハードウェアスペックを乗り越えようとする試みと見られる。同時に新しいコンソール発売を準備する過渡期でもある。
- レトロゲームコミュニティで古いゲームの性能を改善するプロジェクトが進んでいるのは印象的である。昔の制作者の意図を生かしつつ、現代的な視点でゲームを再解釈する作業だといえる。
1件のコメント
Hacker Newsの意見