› Foros › Multiplataforma › Desarrollo
memset(entries, 0, sizeof(DocumentEntry) * n);
fwrite(entries, 1, sizeof(DocumentEntry) * n, out);
typedef struct __attribute__((packed))
{
unsigned int offset_low;
unsigned int offset_high;
unsigned int unknown;
unsigned int size_low;
unsigned int size_high;
unsigned int dummy[0x6C/4];
} DocumentEntry;
DocumentEntry *entries;
crackiron escribió:Buenas noches,
Espero que me podais ayudar los que sepais de C para explicarme lo siguiente, la cosa es que estoy portando a PERL el docmaker, pues me pareció que el funcionamiento de este es sencillo, y queria aprender a programar, he conseguido generar los primeros 87 bytes del fichero DOCUMENT.DAT, con su respectivo game_code, y el numero de paginas segun los png's que hay en la carpeta deseada, peró llegué a este punto y me quedé pillado:memset(entries, 0, sizeof(DocumentEntry) * n);
fwrite(entries, 1, sizeof(DocumentEntry) * n, out);
Ya he buscado en tutoriales de C, pero sigo sin entender, necesito saber como hace el relleno de 0, de donde saca la dimension del relleno? DocumentEntry lo genera con esta función:typedef struct __attribute__((packed))
{
unsigned int offset_low;
unsigned int offset_high;
unsigned int unknown;
unsigned int size_low;
unsigned int size_high;
unsigned int dummy[0x6C/4];
} DocumentEntry;
y entries lo declara con esta otra:DocumentEntry *entries;
Si os hace falta os cuelgo el source, o si teneis el 3.03 OE-A en principio ya lo teneis.
Gracias por adelantado
saulotmalo escribió:sólo le he hechado un vistazo a lo que has puesto, hermes, pero según lo que dices lo que está haciendo aquí es algo como para cada document entrie sería algo como cáda página de manual , no? y hace la reserva esa.
por otro lado que utilidad tiene pasar esto a perl? o lo haces solo por divertirte, crackiron?
saulotmalo escribió:creo que el programita este es para los juegos de psx para que puedan tener su manual o guia incluida... no se si acaso el colega del perl podría asegurarlo.
saulotmalo escribió:offtopic, lo de la firma es que yo admiro a la gente que de verdad es importante para la scene ( que no hecho el trabajo de otros por tierra ) solo digo que tu estas haciendo un trabajo fabuloso, tanto en nds como ps2 o psp y que igual no tienes tanto reconocimiento como otros que se dedican a romper protecciones. jejej que rayada
saulotmalo escribió:yo lo sé, pero me jode que a gente como tu no te denominasen por ejemplo para premio scener del año ( aunque en psp no hayas hecho tanto como nds ) y si nominen a gente que vamos tiene dudosas aportaciones. Y no lo digo por dark_alex que precisamente tengo que reconocer que uso cosas suyas aunque el xabal no conteste nunca porque siempre está ocupao ejej. en fin Mejor dejamos de hablar del tema que estamos llenando el hilo de otros temas jeje.
te apuntas a hacer un jueguecito que tengo en mente hermes, o alguien interesado, sería un juego facilito y con poca cosa pero es mas divertido hacerlo en grupo, o no?
saulotmalo escribió:En realidad lo del juego iba a ser cosa pequeña, yo ahora solo me centro en cosas pequeñas e intento buscar modularidad para ver si las puedo usar en cosas más complejas . La verdad que comprendo lo de pocas ganas de programar a mi me pasa igual con el proyecto de final de carrera ( y eso que es divertido - un juego usando cámara- ) pero ufff las pocas ganas. Ah si, lo del juego, se me va xD que iba a hacer un juego tipo nose, has visto alta tensión? eso sería facilito y me recordó a tu sopa de letras jeje por eso te lo dije.
Por cierto sobre lo de las donaciones yo me apunto a las que sean que soy estudiante sin solvencia económica ( creo que serán 0 xD pero se tenía que intentar ).
fseek(out, 0x88, SEEK_SET);
fwrite(entries, 1, sizeof(DocumentEntry) * n, out);
fwrite(entries, n, sizeof(DocumentEntry), out);
fwrite(entries, sizeof(DocumentEntry), n, out);
NeoRave escribió:Cierto, lo escribí sin pensar. Para mi la forma lógica (no sé si hay una peor o mejor) es:
crackiron escribió:lo del fseek ya se lo que hace, gracias a la magnifica biblioteca de conclase xDD, lo que no entiendo de donde saca los valores escritos en el byte 0x88.
¿son el numero de bytes escritos?
Creo que es lo unico que me falta para que quede como acabada la aplicación..., después de esto no os daré mas el coñazo con esto jejeje, supongo que me pondría con el popstation (haciendo otra rutina dentro del script para crear la iso y seleccionar el nombre del juego automaticamente etc etc...)
PD: Mientras pueda seguiré soñando