All pastes #344541 Raw Edit

Untitled

public text v1 · immutable
·published 2007-02-07 20:47 UTC
rendered paste body
int RestoreIdStorageKeys(char folderpath[70], char successpath[70], char errorpath[70])
{

    char a[50];
    char b[33];
    char buffer[512];
    char leaf[512];
    int r = 0;
    int f;
    u16 key; 
		
    if (sceIdStorageIsReadOnly()) return -1;

	sceKernelDelayThread(4*1000*1000);
	for(key=0x0001;key<=0x9999;key++)
	{
		int x = sceIdStorageReadLeaf(key, buffer);
		if (x == 0) {
	sprintf(a, "%s0x%04X.bin", folderpath, key);
	f = sceIoOpen(a, PSP_O_RDONLY, 0777);
	if(f < 0)
	{
         sprintf(b, "Could not find: 0x%04X.bin", key);
         int y = sceIoOpen(errorpath, PSP_O_WRONLY | PSP_O_CREAT, 0777);
         sceIoWrite(y, b, 32);
         sceIoClose(y);
         r--;
	}
	else {
         sceIoRead(f, leaf, 512);
         sceIdStorageWriteLeaf(key, leaf);
         sprintf(a, "Success key 0x%04X.bin", key);
         int z = sceIoOpen(successpath, PSP_O_WRONLY | PSP_O_CREAT, 0777);
         sceIoWrite(z, a, 34);
         sceKernelDelayThread(2000 * 2000);         
	        sceIoClose(z);
	        sceIoClose(f);
	        }
         }
 else if (x < 0)
{
      sprintf(a, "%s0x%04X.bin", folderpath, key);
      f = sceIoOpen(a, PSP_O_RDONLY, 0777);
      if (f < 0) sceIoClose(f);
      else {
           sceIoRead(f, leaf, 512);
           sceIdStorageCreateLeaf(key);
           sceIdStorageWriteLeaf(key, leaf);
           sprintf(a, "Successfully created and wrote 0x%04X.bin\n", key);
           int z = sceIoOpen(successpath, PSP_O_WRONLY | PSP_O_CREAT, 0777);
           sceIoWrite(z, a, 40);
           sceIoClose(f);
           sceIoClose(z);
           }
           }
           }
    return r;
 }