All pastes #338053 Raw Edit

Stapol mapIDS v3

public text v1 · immutable
·published 2007-02-03 04:04 UTC
rendered paste body
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <pspiofilemgr.h>
#include <pspdisplay.h>
#include "pspidstor.h"

PSP_MODULE_INFO("IdStorage_Mapper", 0x1000, 1, 1);
PSP_MAIN_THREAD_ATTR(0);

#define printf pspDebugScreenPrintf

int BackupKeyToFile(u16 key, char filepath[50])
{    
char dumpbuff[512];

        memset(dumpbuff, 0, 512);

        int f = sceIoOpen(filepath, PSP_O_WRONLY | PSP_O_CREAT, 0777);        
        if (f < 0) return -1;       
        sceIdStorageReadLeaf(key, dumpbuff);
        sceIoWrite(f, dumpbuff, 0x200);
        sceIoClose(f);
        return 0;
}

int mapIDS(void)
{

        char buffer[512];
        int x;
        char y[33];
        char z[33];
        char a[50];
        u16 key; 
	
	printf("Starting mapIDS.. Please wait while loading...\n");
    sceKernelDelayThread(1000 * 1000);	
    
    sceIoMkdir("ms0:/mapIDS", 0777);
	
	int f = sceIoOpen("ms0:/mapIDS/mapIDSSuccess.txt", PSP_O_WRONLY | PSP_O_CREAT, 0777);        
        if (f < 0) return -1;       
    int g = sceIoOpen("ms0:/mapIDS/mapIDSError.txt", PSP_O_WRONLY | PSP_O_CREAT, 0777);
        if (g < 0) return -1;
        
        for(key=0x0001;key<0x9999;key++)
	{
		x = sceIdStorageReadLeaf(key, buffer);
		if (x < 0) {
			printf("Error: Key 0x%04X does not exist.\n", key);
			sprintf(y, "Error: Key 0x%04X does not exist.\n", key);
			sceIoWrite(g, y, 32);
			 }
      else if (x == 0) {
           printf("Success: Key 0x%04X exists.\n", key);
          	sprintf(z, "Success: Key 0x%04X DOES exist.\n", key);
           	sprintf(a, "ms0:/mapIDS/0x%04X.bin", key);
           	BackupKeyToFile(key, a);
			sceIoWrite(f, z, 30);
           }
         else printf("Unknown error on key 0x%04X.\n", key);
         }
	         printf("Task completed.\n");
	         sceIoClose(f);
	         sceIoClose(g);
	         sceKernelDelayThread(3000 * 3000);
	         return 0;
}


int main(void)
{

	pspDebugScreenInit();
	SceCtrlData psp_pad;


	printf(" Press O to map idstorage 0x0001 - 0x9999 dumping correct keys.\n");
	printf(" 2006 Stapol Contact me at dstapol@hotmail.com for questions \n");
	
	for(;;) {
                sceCtrlReadBufferPositive(&psp_pad, 1);
               
		if(psp_pad.Buttons & PSP_CTRL_CIRCLE)
		{
			pspDebugScreenClear();
		 int x = mapIDS();
		 if (x < 0) printf("Unknown Error initialising logs..\n");
		 else sceKernelExitGame();
        }       	
		}
}