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();したようになります)

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年03月03日 19:08