覚え書きがてら、超絶久しぶりに記事を書いてます。
4年ほど前にこちら👇のサイトで紹介されていた cartreader というレトロTVゲームソフト吸出し機を自作したことがありました。
その時は懐かしのスーパーファミコンのソフト(マリオカートやヒューマングランプリ)を吸出せて満足していました。
最近になって、ファミコンも吸出したいなぁと思って調べてみたら、追加のアダプター基板があれば先のcartreaderで吸い出せるとのこと。ちなみに自分が作ったのはcartreaderのV2で最新はV3ですが、cartreaderのソフトを最新にすることで問題なく使えています。
で、なんで記事を書こうかと思ったのかというと、cartreaderの操作は何となくわかったのですが、どういう設定を入力しなければいけないのかが、まったく分からなくて四苦八苦してしまったからです。
分かってる人にとっては、なんだそんなことか、っていう内容かもしれませんが、初心者の自分には一つ一つの見知らぬ単語で大混乱してました。そんなわけで、自分が詰まったところを挙げながら設定内容を書いていきます。
まずは電源を入れる前に本家サイトのファミコン(NES)吸出し解説ページ「Dumping NES Games」にある通りにcartreaderのスイッチを切り替えます。次に吸い出したいファミコンのカセットを先のアダプターを介してcartreaderのスーパーファミコンのスロットにさして電源をON。メニューが表示されたら「Add-ons」の左横に「・」マークが付いている(選択している)のを確認したら右のボタンを押して(決定して)、さらに「NES/Famicom」を選択して進みます。
そうすると現在のファミコン吸出し設定が表示されます。
左右のどちらかのボタンを押すと次のメニューが表示されます。
「Select Mapper」を選択して右ボタンを押したら「Mapper(マッパー)」の設定画面が現れます。ここが一つ目の引っ掛かりです。
「マッパー」とはファミコンカセットの内部の拡張仕様の番号で複数ありカセットごとに決まっています。そのマッパー番号を確認するために、さっきの解説ページ「Dumping NES Games」にあるリンク先「NES Cart Database」で吸い出したいカセットを検索します。
左上の「Search」から検索画面に移行したら、左上の「Game Title」欄にカセットのタイトルを入力して右下の「Search」をクリックします。(今回の例では中嶋悟 F-1 HERO)
検索結果が表示されたら右下にある「iNES Mapper」にある数字を確認します。これがマッパー番号です。
この数字をcartreaderの「Mapper(マッパー)」の設定画面で入力します。最初は左端の数字の下にアンダーバー「_」がついているので、左のボタンを何回か押して「0」にしたら右ボタンを押して真ん中の数字の下にアンダーバーを移動させます。先ほどと同じように左ボタンを何回か押して「0」になったら右ボタンを押して、右端の数字の下にアンダーバーが移動したら「4」になるように左ボタンを数回押します。最終的に下の画像のようになったら右ボタンを押して次へ進みます。
ここで出てくる「PRG Size」が2つ目の引っ掛かりです。「PRG」とはカセット内部のプログラムのことと思われますが、そのサイズ(容量)なんて知りませんので、また調べないといけません。が、実は先ほどのマッパー番号を調べたときの画面に映っています。左下側にある「ROM Details」に、今回のカセットの場合は「PRG0 VRE-F1-0 PRG 128KB 7FFABB4C 3」と書かれた行があり、この128KBが「PRG Size」です。
「PRG Size」の入力は左ボタンを何度か押しすと
32 ⇒ 64 ⇒ 128 ⇒ 256 ⇒ 512 ⇒ 32 ⇒ …
とループして変わりますので、今回は128になるまで押します。
数字が合ったら右ボタンを押して次に進みます。このとき画面下に一瞬、設定した「PRG Size」が確認のために表示されます。
次は「CHR Size」の設定ですが、これが3つ目の引っ掛かりです。「CHR」とはキャラクターを指してますが、意味するところが人物なのか性格なのか文字なのかは分かりません。もっと分かんないのはそのサイズですが、先ほどの「PRG Size」と同じく検索結果の画面内に表示されています👇
ハイ、これで「CHR Size」は128KBであることが分かりましたので、「PRG Size」を設定した時と同じように左ボタンを数度押して128と画面に表示されたら右ボタンを押しますと、また同じように設定した「CHR Size」が画面下に表示されて次に進みます。
次の「RAM Size」のRAMはRandom Access Memoryの意味でしょう。ここで4つ目の引っ掛かりです。この値は先ほどの検索結果の画面の右下にあるWRAMとVRAMというのがそれに該当すると思われますが、両者の違いはなんでしょう?
WRAMはワーキングRAMと言いゲームプログラムの処理に用いられ、VRAMはビデオRAMと言い描画に用いられているのかな。
今回のカセット(中嶋悟 F-1 HERO)はどちらも 0KB なので、左ボタンを数度押して「RAM Size」を 0 にして右ボタンを押すと、設定した「RAM Size」が画面下に表示されて次に進みます。
ちなみに「ファミコントップマネジメント」という経営シミュレーションゲームはWRAM 8KB、VRAM 8KBとなっていますが、cartreader の「RAM Size」設定では 0KB か 8KB のどちらかしか選べず、合算の16 KB である必要はないのか、吸い出せないのかとかは分かりません。
さて、以上で吸出し前の設定が完了しました。cartreader の画面には反映された設定が表示されているので誤りが無いか確認しておきましょう。
左右のどちらかのボタンを押すと元のメニューが表示されますので、誤りがあれば左ボタンを数度押して「・」マークを「Select Mapper」に移動させ(選択し)右ボタンを押し再設定してください。
設定に問題なければ(相違なければ)いよいよ吸出したいところですが、その前にまだ確認しておきたいことがあります。
それはCRC32の英数字です。ハイ、また分かんない単語が出てきました。5つ目の引っ掛かり「CRC32」ですが、これは吸い出したカセットの中身(データ)が正しいかを判断するのに用います。
「ROM Checcker」というアプリで判定してもらえるのですが、毎回SDカードを cartreader とPCに抜き差しするのは面倒なので、覚えちゃいましょう。(こっちのほうが面倒?)
CRC32の値は先の検索結果の画面の左下に記載があります。
上側がPRGのCRC32で真ん中がCHR、一番下が最終的に出来上がるファイル「CART.nes」のCRC32です。今回の吸出しでは3つ覚えますが、吸出しに失敗しているときは明らかに異なる値が cartreader に表示されるので頭の4桁を覚えれば十分です。
それではやっと吸出しですが、CRC32の表示は一瞬なので目を皿にして cartreader の画面を見ていてください(笑)
機材があれば画面を動画撮影したほうが無難かもしれません。
先のメニュー画面で左ボタンを押し「・」マークを「Read Complete Cart」に移動し(選択し)右ボタンを押すと吸出しが始まります。
まず RPGを吸い出して、
次にCHRが吸い出されます。
この2つのCRC32の値をDB(データベース)と照合しています。
整合性がとれたら2つのデータを結合しつつ、HEADER(ヘッダー)という吸い出したデータの先頭になにがしかを設定してくれているようです。たぶん、、、
その後、エミュレータで使うためのファイル「CART.nes」が生成されたと表示されます。
最後にRAMのサイズが 0K だと表示されて終了です。
先の3つCRC32がデータベースと相違なければSDカードの中に3つのファイルが生成されています。
失敗していると「CART.nes」ではなく「CART.bin」となっています。
このbinファイルのヘッダーを「ROM Checcker」でいじることはできますが、残念ながらどういじるかさっぱり分からないので各設定サイズやCRC32が不一致していないか確認しながら一からやり直しましょう。。。
「CART.nes」が生成されていれば大丈夫なはずですが、念のためを「ROM Checcker」で判定してみます。問題なければ下のように「一致しました」と表示されます。
一致していれば「CART.nes」を適当なフォルダに移して任意の名前に変更し、あとはエミュレータで開けばこの通り!
さて問題なく起動できれば無事終了です。お疲れさまでした。
おまけ
設定値やCRC32は「NES Cart Database」で確認していましたが、「ファミコンタイトル一覧表」でCRC32以外は確認できます。
また、「NES Cart Database」には海外版のカセットのデータしかない場合がありますので、「SxROM TxROM ファミコンカセットリスト | BAKUTENDO」で該当するカセットのCRC32値を確認することもできます。 (例:チップとデールの大作戦)
























