2011年10月16日日曜日

MD SaveData読み書きTool 「Sweet Rammy」

既にご存知の方も居られると思いますが、先日MDのセーブデータ読み書きの実験をしました。

その実験での現状の結果では、

・カセットを分解する必要がある

・SRAM64K限定

となって止まっていますw

が、とてもありがたいことに、メガドライブに精通しておられるFuture Driverの管理人さんがメガドライブ本体を使った読み書き実験をしてくれました(^-^)

そのページはコチラ→Sweet Rammy

リンク先見ていただければ一目瞭然ですが、

・メガドライブのMPU(68000)に1箇所スイッチを取り付ける

・通信ケーブル回路の製作

・何れかのフラッシュカートリッジ

を準備しておけば、PCとシリアルケーブルで接続して読み書きできてしまいます!

ってことで、早々にやって・・・って、ぶっちゃけツール自体は14日の夜にアップされていたのですが、諸般の事情(って書くとカッコいい?)によりアップが今日になってしまいました(^-^;

これ書いてる現在(2011/10/16)公開されているSweetRammyのバージョンは0.00で、SRAMの読み書きのみに対応しています。

68000のスイッチやケーブルの回路などはSweet Rammyのページを見てもらえば詳しく書いてあるので、そちらを参考にしてください。

PICT6563 PICT6564

今回私が使った本体はメガドライブ2なので、PLCCの68000です。

パターンカットは必要なく、19pin(PLCCの場合)とGND間にON/OFFスイッチを取り付けるだけでOK。

MD後面には丁度良い穴が開いてるので、そこへスイッチをセット。

余談ですが、このスイッチは68000を強制的にHALT(一時停止)させるので、この改造をするとゲーム中に好きなところ&好きな画面で停止させることが可能ですw

実画面をキャプチャしたい時はプチ便利・・・か?

あ、止まるのは68000だけで、Z80は生きてるため、音楽は鳴り続けます。

PICT6567

ケーブルは、MDコネクタにはパーツ屋で売ってるような9ピンD-SUBコネクタが取り付けられないので、要らなくなった3DOのコネクタで代用。

MDやATARIコントローラのジャンク買ってくるのが良いでしょう。

回路基板は取り急ぎ適当に(笑

使ってるロジックは公式通り74HC14を使ってますが、74HCT14でも問題なく使えました。(LS14は駄目)

フラッシュカートリッジは、EverDriveやNeoMyth・・・プログラムが書きこめるならどんなものでも構いませんw

上で写ってるものはコッチで作ったやつです。

ver.0.00は256KByteなので、昔のPCのマザーボードで使われていたBIOS用デバイス(1Mや2M)が2個あれば作れます。

PICT6568

で、まずSweet Rammyを書き込んだフラッシュカートリッジをMDに挿して起動する(スイッチはOFF)。

この時、2Pコントローラポートに製作したケーブルを挿し、PCのシリアルコネクタと接続しておく。

次にスイッチをON(HALT状態)にして、セーブデータが使えるカートリッジに挿し換えておきます。

ここまででMD本体側の準備は終わり。

srammy4

PCとの通信はWindows付属のハイパーターミナルを使います。

VistaやWin7で付属してるかは知りませんw

XP以前のPCでインストされてなければOSのCDから追加する。

因みに、私はWin95時代に使った記憶が辛うじてあるぐらいで、久しぶりにハイパーターミナル使いました(笑

srammy5

設定は上の感じにして、設定情報は保存しておきましょう。

srammy0

で、準備が出来たらいよいよ通信です。

Sweet Rammyのコマンド説明の通り、「AT.000000」をタイプ。

MDの改造、ケーブルの製作&接続が問題なければ上の画面が表示されます。

Enterキーは必要無く、上のコマンドが入力された時点でカートリッジのヘッダからSRAMの情報が読まれてセットされます。

尚、コマンドのアルファベットは必ず大文字で入力すること。

でないとエラーになります。

SRAMの64KByteを使ってるゲームの場合、大半のものは上の表示になるはず。

PS.002000がSRAMのサイズで、256KByteのものならPS.008000と表示されることになりますが、全体的にあまりにも数値的に変な場合、カートリッジが正常に認識されていない可能性があります。

MDのエッジコネクタやカートリッジの端子を掃除するなどしてトライしましょう。

srammy1

読み込みをするにはRD.000000コマンドを入力。

SRAMの64KByteを読んでる様子ですが、読み込み中は画面に英数字がダダァ~と流れます。

64KByteの読み込み時間は約38秒ぐらい。

ここまでの動作確認が出来たら、実際にデータを保存してみる。

srammy6

転送タブのテキストのキャプチャを選び、適当な名前を入力して開始ボタンを押す。

再度RDコマンド入力し、データを読み込みします。

srammy7

OKが出たらキャプチャを停止。

キャプチャ開始から画面内に流れた文字がテキストファイルとして保存されます。

srammy8

お分かりのようにデータはテキスト形式で読み込まれます。

画面外の右の方にデータがズラァ~っと書かれてますw

コマンドや改行コードは必要無いので削除する。

テキストファイルのままではセーブデータとして使えないので、バイナリデータに変換してやる必要がありますが、これはVectorとかから適当なものを。

私はHEX2BINというやつをとりあえず使った。

あ、データは8bit形式なので、エミュで使うには更に前書いたように16bit仕様に変換する必要があります。

.

読み込みとファイルの作成までが確認できたら次はデータの書き込みです。

試しに今保存したデータを書き戻ししてみる。

srammy9

WD.000000を入力(Enterは無し)した直後、転送タブのテキストファイルの送信を選択、

srammya

保存しておいたデータを開く。

正常に書き込めたらOKと出る、って簡単にできてしまった(笑

(エミュから実機へデータ持ってく方法は後述)

とまぁ、こんな感じで、ランドストーカー・シャイニングフォースⅡ・デビルズコース・マスターオブモンスターズ・シャイニングアンドザダクネス・ファンタシースターⅡ・ファンタシースター千年紀の終わりに、etc.

が正常に読み書きできることを確認できています(^-^)

PICT6569

画像に写ってるもの全てまだ試せてませんが、SRAMは一部を除いて殆ど大丈夫そうな感じ?

「一部」というのは、Future Driverの管理者さんと同じく、アドバンスド大戦略(256K)のデータが上手く出てこない(^-^;

・・・とっかえひっかえやってたから元からデータが入ってたかわからないんだよね(汗

これは一度セーブしてから再度テストかな。

【訂正追記:20111020/22.15】

256Kを使ってるアドバンスド大戦略ですが、端子を掃除して、セーブデータを新たに作って試した結果、問題なく読み書きできました(^-^;

単純に接触不良だったのかも(爆

PICT6570 srammyb

それと、FRAMを使ってるソニック3ですが、ウチではデータ出てきてると思うんだけど、エミュに持ってくと認識されない&読み込み、書き込みが不安定な感じですね。

これも要確認かな。

.

さて、エミュのデータをカートリッジに書きこめるようにする方法を。

エミュでは主に16bit仕様のデータが使われているので8bit仕様に変更して、というのは前回やったから端折るとして、問題はバイナリからHEX(テキスト)への変換です。

Vectorとか探すと見つかるには見つかるんですが、IntelHEXや2Byteおきにスペース&16Byteデータ目で改行コードが入るものしかなく、データ垂れ流し状態への変換ツールは見つかりませんでした(^-^;

どっかあるのかなぁ?

これができないと書き込みの利点が半減(?)してしまうので、簡単なツールを作ってみました。

・・・ツールと呼べるかどうか疑問ですが(^-^;

srammyc

CMDでセーブファイルを選ぶと勝手にSweetRammy.txtを作りますので、ハイパーテキストで選択して送るだけでです。

ただし、エミュオンリーで作成されたセーブデータはオリジナルカートリッジのデータとはサイズが異なる場合があるので、その辺はご自分で判断して調整してくださいw

あ、データが16bitだった場合は8bitに変換してからということで(ぉ

.

そんなわけで、現在はSRAMの64Kと256Kのみ対応ですが、今後の予定ではEEPROMの対応、更にはゲームROMの吸い出しもできるようになるとのことでとても楽しみですね。

現状でも主だったSRAM仕様のゲームは読み書き問題ないわけですし、十分使えるので、是非皆さんもお試しを!

YoGirlさん、ありがとうございましたm(_ _)m

ver.UP楽しみにしてま~す(^-^)/

5 件のコメント:

YoGirl さんのコメント...

そうそう、HALTスイッチ付けておくと、イベントシーンやエンディングでも一時停止させてじっくり眺められるとか、何時でもトイレに逝けるとか、何かと便利な気がします。

そしてメガドライブソフトの箱が全部残ってるのがステキですね。
ウチは箱が邪魔臭く感じて箱を全部捨てた後、更にカートリッジすら邪魔臭くなってガワを捨てて基板だけになりました・・・。
かと言ってソフトを沢山持ってる訳ではないです。 単に物がいっぱいあるのが苦手なだけと言う・・・。

ツボック さんのコメント...

ぽんさん、メール送りました

ぽんRev さんのコメント...

YoGirlさん

そういえば、MDの箱有り率は高いですね(笑
多分、60本前後あるはずです。
とっても場所取ってます(^-^;

しかし、ガワまで捨てて基板だけで保管ってのはとても珍しいと思います(笑
壁一面に飾ったら美しいかもしれないw

ところで、今ストーリーオブトアのセーブデータ読んでみたのですがダメっぽいですね。
セーブデータらしからぬ数値の羅列が、何度やっても同じデータが出てきます。
これがヘッダ情報と違うというものなのかな?
確かEverDriveMDの時にそんな話があったような気が・・・
とりあえず、ご報告まで。


ツボックさん

メール届いてないみたいです(^-^;
今までの経験上タイムラグってのも考えにくいので、再度送ってくださいまし~(^-^)

ツボック さんのコメント...

メ-ル再度送りました

ぽんRev さんのコメント...

ツボックさん

なんでだろうか?
やっぱり届かないので、今こちらから送ってみたので、見れたらそれ使って返信してみてくださいね。