More SCE Mind Games™…
January 26th, 2008 silverspringHave you ever booted up your psp or resumed from sleep and have it appeared bricked (psp freezes then shutoffs)?
Well you can blame SCE for that. You see, if you have corrupt idstorage (keys 4, 5, 6, or 7) there’s an exactly 12.5% chance that on boot the psp will appear bricked. The IPL will check for corrupt keys but will only randomly do so. The check is based on the time, if the current time (in millisecs) is a multiple of (approx.) 8, the IPL will check your idstorage keys and if they are corrupt (ie. if the header for those keys dont match what they should be), the psp will shut itself off.
What is even worse is that this check also occurs during resuming from sleep mode. So one could theoretically boot up the psp fine, sleep, then fail on resume. All of this is to confuse us devs by trying to obscure the problem…very sneaky in my opinion.
Technically, it checks like this:
-
// a 32/256 (12.5%) chance this check will occur
-
// errorExit() shuts down the psp
-
if ((time>>4 ^ time) & 7 == 0)
-
{
-
if ((*(u32*)&leaf4[0] != 0) &&
-
(*(u32*)&leaf4[0] != 0x4272796E)) // Bryn
-
errorExit();
-
-
if ((*(u32*)&leaf5[0] != 0) &&
-
(*(u32*)&leaf5[0] != 0x436C6B67)) // Clkg
-
errorExit();
-
-
if ((*(u32*)&leaf6[0] != 0) &&
-
(*(u32*)&leaf6[0] != 0x4D446472)) // MDdr
-
errorExit();
-
-
if ((*(u32*)&leaf7[0] != 0) &&
-
(*(u32*)&leaf7[0] != 0×41506144)) // APaD
-
errorExit();
-
}
So, what do people think of this new trick?
Sneaky? Absolutely. Suprised? Well, this is SCE we’re talking about here.
Another day, another mind game…
EDIT: Slight correction, the time is actually in 500ms intervals (0.5second intervals), not milliseconds.