Famicom cartridge technical information

UNROM とか SNROM ってなんですか

UNROM はマッパー#2のことを言います。この言葉の語源はゲームのカートリッジのプリント基板に書いてある型番です。


NesCartDB から転載。写真右上の文字列に注目。

マッパー#1

あなたがマッパー#1のゲームの ROM を焼きたいとします。中古屋さんからマッパー#1のゲームをいくつか購入したときに MMC1 はついているものの、電池の有無や Charcter の memory が ROM か RAM で種類が分かれるはずです。

コズミックウォーズ

http://bootgod.dyndns.org:7777/profile.php?id=2183
ハードウェア構成を見てみましょう。Program ROM と Charcter ROM と Work RAM と電池が載っています。電池の下でわかりづらいのですが、 HVC-SKROM-04 と記載されています。

ドラゴンクエストIII

http://bootgod.dyndns.org:7777/profile.php?id=1527
大体同じですが、 Charcter が RAM になっており、型番が HVC-SNROM-05 です。PCB Class にある HVC-SNROM を選択するとなにやらたくさんでてきますが、どれもこれも同じハードウェア構成です。

ゲームソフトに構成される部品はプリント基板でほぼ決まること、任天堂が生産した基板は型番によって傾向がわかりやすいために詳しい方は使う言葉となっています。

ドラゴンクエストIV

http://bootgod.dyndns.org:7777/profile.php?id=1526
ドラゴンクエストIIIと同じ部品が載っていますが、基板の名称は HVC-SUROM-01 です。HVC-SUROM のソフトがでてくるのはDQ4も含めて2つだけです。この2つのソフトは ROM の容量が 512 KiB あります。

信長の野望全国版

http://bootgod.dyndns.org:7777/profile.php?id=1529
カートリッジがでかい上に、 W-RAM が2つも載っています。型番は HVC-SOROM です。HVC-SOROM のソフトはこれだけです。

MMC1 だからマッパー#1 というのは間違ってはいないのですが、ハードウェアの構成が様々あります。古いエミュレータですと、信長の野望は正しく動きません。理由は nes ヘッダーに RAM の容量を指定する場所がないので、少なめの容量として動作させているからです。

ではどうやって RAM の容量を多めにするかいうのを知らせるかというと、ROM のチェックサムなどをみて「これは信長の野望だから RAM を多めにしよう」と決め付けてしまいます。場合によっては nes ヘッダーの情報を無視することもあります。
この方式には欠点があります。 ROM のチェックサムが違うと RAM の容量を増やすことが出来ません。ユーザーが ROM 改造をした場合とか、バージョン違いがでてきた場合にはチェックサムが異なるのでちゃんと動きません。それどころか「吸い出しミスです」と疑われることもあります。

エミュレータ側の都合で説明しましたが、実機ではファミコン本体が「信長の野望だから RAM は多めにしよう」なんてことはできません。部品と配線が一致してないとゲームソフトが動かないため、そしてそれを区別しやすい言葉として UNROM とか CNROM とか SKROM という言葉を使います。

xxROM の区別の仕方

任天堂製 ROM カートリッジ基板は 3 + 5 + 2 文字で書かれています。市販ゲームソフトはだいたいこの形でたまに例外があります。

ここからは HVC-SNROM-05 の意味を説明します。

HVC → 地域または用途

HVC はファミコンの 2.54mm ピッチ 60 pin で、 NES だと 2.50mm ピッチ 72 pin です。業務用だと別の文字になります。

S → MMC1

メモリコントローラの仕様です。T だと MMC3 を使っています。UNROM とか CNROM は使っている IC は同じものの、バンク切り替えの方式が異なるので別の文字になります。

N → 構成部品と配線方法

N は CHR-RAM と電池付きですが、 G だと CHR-RAM だけで電池はありません。SGROM 向けのソフトは SNROM で動かすことが出来るなど、互換性をもつこともありますが、 SUROM や SOROM のような例外的で互換性のない配線も存在します。

ROM → ROM cartridge

当然ですね。DISK System の RAM adapter にはこういう型番は書いてないです。

05 → バージョン

基板の設計時のマイナーバージョンやリビジョンの番号ですので、大半は穴や配線の位置が違うぐらいで性能に違いはありません。

ナムコやコナミの基板はどうなの

この分類は任天堂製造のものだけでできるわけでして、任天堂以外が生産した基板は簡単な分類ができません。日本の場合は許可を得て自社生産をすることが認められていて、そういう状態のソフトの数が多いので混乱が続いています。

中国製のコピーソフトや Tengen 製の無許可ソフトなどもハードウェアの分類としてはこれに当てはまります。

NesCartDB は便利

紹介の順序が逆になったかもしれませんが、このサイトは手に入るソフトをすべて調査して web サイトでみれるようにしてあります。バージョン違いの可能性もあるので同じように見えるソフトでも違えば何本でも調査しているのもすごいです。

ここまで調査しなければ正確な情報が出てこないのはわかってはいても実行はなかなかできないもので、そういう情報を分析できるなんて便利な世の中です。

問題を対処した仕様の定義はできているが、実装するかはプログラマ次第

このような問題は 2000 年に入ってからわかっていて仕様を定義した unif や NES 2.0 規格は存在します。とはいえこれらが無くても9割のソフトは古い規格で動きますし、チェックサムでごまかす方法でなんとかなっています。

そういった状況で新規格は準拠されずに、最近のエミュレータ開発では TAS への最適化がはやっています。そっちのほうがおもしろいから仕方ない。