COMPRESOR ZX7

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Responder
Avatar de Usuario
JBGV
Manic Miner
Mensajes: 279
Registrado: Vie Feb 11, 2011 9:16 am

COMPRESOR ZX7

Mensaje por JBGV » Dom Ene 12, 2014 11:22 pm

Hola a todos,

Aquí sigo dando la brasa con alguna duda, :oops: . Ando liado con las formas de comprimir y descomprimir datos.
Entre los distintos métodos y rutinas me he encontrado con el ZX7, que tiene muy buena pinta:

http://www.worldofspectrum.org/forums/showthread.php?t=42037

http://www.worldofspectrum.org/infoseekid.cgi?id=0027996

Descomprimir los datos parece muy fácil, pero no sé cómo comprimirlos.

Viene un programa compresor que ejecutaría en una ventana DOS, según las instruciones:

"To compress a file, use the command-line compressor as follows:

zx7 Cobra.scr

This will generate a compressed file called "Cobra.scr.zx7"."


Pero no sé cómo debo aportar los datos, es decir, ¿cómo hago para comprimir, por ejemplo, un sólo gráfico que tengo definido con DEFB?

Código: Seleccionar todo

;VALLA 4X2
DEFB  4,2, 239,64,0,247,239,97,4,231,0,97,166,0,247,105,182,254,205,255,255,223,223,237,182,173,222,109,182,
86,0,109,190,0,247,109,178,239,247,109,186,237,239,109,190,207,239,109,182,0,0,109,182,254,255,255,255,253,
191,237,182,235,222,96,0,215,  70,66,66,6,70,2,3,6


¡ Muchas gracias !

Avatar de Usuario
antoniovillena
Nonamed
Mensajes: 1164
Registrado: Dom Ene 09, 2011 8:55 am

Re: COMPRESOR ZX7

Mensaje por antoniovillena » Lun Ene 13, 2014 3:39 pm

El compresor funciona con binarios, no entiende de datos en ASCII. Lo que tendrías que hacer es ensamblar dichos datos: copias y pegas en un fichero .asm aparte sólo los datos, ensamblas sólo ese archivo .asm y comprimes con zx7 el binario resultante de dicho ensamblado.
Imagen

zup
Freddy Hardest
Mensajes: 666
Registrado: Vie Ago 15, 2008 2:43 pm

Re: COMPRESOR ZX7

Mensaje por zup » Lun Ene 13, 2014 5:28 pm

Creo que además te irá mejor si en vez de comprimir gráfico a gráfico, comprimes varios gráficos a la vez (por ejemplo, todas las fases de animación de un sprite, o todos los datos de un nivel).

Personalmente siempre he visto los compresores como un método para que los datos ocupen menos en cinta o disco, no para usarlo continuamente en un programa (pero yo no soy programador). Creo que es buena idea usarlo para tener los mapas y tiles de un nivel comprimidos (y descomprimir antes de empezar el nivel) y que cuantas más cosas tengas de golpe, mejor. Tener muchos microbloques comprimidos no creo que te beneficie.

En otro orden de cosas, el Avast! me tiene amargao... no hace más que chillar una semana sí y otra no que el zx7.exe es sospechoso. No sé si será por cómo está compilado o qué, pero me tiene frito.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start...

Avatar de Usuario
antoniovillena
Nonamed
Mensajes: 1164
Registrado: Dom Ene 09, 2011 8:55 am

Re: COMPRESOR ZX7

Mensaje por antoniovillena » Lun Ene 13, 2014 5:44 pm

Prueba a compilarlo por tu cuenta,a lo mejor es cosa del compilador
Imagen

Avatar de Usuario
JBGV
Manic Miner
Mensajes: 279
Registrado: Vie Feb 11, 2011 9:16 am

Re: COMPRESOR ZX7

Mensaje por JBGV » Lun Ene 13, 2014 10:10 pm

¡Muchas gracias !, voy a probar y os cuento :D .

De momento estoy haciendo pruebas para ver como puedo utilizarlo. En un principio si pensaba hacer un montón de microbloques :oops: , me imagino que dependerá del tipo de juego y de la manera de hacer los mapas. Bueno, de momento me conformaré con conseguir comprimir y descomprimir un gráfico. :lol:

Avatar de Usuario
antoniovillena
Nonamed
Mensajes: 1164
Registrado: Dom Ene 09, 2011 8:55 am

Re: COMPRESOR ZX7

Mensaje por antoniovillena » Lun Ene 13, 2014 10:38 pm

Hay está el quid de la cuestión, que en un juego lo que te interesa es gastar el mínimo posible de RAM, o sea que al final tienes que sumar el tamaño comprimido más el descomprimido y es totalmente inviable comprimir bloques grandes. Es lo que dice zup, te vale para comprimir los datos de un nivel, deben ser por tanto gráficos que no necesites usar continuamente en el juego. Donde sí viene bien usar compresión es en el mapa del juego, para ello hice un compresor específico que ofrece mejor compresión (me basé en el mismo zx7), aquí tienes el hilo por si te interesa:

http://www.mojontwins.com/mojoniaplus/v ... f=9&t=1356
Imagen

Avatar de Usuario
JBGV
Manic Miner
Mensajes: 279
Registrado: Vie Feb 11, 2011 9:16 am

Re: COMPRESOR ZX7

Mensaje por JBGV » Lun Ene 13, 2014 11:01 pm

Ok, Gracias !

Tengo que mirar ese foro !

De momento con tu indicación ya he conseguido comprimir/descomprimir :D , veo que gráficos de 150 bytes pasan a ser de 130 (mas o menos), y como decía Zup, cuanto mas grande mejor comprime, con gráficos pequeños es mejor no usarlo.

Probaré a comprimir el mapa con la versión que comentas.

Muchas gracias :D

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 7 invitados