savファイル情報

「savファイル情報」の編集履歴(バックアップ)一覧に戻る
savファイル情報」を以下のとおり復元します。
#contents
*スレで聞く前に
 fsutil file createnew xxx.sav 8388608
これをコマンドプロンプトで打ち込んで、8MB0埋めセーブデータを作る必要があります。

*sav基本構造
[[http://game14.2ch.net/test/read.cgi/gameurawaza/1214256294/597]]より
 ちょっと解析結果まとめ
 まず8MB.savを作成し、BBDXに読み込ませる。
 Wifi楽曲ダウンロードは直接ROMから保存先をしていされるのではなく
 楽曲を.savに書き込もうとするときにsavファイルにROMが書き込んだ文字列が、別チップに書き込むに指令をだすと仮定
 略図つttp://blog-imgs-21.fc2.com/w/h/i/white1024/BB.jpg
 savを解析。すると↓の結果が得られた
 sav内を解析した結果
 蘒 BBDX1234 9000 0,0 0ヒォ
 ア BBDX1234 1000
 9 BBDX1234 1000
 BBDX1234 0000
 s BBDX1234 9000 0,0 0ヒォ
 - BBDX1234 1000 @ ツ調按 エソ ツ調按 エソラ嶄 JBXA ・V
 という6種類のデータの保存先を指定しているっぽい文字列を発見
 .BBDX12341000.がセーブデータ保存領域と仮定し、.BBDX12349000.の9000のところを全て1000に置換
 そして起動
   ↓
 セーブデータがなくなる
   ↓
 1000はセーブデータ領域ではなかった。
 同様に1000を9000に置換
     ↓
 セーブデータは既存
     ↓
 どうやら9000はセーブデータ領域の可能性大
 最初にやれば良かったのだが0000が一番あやしい
 0000を9000に置換し起動
 楽曲ダウンロード
   ↓
 エラー
 とりあえず現段階ではここまでです。
 引き続き解析を進めます。これとは異なるなんらかの解析結果をお持ちのかたは是非提供してくれるとありがたいです。
 一応書いておきますが最初8MB.savを作った段階では残りDL曲数が18だったのだが9000や1000、0000を書き換えた状態だと2曲になる。指定先の誤りだと思われる。
 とりあえずやったことをまとめると
 1000を9000に置換
 9000を1000に置換
 0000を9000に置換
 です。
 やろうとしていること(やってないこと)
 1000,0000を9000に置換
 1000,9000を0000に置換
 0000,90000を1000に置換
 1000を0000に置換
 9000を0000に置換
 以上のことから
 セーブ領域は9000or0000
 wifi領域は0000or1000
 自作曲領域は1000
 だと考えられます。この値は更に解析することによって絞り込むことは可能です。
 当方、DSTTでYSMENU環境ですので環境によって違う結果がでる可能性もありますのでそのときは報告してくれるとありがたいです。

*セーブデータバイナリアドレス
 一度0埋めを作ってやり直したが、やはりこのゲームのセーブデータは8000(16進アドレスで)ごとに区切られていて、
 隣接するところに同じデータを書き込む仕様のようだ
 上4桁0000代がBBDX1234 9000部分×2、
 上4桁0001代がBBDX1234 0000部分×2、
 上4桁0002代がBBDX1234 1000部分×2。
 が、以降の上4桁0003~は自作曲領域の模様。
 で、この8000セクションは、その領域に何かを書き込むとFFでそのセクション全体が埋まるようだ
 自作曲領域は繰り返しなしかもしれないっぽ 
 
 上4桁0004代がBBDX1234 9000部分×2、
 上4桁0009代がBBDX1234 0000部分×2、
 上4桁000C代がBBDX1234 1000部分×2、
 上4桁000D代がBBDX1234 1000部分×2、
 上4桁0010代がBBDX1234 1000部分×2、
 上4桁0015代がBBDX1234 0000部分×2。
 
 その後、0018部分にBBDX1234 3000が二つ点在するが、本当の自作データ格納部分は004Bから007Cまでみたいだ 
 >>246
 R4だと、4B0000以降の"BBDX12343000"をヘッダに持つデータが自作曲っぽいね。
 
 あと、bbs2bdxで作ったbdxファイルにはヘッダが無いからbdxtoolにはじかれるっぽい 

*BBDX1234埋め
セーブデータの初期化を、00でもFFでもなくBBDX1234の繰り返しで埋めると、Wi-Fiでxxできる模様。(現在は不可)

*1バイト追加
8MBセーブデータに00のバイトを追加→セーブデータ自動修復でWi-Fiラジオのみxxできる(つまり、100曲DL済み状態)の模様。(現在は不可)

*DL曲のbdx化
[[http://game14.2ch.net/test/read.cgi/gameurawaza/1214927818/128]]
 128 :名無しさん@お腹いっぱい。 :2008/07/02(水) 13:08:55 ID:E0UcolYx 
 つーかさ、0x00190000からDL曲が100曲(0x004AFFFFまで)入ってる。 
 で、Edit曲が0x004B0000から100曲分格納可能。 
 つまりバイナリエディタで0x00190000~0x004AFFFFまでを0x004B0000以降に移してやれば 
 最新のbdxtoolでもDL曲をbdx化できる。 
 検証済みだ。 
 これで旧ツールくれくれの必要ないだろ。

*DL曲領域について
 128氏の方法でbdx化したDL曲(Aとする)を
 自作曲領域にインポートした後、
 バイナリエディタでDL曲領域のAと自作曲領域のAを比較すると
 中身が全然違うデータになっている。
 なので自作曲領域のAをDL曲領域にコピペしても未来予想図化けする。
 
 じゃあDL曲領域のバイナリデータなら自由にコピペ出来るかと思いきゃ
 そういう訳ではなく、
 DL曲領域の先頭と2番目の曲を入れ替えただけでもこの2曲は化ける。
 
 格納されている順番がどっかに記録されてる?
 
 逆に言えば別savのDL曲でも
 元と同じ位置(例えば先頭なら0x190000)にコピペすると化けない。
 これを利用して1-100.savその他から好きな曲のバイナリだけコピーして
 DL曲領域にまとめることが出来る。自作曲領域を空けたい人におすすめ。
 ただしアドレス位置がかぶっている曲は大人しくbdx出力して自作曲領域にインポートすべき。
 空いてしまった領域は全てFFで埋めれば、曲選択の際に余計な曲を挟まずに済む。

*自作枠とDL枠の曲を総入れ替えする(128氏自動化+未来予想図回避)
http://retropc.net/apollo/download/xm7/bincut/index.htmからbincutをDL
し、以下をswap.batにして保存する。

 echo. すわっぷまじっく
 bincut a.sav header.sav 0 18FFFF
 bincut a.sav DL.sav 190000 4AFFFF
 bincut a.sav 自作.sav 4B0000 7CFFFF
 bincut a.sav footer.sav 7D0000 7FFFFF
 copy/b header.sav + 自作.sav + DL.sav + footer.sav swap.sav
 del header.sav
 del 自作.sav
 del DL.sav
 del footer.sav

交換したいsavファイルをa.savにリネームしてさっき作ったbatを実行。
できたsaveを上の未来予想図回避のためdegauserv1.0bで読み込み保存する。起動して無事読めれば成功。
戻したいときはswap.savをまたa.savにリネームしてbat実行、再度degauserv1.0bで読み込み保存すればおk。
成功時
#image(http://www31.atwiki.jp/bbdx1234?cmd=upload&act=open&pageid=14&file=zero_03195.jpg)


*小ネタ
**半角英数について
BBDX内で英数を打ち込むと、バイナリでは
 xx 00 yy 00 zz 00 ...
となります。これを、
 xx yy zz ... 00 00 00 ...
と書き換えると、半角英数に見えます

復元してよろしいですか?