SMC ファイル形式とは?
拡張子 .smc を持つファイルは、Super NintendoのゲームROMイメージを格納しています。この拡張子の名前は、Front Fareast Industrial社が製造したカートリッジコピー機であり、当時最も普及していたROMダンプツールの一つである「Super MagiCom(スーパーマジコン)」に由来しています。このコピー機はカートリッジからデータを読み取り、.smc ファイルとして保存しました。複数枚のカートリッジを使用するゲームの場合、.001 や .002 といったサフィックスが付加された追加の .smc ファイルが生成されました。各カートリッジには1つのゲームが保存されていました。特徴的な技術的詳細として、生のROMデータの前に付加されるオプションの512バイトのコピー機ヘッダーがあります。エミュレータは、ファイルサイズが32 KBの倍数プラス512バイトであるかどうかを確認することでこれを検出し、自動的にスキップします。SNES内部のゲームヘッダーは、カートリッジデータ内のオフセット 0x7FC0 (LoROM) または 0xFFC0 (HiROM) に配置されています。互換性のあるバリアントである .sfc は、同一のROMデータを使用しますが、このコピー機ヘッダーを除外しています。同様のコピー機ダンプ形式には、.fig (Figaro) や .swc (Super Wild Card) があります。
.smc ファイルは主にSNESエミュレータ(SNESはSuper Nintendo Entertainment Systemの略)で使用されます。SNESエミュレータはデスクトップPC(Windows、macOS、Linux)で利用可能で、.smc ファイルに保存されたSNESゲームをプレイするために使用できます。これらのエミュレータは、オリジナルの体験を可能な限り忠実に再現するために、さまざまなコントローラーや表示モードをサポートしています。AndroidやiOS向けのモバイル版も利用可能です。.smc をサポートする代表的なSNESエミュレータは以下の通りです:
- Snes9x (Windows, macOS, Linux, Android)
- RetroArch (Windows, macOS, Linux, Android, iOS)
- bsnes / higan (Windows, macOS, Linux)
- OpenEmu (macOS)
- Snes9x EX+ (Android)
- Delta (iOS)
.smc ゲームイメージは海賊版ゲームの配布に使用されていましたが、本来この形式は、カートリッジデータの紛失や破損に備えたゲームROMのバックアップ、またはユーザー間でのプライベートな共有のために設計されました。日本では、ゲームROMのコピーを可能にするツールはすべて「マジコン(マジックコンピュータ)」と呼ばれていました。
セキュリティと安全性
リスク: MEDIUMROMデータ自体はエミュレータ内でのみ動作する不活性なゲームコードですが、2つの大きな懸念事項があります。法的問題:所有していないゲームのROMをダウンロードすることは、ほとんどの国で著作権侵害にあたります。合法的な方法は、自分のカートリッジをダンプするか、自作ソフトをプレイすることです。ソースの安全性:「ROMサイト」には広告、偽のダウンロードボタン、マルウェアが溢れており、古いエミュレータ(特にZSNES)には解析の脆弱性があります。最新で正確なエミュレータ(Snes9x、RetroArch、bsnes)を使用し、怪しいダウンロードポータルは避けてください。
形式の詳細
概要SMC ファイルを開くプログラム
技術的詳細
詳細仕様| ファイル構造 | 生のカートリッジROMダンプ。オプションでSuper Magicomハードウェアによって付加された512バイトのコピー機ヘッダーが先頭に配置される |
| コピー機ヘッダーサイズ | 512バイト。ファイルサイズを1,024で割った余りが512であるか(合計サイズが32 KBの倍数 + 512バイトであるか)を確認することで検出される |
| SNES内部ヘッダー - LoROMオフセット | ROMデータ内の 0x7FC0。ゲームタイトル、ROMタイプ、サイズバイト、チェックサムが含まれる |
| SNES内部ヘッダー - HiROMオフセット | ROMデータ内の 0xFFC0。ハイメモリ・アドレスマッピングを持つ大容量カートリッジで使用される |
| ゲームタイトルフィールド | SNES内部ヘッダーの開始位置に格納される、21バイトのゼロパディングされたASCII文字列 |
| ROM整合性チェックサム | SNESヘッダーに格納される2バイトのチェックサムと2バイトのビット反転補数。エミュレータが破損したROMや過剰にダンプされたROMを検出するために使用される |
| ROMマッピングモード | LoROM、HiROM、ExLoROM、ExHiROM。SNESヘッダーのオフセット +0x25 にある1バイトで宣言される |
| 一般的なファイルサイズ | 256 KBから6 MB。実際のSNESカートリッジROM容量(256 Kbitから48 Mbit)を反映 |
| ファイルシグネチャ (マジックバイト) | なし。固定のシグネチャはなく、ファイルサイズのパターンとSNES内部ヘッダーのチェックサム検証によるヒューリスティックな手法で識別される |
| マルチパートファイル命名 | マルチカートリッジのダンプでは、ベース名の後に .001、.002 といったサフィックスが付いたコンパニオンファイルが生成される |
| コンパニオンセーブファイル | ゲーム内のSRAMバックアップ。実行時にエミュレータによって書き込まれる、同じベース名を持つ別の .srm ファイルに保存される |
| MIMEタイプ | application/octet-stream |
| CPUアーキテクチャ | WDC 65C816 (16ビット)。 .smc ROMデータは、このCPUから見たカートリッジアドレス空間の直接的なメモリイメージである |
| オリジンハードウェア | Front Fareast Industrial社(台湾、1990年代初頭)によるSuper Magicomコピー機。 .smc 形式はその後、複数のコピー機ブランドにわたる事実上のコミュニティ標準として採用された |
| エミュレータのヘッダー処理 | Snes9x、RetroArch、bsnes、およびほとんどの最新エミュレータは、ROMをロードする前に512バイトのコピー機ヘッダーを自動的に検出して削除する |
| リリース日 | early-mid 1990s (Super Magicom / copier era) |
| 仕様書 | snes.nesdev.org |
SMC の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。SMC ファイルについて最初の質問をしてみましょう。
よくある質問
SMCファイルをプレイするにはどうすればよいですか?
.smc をロードするだけで、エミュレータがコピー機ヘッダーを自動的に処理します。.smc と .sfc の違いは何ですか?
SMC ROMが読み込めないのはなぜですか?
SMC ROMをダウンロードすることは合法ですか?
SMCファイルを別のコンソールでプレイするために変換できますか?
セーブデータはどこに保存されますか?
.smc ROM内部ではなく、別の .srm ファイル(およびエミュレータ独自のステートセーブファイル)に保存されます。