空きメモリ量測定

今までは公開されていた命令を試してきましたが
今回はまだ使用されているソースが公開されていない命令を探っていきます。

まずは引数無しで簡単に呼べるであろうと思われる
「空きメモリ量の取得」命令を見て行きたいと思います。

http://pspdev.ofcode.com/api.php
こちらから現在見つかっている関数名の一覧が載っており
物によっては引数までわかっています。
しかしみてわかるようにまだほとんどわかっていません。
情報の充実に少しでも協力できれば幸いです^^

メモリ操作関係はSysMemUserForUserにありますね。
内部には
0x237dbd4f sceKernelAllocPartitionMemory
0x9d9a5ba1 sceKernelGetBlockHeadAddr
0xb6d61d02 sceKernelFreePartitionMemory
0xa291f107 sceKernelMaxFreeMemSize
0xf919f628 sceKernelTotalFreeMemSize
が書かれています。
以前にも書きましたがこれはstartup.sに記述する事で
定義を出来るようですので、下二つを追加しておきましょう。

 STUB_START "SysMemUserForUser",0x40000000,0x00050005 //変更
 STUB_FUNC 0x237DBD4F,sceKernelAllocPartitionMemory
 STUB_FUNC 0xB6D61D02,sceKernelFreePartitionMemory
 STUB_FUNC 0x9D9A5BA1,sceKernelGetBlockHeadAddr
 STUB_FUNC 0xa291f107,sceKernelMaxFreeMemSize //追加
 STUB_FUNC 0xf919f628,sceKernelTotalFreeMemSize //追加

 STUB_END


STUB_STARTの後ろの0x00050005の前側の16バイトがFUNC数の記述のようです。
現在出回っているソースでは上三つしか書かれていませんので
3から5に変えておきましょう。


後は
int _TotalMem=sceKernelMaxFreeMemSize();
int _TotalMem=sceKernelTotalFreeMemSize();


のようにしてやれば空きメモリ量が取得できます。
なぜ2種類あるのかは謎ですが下の方が若干少ないので
こちらを信用した方が無難かとw