マジシャンロードでOP復活 <Update!> byサイフォン
前期とか後期とか最初に言い出したのは誰な(ry
最初に、情報提供いただきましたサイフォンさんに感謝をここで。
ありがとうございました!!毎回、記事のネタにさせていただいて感謝です。
何かする人は、サイフォンさんに権利がありますので
うちのブログのコメントなどで許諾を取ったうえでお願いします。
解析のために高額なNEOGEOCD版まで購入されたそうで
その情熱には頭が下がるばかりです。いやはやホントに感謝です。
後期とOPについて
ザックリ説明すると、後期の方が易しくなったものの
ゲーム開始における状況説明のOPが流れなくなったのを復元します。
おそらくOPの微妙に時間が長いので削ったのかな?
アーケードなら、短いゲームのデモ画面の後に
差し込んだらよかったんじゃないかなぁ。
これで後期版+OP追加で完全版になる形です。(Returned OP Screen Hack)
該当するROMSetはmaglordです。
これはPrimeGamingなどから変換抽出が可能です。
今なら、もうちょっとスマートに書き直せますが、まあそれは気が向いたら。
必要な物
ROM Masquerade
はむさんによるROM抽出用ツールです。
PromのEndian Conv 16bitを相互変換のするために利用します。
バイナリーエディター
好きなバイナリーエディターを使ってください
Stirling、FavBinEdit、HxDなど定番はたくさんあります
文中ではStirlingを使っています。
作業詳細
STEP1
ROM Masqueradeから005-pg1.p1を開いて
Go Analyze!→Endian Conv(16Bit)→Save dumpFileを押して好きな名前で保存します。
これはエンディアンコンバートされたPを作業できる形式に戻した形です。
STEP2
今度はバイナリーエディターでSTEP1で保存した(任意名)のファイルを開きます。
ファイル名がころころ変わりますが、気にしないでください。
そののち、0xC054から0xC0D9をコピー、0x7FF00(空き領域)にコピーする。
範囲は先頭が 4A 2E 38 20 (中略)末尾は 0C 04 4E 75 までになる。
これで0x7ff00以後には、0xC054から0xC0D9をコピーしたデータが存在することになります。
STEP3(概念図)
ゲームスタート→遊び方説明→ゲーム開始となっている状態から
ゲームスタート→遊び方説明→OPデモ→ゲーム開始という処理を割り込ませます。
元のアドレス(0xC054-0xC0D9)を変更すると
アドレスがずれてプログラムに支障をきたすので
空きスペース(0x7ff00)に処理をコピーしてから
OP処理を割り込ませているかたちです。
STEP3 (実作業)
具体的に説明すると
0x7FF58:4E B9 00 00 C0 DA 42 2E 02 C9
0x7FF62:28 6E 38 3C
この間に"4E B9 00 02 02 2A“を"挿入”する(上書注意!)
StirlingではInsキーを押せば挿入モードになります。
※"4E B9 00 00 C0 DA 42 2E 02 C9“は遊び方説明(左端の子)
"4E B9 00 02 02 2A“はOP処理(真ん中の子)
以後の 2A 28 6E 38 3C ゲーム開始(右端の子)
0x7FF58:4E B9 00 00 C0 DA 42 2E 02 C9
0x7FF62:4E B9 00 02 02
2A 28 6E 38 3C
4E B9 00 00 C0 DA 42 2E 02 C9 “4E B9 00 02 02 2A" 28 6E 38 3C
となればOKです。挿入モードを解除して上書きモードにしましょう。
追加作業(必要に応じて)UPDATE!!
メモリーカードでロードするとブラックアウトする症状を
修正するバイナリパッチが、サイフォンさんより投稿されましたの掲載します。
あんこさん
しげるさんメモリーカードのブラックアウトの修正を行ったので、共有します。
バグ版 →修正版
66 00 00 70 →66 00 00 76
66 00 00 64 →66 00 00 6A
66 52 →66 00 00 5Aこれらの修正は、特定の条件を満たすと、そのバイト分ジャンプするという意味です。
00 00 5Aであれば5Aの次から5A分ジャンプするということです。
ジャンプ先は00 00 0C 04 4E 75の最初の00のことです。
修正完了すると、以下のようになります。●オフセット7FF00
https://milkchoco.info/archives/8743#comment-5030
4A 2E 38 20 6B 0C 08 EE 00 00 0C 6F 66 00 00 76 60 0A 08 EE 00 01 0C 6F 66 00 00 6A 42 2E 0C 05 4E B9 00 00 B2 2E 4A 2E 0C 05 66 00 00 5A 2F 2E
あんこさん
0x07FF2B: 52 2F 2E 38 3C => 00 00 5A 2F 2E
このあとは38 3C〜とそのまま変更せず使えばOKです。
なので正確には
00 00 5A 2F 2E 38 3C〜
という感じで続きます。
要は52を00 00 5Aに差し替えているだけです。
末尾の00 00 0C 04 4E 75の最初の00までジャンプできればOKです。それ以外の
https://milkchoco.info/archives/8743/comment-page-1#comment-5060
0x07FF0F: 70 => 76
0x07FF1B: 64 => 6A
は問題ありません。
ステートセーブで問題ないと思いますが、念のため。
メモリーカード問題修正前
0x07FF00 4A 2E 38 20 6B 0C 08 EE 00 00 0C 6F 66 00 00 70
0x07FF10 60 0A 08 EE 00 01 0C 6F 66 00 00 64
42 2E 0C 05
0x07FF20 4E B9 00 00 B2 2E 4A 2E 0C 05 66 52 2F 2E 38 3C
メモリーカード問題修正後
0x07FF00 4A 2E 38 20 6B 0C 08 EE 00 00 0C 6F 66 00 00 76
0x07FF10 60 0A 08 EE 00 01 0C 6F 66 00 00
6A 42 2E 0C 05
0x07FF20 4E B9 00 00 B2 2E 4A 2E 0C 05 66 00 00 5A
2F 2E 38 3C
0x07FF0F: 70 => 76
0x07FF1B: 64 => 6A
0x07FF2B: 52 => 00 00 5A (52を00 00 5Aに置換、挿入する)
2024.09.22 確認と修正が遅くなりすみませんでした。
何ならメモカ用はIPSで差分作って、エミュレーター側でオンオフしてもいいかも。
STEP4(概念図)
通常ではゲーム開始などの、処理を行うジャンプ先が0xBEF9は00 C0 54となっています。
Use Google Lens to translate images.
ここで0xBEF9を07 FF 00に書き換えることで、ジャンプ先が07 FF 00になります。
そのため、先ほどコピーして書き換えた先で処理が行われるようになり
ゲームスタート→遊び方説明→OPデモ→ゲーム開始の処理が行われるようになります。
わざわざコピーして飛び先を変更しているのは、直接書き換えるとゲームが止まるからです。
STEP4 (実作業)
バイナリーエディターで0xBEF9にジャンプして00 C0 54を07 FF 00に上書きします。
上の作業で挿入モードにしていると、黒画面になり正常動作しませんので注意しましょう。
0xBEF9 : 00 C0 54 => 07 FF 00
上記ならパッチツールで使えるかと思います。
末尾のバイナリデーターがはみ出まくっているので
終了が0x7FFFFになるように削除して、確認出来たら保存します。
STEP5
最後にROM Masqueradeを再度起動して
STEP4で保存したバイナリファイルを開きます。
Go Analyze!→Endian Conv(16Bit)→Save DumpFileを押して005-pg1.p1を保存しましょう。
別セットを追加ビルドしたエミュレーターがあるなら、名称をそちらにあわせて変えてください。
確認したところCRC32がA0126980でしげるさんと一致しています。
オリジナル作者のサイフォンさんのCRCとは異なっています
が、問題なくOPが再生され遊べるようになりました。
おそらく、データコピー(0xC054-0xC0D9)の範囲がずれたりするとCRCもズレるかも?
動作確認
このくだりがないと、何でこいつが出てくるのかさっぱり分からないんですよね。
マジシャンロードの由来もしっかりと解説してくれました。
サイフォンさんのおかげでストーリーが分かるようになりました!
情報の提供をありがとうございました!
しめ
どことなくハ〇ヒの長〇らしさがあるような、ないような。
マジシャンつながりです。
3回くらい作業して間違えまくった結果
ファイル名が入れ替わりを繰り返しました;
CRCがあわなくても、動作するなら末尾4バイト書き換えればいいので。
教科書みたいなマニュアルのような更新でしたが
何をどうしてこうなるのか?が分かるようにしてみた形です。
画像が貧相なのはお察しください。
不備やまちがいなどありましたら、お気軽にコメント欄までどうぞ。
ディスカッション
コメント一覧
あんこさん
非常にわかりやすくて、これなら完璧ですね!
頑張ってよかったです。
ありがとうございます!
サイフォンさん
ありがとうございます!
イラストは深夜で雑すぎる加工だったので差し替えるかもです。
後で見直してやべーってなりましたw
コメントの文章だけでは理解できなかったので画像付きで丁寧な説明で助かりました
自分でも試してみようと思います
そもそもマジシャンロードというゲームそのものを遊んだ事がなかったので良いきっかけになるかと
変更後のzipファイル名は”maglord.zip”のままで良いのかな?
crcの変更が必要?
NeoGeoエミュはモノによってはファイル名やcrcにシビアなものがあるので気になるところです
FinalBurnNeoなら特に気にせずに動く?
Magician Lord
maglord.zip
Name Size CRC32
005-c1.c1 512 KB 806aee34
005-c2.c2 512 KB 34aa9a86
005-c3.c3 512 KB c4c2b926
005-c4.c4 512 KB 9c46dcf4
005-c5.c5 512 KB 69086dec
005-c6.c6 512 KB ab7ac142
005-m1.m1 256 KB 26259f0f
005-s1.s1 128 KB 1c5369a2
005-v11.v1 1512 KB cc0455fd
005-v21.v2 1512 KB f94ab5b7
005-v22.v2 2512 KB 232cfd04
005-pg1.p1 512 KB bd0a492d
Magician Lord (alternate set)
maglordh.zip
Name Size CRC32
005-c1.c1 512 KB 806aee34
005-c2.c2 512 KB 34aa9a86
005-c3.c3 512 KB c4c2b926
005-c4.c4 512 KB 9c46dcf4
005-c5.c5 512 KB 69086dec
005-c6.c6 512 KB ab7ac142
005-m1.m1 256 KB 26259f0f
005-s1.s1 128 KB 1c5369a2
005-v11.v1 1512 KB cc0455fd
005-v21.v2 1512 KB f94ab5b7
005-v22.v2 2512 KB 232cfd04
005-p1.p1 512 KB 599043c5
サイフォンさん、あんこさんお疲れさまでした!
(またもや長文でスイマセン)
お伝えしたいことがあります!
OP復元版、あんこさんのとCRC同じになったので
NeCoビルドに追加するにあたって色々と動作確認等していたのですが
改変の副作用としてメモリーカードを使用している場合セーブはされるのですが
ロード時にブラックアウトしてしまうようです…
もう少し範囲を広げて改変してみたらメモカのロード部分も
含まれてうまくいくのかもと思い作業してたのですが
そのアドレスがどこなのかよく分からずじまいでした
ゲームオーバー画面とかはどこか分かりましたがそこ分かっても意味がないという…
改変、PROMの変換、実行、確認という作業はけっこう大変ですね…
サイフォンさんお疲れさまでした
空きアドレスを使用するアイデアは素晴らしいなって思いました
ネオジオCDのPROMはそういやそのままだったなというのも思い出しました
結局作業中メモカのセーブデータを消してしまい
テンションだだ下がりで諦めました(バックアップしてなかった
セーブされるのは確認済みなので初回のみこれで起動して
続きをするなら改変してないものを起動してセーブされたメモカをセットすれば
ロードされるのでそれでいいと思います(FBneoならIPS自作するといいのかも
もしくはメモカを一切使用しない漢プレイ(しんどい
初期HPゲージの件はNAM-1975等もそうなのですがローンチ等初期のタイトルは
家庭用に一切設定画面がないのでUNIBIOS等で
MVSモードで起動してから家庭用に変更すると全てMVSモードの設定が反映されます
初期ゲージが5になるトリックはそんな感じなのですが
マジシャンロードネオジオCD版は恐らく
MVSでのレベル3と同等に設定されてるのだと思われます
(もしかしてネオジオCD版は設定あったりします?)
純粋なAESBIOSで起動すると初期ゲージはやはり4になると思いますが
このセットはあくまでMVS版のデータであり元々そういう仕様ですね
なぜこのデータが後の家庭用として発売されたのかはあのページに書いていたように
色々と問題が起きてたのでそうなったのではないかと推測されます
それはそれとしてこのゲーム意外と良作ですよね(某魔界村オマージュ感)
ジャンプ後の挙動が細かく操作できたりするのがこだわりを感じます
最初もしかして2周目あるのかと勘ぐっていたのは秘密です
しげるさん
こちらでも見てみます。
お手数おかけしてすみません。
あんこさん
しげるさん
メモリーカードのブラックアウトの修正を行ったので、共有します。
バグ版 →修正版
66 00 00 70 →66 00 00 76
66 00 00 64 →66 00 00 6A
66 52 →66 00 00 5A
これらの修正は、特定の条件を満たすと、そのバイト分ジャンプするという意味です。
00 00 5Aであれば5Aの次から5A分ジャンプするということです。
ジャンプ先は00 00 0C 04 4E 75の最初の00のことです。
修正完了すると、以下のようになります。
●オフセット7FF00
4A 2E 38 20 6B 0C 08 EE 00 00 0C 6F 66 00 00 76 60 0A 08 EE 00 01 0C 6F 66 00 00 6A 42 2E 0C 05 4E B9 00 00 B2 2E 4A 2E 0C 05 66 00 00 5A 2F 2E
しげるさん
ネオジオCD版は難易度が1になってました。
おそらくこれでHPがrom版とは違うのでしょう。
しかし、お手数おかけしてすみませんでした。
jackさん承認遅くなってごめんなさい。
書き換え後に未所持になって起動させると
CRCがあわないから不具合起きるぞって出ますが、無視すれば起動はできます。
FBNeoは確実ですが、最近のMAMEはよく分からんです。昔はできましたが、最近ダメっぽい?
サイフォンさんへ
お疲れ様でした!自分はNeCoのセットに追加する作業やっててこのゲームって
タイトル画面にずっと「続きをするにはメモリーカード入れてね」と表示されてるのに
メモカのことすっかり忘れていてセーブは出来たもののロード時にブラックアウトするのに
気づいた次第です
早速の修正、さすがです!自分はヘロってたのでちょびっとだけやってやめてました
ジャンプ処理の説明もあるので分かりやすいです、なるほどです
自分はもっと雑にやってたのでうまくいかなかったわけですな…
念の為クリアまで動作確認してからNeCoの方にこちらのセットを追加して
作成方法もあんこさんのこの記事へのリンク書いておいて
このハックの作者はサイフォンさんと書いておきますね
ネオジオCD版は難易度1になってるんですね
想像以上にレベル下げられていてビックリです
やはりアケアカのは難しいと思った…
いえいえお手数をかけてるのはこっちです
毎回サイフォンさん情報に助けられています
今回も貴重な情報ありがとうございました
マジシャンロードはほんとにカオス状態だったのが伺えますね…
後、ネオジオCD版持ってるのなら一つ調べてみてほしいことがあるのですが
PROMの最後のほうとかにバイナリエディタとかでみたら読める
隠しメッセージ的なやつありませんか?
MVSとAESとは別で結構ネオジオCD版には隠しメッセージ的なやつ入ってます
自分の手持ちでは餓狼伝説に存在するの確認済みです
しげるさん
ありがとうございます。
>隠しメッセージ的なやつありませんか?
いえ、こちらではありませんでした。
なんかありそうな感じはしたんですが、真面目でしたね。
サイフォンさんへ
隠し的なのはなかったのですか…
アルファ電子さんとSNKさんでやはり色々違いがあったのかな…
というかやはりカオス状態でそれどころじゃなかったような気がしますね…
餓狼伝説のは
09:FFE0 28 5E 5F 5E 29 76 20 20 20 20 20 20 20 20 20 20
09:FFF0 54 73 75 74 6F 6D 20 4E 61 6B 61 6D 75 72 61 20
です
「バイナリエディタで入力して確かみてみろ!」(完)
あんこさんへ
サイフォンさん修正分確認しました!
恐らく編集分のCRCは4fd22e14で
NEOGEO用に変換したCRCはd9a33220になってるはずです
NeCo分はそのCRCで更新しておきます!
サイフォンさん、メモカ対応して頂きありがとうございました
メモカのセーブとロード、クリア確認済みです!(激ムズでした…
しげるさん
テストのご対応ありがとうございます。
何度も落ちたとのことで、失礼しました。
ホントご指摘助かりました。
あんこさん
お手数おかけしてすみませんが、更新のほどよろしくお願いいたします。
サイフォンさんへ
一応、追記してあります。
ただバイナリの末尾の方がなんか違うんで自分がやらかしてるのかもしれません
マジシャンロードの記事の中間くらいにあるので確認いただけますか?
サイフォンさんへ
オチるのはやはりおま環と言うか俺環のようなので改変のせいではないはずなので大丈夫です
いつの間にかゲームを起動してプレイしてたら一定時間経つとどのゲームもオチるのに気づきました
ものすごい連コンティニューでなんとかクリアしましたです
CRCはセットとして追加する都合上必要だっただけなので普通に動作してたら問題ないかと
あんこさんへ
HxDはアドレスの範囲指定等がやりやすかったのでやはり使い分けがいいのかと
バイナリエディタはやはりどれも一長一短ですね
比較するにはStirlingになりますね…
imhexはピーキー過ぎて自分にゃ無理です
しげるさん
imhexは変態すぎてムリです。
アレはピーキーな人向けなのでそっとしておきましょう;
バイナリエディターは好き嫌いもあるのでねえ。
個人的にはバイナリ処理もできるエディタできないかなとつねづね。
あんこさん
0x07FF2B: 52 2F 2E 38 3C => 00 00 5A 2F 2E
このあとは38 3C〜とそのまま変更せず使えばOKです。
なので正確には
00 00 5A 2F 2E 38 3C〜
という感じで続きます。
要は52を00 00 5Aに差し替えているだけです。
末尾の00 00 0C 04 4E 75の最初の00までジャンプできればOKです。
それ以外の
0x07FF0F: 70 => 76
0x07FF1B: 64 => 6A
は問題ありません。
サイフォンさん
コメントありがとうございます。
なるほど!その部分は上書きではなく挿入ありですね、修正しておきます!
サイフォンさんへ
修正しました!対応遅くなってすみません。
海の向こうでやらかしたヤツをサイフォン兄さんの代わりに
シメてケジメつけるのに手間とってました!サーセン!
ありがとうございました~(ネタですよ?)
あんこさん
ご対応ありがとうございました!
最初からチェックしとくべきでしたが、
終わりよければ問題なしとさせてください。
海外勢はまあ、基本ほっとくしかないですが、
嘘情報撒き散らすのも困りものですね。。。
とりあえず収束する流れみたいで安心しました。
サイフォンさん
いえいえ、そういうのは誰にでもありますし
テスト漏れとかうっかりミスなんてしょっちゅうですから(しろめ
あの流れだと、うちが不備のある変換情報を公開してると思われかねなかったので、やむなく凸りました。
そもそもR君が配慮なさすぎてフリーダムすぎたのが大きい。これで繰り返さなければヨシです。
逆に彼らも私たちが認知してることを理解したと思うので、安易な表記は治まるでしょう。たぶん。