Documents‎ > ‎

PRXの作り方



他のサイトの内容だと自前ライブラリ作るには微妙に情報不足→自前で解析するかー

というわけで、上のリンク先と合わせて読めば幸せになれるかも

ライブラリを作るとき使うexpファイルの構文

#構文開始の合図
PSP_BEGIN_EXPORTS
#以下の4行は必須
PSP_EXPORT_START(syslib, 0, 0x8000)
PSP_EXPORT_FUNC_HASH(module_start)
PSP_EXPORT_VAR_HASH(module_info)
PSP_EXPORT_END

# ここから自前のライブラリの宣言
PSP_EXPORT_START(MyLib, 0, 0x0001)#名前、バージョン、アトリビュート
PSP_EXPORT_FUNC_HASH(getModuleInfo)#関数名
PSP_EXPORT_END
#構文終了の合図
PSP_END_EXPORTS

ライブラリを使うときに使う.Sファイルの構文

.set noreorder

#include "pspstub.s"

STUB_START "MyLib",0x00090000,0x00010005
STUB_FUNC 0x563FF2B2,getModuleInfo
STUB_END

STUB_STARTの引数は名前、フラグとバージョン、関数の数と変な数字

名前は.expに指定したものを使う

フラグとバージョンは…上位16ビットがアトリビュートで下位16ビットがバージョンかな?

関数の数と変な数字。上位16ビットが関数の数。下位16ビットは0005で固定らしい

STUB_FUNCの引数はハッシュ値と関数名

ハッシュ値は関数名をSHA-1で計算して出てきたハッシュから上位32ビットを抽出、リトルエンディアンに並べ替えればいい