NES ファイル形式とは?
.nes ファイルは、日本では「ファミコン」として知られる Nintendo Entertainment System ゲーム機のゲーム ROM を保存します。.nes ファイルは、物理カセットの ROM チップのダンプを 16 バイトの iNES ヘッダー(1990年代半ばに導入された規約)でラップしたものです。ヘッダーは 4 バイトのマジック 4E 45 53 1A(«NES» + 0x1A)で始まり、PRG-ROM と CHR-ROM のサイズ、およびカセットのバンク切り替えハードウェアの動作をエミュレータに伝えるマッパー番号を記録します。.nes ファイルは、デスクトップおよびモバイルデバイスで利用可能な専用のエミュレータツールを使用して開くことができます。ファミリーコンピュータ ディスクシステムのゲームは、.nes ではなく別の .fds 形式を使用します。
ポーランドでは、NES コンソールのクローンが «Pegasus» という名前で広く知られていました。ほとんどの «Pegasus» ゲームは .nes ROM ファイルとして配布され、通常はチートオプションが追加されるなどの修正が加えられていました。
NES は 8 ビットコンソールであったため、現代のコンピュータやモバイルデバイスでそのハードウェアをエミュレートすることは容易です。ファンコミュニティによって、多くの ROM イメージがさまざまな言語に翻訳されています。ほとんどの商用 NES ゲームタイトルは依然として著作権保護下にあるため、権利保持者の許可なく ROM イメージを配布またはダウンロードすることは、ほとんどの法域で合法ではありません。
セキュリティと安全性
リスク: MEDIUMROM データはエミュレータ内でのみ実行される不活性なゲームコードですが、2 つの現実的な懸念があります。法的問題:所有していないゲームの ROM をダウンロードすることは、ほとんどの国で著作権侵害にあたります。合法的な経路は、所有しているカセットをダンプするか、自作ソフト/フリーウェアをプレイすることです。ソースの安全性:「ROM サイト」には広告、偽のダウンロードボタン、マルウェアが蔓延しているため、信頼できる最新のエミュレータ(Mesen、FCEUX、RetroArch)を使用し、怪しいダウンロードポータルは避けてください。古かったり無名なエミュレータには、不正な形式の ROM によるパースのバグが存在する可能性もあります。
形式の詳細
概要(byte7 & 0x0C) == 0x08)によって検出されます。ヘッダーなしの生ダンプや UNIF (.unf) コンテナも存在しますが、iNES ほど一般的ではありません。NES ファイルを開くプログラム
.nes を開いてプレイします。(データベース推奨の Nesoid は開発終了し、Play ストアから削除されました。) 技術的詳細
詳細仕様| ファイルシグネチャ(マジックバイト) | オフセット 0 に `4E 45 53 1A` - ASCII の «NES» に続いて MS-DOS の EOF バイト(0x1A) |
| ヘッダー形式 | 16 バイトの iNES ヘッダー。NES 2.0 は `(byte7 & 0x0C) == 0x08` の時に検出される後方互換拡張 |
| エンコーディング | バイナリ(生の ROM バンクデータ) |
| バイト順序 | リトルエンディアン(NES の MOS 6502 CPU アーキテクチャに準拠) |
| PRG-ROM サイズフィールド | ヘッダーの第 4 バイトが 16 KB バンク数をカウント(iNES)。NES 2.0 では大きなサイズのために 12 ビットフィールドに拡張 |
| CHR-ROM サイズフィールド | ヘッダーの第 5 バイトが 8 KB バンク数をカウント。値が 0 の場合はカセットが ROM の代わりに CHR-RAM を使用していることを示す |
| マッパー番号 | iNES では 8 ビット(第 6-7 バイトの上位ニブル)。NES 2.0 では 256 以上のマッパーをサポートするため 12 ビットに拡張 |
| トレーナーブロック | ヘッダーと PRG-ROM の間のオプションの 512 バイトブロック。ヘッダー第 6 バイトのビット 2 がセットされている場合に存在 |
| 一般的なファイルサイズ | 商用カセットで 16 KB ~ 512 KB + 16 バイトのヘッダー。NES 2.0 は最大約 8 MB までサポート |
| MIME タイプ | `application/x-nes-rom` |
| 圧縮 | なし - 生の ROM バンクが非圧縮で格納。ファイルは一般的に ZIP アーカイブ内で配布される |
| セーブデータの取り扱い | バッテリーバックアップのセーブはエミュレータによって `.sav` または `.srm` として個別に保存され、`.nes` には埋め込まれない |
| ROM 整合性の識別 | 組み込みのチェックサムはなし。No-Intro / Redump データベースに対して CRC32 または SHA-1 で外部検証される |
| 代替コンテナ | 複雑または未文書化のマッパー用の UNIF (`.unf`)。ヘッダーなしの生ダンプも存在するが一般的ではない |
| 関連ハードウェア | Nintendo Entertainment System(ファミコン 1983年 / NES 1985年)および Pegasus(ポーランド)などのライセンスクローン |
| NES 2.0 拡張フィールド | サブマッパーインデックス、コンソールタイプ(NES/Vs./PlayChoice)、CPU/PPU タイミングリージョン、および追加 RAM サイズフィールドを追加 |
| リリース日 | iNES header convention early-to-mid 1990s (Marat Fayzullin's iNES emulator); NES launched 1983/1985 |
| 最新バージョン | NES 2.0 header (backward-compatible extension of iNES, finalized in the 2010s) |
| 仕様書 | www.nesdev.org |
NES の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。NES ファイルについて最初の質問をしてみましょう。
よくある質問
.nes ファイルを再生するにはどうすればよいですか?
.nes をロードするだけで、エミュレータが iNES ヘッダーを読み取り、ゲームを実行します。最高の NES エミュレータは何ですか?
なぜ .nes ROM がロードされないのですか?
.nes ファイルを APK に変換して Android でプレイできますか?
.nes を直接ロードすることです。.nes ROM をダウンロードするのは合法ですか?
iNES と NES 2.0 の違いは何ですか?
.nes ヘッダー形式です。NES 2.0 はオリジナルの iNES ヘッダーの後方互換性のある拡張版で、より大きな ROM サイズ、サブマッパー、追加のシステム/タイミング情報をサポートしています。現代のエミュレータは両方を読み取ることができます。NES のセーブデータはどこに保存されますか?
.nes ROM 自体の中ではなく、別の .sav または .srm ファイル(およびエミュレータ独自のステートセーブファイル)に保存されます。