FC2ブログ
--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--:-- | スポンサー広告  TOP

2012/01/18

PSPLINK MSUBBUG validation



いちおうmsubだkねたで確認してみた。msub=multiply(乗算) かつ substruct(減算)なので,zrになっちまうとばぐ確定だな。さっさとレポジトリーに反映してくれれば問題ないんだけど、間違った情報を延々と参照していくのでバグが他のAPPZにうつるので(MK/TEMPAR/GEMINIなど)、なおしてほしいけどな、おんなじような命令のmaddの方はちゃんと%s,%tで問題ないし。しかしBUG指摘サイトPOPS専用だかのいんすとのってて,けっこうすげえな。
LOレジスタ(mtlo t1)=0x2
0x8B40000(at)*2(a2)=0x11680000
LOレジスタ=0x00000002-0x11680000=0xEE980002(アンダーフロー)
HIレジスタ(mtlo t0)=0x4
HIレジスタ=4-(0x11680000>>32,0)-1(アンダーフロー分?)=3

//洞窟物語で検証済み(For PSP CAVESTORYRC)
//PSPLINKで0x8801020 h ダメージ時ブレーク
#!HPASM_DAMAGE_HOOK
0x00128254 0x101F0005
0x00128258 0x0A200400
0x00001000 0x34080004
0x00001004 0x34090002
0x0000100C 0x01200013
0x00001010 0x01000011
0x00001014 0x00C1002E
0x00001018 0x00005812
0x0000101C 0x00005010
0x00001020 0x0A24A097

スポンサーサイト

09:00 | 改造COMMENT(3)TRACKBACK(0)  TOP

コメント

この記事とは無関係なんですが、質問というか確認させてください。

PSPLINK改造版はmultの動作がバグっていますか?
multの直前にブレークさせて、step実行させた場合、mfloで取り出した値がおかしいのです。

a0=0x41C64E6D
a1=任意の数

mult a0,a1
mflo a2

a1の値が何でもあっても取り出したa2の値が
常に0x00000014なってしまいます。

psplink 0.11.2r3を使用した場合は、正常な値が入っています。

訳がわからず1時間悩みました。

No:164 2012/08/06 04:29 | グラシャラボラ酢 #kpjYxc8I URL [ 編集 ]

CMFpsplink改造版はbpsetをせず改造コードで 0X0000000D break挿入しても
なぜかフリーズしないようになっているので、タイミングkHOOKだかが1つずれるのでは1つ後だと問題ないと思います。あとはmulti命令の遅延とかもあるかもしれませんが、旧PS1時代のr3000なんかはおそいのえ
LW後NOPが必須だったりものによってかなり差があるので。PSPでも浮動小数点がらみはNOPだkなんかあけないとうまくうごかんことがあるkと。

No:165 2012/08/06 07:45 | #- URL [ 編集 ]

>multi命令の遅延
R4000だとmultで必要なクロックが10ですよね。
ベースの古いpsplinkだとstepがうまく処理
されていないのかも知れませんね。
納得しました。ありがとうございます。

No:166 2012/08/06 13:05 | グラシャラボラ酢 #kpjYxc8I URL [ 編集 ]

コメントの投稿



秘密にする

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。