2017/04/30

今更人に聞けないMSXの吸い出しのこと

少し前までは『石に齧りついても実機派』だったけど、レトロフリークのような機械に慣れてしまうとやっぱり便利で…。
ということで、手持ちのMSXのゲーム(とりあえずはカートリッジ)を吸い出して1chipMSXで運用しようと考えたが、思っていた以上に難儀したのでメモだけ。

(以下メモ)

使用したツールなど

  • 使用本体
    1chipMSX
  • 吸い出しツール
    NSSAVE.COM
    MGSAVE.COM
    SAVEROM.COM
  • イメージデータ検証ツール
    GoodToolsのMSX1とMSX2
    ROMchecker
    Blue MSXとフロントエンド

吸い出し方法

とりあえずは『カートリッジ後差し』の方法で可能な限り吸い出し。
KdL氏のカスタムファームウェアを当てた1chipMSXならば、ディップスイッチで似非SCCにセットしてカートリッジスロットを不使用にし、カートリッジを差して電源投入後にSLOTMODE.COMでカートリッジスロットを使用に切替した方が安全か。


イメージデータの検証

気持ちの問題かもしれないが、エミュレータでの動作確認ではなく『正常に吸い出せたか否なか』を検証するために、いくつかツールを使用したがドハマり。

初めはGoodToolsを使用していたが、CUIでコマンド打つのが面倒くさくてヤメ。
次にROM checkerを使用したが、ピットフォール2のデータサイズが異なることに気付き、信頼性を疑問視した。

また、何度吸い出しても同じデータとなるのに上記の2つのツールではBAD_DUMP扱いとなってしまうものが多く、最終的にBlueMSXのデータベースで検証することにした。

(メモのメモ)
  • GoodToolsのデータベースは古いらしい。
  • ROM checkerのデータベースはGoodToolsと同等か?
  • BlueMSXのデータベースではGoodtoolsのようにバージョン違いなどの記号をゲーム名に与えない。
    フロントエンドのリネーム機能を使う場合、バージョン違いのゲーム名は手動修正が必要。

その結果、5タイトルを除いて手持ちのカートリッジが正常に吸い出せたことを確認した。

吸い出し不良の再検証

手持ちのカートリッジで吸い出し不良と思われるものについて再検証した結果、
  • グラディウス
    結果としてはサイズ不良。
    何度吸い出しても104kBのイメージデータとなったが、128kBとなるように『FFh』を付け加えたところデータベースと一致。
  • は~りぃふぉっくす雪の魔王編
    ※苦労してイメージ化したが、探し方が悪かっただけで専用のツール有り。
    但し、せっかくイメージ化しても1chipMSXなどで遊ぶためのローダーが無いかも。


    そもそも吸い出し方法が不明。
    カートリッジ分解を分解すると32kBのROMが2個入っているが、MGSAVEを使用したものはBlueMSXで動作不可。
    デフォルトだと32KBになってしまうので、強制的に64kB分読み込んでみたがダメ。
    バイナリエディタで開くとROMイメージのアドレスで0000h~7FFFhと、8000h~FFFFhがミラーとなっていた。

    NSSAVEを使用したものはデータサイズが足りないがBlueMSXで動作可能。
    最低でも先頭16kBは正しそう?
    また、ROMイメージのアドレスで4000h~7FFFhは、MGSAVEで作成された0000h~3FFFhと一致した。

    SAVEROMで4000h~32kB分を2バンク吸い出したものはBlueMSXでは動作不可。
    ROMイメージのアドレスで0000h~3FFFhと8000h~BFFFhがミラー。
    但し、MGSAVE,NSSAVEで吸い出したものには含まれていないデータ。
    4000h~7FFFhは、MGSAVEの0000h~3FFFhとNSSAVEの4000h~7FFFhと一致。
    C000h~FFFFhは、MGSAVEの4000h~7FFFhと一致。NSSAVEでは無し。

    何だコレ?
    正常なデータでは16kBずつP1~P4の並びとすると、
    NSSAVEではP1,P2のみ吸い出して、もちろんP3,P4は吸い出せず。
    MGSAVEではP2,P4,P2,P4のミラーとなっている?
    SAVEROMではP3,P2,P3,P4となっている?
    …こうか?

    試しにSAVEROMで吸い出したデータの先頭16KBを、NSSAVEで吸い出したデータの先頭16kBに差し替えしてみたところデータベースと一致した。

    多分カートリッジ基板の回路図調べればSAVEROMで一発で吸い出せる気がする…。
  • データベース無し?
    タンクバタリアンとディグダグは、何度吸い出しても同じデータとなるが、データベースと一致せず。

    TAKERU版の賢者の石も同様に、数回吸い出してもデータ自体は変化なし。
    一般販売版の賢者の石と比較すると、2箇所で各1バイトの不一致点しか無いことから、元からこういうデータなのだろうか…。

    データベースが無いと思いたいけど、タンクバタリアンは7バージョン位あるみたいなんだよな…。
結局のところ気にしない方が良いみたいだな。

おわり。

(2017/8/15追記)
あれから20タイトル程購入したので、難儀したものだけ追記。
  • データベース無しと思われるもの
    アンジェロ:
    BlueMSXとOpenMSXのデータベース上のハッシュ値は同一だが、吸い出したものと一致せず。
    数回吸い出してみてもデータに変化は見られないので、一応正常に吸い出されているのだろう…多分。
  • サイズ不明
    ブレイクイン:
    Tagooのデータベースではサイズ1Mbitとなっているが、BlueMSXでは512kbitとなっている様子。
    SAVEROMで0000h~FFFFhの範囲を吸い出せばBlueMSXのデータベースと一致したがどちらが正しいのだろう?
    分解すれば一発で判るんだけど、ジャレコのカートリッジはラベル剥がさないといけないし…。
(2017/10/5追記)
ナムコのカートリッジは大まかに外箱の形状・カートリッジの大穴有無で2バージョンあるが、分解してまで確認していないけど、旧版は8KBのROM2個(ダンプするとファイルサイズが32KB)、新版は16KBのROM1個なのか?

旧版をダンプしたものを確認するとミラーになっているが、00HまたはFFHで埋めるとデータベースと一致するのかな?
…確認するの面倒くせぇ

    1 件のコメント:

    1. MSXAdvanceで変換すれば、レトロフリークでも遊べるはず

      返信削除