#include #include #include #include #include #include #include #include #define printf pspDebugScreenPrintf #define MODULE_NAME "printtest" #define WHITE 0xffffff #define BLUE 0xff6666 PSP_MODULE_INFO(MODULE_NAME, 0x1000, 0, 5); PSP_MAIN_THREAD_ATTR(0); int done = 0; // -------------------------------------------------------------------------- int ExitCallback(int arg1, int arg2, void *common) { done = 1; sceKernelExitGame(); return 0; } // -------------------------------------------------------------------------- int CallbackThread(SceSize args, void *argp) { int cbid; cbid = sceKernelCreateCallback("Exit Callback", ExitCallback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0; } // -------------------------------------------------------------------------- int SetupCallbacks(void) { int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, PSP_THREAD_ATTR_USER, 0); if (thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid; } // -------------------------------------------------------------------------- void ColorPrintF(int color, char *fmt, ...) { va_list ap; char buffer[256]; int size; pspDebugScreenSetTextColor(color); va_start(ap, fmt); size = vsnprintf(buffer, 256, fmt, ap); pspDebugScreenPrintData(buffer, size); va_end(ap); pspDebugScreenSetTextColor(WHITE); } // -------------------------------------------------------------------------- int main(void) { int myint = 4; char *mystr = "string"; SetupCallbacks(); pspDebugScreenInit(); pspDebugScreenClear(); while (!done) { sceDisplayWaitVblankStart(); ColorPrintF(BLUE, "This is my %s and this is my integer: %d!\n", mystr, myint); } return 0; }