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

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件のコメント

 
GN⁺ 2024-04-23
Hacker Newsの意見
  • 昔のゲーム機のカートリッジは、PCのPCI拡張カードのようにバスへ直接接続され、さまざまな機能を実装できた。しかし、GBA以降は単なるデータ保存用途にしか使われなくなった。
  • 最新技術を使えば、レイトレーシングチップやMSU1拡張チップなどをカートリッジに搭載して、ゲーム機の性能を大幅に向上させることができる。実際の物理チップの製造も理論上は可能である。
  • SNESのCPUは通常3.58MHzで動作するが、一部の低価格なSlowROMカートリッジを使うと2.68MHzへ速度が低下する。これをパッチで改善しようとするモッディングコミュニティも存在する。
  • SNESのコピー防止は、コンソールとカートリッジのCICチップが同期して動作する仕組みだったが、バックアップ装置によって容易に回避できた。
  • 昔のゲーム開発者がブログ形式で詳細な技術情報を共有していたことは、YouTube動画よりも情報密度が高い。
  • 『スーパーマリオワールド』は、360KBという容量に多彩なキャラクター、スプライト、ステージを収めた傑作である。
  • SNESの拡張チップ方式を現代技術と組み合わせれば、さらに進んだグラフィック表現も可能になるだろう。SuperFXチップは独自のフレームバッファを持ち、それをVRAMへコピーする方式だった。
  • SNES版『Doom』の移植担当者は、GSUチップやDoomのソースコードに関する文書がないまま、すべてリバースエンジニアリングで開発した。
  • 昔のゲーム価格のかなりの部分は、カートリッジ製造コストだった。最近ではゲーム配布コストはほとんどかからない。
  • 『ヨッシーアイランド』では、特定の状況でフレームレート低下が観察される。
  • ゲーム容量はROMチップのサイズに合わせて2の冪単位になる。文書に記載された正確なバイト数の出所は不明である。
  • SNESの拡張チップは、コンソールの基本性能を大きく超えるゲームを可能にした。特にSA-1チップは、主CPUの4倍の速度を示した。
  • 非公式ゲームは、コピー防止を回避するために正規品カートリッジを挿さなければならないなど、さまざまな裏技を使っていた。
  • ゲーム容量とほかの要素との相関関係を分析すれば、SNESゲーム開発について興味深い洞察が得られるだろう。