今日を生きる

あやめの花言葉は良い便り

PS2解析ってどうやるんな

そもそもサガとかのゲーム解析やるオタクってどうやってるんでしょう。

小学校時代、2進数と16進数をプロアクションリプレイで初めて知った時に更に突き詰めていれば今は理系でそっちの人になっていたのかもしれません。

 

とりあえず今なら分かることも有るだろうと調べてみました。

 

PCSX2のデバッガ

f:id:Big_iris:20171223213914p:plain

 

アンサガを走らせた時のデバッガー。

メモリダンプだけが出てきたら諦める所だけど、出てきたのはアセンブラレジスタでした。

(カットしたけどその下にメモリダンプも表示されてます。)

 

アセンブラなんてこれまで一ミリも触れてこないで生きてきたけど、これを機に調べてみました。

PS2のCPUはEmotion Engine(通称R5900)というSonyオリジナルの物らしく、初代PS3PS2互換があったのはこのR5900が載っていたかららしい。

 

ハードが違うのだからアセンブラの命令も当然オリジナルという事で、R5900命令表を手に入れました。

http://www.geocities.co.jp/Playtown-Bingo/8243/ps2serch/itiran.htmlwww.geocities.co.jp

例えば、上の画像はlui at,0x8001って処理が走っていて、レジスタatの上位4bitに8001を代入してる。

実際atの上位4bitは8001が代入されてます。

 

ということで、R5900命令表は正しそう。

後はこれをトレースしたり検索したりして、ゲーム上の処理を特定していくらしい。

 

それを考えるとアセンブラで単純な加減乗除だけで表現される計算式から複雑なロマサガの計算式を導き出してる解析ガチ勢はかなり大変そう。

それを考えると開発者自身が攻撃計算式発言をしてくれれば、ゲーム上のパラメータに相当するレジスタを特定できたりそこから絞りこめる情報が増えたりするんでしょう。

 

アンサガもそういう情報が沢山転がってたら良いのに。