Nas.
Estoy programando unas funciones para extraer archivos contenidos dentro de un archivo paquete *.PAK. El formato es el mismo ke usan Quake y Half-Life. De momento puedo manipular PAKs sin compresion tanto desde VB como desde el editor ke uso, PAKScape, pero me interesaria poder comprimir los archivos contenidos en los PAKs. Se ke el Quake y el Half-Life pueden leer tanto PAKs comprimidos como sin comprimir. Alguien sabe donde podria encontrar informacion sobre el sistema de compresion de los PAKs?
Gracias.
Salu2...
¿Pero los paks del quake 3 no eran zips renombrados? Xd.
Vamos estoy casi seguro de ello. De hecho si los renombras a .zip los puedes abrir impunemente con el winzip. Es más, tengo por aquí un visor de pantallas del quake que toma los .pak de entrada y usa...
Mirando en la cabecera de los fuentes:Citar
//////////////////////////////////////////////////////////////////////
// Lifted from Titan
// Based on PCDEZIP.
// Heavily mangled by Bart
//
//////////////////////////////////////////////////////////////////////
//
// PCDEZIP.CPP þþ Copyright 1994, Bob Flanders and Michael Holmes
// First Published in PC Magazine January 11, 1994
//
// PCDEZIP decompresses .ZIP files created with PKZIP through
// version 2.04g. PCDEZIP provides syntax and switch compatibilty
// with both Michael Mefford's PCUNZP and Phil Katz's PKUNZIP.
//
//////////////////////////////////////////////////////////////////////
Quake & Quake2 usan PAK, Quake ]|[ utiliza zips renombrados PK3.
Salu2...
Con el tiempo se hicieron más comodones.
Hicieron bien, el PK3 (Zip) se comprime muchisimo mas ke los PAK por lo ke he podido averiguar. Y en principio ni Quake ni Half-Life han usado PAKs comprimidos. Estoy por hacer un arreglillo al codigo ke teno para manipular los PAKs y añadirle unas lineas para ke comprima y descomprima con la ZLib.dll ke la estaba usando en mi proyecto de empaketador con formato personalizado y me dio muy buen resultado (11 mb ke me ocupaba un mod del half-life a 3 mb!!!) Pero usar la ZLib.dll me impide utilizar editores como el PAKScape y derivados <_<
Salu2...
Échale un vistazo al código del quake1 o quake2, a ver si te ayuda...
Saludos.
yo soy un neofito del quake, pero supongo qe llevara alguna compresion sencilla como rle o algo asi, como dicen arriba, lo mejor es echar un vistazo al codigo fuente, qe gracias a dios esta disponible.
En caso de ke no encontrara el sistema de compresion del PAK se me ha ocurrido la idea de diseñar un pekeño programa ke leyera y extrajera todos los archivos del PAK creado con el PAKScape, por ejemplo, y los empaketara de nuevo comprimiendo los archivos con la ZLib.dll. Asi no perderia el formato original del PAK. Y si por el contrario se kiere modificar el contenido del PAK desde un editor como PAKScape pues seria lo mismo pero a la inversa, extraer/descomprimir/empaketar, y listos para modificar. ¿No es mala idea, no?
Salu2...
Saludos
Yo me he hecho mi propio sistema de empaquetacion usando el bzip2 (creo que era asi como se llamaba) que comprime algo mas que el zip normal. Es muy facil ;)
Yo estaba trabajando en mi propio formato de empaketacion, el *.TPK - TLSA PAK, simulando al PAK pero con compresion, pero al final me decante totalmente por el PAK por ke asi dispondria de editores la mar de sencillos y la mar de completos, vamos, ke al fin y al cabo es cuestion de vageria :P un asi seguire trabajando con el TPK, a ver en ke acaba.
Creo ke al final hare lo del pekeño programa ke comprima/descomprima los PAKs y añada las dos opciones al motor: la de lectura con o sin compresion, y ya ta :lol:
Salu2...
Vale, acabo de descubrir ke los PAK del Quake/Half-Life no tienen compresion alguna, el formato PAK ke tiene compresion pertenece a otro juego (cuyo nombre desconozco) asi ke definitivamente me tocara meterle la compresion via ZLib.dll, mejor, asi personalizo de paso un poco el formato de la cabecera y demas para añadirle mas opciones (genial)
Salu2...