Freedomのブログ

Freedomのブログ

ガンダムNEXTPLUS チート関連のブログです

内容は、
・改造講座(教えるつもりがはなからなゲフンゲフン)
・オリジナルコード(低い完成度とその数の少なさ)

怠惰な更新が平常death
コメとかは歓迎です
質問とかあれば答えます
ゆっくりしていってね

Amebaでブログを始めよう!

タイトルの通りで、トランザムの時間をできる限りきれいな形で延長するコードを作りました。

以前覚醒時間延長の講座しましたが、あの時にもご指摘があった通り、あの方法では延長できない機体がいくつもありました。

そのひとつであるリボーンズガンダムの覚醒処理を今回は解析してみました。

最近リボンズ君好きなのでね

 

_L 0x213D3818 0x24020960
_L 0x213CFA54 0x3C030DA7
_L 0x213CFA58 0x346340DA

 

効果としては覚醒時間を2倍に延長するだけです。

ただし公式寄りの改変なのでCPUもちゃんと2倍です。これがいい。

 

1行目のコードで純粋な覚醒時間の延長を

2と3行目でゲージの見た目上の減少の仕方を延長した時間に合わせて書き換えています。

 

今回分かったのは、覚醒というシステムのゲージの処理と時間についてです。

時間自体は覚醒時間(秒)の60倍の数値で検索して、ヒットした値を自分の好みに書き換えることで比較的単純に伸縮できます。

これはどの機体でも似た構造でプログラムされているようです。

しかし覚醒時間を延長するだけではゲージの見た目に不具合が起こります。

これは覚醒ゲージの見た目上の減算が別の処理によって行われており、こちらも伸縮した時間に合わせて変更しないと発動時間とゲージの減算がかみ合わないためです。

そしてこの見た目上のゲージ減算処理は機体ごとに微妙に異なった処理の仕方がされているようで、パターン化しづらいのではないかという疑惑が生じました。

 

ともかくリボンズくんではフリーダムなんかと違い、浮動小数点数での計算はせずに見た目の減算を行っていました。

説明が難しいのでざっくりいえば、60倍した覚醒時間の残りの時間を取得して、それを小数以下で四捨五入のようなことをして、ゲージ100のうちいくつかという計算を行っていました。

実際には60倍の数値を掛け算でさらに馬鹿でかい数値にしてから、その計算結果を上位と下位の数字に分けて上位の値だけを取り出して、少数の切り捨てのようなことを行っていました。

が、はっきりいってなぜこんな回りくどい計算をしているのか謎です。機械語の七不思議。

ここで馬鹿でかい数字にする際にとある数字を即値で代入して掛けているので、2-3行目ではそれをいじって覚醒時間に合わせているというわけです。

 

しかしゲージの見た目上の減算処理のすべてがそれぞれの機体によって違うかというとそうではなく、

共通のゲージの見た目減算jalが存在します。

 

リボンズでいうと

09BCFA04 0E26DCC3 jal    0x089B730C

これです。

 

このjalで「a2レジスタ」に「ゲージをいくつ減らすか」を与えて実行するための

a2レジスタの値の準備の仕方にいろいろ機体ごとの違いがあるわけです。

 

ですから覚醒ゲージの見た目にこだわりたい方は、

このjalでサーチしてa2レジスタの値がどのように計算されているのかを追ってゲージの処理の仕方を調整すれば、

公式寄りの見た目のきれいな覚醒延長が可能になるのです。

このほうがCPUもちゃんとつかってくれるしね。

 

たかだか3行のコードを作って覚醒時間を2倍にするのに異常に時間がかかって(土日が溶けた)しまいましたが、

そこそこおもしろかったのでおっけーbです!

最近PPSSPPで解析するというすべを覚えたFreedomです

 

PC画面でネクプラしてると自機がやけにでかくてプレイしづらい気がしたので

カメラ視点の距離を操作するコードを作りました

 

_C0 camera position
_L 0x609B690C 0x42960000
_L 0x00020001 0x00000180
_L 0x609B690C 0x42960000
_L 0x00020001 0x00000184

 

ポインターコードで共通になっているのでどの機体でも使用できます

ただしリボーンズガンダムみたいに換装して視点が少し変わる機体はもう少しコードが必要になりますが、

それは各自でやっていただくか、質問か何かあればやることにしましょう(逃げ)

 

42960000の部分が浮動小数点数になっているのでお好きな値に設定してください(筆者はこんなもんが好きかな)

上2行のコードの値がどこまで視点が機体に近づけるかの距離になっていて、

下2行のコードの値がどこまで機体から遠ざかれるかの距離になっているはずですが、

特にこだわり等なければ同じ値で問題ないと思います

 

割とネクプラプレイヤーみんなに便利なコードなんじゃないかなと

 

あと実機はボタンがつぶれたりバッテリーがあれなのでPPSSPPに移行するしかないですね

ドへたくそだがネクプラでオンライン対戦したいぜ

 

 

 

 

前にもらった質問は...ははは

もし僕がもっと早くここに帰ってきていたら、今よりは少しだけこの界隈を盛り上げることができていただろうか?


1年で元に戻るだろうという予想に反し、多忙が続き心をすり減らしてしまい、それどころでは無くなってしまった。でも心の隅に講座の続きを書きたいという思いがちょこんと身を潜めていた。それをやっと果たしたんだ。


ガンネク改造にはまだやれることは残されていたはずなのに、時間がかかってしまってすみません。