2011年10月19日水曜日

MD SweetRammy コマンド手動入力で読み書き

前回のプチ続き(?)です。

nさんから情報を頂いて、探したら対象のブツが出てきたのでw

(先にやってごめんね~)

PICT6573

いろいろ写ってますが、ターゲットは右下のスーパーハイドライド。

これはセーブデータの位置がヘッダ情報と異なるとのこと。

っていうか、ヘッダ情報がまともじゃないってことですね(^-^;

srammye

Sweet Rammyを使い、ATコマンドで自動設定(ヘッダから情報取得)すると、確かに正常な数値ではないし、このままでは絶対にデータ読めないですね(^-^;

PS.000000だから、ここだけ見るとバックアップ無しタイトルみたい(笑

でもスーパーハイドライドは64KのSRAMがちゃんと載ってるので、折角ですから手動で読み書きできるか試してみました。

上のハイパーターミナルの画像を見てもらえばわかると思いますが、PR.コマンドで読み込み開始アドレスを200001に手動でセット、P+.コマンドでバイト数をセット、その後にRD.コマンドで002000を指定する。

PICT6575 srammyd

無事に読み込むことが出来ました(^-^)

次は書き込み。

srammyg

書き込む場合はPW.200001をセットしてやればいいのですが、上のようにAT.コマンドを入力するとPR.202020に戻ってしまい、PW.だけでは書き込めなかった。

もしPR.の値を戻してしまったら、書きこむ場合でもPR.200001を再度セットする必要がある。

PS.とP+.の値は多分変わらないと思うけど、もし何らかの変化があった場合はこれらもセットする。

ただし、PS.コマンドを直打ちでセットは出来ないので、WD.002000とすればOK。

このような手順を踏めば、ヘッダ情報とセーブデータの位置が異なっていてもちゃんと読み書きすることが出来ました(^-^)

偶然とはいえ、手元に良い題材があってよかった(笑

.

一番上の画像のバハムート戦記、これは256KですがSweetRammyで問題なく読み書きできます。

ドッジ弾平はEEPROMのテスト用(笑

ストーリーオブトアはAT.コマンドでの表示は正常っぽいが、データが上手く出てこない。

24Mbitのゲームなんだけども、セーブデータの開始アドレスが違うのかもしれないね。

【訂正追記:20111019/22.40】

コメントにて情報を頂き、ストーリーオブトアのセーブデータが手動設定で読み書きできるようになりました~(^-^)

なるほど~、ロック&アンロック法は覚えておくと良いかも。

YoGirlさん、ありがとうでしたm(_ _)m

【更に追記】

って~ことは、だ。

Sweet Rammyのページにソニック3(FRAM)の挙動がおかしいとあったから、試しにUnlockしてみると、

srammyi srammyh

キタ~!\(^-^)/

ホントだ(笑

ちゃんと出てきたよw

でもね、ソニック3に関してはこの方法は毎回通じないみたい(^-^;

機嫌が良いとちゃんとアンロックして読み書きできるようになる(笑

ちょっと不思議君な感じ。

【更に訂正(汗):20111020/20.55】

ソニック3のFRAM読み書きに関して答えが出ましたw

上でUnlockして・・・と書きましたが、コマンドでのUnlockは関係無かった(^-^;

簡単に説明すると、MDでソニック3をプレイすると、ロックが掛かった状態になるようで、直後にSweet Rammyで読み込みしようとした場合、正常なデータは得られません。

ではどうやって読むかというと、Sweet Rammy実行時に、再度HALT-ON→ソニック3を挿し直し→HALT-OFFとすればFRAMがアンロックされて正常に読み書きできるようになるのでした~(^-^)

ということが今日の実験で判明。

何度か繰り返したが同じ挙動になるため、安定した読み書きが出来るハズだ。

手順を詳しく書くと、

・ソニック3(FRAM)をプレイ(起動)した直後と仮定した場合

①FlashカートリッジからSweet Rammyを起動

②HALTスイッチON

③ソニック3に挿し換える

④HALTスイッチOFF

⑤HALTスイッチON

⑥ソニック3を一度抜いて再度挿す

⑦HALTスイッチOFF

⑧ハイパーターミナルで読み書きOK

となるw

いや~、しかし面白いっ!

なんで面白いかわからないけどとっても面白いぞ~!

Sweet Rammy超遊べるw

その内Sweet Rammyで読み書きできるタイトルリスト作ってみたいな、とか思っていたり。

序に、わけあって正味20分程度で作ったフラッシュカートリッジ。

PICT6576

うん、MDはポン付けだから簡単だw

.

シレンGB2の読み書きも問題ない・・・GBCartFlasherで(ぇ?

いや、MDと関係ないんだけど、序に書いてみました(^-^;

.

P.S. もう寝るのでメールはまた後々で(爆 ←一人しかわからないよなw

10 件のコメント:

YoGirl さんのコメント...

おや。投稿したコメントが表示されないから、
念の為もう1度、要点だけ書いておきます。

トアは以下の方法で読み出せるかもしれません。


AT.000000
PR.A130F1
WD.000001 ← SRAMアンロック
AT.000000
RD.000000
~ データ ~
PR.A130F1
WD.000000 ← SRAMロック

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

コメントはたまにblogger標準のスパムフィルタに引っ掛かることがあるのですが、その場合は私が後で解除します。
その場合はメールで届くんですが・・・今回はメールも来なかったから、ちょっと原因がわからず(^-^;
メールといいコメントといい、googleが悪さしてるのかも?(←ということにw

トアの情報ありがとうございます。
おかげさまで読み書きできることが確認できました(^-^)

WD.000001続けて01でアンロック
WD.000001続けて00でロック

ということですね。
これは今後も使えそう(?)な技法なので覚えておかなきゃ。

しかし、16Mbit超えるタイトルの場合はやっぱりセーブデータのアドレスがズレてることがあるんですね~
PS4は普通だったからトアが稀なのかしら?

YoGirl さんのコメント...

おや、コメントに肝心のアンロック 0x01 とロック 0x00 を書くの忘れてた・・・。(´ω`*)

海外の誰かさんの解析によると千年紀もプログラム上はアンロック操作をしてるらしいです。 実際のカートリッジがデフォルトでアンロック状態なのは何でだろう。

そしてふと千年紀に関連して思い出したのだけど、復刻版のセーブデータも読み書き出来たら完璧な気がします。
カートリッジに乗ってるSMS用メモリーマッパー、メガドライブモードでも機能 & 操作出来るか謎だけど。

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

>デフォルトでアンロック状態
ってことは、逆に0x00入れたら読めなくなるのかな。
帰ったら試してみよう(笑
そういえばソニック3はリードロックなのだろうか?
これも試してみよう。

>復刻版のセーブデータも読み書き
これは是非実現してほしい機能ですねw
もし可能になっちゃったら、SMS版ファンタシースターとかもいける?

行く行くはVRも出るようになれば最高ですね(^-^)

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

試したところ、残念ながら(?)千年紀はロック掛かりませんでした(^-^;

で、ソニック3のセーブデータ読み書きを安定させる方法を見つけました。
(本文に追記済み)
なんでこうなるかはわかりませんが、今のところ100%で成功してるのでとりあえずOKですかね。

ところで、薄々わかってはいたんですが、RP.000000とP+.000001で・・サクッ
HEXでは実用的ではないにしろ、これはこれで。
メインにSRAM載っけたらそのままいけるんじゃなかろうか、とか、いろいろ頭に浮かんできますね(笑

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

あ、それと、アドバンスド大戦略は端子を掃除したら普通に読み書きできました。
前に出てきたような変な数値は今のところ一度も出てこないので、多分大丈夫かな?

YoGirl さんのコメント...

そうそう、単純に指示された通りに68000がメモリーアクセスするだけの単純構造なんで、手動であれこれやれば、ROMだろうがVRAMだろうがどこでもアクセス出来ちゃいます。
FM音源にアクセスして曲を演奏させてみるとか、くだらない芸も出来ます。(笑)

SONIC3について少し情報があったのだけど、もしかしたら68000側からRESET信号出せば良いのかもしれない気がしました。
ダメだったらHALT繰り返しましょうと言う事で検証どうもです。

大戦略ってもしかしてカートリッジの金めっきが劣化しやすいのかな・・・。
ReadMe.txt に「特に大戦略は掃除してから挿せ」って書いておこう。

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

こんばんは、ツボックです。
ぽんさん、画像は届きましたか?

YoGirl さんのコメント...

Rammy 0.01公開して見ました。
限定的に24C01対応しました。

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

え~、昨夜部屋へ入って直ぐに爆睡しまして、今朝起きたとこなのでなぁ~んにもやってません(-_-;
と一応プチ日記w


ツボックさん

無事届いてますよ~(^-^)
今夜にでもメールしますね。


Yo Girlさん

>FM音源にアクセスして曲を演奏させてみる
あっ!これめっちゃ面白いかも(笑
でも、音楽データのアドレスがわからないとだめなのかな?
となると、私みたいな素人にはちょっと使いきれないですかね(^-^;
しかし、こうみると、SweetRammyってメガドラリモートシステムな感じですよね(笑
Z80の制御も出来るだろうし、その気になってクライアント作ったら凄い事になりそうな予感w
チップチューンでも活用できそうですし。

Rammy0.01のアップありがとうございます~(^-^)
今回は時間的に即効で試せました(笑
結果、MW3、忍者武雷、ドッジ弾平が無事読み書きできることを確認しました。
EEPROM対応は初(?)だと思うのでとても素晴らしいことだと思います(^-^)
やっぱ凄いなぁ・・・

ところで、プロ野球 スーパーリーグ'91は、ウチにあるカセットだとSRAM64K(ヘッダ情報間違いw)なのですが、もしかして別バージョンも在るのかな?

あと、まだ試してないけど、一度メモリに読み込んでから書き込みってことは・・・SRAMはサイズ的に無理なのかな?
68000のRAM以外に読めるんだろうか?
ま、これは後ほどテストしよう。