POLYMEGAの基礎知識(仮)

元レトロフリークの基礎知識(仮)。何があっても自己責任で。

IPS

レトロゲーム販売 通販ショップの駿河屋

備忘録:ディスクシステムのセーブデータ調査手順とIPSファイルフォーマット

前回の記事で夢工場ドキドキパニックでセーブデータを探したときのメモ。

<セーブデータの調査手順>

・ディスク(夢工場どきどきパニック)を読み出したときのメッセージを確認。(A面とB面を読み込み)
Reading...
Block 1, 0000-0037: Disk 1 side 1
Block 2, 0038-0039: 7 files
Block 3, 003A-0049: File 0, NT @ 2800(E0)
Block 4, 004A-012A: data
Block 3, 012B-013A: File 1, PRG @ 6000(600)
Block 4, 013B-073B: data
Block 3, 073C-074B: File 2, PRG @ 6000(8000)
Block 4, 074C-874C: data
Block 3, 874D-875C: File 3, PRG @ B800(1900)
Block 4, 875D-A05D: data
Block 3, A05E-A06D: File 4, CHR @ 0(1FF0)
Block 4, A06E-C05E: data
Block 3, C05F-C06E: File 5, CHR @ E00(C00)
Block 4, C06F-CC6F: data
Block 3, CC70-CC7F: File 6, PRG @ 6600(6)
Block 4, CC80-CC86: data
7 files read
Reading...
Block 1, 0000-0037: Disk 1 side 2
Block 2, 0038-0039: 19 files
Block 3, 003A-0049: File 0, PRG @ 6000(5FF)
Block 4, 004A-0649: data
Block 3, 064A-0659: File 1, PRG @ BF00(1200)
Block 4, 065A-185A: data
Block 3, 185B-186A: File 2, PRG @ BF00(1200)
Block 4, 186B-2A6B: data
Block 3, 2A6C-2A7B: File 3, PRG @ BF00(1200)
Block 4, 2A7C-3C7C: data
Block 3, 3C7D-3C8C: File 4, PRG @ BF00(1200)
Block 4, 3C8D-4E8D: data
Block 3, 4E8E-4E9D: File 5, PRG @ BF00(1200)
Block 4, 4E9E-609E: data
Block 3, 609F-60AE: File 6, PRG @ BF00(1200)
Block 4, 60AF-72AF: data
Block 3, 72B0-72BF: File 7, PRG @ BF00(1200)
Block 4, 72C0-84C0: data
Block 3, 84C1-84D0: File 8, PRG @ C100(600)
Block 4, 84D1-8AD1: data
Block 3, 8AD2-8AE1: File 9, PRG @ D679(214)
Block 4, 8AE2-8CF6: data
Block 3, 8CF7-8D06: File 10, CHR @ 0(340)
Block 4, 8D07-9047: data
Block 3, 9048-9057: File 11, CHR @ 0(340)
Block 4, 9058-9398: data
Block 3, 9399-93A8: File 12, CHR @ 0(340)
Block 4, 93A9-96E9: data
Block 3, 96EA-96F9: File 13, CHR @ 0(340)
Block 4, 96FA-9A3A: data
Block 3, 9A3B-9A4A: File 14, CHR @ 1800(200)
Block 4, 9A4B-9C4B: data
Block 3, 9C4C-9C5B: File 15, CHR @ E00(A00)
Block 4, 9C5C-A65C: data
Block 3, A65D-A66C: File 16, CHR @ E00(A00)
Block 4, A66D-B06D: data
Block 3, B06E-B07D: File 17, CHR @ E00(A00)
Block 4, B07E-BA7E: data
Block 3, BA7F-BA8E: File 18, CHR @ E00(A00)
Block 4, BA8F-C48F: data
Block 3, C490-C49F: File 19, PRG @ 6600(6)
Block 4, C4A0-C4A6: data
20 files read
・できあがったFDSファイルファイルをバイナリデータで開き、それっぽい文字列(SAVE)で検索。アドレス確認。

・確認したアドレスと読み込み時のデータ近辺を探す。ブロック番号03で始まる16バイトにファイル名などが含まれる場所を探し、その次の04で始まる場所がデータの中身。
結果、下の部分にセーブデータあることが判明。
  Block 4, CC80-CC86: data

・該当データアドレス+16バイト(FDSヘッダ分)+1バイト(ブロック番号分)から先がファイル上のセーブデータの実際のスタートアドレス。( 0xCC80+0x0010+0x0001=0xCC91)
※今回はディスクA面にあったからこの計算でOK。ディスクB面以降ならディスクサイズ分足す必要がある。

・Block 4がCC80-CC86の7バイトなので、ブロック番号1バイトを除いた6バイトがデータ部分。結果、アドレスCC91から6バイトがデータ部分となる。

・セーブデータ部分の6バイトを直接バイナリーエディタで書き換えればFDSファイル上のセーブデータ削除も可能。

・チートコードは、ソフト側のCRCがセーブデータによって変わるかもしれないので、自分で作ったものは他のソフトでは動かないか、チートコード内のCRCの書き換えが必要と思われる。なので、今回はあえてIPSパッチ作成。


・IPSパッチの作成

0xCC91から6バイトを00で埋めたい場合のIPSパッチ。
1


・IPSファイルフォーマット。
先頭、データ部、最後の3ブロックに分かれている。データ部は繰り返し可。

・先頭:"PATCH"の文字(50 41 54 43 48)
・最後:"EOF"の文字(45 4F 46)
・データ部:
  開始アドレス(3バイト)
  長さ(2バイト)
  データ(長さで指定したバイト数)

上記の例だと以下の場所。
50 41 54 43 48・・・PATCHの文字
00 CC 91・・・開始アドレス
00 06・・・長さ
00 00 00 00 00 00・・・データ
45 4F 46・・・EOFの文字

データ部は複数繰り返し可能。


・データ部の他の記述法(同一文字で繰り返し埋める場合)、未検証。

データ部(以下の8バイトで1セット)
  開始アドレス(3バイト)
  繰り返し指定(2バイト、”00 00”固定)
  長さ(2バイト、繰り返したい長さ)
  データ(1バイト、繰り返す値)


その他、レトロフリークのパッチ機能に何らかのバグがある。
(原因未特定。サイズ?アドレスかぶり?V2.5で直っているか不明。)

以上。
レトロゲーム販売 通販ショップの駿河屋

ディスクシステム(夢工場どきどきパニック):セーブデータをクリアするIPSパッチ公開!

ディスクシステム専用ソフト、夢工場ドキドキパニック。
昔のフジテレビのイベントがらみで作成された任天堂のソフトです。



で、さっそく吸い出してプレイしてみたら・・
1
前のオーナーのセーブデータが入っていました。

で、最初からやろうとしたら、このゲーム、セーブデータの削除ができないようです。
確かスーパーマリオ2とかも消せなかったような。

・・・というわけで、セーブデータを初期状態にするIPSパッチを作成しました。
   
ダウンロードはこちら。(右クリックで保存)
yumekojo_savedata_clear.ips

ファイルはmicroSDの以下の場所に保存してください。(patchフォルダがない場合は、フォルダを作成)
\RetroFreak\patch\yumekojo_savedata_clear.ips


<実行手順>

・ゲーム(夢工場ドキドキパニック)を選択し、ゲーム設定画面からパッチ選択メニューを開く
1


・正しくSDカードに保存されていれば、ファイルマネージャーが開き、パッチの一覧が表示される。 yumekojo_savedata_clear.ipsを選択し、閉じる。
1


・「パッチ適用時はセーブデータを別に保存」がOFFになっていることを確認して、閉じる
1


・「互換性のない自動再開用データを削除しますか?」と聞かれたら、いいえを選択
1


・ゲーム開始。タイトル画面が出たらOPTION+STARTでB面に入れ替え。ステージ選択画面で過去データがクリアされていることを確認。
1

・HOME+Rでメインメニューに戻り、ゲーム設定画面を開き、パッチ選択メニューを開く。
パッチの適用を解除」を実行する。(パッチを削除しないと面をクリアしても保存できないため)
1

・・・以上で、レトロフリーク上でセーブデータが初期状態に戻ります。

注意すべき点は、ディスクシステムのゲーム内でSAVEをしても、元のFDSファイルが書き換わらないことかな。
レトロフリーク上のセーブデータを削除すると、最初の状態に戻ります。


ちなみに、夢工場ドキドキパニックは、後にキャラ差し替え版のスーパーマリオ2として海外で発売されています。
そしてそれがスーパーマリオUSAとして日本で発売されています。
スーパーマリオUSAはSFC/Wiiのスーパーマリオコレクションにも収録されています。

ドキドキパニックで行き詰まっても、スーパーマリオUSAの攻略サイトで対応可能!

スーパーマリオコレクション
任天堂 (1993-07-14)
売り上げランキング: 3,253

スーパーマリオUSA
スーパーマリオUSA
posted with amazlet at 17.09.15
任天堂 (1992-09-14)
売り上げランキング: 4,775

レトロゲーム販売 通販ショップの駿河屋

レトロゲーム販売 通販ショップの駿河屋

ゲーム福袋

・POLYMEGA対応機種(CD)
セガサターンNEWネオジオCDPSPCエンジンCD-ROM2アーケードカード用

・POLYMEGA対応機種(ROM)
NESSNESスーパーファミコンメガドライブスーパー32XジェネシスPCエンジンHuカードPCエンジンスーパーグラフィックス
注目商品(Amazon)
ベースユニット(本体)
エレメントモジュール(NES)

エレメントモジュールEM02(SFC他)

エレメントモジュールEM03(MD,32X他)

エレメントモジュールEM04(PCE HuCard、SG他)










楽天市場