Anuncios Google

Código C

¿Alguién me puede decir el código C para dumpear un UMD o al menos explicarmelo?

Se lo agradecería mucho.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de dj51_Shura

Lo mismo que dumpear

la flash0:. Revisa el comentario que te puse...

y suerte

Imagen de User170294

xq no resuelves la duda en el

xq no resuelves la duda en el foro??? asi los demas no nos enteramos ¬¬

salu2

Imagen de dj51_Shura

Vale, vale

Quedaría algo así...

int check = sceUmdCheckMedium();
if(check == 0) {
    printf("No UMD detected...");
    sceUmdWaitDriveStat(PSP_UMD_PRESENT);
    printf(" UMD inserted...\n");
} else {
    printf("UMD detected...\n");
}
printf("Mounting UMD to filesystem...");
check = sceUmdActivate(1, "disc0:");
if(check < 0) {
    printf(" error!");
    sceKernelDelayThread(3 * 1000 * 1000);
    sceKernelExitGame();
} else {
    printf(" success!\n");
}
sceUmdWaitDriveStat(PSP_UMD_READY);
printf("UMD ready. Dumping it to ms0:/UMDDUMP...\n");
 
check = ioCopyFile("disc0:/UMD_DATA.BIN", "ms0:/UMDDUMP/UMD_DATA.BIN", OVW, 2048);
if(check == true) {
    printf("\n Success copying disc0:/UMD_DATA.BIN...");
} else {
    printf("\n Error while copying disc0:/UMD_DATA.BIN...");
}
 
check = ioCopyDirectory("disc0:/PSP_GAME", "ms0:/UMDDUMP/PSP_GAME", OVW, 2048);
if(check == true) {
    printf("\n Success copying disc0:/PSP_GAME...");
} else {
    printf("\n Error while copying disc0:/PSP_GAME...");
}
 
printf("\n\n All completed. Exiting...");
sceKernelDelayThread(3 * 1000 * 1000);
sceKernelExitGame();

Puede tener algún fallo, pero mirando la coumentación del pspssdk1.0+beta2, el módulo UMD, más o menos irían por ahí los tiros...


http://www.mhypnok.blogspot.com/

Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...

Imagen de AitorDB

By Aitor

Muchas gracias. Aquí lo que en realidad buscaba principalmente era saber como se llamaba, "disc0:".

Imagen de sting18

Si vas a hacer un code para

Si vas a hacer un code para dumpear tambien te recomiendo que gas el de comprobar memoria por el espacio ya sabes si no cabe que no empiese si no tiempo perdido ya se por 1MB o menos pero que no lo aga si no te dara elrror el juego a la hora de ponerlo a jugar.


Imagen de dj51_Shura

Exacto

pero, ¿cómo haces eso? Es decir, para saber el espacio ocupado, pues un ioGetDirectorySize aplicado recursivamente pero, ¿cómo sabes el espacio total? Esa es una duda que nunca logré resolver xD

Un saludo


http://www.mhypnok.blogspot.com/

Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...

Imagen de sting18

 Ok es un poco mas que solo

  Ok es un poco mas que solo eso, tienes que hacer una extructura y usar el modo kernel y bla,bla,bla Mira unas funciones que tengo en mi darkwii para la memoria.

///////Memoria ms0:/. ejemplo DarkWii de sting18//////
 
typedef struct
{
	unsigned long		maxclusters;
	unsigned long		freeclusters;
	int					unk1;
	unsigned int		sectorsize;
	u64					sectorcount;
 
} pgeSystemDevCtl;
 
typedef struct
{
	pgeSystemDevCtl *pdevinf;
 
} pgeSystemDevCommand;
 
u64 TamanoTotal(void);
u64 EspacioLibre(void);
void TipadoDeTamanos(char *Out,u64 Size);
 
u64 Libre = 0,Total = 0,Ocupado = 0;
char TTotal[20],TLibre[20],TOcupado[20];
 
void memoria()
{
 fondo = loadImage("Imagenes/opciones/memoria/memoria.png");
 i100 = loadImage("Imagenes/opciones/memoria/100.png");
 i10 = loadImage("Imagenes/opciones/memoria/basio.png");
    Libre = EspacioLibre();
    Total = TamanoTotal();
    Ocupado = Total - Libre;
    TipadoDeTamanos(TTotal,Total);
    TipadoDeTamanos(TLibre,Libre);
    TipadoDeTamanos(TOcupado,Ocupado);
    	 blitAlphaImageToScreen(0 ,0 ,480 , 272, fondo, 0, 0);
		 blitAlphaImageToScreen(0 ,0 ,196 , 22, i100, 150, 65);
		 blitAlphaImageToScreen(0 ,0 ,196 , 22, i10, 150, 115);
		 blitAlphaImageToScreen(0 ,0 ,196 , 22, i10, 150, 165);
	flipScreen();
    while (1)
    {
	pspDebugScreenSetXY(25,7);
	pspDebugScreenPrintf("ESPACIO TOTAL: %s",TTotal);
    pspDebugScreenSetXY(25,13);
    pspDebugScreenPrintf("ESPACIO USADO: %s",TOcupado);
    pspDebugScreenSetXY(25,19);
    pspDebugScreenPrintf("ESPACIO LIBRE: %s",TLibre);
        sceCtrlReadBufferPositive(&pad, 1);
        if (pad.Buttons & PSP_CTRL_CIRCLE){freeImage(i100); freeImage(i10); freeImage(fondo); O_opciones2();}
    }
}
 
u64 TamanoTotal(void) {
	pgeSystemDevCtl devctl;
 
	memset(&devctl, 0, sizeof(pgeSystemDevCtl));
 
	pgeSystemDevCommand command;
 
	command.pdevinf = &devctl;
 
	sceIoDevctl("ms0:", 0x02425818, &command, sizeof(pgeSystemDevCommand), NULL, 0);
 
	u64 mssize = (devctl.maxclusters * devctl.sectorcount) * devctl.sectorsize; 
 
	return mssize;
}	
 
u64 EspacioLibre(void) {
	pgeSystemDevCtl devctl;
 
	memset(&devctl, 0, sizeof(pgeSystemDevCtl));
 
	pgeSystemDevCommand command;
 
	command.pdevinf = &devctl;
 
	sceIoDevctl("ms0:", 0x02425818, &command, sizeof(pgeSystemDevCommand), NULL, 0);
 
	u64 mssize = (devctl.freeclusters * devctl.sectorcount) * devctl.sectorsize; 
 
	return mssize;
}	
 
void TipadoDeTamanos(char *Out,u64 Size)
   {
	u32 Peso, PesoDecimal;
   	if(Size > 1024*1024*1024)
    	    {
		   Peso = Size/(1024*1024*1024);
		   PesoDecimal = (Size/(1024*1024) - Peso * 1024) % 1024 /10;
		   sprintf(Out,"%u.%02uGB", Peso, PesoDecimal);
	    }
	  else if(Size > 1024*1024)
	    {
		   Peso = Size/(1024*1024);
		   PesoDecimal = (Size/1024 - Peso * 1024) % 1024 /10;
		   sprintf(Out,"%u.%02uGB", Peso, PesoDecimal);
            }
	  else if(Size > 1024)
	    {
	    	Peso = Size/1024;
	    	PesoDecimal = (Size - Peso * 1024) % 1024 /10;
	    	sprintf(Out,"%u.%02uGB", Peso, PesoDecimal);
	    }
     else if(Size < 1024)
    	{
    		u32 Size32 = Size;
    		sprintf(Out,"%u Bytes",Size32);
    	}
    }

espero te sirva saludos shura.


Imagen de dj51_Shura

Muchas gracias

lo leeré, así a primera vista y cansado... pero muchas gracias por la molestia ;-)

Un saludo

Imagen de sting18

Ya sabes chura, me costo

Ya sabes chura, me costo mucho trabajo a mi tambien hacer eso xD ya que al principio solo podia leer 1GB y me costo mucho hacer que leyera mas, de hecho solo cuento con una de maximo 4GB, pruebala con una de 8 y 16 y me dices si te funciona ya que no tengo yo de esas :S.


Imagen de dj51_Shura

Lo siento

no podría ni aunque quisiera. Me robaron la PSP... ¡en vacaciones! Arghhh... Llora

Muchas gracias por todo

Imagen de sting18

Que mala onda :S. espero

Que mala onda :S. espero tengas una pronto ya que es necesario tener una psp xD.

Imagen de dj51_Shura

Sí xD

aunque no tengo muchas esperanzas. No soy especialmente bueno en los estudios, por lo menos ahora que empiezo 4º... así que para navidades pos como que no...

Un saludo!


http://www.mhypnok.blogspot.com/

Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.