MSXのROMイメージを実機からPCに転送する

「MSXのROMカートリッジを持っているので、それを吸い出してPCに保存したい!」

そう思っていても、具体的にどうすれば良いのか全く分からず、ついネットでダウn(略)という人も多いのではないでしょうか。

そういう方のために、最低限の機材&最低限の知識 で、ROMカートリッジのデータを PCに転送して保存する方法を書いてみました。

ざっくり説明

とにかくROMイメージを吸い出せれば良い、という方は、ここに書かれている通りにやれば大丈夫だと思います。

技術的なことや応用編についてはページの後半に書いてあるので、もっと詳しく知りたかったり、逆によく分からなかったり、うまくいかなかったりしたときは、各項目の [詳しく] というリンクをクリックしてください。

必要なもの

方法

  1. 録音ツール(例えば WaveClipper) と、ピーガー音をバイナリー変換するツール(例えば NandemoPiGa2)をダウンロードしてください。[詳しく]
  2. MSX本体にデータレコーダーケーブルを接続し、赤い端子をPCのマイク入力(外部入力)に接続してください。[画像]
  3. MSXの電源を入れた状態で、吸い出したいROMカートリッジを「スロットA」に入れてください。[詳しく]

    ROMを吸い出すには、MSX本体の電源を入れた後にROMカートリッジを差す、いわゆる「後差し」をする必要があります。
    「後差し」は本体やカートリッジを破壊する可能性があるので(私は30年間で一度もありませんが…)、くれぐれも自己責任で行ってください。
    PAUSEキーがついている機種は、PAUSE状態にしてからROMカートリッジを差すと成功しやすいようです。
    また、カートリッジを差すと自動的に電源がOFFになる機種は後差しができません。スロット拡張ユニットや延長ケーブルを使うことで回避できます。

  4. MSXのBASIC画面で、以下のプログラムを入力・実行してください。[CLOAD用音声] [詳しく]

    10 SCREEN,,,2
    20 A=&HF750:DEFUSR=A
    30 FOR I=A TO A+&H3A:READ A$:POKE I,VAL("&H"+A$):NEXT
    40 PRINT"PUSH ANY KEY TO SAVE";:A$=INPUT$(1)
    50 B=USR(&H1)
    60 DATA 3A,FF,FF,2F,F5,DB,A8,F5,23,23,7E,F5,26,40,CD,24
    70 DATA 00,F1,26,80,CD,24,00,3E,FF,CD,EA,00,21,00,40,01
    80 DATA 00,80,7E,C5,E5,CD,ED,00,E1,C1,23,0B,78,B1,20,F2
    90 DATA CD,F0,00,F1,D3,A8,F1,32,FF,FF,C9

  5. PC側で録音ツール(WaveClipper等)を起動して、録音を開始してください。[詳しく]

    波形が加工されてしまうと正しく変換ができないので、音質補正やエフェクトなどのオプションがある場合はすべてOFFにしてください。
    (WaveClipper を使う場合は、「ファイル」→「サンプリング設定」のチェックボックスを全て外してください)

  6. ツールが録音状態になったら、MSX側で何かキーを押してください。カチッと音がして、ROMカートリッジの内容をピーガー音で出力します。スタートすると中断できないので注意してください。
  7. 2分半ほどでMSXの画面にOkと表示されるので、録音ツールを停止してください。
  8. PCで NandemoPiGa2 を起動して、右下の「バイナリー変換」の「通信速度」を「2400」にしてください。[画像]

  9. 今録音したwavファイルを NandemoPiGa2 にドラッグ&ドロップしてください。
  10. エラーが出ている場合は修正してください。[詳しく]
  11. 「バイナリーファイル作成」をクリックし、「〇〇〇〇〇〇.ROM」のようなファイル名で保存してください。
  12. これで作業は完了です! WebMSX のページを開いて、できたばかりの ROMファイルをドラッグ&ドロップしてみましょう。

【参考】8.~12.の動画

詳しく説明

「ざっくり説明」の補足です。

よくわからなかったり、うまくいかなかったり、お時間がある人は、この先を読んでください。


ツールについて

PC側で必要なツールは、「入力された音声をwav形式で保存できるツール」と、「テープセーブ用に出力されたwavファイルをバイナリー変換できるツール」です。

最近の Windows では、wav形式で音声を保存するツールが付属していないので、何らかの外部ツールを使用することになります。

特にこだわりがなければ、シンプルでインストールの必要もない WaveClipper をおすすめします。

また、wavファイルをバイナリー変換するツールについても色々ありますが、なんでもピーガーmkII(NandemoPiGa2)は(作った自分で言うのもアレですが)なかなか使いやすいと思います。


ROMを差すスロットについて

今回の方法では、本体のカートリッジスロットA からROMデータを吸い出しますが、一部、正しく動作しない機種があります。

日本国内で流通していたMSXの多くは、カートリッジスロットA が内部的に「基本スロット1-0」という扱いになっているのですが、例えばナショナルの CF-3000 のスロットAは「基本スロット2-0」となっており、このまま実行すると別のスロットのデータを吸い出してしまいます。

そのような機種を使用する場合、4.のプログラムの50行の 「&H1」の部分を、内部的なスロット番号に合わせて変更してください。

50 B=USR(&H1) ←ここを書き換える

各機種のスロットが内部的にどういう扱いになっているのかは、MSX Slot Info Viewer を使うと簡単に分かります。

CF-3000 のカートリッジスロットA を使用する場合、内部的には「基本スロット 2-0」になるので、「&H1」を「&H2」に変更する必要があります。

また、拡張スロットを使う場合についても同様にプログラムの修正が必要です。

例えば、以下の画像のような環境では、スロットA に拡張アダプタを差して手前から2番目のスロットである「拡張スロット1-1」を使用しているので、「&H1」の部分を「&H85」に変更することになります。


プログラムについて

プログラムについて、簡単に説明していきます。

10 SCREEN,,,2

20 A=&HF750:DEFUSR=A

30 FOR I=A TO A+&H3A:READ A$:POKE I,VAL("&H"+A$):NEXT

40 PRINT"PUSH ANY KEY TO SAVE";:A$=INPUT$(1)

50 B=USR(&H1)

60 DATA 3A,FF,FF,2F,F5,DB,A8,F5,23,23,7E,F5,26,40,CD,24
70 DATA 00,F1,26,80,CD,24,00,3E,FF,CD,EA,00,21,00,40,01
80 DATA 00,80,7E,C5,E5,CD,ED,00,E1,C1,23,0B,78,B1,20,F2
90 DATA CD,F0,00,F1,D3,A8,F1,32,FF,FF,C9


WaveClipperでの録音方法

WaveClipper
http://t-ishii.la.coocan.jp/hp/wc/index.html

PCで WaveClipper を起動して、「ファイル」→「新規録音」で、保存するファイル名を入力してください。

「ファイル」→「サンプリング設定」で、「モノラル」を選び、各オプションをすべてOFFにしてください。

「入力のモニタリング」をONにすると、実際に録音されている音が聴こえるようになるので安心です。

環境によっては「ループバック録音」しかできない場合もあるかもしれません。これでも録音は可能ですが、PCで再生される音が全て録音されることになるので、録音中は他の音が鳴らないように注意してください。


NandemoPiGa2 でエラーを修正する

通信速度の設定が違っている場合

位相が逆になっている場合

ノイズが多い場合

その他


メガROM対応版

「ざっくり説明」のツールはメガROMには非対応でしたが、やろうと思えばメガROMをPCに転送することもできます。

ただし、以下のことに注意してください。


何かお困りのことがあれば、twitter で @tiny_yarou までお願いします


DEEP! P6!/MSX! へ戻る