トップ改造コードps2cc > v1.3用 補助コード


※注意!
・ps2ccのコードを一部書き換えるのでps2ccの必須コードより下に登録してください。
 エクスプローダーは1回書き換えができないらしいですが、コード先頭の9Cを1Cに変えただけでは
 正常に動作しないかもしれません。(使ったことがないので不明)
・今後、ps2ccのバージョンアップで使用アドレスがずれたり、オプションコードとアドレスが
 重複するなどして正常に動作しなくなる可能性があります。
・コードの使用領域はFE800〜です。(現在はFE9A0辺りまで使用しています)


<補助コード1>
L1を押しながらでスティックの上下の傾き=左右の傾きとする
L2で上下の傾きを無視、R2で左右の傾きを無視
※ps2ccの必須コード2-1(アナログスティック)使用時のみ有効にしてください。
 また、現在はパッドアドレスに直接書き込んでいるので不都合があるかもしれません。
9C9A6B28 155627C6
9C9A6B2C 384FE78C
9C9A6B30 1B10B00C
9C9A6B34 2311EBA5
9C9A6B38 03B6E7A1
9C9A6B3C 2311E6A5
9C9A6B40 8352E7A1
9C9A6B48 B352E7A2
9C9A6B4C 03B6E7A7
9C9A6B50 2311E5A5
9C9A6B54 B34FE7A2
9C9A6B58 C7B6E7A6
9C9A6B5C B34FE7A1
9C9A6B60 033EB011
9C9A6B64 374EB00B
9C9A6B68 0456E412
9C9A7B38 0456AC10
9C9A7B3C 8950E7A5
必須コード3-2(LRボタン)使用時などで使用ボタンを変えたい場合はコチラ
L1を押すと左右の傾きに連動して両成分が同時に変化します。
・操作できる成分が「カメラ座標」と「注目点」であり、それぞれ独立して操作できる
・2つのカメラ成分の変化量が同じである
・余計な補正処理がかからない(視点固定モードで回避できる場合あり)
これらの条件を満たすソフトの場合、カメラの平行移動(向きを変えずに移動)が可能です。
L2/R2は片方のカメラ成分のみを動かしたい場合に使います。
(スティックが微妙に斜めになって両成分とも動いてしまうのを防げます)

L1を押したときに傾きの値を反転してコピーする(↑のコードと併用する)
9C9A6B44 1BD2E70C
ライゼリートなど、「カメラの平行移動」と「注目点のみ移動」ができるもので
両方の変化量が同じ場合、注目点を固定したままカメラ位置のみを変更できます。


<補助コード2>
一定範囲内のスティックの傾きを無視
※必須コード2-1(アナログスティック)使用時のみ有効にしてください。
9C9A6BA8 23D1E70C
9C9A6BAC 33B1B025
9C9A6BB0 13B13FAD
9C9A6BB4 2FB1EBA5
9C9A6BB8 C3B6E4FB
9C9A6BBC 145245A5
9C9A6BC0 E4564B1E
9C9A6BCC 0456E400
9C9A7B6C 0456B39B
9C9A7B70 9552E7A2
無視したときに背景色変化(フラッシュコードと併用する)
※右スティック上下・左右も使用して4成分を操作する場合は赤字部分をB5にしてください。
 (3成分を操作する場合はB2にする)
9C9A6BC4 2051E7C5
9C9A6BC8 13311FC8
9C9A6BD0 372DE7C5
スティックの上下・左右の傾きが中心から一定範囲内の場合、そのカメラ成分は変化しないようにします。
操作中(※)にスティックから指を離しても止まらない(微妙に動き続ける)のがある程度解消されると思います。
無視する範囲を変えたい場合、4行目を復号化して
A00FE88C 2DADxxxx
のxxxxに無視したい範囲($00〜$80)を2乗した値を入れてください。(例:±$30を無視→xxxx=0900)
また、背景色変化のコードを使うと、操作中に画面外枠の色が
上下・左右ともに有効= 片方のみ有効= どちらも無効=
と変化します。(3成分以上の場合、無視している数が多いほど赤に近い色になります)
スティックに触れて無くても青や紫になる場合は無視する範囲を大きくしてください。
※ここでいう「操作中」とは、□○△が押された状態(フラッシュコード使用時に背景色が緑でない状態)を指します。


<補助コード3>
R1を押しながらで変化量1/2
9C9A6A28 03D6E7A8
9C9A6A2C 3452B025
9C9A6A30 14524BA5
9C9A6A34 13B23FC5
9C9A6A38 CCB1FFA5
9C9A6A3C 0456E402
9C9A6A40 CD19F62D
9C9A7BCC 0456B3B3
9C9A7BD0 2312DFA5
B025の部分を変更すると倍率が変わります。
(復号化状態で)0000が標準(1倍)で、+$80ごとに倍率が2倍になります。(-$80ごとに倍率1/2)
(「倍率をfloat形式で表したものから3f800000引いたものの上4桁部分」ともいえます)
値     倍率
B0A5(FF00) 0.25
B025(FF80) 0.5
B0E5(FFC0) 0.75
E7A5(0000) 1
E7C5(0020) 1.25
E765(0040) 1.5
E725(0080) 2
E7E5(00C0) 3
E6A5(0100) 4
※()内は復号化時の値


<補助コード4>
右スティック上下+□/△/×で左右/上下/奥手前にカメラ移動
(sceVu0CameraMatrixを使用しているもののみ使用可能)
※必須コード2-1(アナログスティック)使用時のみ有効にしてください。
※別途ゲーム毎にコードを作成する必要があります。
※sceVu0CameraMatrixを使用していないものには適用できません。
9C9A7D4C 22D6F025
9C9A7D50 144FBE65
9C9A6AA8 204FE7B5
9C9A6AAC 3BF5BE65
9C9A6AB0 3CD4E7D5
9C9A6AB4 CDD5D73D
9C9A6AB8 CE95D739
9C9A6ABC 5CD4E7D5
9C9A6AC0 DFF6BE65
9C9A6ACC 15F6E79D
※次のコードはゲーム毎に必要
A0xxxxxx 0803FA60(復号化状態)
 xxxxxx=sceVu0CameraMatrix内のjr raがあるアドレス
 固有コードがsceVu0Camera〜にフックしている場合、「9C?????? 1053B1A5」となっている行を復号化し、
 そのアドレスに$7c足したものがjr ra命令のアドレスになります。
 (例:復号化して「A0107524 0C03FE00」ならば$107524+$7c=$1075a0がxxxxxxの部分に入る)
ゲーム内のX,Y,Z軸ではなく、画面の上下、左右、奥手前に対してカメラが移動します。
(通常のps2ccコードによる操作後のカメラ位置から、さらに各方向へずらす形になります)
一行目は移動速度指定です。データ部の形式はps2ccのものと同じです。
(移動速度もゲーム毎に変えた方がいいかもしれません)
ゲームによってはカメラが近づくと(ポリゴンが一部欠けるのではなく)キャラクタごと消えたり
半透明になるものがありますが、このコードで移動すれば回避できるかもしれません。

なお、このコードはsceVu0CameraMatrixで生成される4*4行列の$30,$34,$38バイト目にfloat値を
足しているだけです。sceVu0CameraMatrixを使っていないゲームでも、カメラ処理でこのような行列を生成し、
なおかつその処理を行うアドレスが分かるのならば、コード内のロード・ストア命令の操作先アドレスを
書き換えることで同様の処理を行うことができるかもしれません。

戻る