所持金解析 最初からor最強でスタート解析
1・所持金解析手順 まず、所持金の最大値を調べます 所持金枠の幅から推測して99999と予想出来ます 16進数に直すと0001869Fですので 869Fで数値検索をかけます いくつか候補が出てきますが、先に答えを言っておくと 001A2334でヒットする箇所がお金に関係があります とりあえず、画像を見てみて下さい 001A232Cの命令で数値をv1レジスタへロード 001A2334の命令で1869Fをv0レジスタへ格納して 001A2338の命令でv1とv0の数値を比較し 001A233Cの命令で比較した内容により分岐します もし、分岐しなかった場合は 001A2348の命令で最大値に修正されるようです この中で001A232Cと001A2348の命令に注目 ロード&ストアするアドレスが右に表示されていますね? このアドレスに0001869Fを書き込んで見ましょう 217DCF44 0001869F 書き込む単位はワードなので 先頭を2にして暗号化します 1DEC506C 1455692C ゲームを始めてお金を見ると・・・ 見事に金が99999になりました〜 これで所持金最大の解析は終わりです。 2・最初からor最強でスタート解析 鬼武者2では、通常のスタート時と 最強モードでのスタート時に 所持金に大きな違いがあります 最強時には20000でスタートしますが もっと増やしてスタートさせてみたいと思います 手順は、20000(4E20)で数値検索すればOK またも何箇所かヒットしますが プログラムで使われてるのは一箇所しかありません では、早速4E20をFFFFに変えてみましょう ハーフワードデータを書き換えるだけなので 先頭は1にします 101A23D0 0000FFFF あとは暗号化して実験するだけです 4C8DA4F8 1456B00C コードをONにして最強モードでスタートさせて見て下さい すると、金65535を持った状態で始まるハズです しかし通常モードでは効果がありません。 どうやらここは最強モードでしか通らない様です どこかで通常と最強の区別をしてる箇所があるハズです こういう場合は分岐命令で区別されますが パっと見た感じ 001A23C8の命令で分岐すると 001A23D0を通過しないため ここが区別してる命令だと予想できます 試しに001A23C8の命令を無効にしてみましょう 1C8DA4F0 1456E7A5をPARに入力し 通常モードでスタートさせてみましょう すると、装備品などが全て 最強モードと同じでスタートしました これで最強モードもどきの完成です このルーチンはスタート時の物らしく 初期所持アイテムのアドレスもあります いくつも余分な命令があるので この命令をうまく変えてやれば 初期所持アイテムを変える&増やす事ができます