レトロフリークの基礎知識(仮)

永遠の(仮)。最近はPOLYMEGA関連記事多め。何があっても自己責任で。
※当ブログ・記事へのリンクは歓迎しますが、引用元を明記しない、文章のみの転載・盗用は固くお断りします。

2017年09月

備忘録:ディスクシステムのセーブデータ調査手順と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のPlaymaji社の求人案内

POLYMEGA、相変わらずUI関連の続報来ませんね・・。

そんな中、先日からいくつかの求職サイトでPOLYMEGAの会社(Playmaji,inc)がエンジニアを募集しています。

POLYMEGAの求人案内(glassdoor)

FPGA/CPLDとかLinuxとかヒューマンスキルとか、求められるスキルは高いです。
あと、ボーナススキルとして、C言語とか「レトロ/クラシックゲームに対する愛」なんかもあるといいようです。

会社情報のところでは、
Competitors:Unknown(競合他社:なし
となっています。

RetroN5もレトロフリークも眼中にないとうことなのか・・・?

PCエンジン妖怪道中記:秘技コード公開「乙姫イベントに照明を!」

前回に続き、PCエンジン版の妖怪道中記。

妖怪道中記 【PCエンジン】
(1990-08-31)
売り上げランキング: 13,923

さて、先日twitterの方で流れてきたPCエンジン版妖怪道中記のとある画像。
とてもノスタルジックな気分になりました。

・・・乙姫のストリップイベントなんですけどね。

で、今回はそれを再現してみようと、チートコードを作成。
中身は2種類。

・乙姫イベント(通常)
・乙姫イベント(照明あり)
を見るコードです。

乙姫イベント(通常)で、ポーズも効かず、目を凝らして見るしかなかった昔の苦労を思い出し、
乙姫イベント(照明あり)で、そのときのもやもやした気分を吹っ飛ばす2本立てとなっております。

以下のリンクを、右クリックでダウンロードして適当な場所に保存してください。
codes-pce_youkai.xml

コードエディターでcodes-pce.xmlを開いてからインポートするか、
codes-pce.xmlという名前で保存して、RetroFreak/cheatsフォルダの中に放りこむ(既存のものと差し替え)か、
コードを見て直接追加するなど、お好きな方法で。


どちらのコードをも、実行してスタートすると、乙姫イベントの直前の場面からスタートします。
お金が必要ですが、払うことができます。(見た目の所持金は0ですが)

・乙姫イベント(通常)の場合は、通常どおりこんな感じ。まともに見えません。
1

・乙姫イベント(照明あり)の場合は、スタート時の色がおかしいですが、イベントが始まるとこんな感じで最後まで行けます。
1

乙姫さん、結構過激なことしてたんですねぇ。

1

たろすけがえろすけになるのもうなずけますな・・。
レトロゲーム販売 通販ショップの駿河屋

ゲーム福袋

・POLYMEGA対応機種(CD)
ネオジオCDPSPCエンジンCDROM2アーケードカード用

・POLYMEGA対応機種(ROM)
NESSNESスーパーファミコンメガドライブスーパー32XジェネシスPCエンジンHuカードPCエンジンスーパーグラフィックス
注目商品(Amazon)



















楽天市場
Amazonライブリンク
最新コメント