pspで動作する最小っぽいソース
#include <pspkernel.h>
PSP_MODULE_INFO("TEST",0,1,1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);
int main(int argc,char *argv[])
{
sceKernelExitGame();
return 0;
}
何もしないで、終了します。
#include <pspkernel.h>
sceKernel*系のAPIのプロトタイプ宣言とかあといろいろ。
Main include file that includes all major kernel headers.
って書いてあり、イメージ的にはwindows.hみたいな存在か
PSP_MODULE_INFO("TEST",0,1,1);
.rodata.sceModuleInfo ELF section を定義します。
左からモジュールの名前、属性、メジャーバージョン、マイナーバージョン
属性は
enum PspModuleInfoAttr
{
PSP_MODULE_USER = 0,
PSP_MODULE_KERNEL = 0x1000,
};
これいがいに
0x0800 VSH モードで
0x1006 IdStorage 使用?
よくわかりません。
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
enum PspThreadAttributes
{
/** Enable VFPU access for the thread. */
PSP_THREAD_ATTR_VFPU = 0x00004000,
/** Start the thread in user mode (done automatically
if the thread creating it is in user mode). */
PSP_THREAD_ATTR_USER = 0x80000000,
/** Thread is part of the USB/WLAN API. */
PSP_THREAD_ATTR_USBWLAN = 0xa0000000,
/** Thread is part of the VSH API. */
PSP_THREAD_ATTR_VSH = 0xc0000000,
/** Allow using scratchpad memory for a thread, NOT USABLE ON V1.0 */
PSP_THREAD_ATTR_SCRATCH_SRAM = 0x00008000,
/** Disables filling the stack with 0xFF on creation */
PSP_THREAD_ATTR_NO_FILLSTACK = 0x00100000,
/** Clear the stack when the thread is deleted */
PSP_THREAD_ATTR_CLEAR_STACK = 0x00200000,
};
main()で始まります。
sceKernelExitGame();で終了します。
これを呼び出さないと終了せず、起動しっぱなしになります。
(sceKernelSleepThread();したようになります)
最終更新:2009年03月03日 19:08