Пример #1
0
Файл: led.c Проект: esxgx/uofw
int sceLedInit(void)
{    
    int i;
    memset(&leds, 0, 0xF0);
    g_00000F40 = 2;
    leds[LED_TYPE_MS].gpioPort = 6;
    leds[LED_TYPE_MS].unk2 = 0;
    leds[LED_TYPE_WLAN].gpioPort = 7;
    leds[LED_TYPE_WLAN].unk2 = 1;
    
    int model = sceKernelGetModel();
    if((model - 1 < 2) || model == 4)
    {
        leds[LED_TYPE_WLAN].unk1 = 1;
    }
    if(((model - 4) < 2) || model == 7 || model == 9)
    {
        //loc_0000022C
        leds[LED_TYPE_BT].gpioPort = 24;
        leds[LED_TYPE_BT].unk2 = 3;
        if(model == 4)
            leds[LED_TYPE_BT].unk1 = 1;
        g_00000F40 = 3;
    }

    if(g_00000F40 >= 0)
    {
        for(i = 0; i < g_00000F40; i++)
        {
            //loc_000000D4
            if(sceGpioGetPortMode(leds[i].gpioPort) == 2)
            {
                //loc_00000210
                sceGpioSetPortMode(leds[i].gpioPort, 0);
                if(leds[i].unk1 == 0)
                {
                    //loc_000001AC
                    sceGpioPortClear(1 << leds[i].gpioPort);
                    continue;
                }
            }
            else if(i == LED_TYPE_BT)
            {
                //loc_000001BC
                int gpioPort = sceGpioPortRead();
                int btStatus = sceSysconGetBtPowerStatus();
                
                if(((btStatus == 0) ? 0 : (((gpioPort >> leds[i].gpioPort) & 1) ^ leds[i].unk1)) != 0)
                {
                    //loc_000001FC
                    sceLedSetMode(2, 1, 0);
                    continue;
                }
                else
                {
                    if(leds[i].unk1 == 0)
                    {
                        //loc_000001AC
                         sceGpioPortClear(1 << leds[i].gpioPort); //since i is 2 then this is 160, but I wanted it to be uniform
                         continue;
                    }
                }
            }
            else
            {
                if(leds[i].unk1 == 0)
Пример #2
0
int sceHibariUnk13()
{
	return !(sceGpioPortRead() & 1);
}