Página 1 de 1

Rutina compresora

Publicado: Mar May 26, 2015 1:34 pm
por climacus
Buenas.

Estoy haciendo un jueguecillo en el que el mapa es muy grande. En concreto de unos 10 kb.

Utilizo Exozip para meter distintos mundos comprimidos y me funciona de maravilla. Me los deja en unos 1500 bytes.
Lo que pasa es que durante el juego el mapa de cada mundo cambia y me gustaría poder cambiar de mundos y volver a los anteriores tal y como estaban cuando me fui. Evidentemente, la rutina compresora de exozip no funciona en código máquina del spectrum, por lo que no puedo comprimir el mapa cuando me salgo de él para volver tal y como estaba cuando me fui.

He hecho una rutina compresora que me comprime más o menos en el doble de bytes que Exozip, lo que es bastante si quiero saltar entre 4 o cinco mundos. Tengo unos 6kb para meter mundos comprimidos.

Alguien conoce alguna rutina compresora para el spectrum que tenga un ratio de compresión aceptable?
A poco será mejor que la que he hecho yo.

Gracias y un saludo.

Re: Rutina compresora

Publicado: Mar May 26, 2015 6:19 pm
por zup
¿Cambia mucho? ¿Qué tal si almacenas solo los cambios?

Re: Rutina compresora

Publicado: Mar May 26, 2015 6:41 pm
por climacus
Pues el mapa al principio no cambia mucho, pero a medida que avanza el juego, mucho.
No es mala opción guardar sólo los cambios, pero me temo que después de jugar un rato va a haber demasiados...
Me conformaría con que me lo quedará en un diez por ciento, como Exozip.

Re: Rutina compresora

Publicado: Mié May 27, 2015 12:03 pm
por Metalbrain
¿Exozip? ¿No será exomizer?

Yo te recomendaría que le echases un vistazo a esta implementación de LZ hecha por Battle Bunny. Seguramente comprima menos que exomizer, pero debería bastar:
http://www.users.globalnet.co.uk/~jg27p ... demo-0.zip

Hilo original de dicha rutina aquí:
http://www.worldofspectrum.org/forums/d ... ecoding/p1

Re: Rutina compresora

Publicado: Mié May 27, 2015 1:41 pm
por climacus
Metalbrain escribió:¿Exozip? ¿No será exomizer?

Yo te recomendaría que le echases un vistazo a esta implementación de LZ hecha por Battle Bunny. Seguramente comprima menos que exomizer, pero debería bastar:
http://www.users.globalnet.co.uk/~jg27p ... demo-0.zip

Hilo original de dicha rutina aquí:
http://www.worldofspectrum.org/forums/d ... ecoding/p1
Eso es, exomizer (me lie con los nombres)
Muchas gracias. Lo echaré in vistazo.