島国DNA
元ネタ
余りにシュールすぎたので変更しましたw
ダライアスコズミックコレクションから
ダライアスIIとサーガイアの抽出
経緯(長文注意)
分からん!
●ダライアスⅡ(二画面ver)(未完成)
BSwap.exe d B game.exe oddeven.txt odd.bin even.bin
bcut.exe game.exe c07-10.95 0x5CF1E0 524288
bcut.exe game.exe c07-11.96 0x64F1E0 524288bcut.exe game.exe c07-09.75 0x74F5E0 524288
bcut.exe game.exe c07_17.69 0x86F5E0 131072
bcut.exe game.exe c07-12.107 0x90F5E0 524288
bcut.exe game.exe c07-03.12 0xA0F5E0 524288
bcut.exe game.exe c07-03.47 0xA0F5E0 524288
bcut.exe game.exe c07-04.11 0xA8F5E0 524288
bcut.exe game.exe c07-04.48 0xA8F5E0 524288bcut.exe game.exe spriteex 0xB0F5E0 1048576
bcut.exe odd.bin c07_20-2.74 0x3678F0 131072
bcut.exe odd.bin c07_21-2.76 0x3878F0 131072
bcut.exe even.bin c07_19-2.73 0x3678F0 131072
bcut.exe even.bin c07_18-2.71 0x3878F0 131072「spriteex」はたぶんスプライトなんだろなっていう予想です。違う可能性も全然あります。
というか本来スプライトは0x200000必要なんですが、この位置からだと普通にファイルサイズが足りませぬ。他に0x200000空いてる場所もありませぬ
一応0x100000でバイナリの区切りが付く&進むとsteamとか文字列が出てきちゃうもんで切り出してあります。
ダミーくっ付けたり、二回繰り返しで0x200000にしたうえで分割試すとうまくいくかも・・・いかないかも・・・
ちょっと試行してみたけどうまくいってないです。おのれM2
ちなみに三画面バージョンのスプライトは0x100000です(一致しません)
二画面バージョンでも実際に使う部分は半分てことでしょうか⇒ダミーくっ付け濃厚…?●サーガイア用差分
揃ってはいます。このままだと無意味。
bcut.exe game.exe c07_41.69 0x84F5E0 131072
bcut.exe odd.bin c07_44.74 0x3E7AF0 131072
bcut.exe odd.bin c07_45.76 0x407AF0 131072
bcut.exe even.bin c07_43.73 0x3E7AF0 131072
bcut.exe even.bin c07_42.71 0x407AF0 131072●謎maincpu???×2
ダラⅡ・サーガイアのmaincpuと出だしが同一
かつ
ダラⅡ・サーガイアのmainCPUと同じく、分割前文字列に「TUNA」「SASIMI」が入ってる
のでcpuっぽいです。
どっちかがサーガイアのVer2用なのかもしれません。
もう一つは未収録のはずのダライアスⅡOLDなのかと思いきやそんな事もありませんでした…
三画面用の可能性もあり。bcut.exe odd.bin maincpuex1.74 0x447AF0 131072
bcut.exe odd.bin maincpuex1.76 0x467AF0 131072
bcut.exe even.bin maincpuex1.73 0x447AF0 131072
bcut.exe even.bin maincpuex1.71 0x467AF0 131072bcut.exe odd.bin maincpuex2.74 0x4C7AF0 131072
bcut.exe odd.bin maincpuex2.76 0x4E7AF0 131072
bcut.exe even.bin maincpuex2.73 0x4C7AF0 131072
bcut.exe even.bin maincpuex2.71 0x4E7AF0 131072現状ここまでです。
https://milkchoco.info/archives/8957#comment-5195
夢が広がりそうなファイルもあるのに現状試すこともできないのがもどかしい。
挿絵は文章ばかりなので穴埋めです。
c07-05からc07-08までがspriteだと思いますが
最初期のRomsetだと256kbなのでFFか00で倍にダミーつっこんでる可能性があります。
http://adb.arcadeitalia.net/dettaglio_mame.php?game_name=darius2d
0.37b10(0.46)のROMセットです(抜粋)https://milkchoco.info/archives/8957#comment-5197
c07-05 | 262144 | | good | | | | no | e10715f4 |
c07-06 | 262144 | | good | | | | no | 7ca7fc52 |
c07-07 | 262144 | | good | | | | no | 632b0a85 |
c07-08 | 262144 | | good | | | | no | 1de7f1d7 |
無事、抽出可能に!投げて寝ちゃってゴメンナサイ;
bcut.exe game.exe spriteex 0xB0F5E0 1048576
↑は削除してBSwap.exe d B game.exe offset0123.txt 00.bin 01.bin 02.bin 03.bin
bcut.exe 00.bin sprite00.bin 0x2C3D78 262144
bcut.exe 01.bin sprite01.bin 0x2C3D78 262144
bcut.exe 02.bin sprite02.bin 0x2C3D78 262144
bcut.exe 03.bin sprite03.bin 0x2C3D78 262144
copy /b sprite00.bin+dummy_00_256k.tmp c07-06.27
copy /b sprite01.bin+dummy_00_256k.tmp c07-05.24
copy /b sprite02.bin+dummy_00_256k.tmp c07-08.25
copy /b sprite03.bin+dummy_00_256k.tmp c07-07.26コレ追加でいけると思います。要ダミー準備。
bat実行からのCRCは確認済。一応prom作成用です。
https://milkchoco.info/archives/8957#comment-5200
forcecrc32 c07-13.37 1020 3ca18eb3
forcecrc32 c07-14.38 1020 baf2a193
…が、MAMEはpromを入れてもサーガイアの方だけ起動しませんでした。
fbNEOはprom無しで両方動きます。
サーガイアのROMセットは0.143から先辺りで追加されてまして、
https://milkchoco.info/archives/8957#comment-5205
mame2010は0.139なんで、そもそもギリギリ対応してないんですね。
サーガイアもmame0.227では動作します。お騒がせしました。
まとめのバッチ
必要な物
neo-cmc(新版),bcut,bswap,oddeven.txt 等
スクラップAさんのツール類が必要になります。必要に応じてダウンロードしてください。
forcecrc32 (Windows binary)
Original Author Nayuki Minase
crc32を改ざんするためのツールです。
Windowsバイナリは管理人によるビルドです。
バッチ本体
4
0 0
1 1
2 2
3 3
offset0123.txtとしてコピーアンドペーストで保存します。
bcut.exe game.exe c07-10.95 0x5CF1E0 524288
bcut.exe game.exe c07-11.96 0x64F1E0 524288
bcut.exe game.exe c07-09.75 0x74F5E0 524288
bcut.exe game.exe c07_17.69 0x86F5E0 131072
bcut.exe game.exe c07-12.107 0x90F5E0 524288
bcut.exe game.exe c07-03.12 0xA0F5E0 524288
bcut.exe game.exe c07-03.47 0xA0F5E0 524288
bcut.exe game.exe c07-04.11 0xA8F5E0 524288
bcut.exe game.exe c07-04.48 0xA8F5E0 524288
fsutil file createnew dummy_00_256k.tmp 0x40000
BSwap.exe d B game.exe offset0123.txt 00.bin 01.bin 02.bin 03.bin
bcut.exe 00.bin sprite00.bin 0x2C3D78 262144
bcut.exe 01.bin sprite01.bin 0x2C3D78 262144
bcut.exe 02.bin sprite02.bin 0x2C3D78 262144
bcut.exe 03.bin sprite03.bin 0x2C3D78 262144
copy /b sprite00.bin+dummy_00_256k.tmp c07-06.27
copy /b sprite01.bin+dummy_00_256k.tmp c07-05.24
copy /b sprite02.bin+dummy_00_256k.tmp c07-08.25
copy /b sprite03.bin+dummy_00_256k.tmp c07-07.26
BSwap.exe d B game.exe oddeven.txt odd.bin even.bin
bcut.exe odd.bin c07_20-2.74 0x3678F0 131072
bcut.exe odd.bin c07_21-2.76 0x3878F0 131072
bcut.exe even.bin c07_19-2.73 0x3678F0 131072
bcut.exe even.bin c07_18-2.71 0x3878F0 131072
上はFBNeoで動作するバッチファイルです
M.A.M.E.での動作に必要なダミー生成分は以下になります。
rem dummy for M.A.M.E.
fsutil file createnew dummy_00_1024b.tmp 1024
copy dummy_00_1024b.tmp c07-13.37
copy dummy_00_1024b.tmp c07-14.38
forcecrc32 c07-13.37 1020 3ca18eb3
forcecrc32 c07-14.38 1020 baf2a193
出来上がったバイナリをdarius2d.zipとして保存しましょう。
サーガイア差分
bcut.exe game.exe c07_41.69 0x84F5E0 131072
bcut.exe odd.bin c07_44.74 0x3E7AF0 131072
bcut.exe odd.bin c07_45.76 0x407AF0 131072
bcut.exe even.bin c07_43.73 0x3E7AF0 131072
bcut.exe even.bin c07_42.71 0x407AF0 131072
サーガイアの差分を抽出するバッチです。
darius2d.zipと差分を取ってsagaia.zip圧縮すればOK。
面倒なら全部まとめて入れてもヨシ!
気にする人はRomCenterで調整しましょう。
動作確認
ダライアス2とサーガイア
2画面版になって大きく表示されるようになりました。
さすがに3画面は大きすぎるんでしょうねえ;
仮想フルスクリーンでの表示もバッチリです。二人ともAB型かぁ・・・
IIになってリージョンで日本語と英語が使い分けられるように変わったのが大きいかな?
サーガイアにタイトルが変更されたり戻ったりとなんか謎ですね。
レア版サーガイアについて
一つはダライアス2(無音)で一つはチェックサムエラーになるとの事で
色々CRCやファイル構造を比較したところ、結論として
起動時のチェックサムチェックを飛ばして起動させる必要があるようです。
チートの範囲になるので、分かる方がいらっしゃいましたら情報を寄せていただければ幸いです。
どうもニコイチで再現したとインタビューにあったようなので
そういう曲芸になったのかな?と想像しています。
しめ
バッチは確認していますが、不備などありましたらコメントいただければ幸いです。
まさかダミーカットが来るとは想定外でした
しかし偶然にも半分のcrc情報が拾えてよかったなぁ。しみじみ。
レア版のサーガイアについては
キメラ構成と本体のチェックサム飛ばしが必要と
曲芸なので素直にSteamで遊ぶのが手軽でいいかな?と思ってます。
出来たよ!と言う方がいましたらコメントいただければ。
さて、後は原始島のFDを遊んで動作検証しないと!
ディスカッション
コメント一覧
記事のまとめお疲れ様でした!
自分もゆっくり作業を始めていこうかと思います
ありがとうございます!
doritosさんみてたら昔の自分を思い出して
体調大丈夫ですか!寝てくださいよ!って心配になりましたw
kof2003h片付けた今思い残すことはなにもないぜと思いきや
IQさんのせいで増えてしまったM1のチェックサムの謎が…
原始島のはゆっくりでいいですよ、もし自分だけだったら環境改善ですな…
今回もまとめありがとうございました。
やる気尽きかけたところでほんとブッ刺さりました(
…00ダミーならコマンドで一発作成できるんですね(マジでなんも知らん人)
前回の東亜も今回のダラも、灯台下暗し的なヤツが偶然見つかってしまい
しかも探索のしがいがある物件で頑張ってしまいました。
ちょい前にアケアカNEOGEOのメモリダンプ解析に取り組んでたおかげで
バイナリのROM特定というか穴埋め作業に慣れて、楽しくなってしまってたせいもありますw
cheatやらchecksumやらでググってもサーガイアの情報は出てこないですねぇ
起動さえできれば、Ver2(レア)の場合一面から全然違うんで簡単に判断付くんすけどね・・
>ちょい前にアケアカNEOGEOのメモリダンプ解析に取り組んでたおかげで
餓狼spのバイナリを元に、<管理人の判断により具体的タイトル名を削除しました>の抽出を試みましたが、V-romだけができませんでした
何かコツがありますか?
aceさんへ
今回モロ書きされてましたが、伏せている理由がそれなりにあるので今後はお控えください。
ついでにヒントはしげるさんのnoteにある、HXDのメモリダンプ記事をきちんと読んで実践して理解すれば、解決すると思います。
しげるさん
ねぎらいの言葉、ありがとうございます。
>IQさんのせいで増えてしまったM1のチェックサムの謎が…
今まで問題なく遊べてたのが逆にどういうこと?って感じに。
あとはMを復号化すればOKなので~
外部Dat、たまにロードできないゲームもあるっぽいですねえ
動けばラッキー位の感じでしょうか。
doritosさん、コメントどうもです
こちらこそ情報ありがとうございました。
>やる気尽きかけたところでほんとブッ刺さりました(
いやぁ、我ながら良く見つけることが出来たなぁと
MAMEの場合、こういうダミー追加はサイレント更新されるのが困りものです。infoに書いてよ!!
>…00ダミーならコマンドで一発作成できるんですね(マジでなんも知らん人)
ですです。FFと切り替えて出せないのが困りものですが。
スクラップAさんのバッチがとても参考になるので、読んでみると楽しいです。
うちはあんなにまで高度にできませんけども;
>cheatやらchecksumやらでググってもサーガイアの情報は出てこないですねぇ
>起動さえできれば、Ver2(レア)の場合一面から全然違うんで簡単に判断付くんすけどね・・
その辺はデバッグビルド使ってコード読まないといけないので;
MAMEの方がやりやすいかもですねえ
サイフォンさんとか得意そうですね!(無茶振り
Richard Roeさん
>今回モロ書きされてましたが、伏せている理由がそれなりにあるので今後はお控えください。
了解です
以後控えます
“伏せている理由”が気になりますが...
理由はですね、メモリダンプとはいえ
Microsoft Storeの暗号化を潜り抜ける関係から公言したくないんです。
Microsoft Store では、デジタル署名、暗号化、サンドボックスを使用して、改ざんや承認されていないコピーからアプリを保護します。
https://learn.microsoft.com/ja-jp/windows/apps/publish/publish-your-app/why-distribute-through-store
すくなくとも大手企業を敵に回す気はないですし
メモリダンプは下手糞なので記事にする気もありません
その辺をモロでやりたいのであればご自身のサイトでお願いします。
ストアは今でも現行現役なので(売れ行きは知りませんが)
箱とは違うレベルと考えています。ディスコンなら大目に見てくれると思いますが。
>>ACEさんへ
ご自分でVの「答え」を書かれていたので、そのうち気付かれるだろうと思って特に返答していませんでした。
それでも抜けないんであれば、何かしら操作ミスか計算ミスか、環境によりメモダンのスキマが変化してしまうのか・・・
いずれにせよあんこさんの御達しも出ているので、自分もこれ以上具体的な中身の話はしないつもりです。
アレでしたら非公開にしてください。
Steam「G-Darius HD」から中途半端にromが抽出できました
MArchiveBatchToolで展開
→alldata.psb.m_extracted\system\romsフォルダに以下のファイルが作成される
g_darius_ps_ripped_washed-20210927.bin size=681MB
gdarius-2.03J-opus128k-20220313.lz4a size=32.6MB
gdarius-opus128k-20220224.lz4a size=32.5MB
psgdarius-20210927.zip size=210KB
→zipファイルを解凍
arch size=192B
ram.le32.bin size=2MB
gdarius.zipの構成
m534002c-14.ic353 size=524288 CRC:e3f23b6e
tt01.ic652 size=8 CRC:daac13e7
78081g503.ic655 size=8192 upd78081
e39-09.ic4 size=1048576 CRC:f457794d
e39-10.ic3 size=1048576 CRC:6ba4d941
e39-01.1 size=4194304 CRC:bdaaa251 gdarius-2.03J-opus128k-20220313.lz4a の 0x1a6553 から 0x400000切り出す
e39-02.2 size=4194304 CRC:a47aab5d gdarius-2.03J-opus128k-20220313.lz4a の 0x590736 から 0x400000切り出す
e39-03.12 size=4194304 CRC:a883b6a5 gdarius-2.03J-opus128k-20220313.lz4a の 0x98aadc から 0x400000切り出す
e39-07.14 size=524288 CRC:2252c7c1
e39-04.27 size=4194304 CRC:6ee35e68
tt07 size=8 CRC:ccf2f332
doritosさんくらいの技術と根気があれば他にも抽出できるかもしれませんが。。。
“g_darius_ps_ripped_washed-20210927.bin”はサイズ的にPS版のisoデータかと思ったけど、そう単純な事でも無いようだ
jackさんコメントどうもです
問題はTaito FX1のBIOSですかねえ?
PSのISOは大体ヘッダとかが改変されてるので、そのままだと無理かなと思います。
コズミックコレクションといっしょに半額になってたんでGダラHDもポチってました。
切り出してもCRC一致しない・・・バージョンアップで更新された?
あと、0x1a6553から0x400000だと、次の0x590736に被ってません?
三カ所とも始まりがバイナリの区切りなんで怪しいのは確かです。
ファイル名の「opus」ってなんやねんと思い調べてみたら音声の圧縮形式みたいですね。
128kは128kbpsって事なんだろうか。
だからってコレが全部音声ファイルではなさそうなんですけども。
g_darius_ps_ripped_washed-20210927.binのバイナリを、手持ちのPS版Gダラから抽出したimgの適当な10行程で検索したら一致しました。やっぱPS版ではあるようです。
…正直この間のよりも、JACKさんのSHINOBI解析の方が大変やったと思います・・・
doritosさんへ
コズミックコレクションもGダラも頻繁にDEPOT更新してるので
バージョンが古いと切り出しアドレスが盛大にズレると思います
jackさんが一度Steamで起動してアップデートするか
DepotDownloaderで旧デポ引っ張るか
新しいバイナリから再度アドレス探るって感じかなと思います。
shinobiの解析は本当にすごいと思います。ムリ。
XBLA「SHINOBI -忍-」の解析は”shinobi.zip”想定での抽出が手詰まりになっていたところ、doritosさんがXbox360「Sonic Ultimate Genesis Collection」からの抽出の情報を挙げて頂いた際に”shinobi5″というヒントがあったからこそですね
Arcade Databaseで”shinobi5.zip”の構成を調べたところ”shinobi.zip”と比べてファイルサイズが倍になっている事を不思議に思いつつ、試しにダミーファイルを結合したらCRCが一致したとの経緯です
同様にファイルサイズを合わせたもののCRCが一致しなかったものはforcecrc32で合わせたってところですね
Arcade Databaseの記載で、ファイルサイズとregion(ファイルの種別?)やoffsetの値が切り出しや分割のヒントになりました
例えば、同種のromが、 offset=”0″、offset=”8000″、offset=”10000″だったら順番に切り出し、
同種のromが、 offset=”10000″、 offset=”10001″だったらoddeven分割、
同種のromが、offset=”40000″、offset=”40001″、offset=”40002″、offset=”40003″だったら四分割、みたいに
XBLAのコナミ作品や獣王記が上手くいっていただけに、SHINOBIも惜しいところまではできていたので意地になってましたw