Hola de nuevo.
Tengo una pregunta sobre la forma "correcta" de obtener el total de memoria libre en el PSP.
Dentro del PSPSDK hay una funcion llamada sceKernelTotalFreeMemSize (), la cual al principio creia que podria responder a mi pregunta, sin embargo, al mandarla llamar dentro del código del emulador RIN me marcaba la misma cantidad, alrededor de 1 MByte, la cual ademas de ser muy poca memoria libre, no variaba ni un solo dígito, independientemente de que tuviera cargada una rom pequeña o una rom grande.
Buscando en google lo único que encontre fue un bloque de código similar al siguiente:
int obtener_memoria_libre(){
const int BLOQUE500KB = 500*1024;
unsigned char *p;
int mem_libre = 0;
while(1){
p = malloc(BLOQUE500KB);
if( p != NULL)
mem_libre += BLOQUE500KB;
else
break;
}
//aqui se debe liberar TODA la memoria reservada
//pero por simplicidad no pongo el codigo completo
return mem_libre;
}
el cual basicamente reserva trozos de memoria hasta que ya no se puede reservar ni uno más y suma la cantidad de bloques reservados para arrojar el "total" de memoria.
Probando este código en el emulador RIN ya cargado, encontre por fin una variacion de la memoria libre y una mayor cantidad disponible (alrededor de 9 MB).
Sin embargo, me intriga que un simple emulador de GB/GBC una vez cargado en memoria deje menos de 10 MB de memoria libre en el PSP (NOTA.- Es carga directa en PSP 1.5, sin DeviceHook y con el Harleygs custom firmware instalado)
¿Sabe alguien si este método de obtener la cantidad de memoria libre es confiable? ¿o existe alguna otra función de sistema que arroje la cantidad exacta de memoria?
¡Muchas gracias de antemano y saludos!