ページ

2011年4月14日

シャドウハーツⅠ コードサーチ PlayTime変更

PlayTimeは捜すのが難しいです。
コードサーチ by PCSX2CT

何故かというと、時計は60進数で、秒まではまだ良いんですが、さらにフレーム数がゲームによって違うんです。
バイオハザードは恐らく時分までのコードで良いですが、スーパードンキーコングシリーズは60fps(1秒間に60フレーム)で、シャドウハーツは1000fps(1秒間に1000フレーム)でした。
但し、3ゲームとも最初の方にありましたが。

しかし、前回のコードサーチで、Cashの隣にやけにせわしなく動きつづけている値を発見。
しばらく見ていると、さらに隣のアドレスの値は徐々に1ずつ増えていました。
これは、典型的なPlayTimeのコードです。

実はプレイ時間のコードは探すのは大変ですが、法則を見つけるのは割と簡単です。
大抵の場合法則が違うのは先程のfps値だけで、これが分かれば後は自由自在に操れるからです。
00:00:00にするのは最も簡単ですが…逆に最大値にしたい人もいますもんね。

では実際にサーチしてみましょう。
まず、分数が00に近いセーブデータをロード。
今回は現在のプレイタイムが28:58:16で、コードの値が
06025480になっています。

次に、コードの値を関数電卓で10進数に変換すると、
100816000になります。

さらに現在の時間の近似値29で割ると、
3476413.79…になり、

さらに3600で割って時間を秒に変換すると、
965.67…になります。

さて、この値の近似値がフレーム数になるのですが、四捨五入すると1000になりますね。
そこで、今度は1000fpsと仮定して、キリのいい時間のコードにして実際にその時間になるかを確認します。

まあ、1:00:00でいいでしょう。
(1×3600+0×60+0)×1000=3600000(10進数)=36EE80(16進数)
よって、0036EE80を当てはめてみると…見事1:00:00になりました!

なので、99:59:59にしたければ、
(99×3600+59×60+59)×1000=359999000(10進数)=15752618(16進数)
よって、
2010000C 15752618
になります。
あるいは、100時間-1秒=360000000-1000=359999000
と計算しても構いません。

という感じで他のゲームでも同じようにサーチすれば良いと思います。

シャドウハーツⅠ チートコード 2011年4月2日

0 件のコメント: