Zum auswechseln der Standart-LEDs hat Pamdora nen tolles Tutorial gemacht, da stehen ein paar Tricks drin:
#include <pspkernel.h>
#include <pspctrl.h>
#include <pspdebug.h>
#include <pspthreadman.h>
#include <pspmodulemgr.h>
#include <pspiofilemgr.h>
PSP_MODULE_INFO("LEDMOD", 0x1000, 1, 0);
PSP_MAIN_THREAD_ATTR(0);
SceCtrlData pad;
int onoff = 1;
//////////////////////////////////////////////////////////////////////
void on()
{
char buffer[1];
int datei;
datei = sceIoOpen("ms0:\led.txt", PSP_O_RDONLY, 0777);
sceIoRead(datei, buffer, 1);
sceIoClose(datei);
sceSysconCtrlLED(2, 1);
sceKernelDelayThread(0.2 * 1000 * 1000);
sceSysconCtrlLED(2, 0);
sceKernelDelayThread(0.2 * 1000 * 1000);
sceSysconCtrlLED(1, 1);
sceKernelDelayThread(0.2 * 1000 * 1000);
sceSysconCtrlLED(1, 0);
sceKernelDelayThread(0.2 * 1000 * 1000);
sceSysconCtrlLED(0, 1);
sceKernelDelayThread(0.2 * 1000 * 1000);
sceSysconCtrlLED(0, 0);
}
void off()
{
sceSysconCtrlLED(2, 0);
}
//////////////////////////////////////////////////////////////
int main_thread(SceSize args, void *argp)
{
while(1)
{
sceCtrlReadBufferPositive(&pad, 1);
if ((pad.Buttons & PSP_CTRL_START) && (pad.Buttons & PSP_CTRL_RTRIGGER))
{
if(onoff == 0) onoff = 1;
if(onoff == 1) onoff = 0;
}
if (onoff == 1)
{
on();
}
if (onoff == 0)
{
off();
}
char buffer[1];
int datei;
datei = sceIoOpen("ms0:\led.txt", PSP_O_RDONLY, 0777);
sceIoRead(datei, buffer, 1);
sceIoClose(datei);
}
sceKernelSleepThread();
return 0;
}
////////////////////////////////////////////////////////////////
int module_start(SceSize args, void *argp) {
int thid;
thid = sceKernelCreateThread("LEDMOD", main_thread, 0x30, 0x1000, 0, NULL);
if(thid >= 0) sceKernelStartThread(thid, args, argp);
return 0;
}