prxモジュールを作ってAPIをフックしたい(4)

前回からかなり時間がたってるから、過去の記事を読み返していろいろ思い出すと、フックする予定の関数が内部でsyscall呼んでるせいでジャンプ先がわからなくて、フック出来ねーよ!ってことだった。syscallで発生した例外でジャンプする先がわからなくて諦めたわけだけど、"PSP Exception Vector"とか入れてググってたら、こんなページが出てきた(yet another PlayStationPortable Documentation)。このドキュメントのCOP0のところを読んでると、COP0のコントロールレジスタにsyscallの例外ベクトルの位置があるらしい。MIPSのドキュメントを読んでもそんなこと書いてなかったので、たぶんPSPのCPU独自の設計なんだろう。というか、このレジスタ書きかえれば例外ベクトルの位置変わるんじゃね、とかいろいろ思ったけど自分で例外処理するのも大変そうなので、別の方法を探すことにする。
syscallされた実際の関数がどう処理されるのか、ってことが知りたくていろいろ漁ってると、PS2DEVにこんなドキュメントが置いてあった(http://ps2dev.org/psp/Tutorials/PSP_Modules,_Exports,_Imports_and_Patches)。PSPのモジュールの作り方や、モジュールがどう配置されてるか、どうやってパッチを当てるか、みたいな事が英語で書いてあるらしい。がんばって読んで、わかったことにしとこう……。