[psp] generar ISO

Hola a todos.
Os cuento.
He realizado un peuqeño jueguecillo, lo arranco con un eboot.pbp y con una estructura de archivos para que funcione las imagenes y los sonidos.

Mi pregunta es:
¿Como puedo generar una iso, y poderlo meter en la caperta ISO de la psp para que funcione?

muchas gracias.
No te sabría decir pero creo que no se puede... bueno a ver poderse se podrá pero no seria un procedimiento sencillo.

Porque quieres ponerlo en una iso? no tiene sentido?
Hombre, si quieres podrias, empaquetar todos los datos en un fichero , como si fuera un fichero ISO (de verdad) y leer el fichero como si fuera un disco.

Si usas ISO cada sector serian 2048 bytes, por lo que seria cuestion de saltar con lseek al (numero_de_sector<<11) y luego leer (nsectores<<11) bytes, con las funciones de menejo de ficheros normales.
¿Y no seria mejor usar el formato .pak o similares?, dejas tu eboot y luego un tipico fichero.pak y asi lo tienes todo en su sitio
Gracias a todos!!
Bueno me gustaria ponerlo de una manera algo "compacta".

NO es lo mismo tener el eboot y una cuantas carpetas y dentro de ellas los archivos de musica, de video, de imagenes, de datos, etc... que si tengo, por ejemplo un eboot y otro archivo donde tenga todo dentro.

No se si me he explicado bien.

Eskematico eso del .pak, creo que no estaría mal
Por favor, ¿me podrias decir como se haría?

Muchas gracias a todos de nuevo.
edelpuerto escribió:Gracias a todos!!
Bueno me gustaria ponerlo de una manera algo "compacta".

NO es lo mismo tener el eboot y una cuantas carpetas y dentro de ellas los archivos de musica, de video, de imagenes, de datos, etc... que si tengo, por ejemplo un eboot y otro archivo donde tenga todo dentro.

No se si me he explicado bien.

Eskematico eso del .pak, creo que no estaría mal
Por favor, ¿me podrias decir como se haría?

Muchas gracias a todos de nuevo.


Hombre, si quieres usar carpetas, etc y no tener que complicarte mucho, podrias tirar de una ISO (eso si, necesitarias interpretar la iso, claro esta), pero para empaquetar datos en un fichero, te puedes inventar el sistema que mas te guste.

Por ejemplo, podrias crear un struct similar a este:

struct entry{
unsigned offset;
unsigned size;
char name[56];
};

Un paquete asi, ocuparia 64 bytes en una tabla que le podrias dar un tamaño fijo o variable (si le das tamaño fijo, no necesitarias entry_size, para conocer el tamaño, pero desperdiciaras espacio)

La estructura del fichero, podria ser tal que asi:

unsigned id; // identificador del fichero, por ejemplo 0x10c0fe0
int entry_size; //-> tamaño de la tabla de entradas: sizeof(entry)*MAX_ENTRADAS
struct entry entradas[MAX_ENTRADAS]; // tablas de entrada de "ficheros"
/* --------------- */ //-> datos del primer fichero, seguido de los datos del segundo, etc


Ahora analicemos los datos de una entrada:

offset: -> podria ser el offset de los datos de ese "fichero" desde el inicio del fichero o a partir de la ultima entrada de directorio

size: -> tamaño en bytes del fichero

name: 55 caracteres+1 (\0). Podrias usar cualquier nombre y por ejemplo "data/score.dat" seria un nombre completo (y no un directorio+nombre)


Para proceder a buscar un fichero, solo seria buscar el nombre en la tabla partiendo desde el primer elemento hasta entry_size/sizeof(entry).
Hermes escribió:
Hombre, si quieres usar carpetas, etc y no tener que complicarte mucho, podrias tirar de una ISO (eso si, necesitarias interpretar la iso, claro esta), pero para empaquetar datos en un fichero, te puedes inventar el sistema que mas te guste.

Por ejemplo, podrias crear un struct similar a este:

struct entry{
unsigned offset;
unsigned size;
char name[56];
};

Un paquete asi, ocuparia 64 bytes en una tabla que le podrias dar un tamaño fijo o variable (si le das tamaño fijo, no necesitarias entry_size, para conocer el tamaño, pero desperdiciaras espacio)

La estructura del fichero, podria ser tal que asi:

unsigned id; // identificador del fichero, por ejemplo 0x10c0fe0
int entry_size; //-> tamaño de la tabla de entradas: sizeof(entry)*MAX_ENTRADAS
struct entry entradas[MAX_ENTRADAS]; // tablas de entrada de "ficheros"
/* --------------- */ //-> datos del primer fichero, seguido de los datos del segundo, etc


Ahora analicemos los datos de una entrada:

offset: -> podria ser el offset de los datos de ese "fichero" desde el inicio del fichero o a partir de la ultima entrada de directorio

size: -> tamaño en bytes del fichero

name: 55 caracteres+1 (\0). Podrias usar cualquier nombre y por ejemplo "data/score.dat" seria un nombre completo (y no un directorio+nombre)


Para proceder a buscar un fichero, solo seria buscar el nombre en la tabla partiendo desde el primer elemento hasta entry_size/sizeof(entry).


despues de todo esto a tu fichero le puedes aplicar triple des así verás como la gente no te coge nada de tus imágenes.

la verdad es que solo por el peñado de empaquetar el fichero no le veo interés a estas técnicas... pero bueno suerte con la programación.
No es por ocultar los archivos, pero creo que es mas digamos "profesional" poder distribuirlo con 2 archivos y no con una estructura de carpetas y archivos. Yo solo lo hago por esto, por "reducir". Mi homebrew es una peuqeña "mierda" ( para mi me costó lo mio y me gusta), y por eso no tengo nada que ocultar.

Lo mismo quiero ocultarlo por me me da verguenzaa, jajaj ( es broma)

Bueno, a ti te tengo que dar las gracias, por que tu has sido uno de los que más me has ayudado.

Gracias a ti, a turulox y algunos más debo mi comienzo.
No interesa nada encriptar los datos: una cosa interesante de empaquetar datos, es que puedes mejorar el streaming y no precisas de tener muchos ficheros abiertos, si no solo uno. Aparte claro está de que puedes tener un resultado mas limpio. Encriptar sería perder velocidad de lectura.

Pero claro, tambien se puede proceder a añadir todos los datos como variables del programa (yo utilizo este sistema a menudo) y no tienes que preocuparte ni en buscarlos, por que ya los tienes ahi, justo en su sitio.
8 respuestas