snap2transfer - Convirtiendo snapshots a cintas

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2884
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 55 veces
Gracias recibidas: 239 veces
Contactar:

snap2transfer - Convirtiendo snapshots a cintas

Mensajepor zup » 15 Dic 2018, 10:30

Hace un tiempo empecé a desarrollar este proyecto, que viene a ser un programa que convierte fichero .sna en ficheros .tap con la misma estructura (y corrupción de pantalla) que aparecerían si se usara un transfer real (de momento imita a Transtape y Phoenix).

La verdad es que no sé por qué no lo publicité aquí, pero me a venido a la cabeza después de leer otro hilo. El caso es que podéis descargar la aplicación, el código fuente, algunos ejemplos y toda la información desde mi blog.
Última edición por zup el 23 Jul 2020, 17:06, editado 5 veces en total.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
iturbez
Commodore 128
Commodore 128
Mensajes: 104
Registrado: 08 Ago 2013, 21:26
Sistema Favorito: ZX81
primer_sistema: ZX81
consola_favorita: TV Games/Pong Clone
Primera consola: TV Games/Pong Clone
Gracias dadas: 13 veces
Gracias recibidas: 8 veces

Re: sna2transtape - Convirtiendo snapshots a cintas

Mensajepor iturbez » 15 Dic 2018, 15:02

Muy interesante.
Gracias, zup.

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2884
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 55 veces
Gracias recibidas: 239 veces
Contactar:

Re: sna2transtape - Convirtiendo snapshots a cintas

Mensajepor zup » 07 Jun 2020, 18:43

Actualizo el programa a la versión 0.47.

Nuevas características:
- Nueva opción sin sentido: -s garantiza que el tap sea 100% exacto a lo que haría el transtape. Es exactamente igual a no incluir las opciones -b y -f... de hecho, al incluir -s se deshabilitan estas dos opciones.
- El código fuente ya no escupe warnings al ser compilado.
- Me he cepillado un bug futuro.

Lo que me queda por hacer:
- Pulir un poquito más el código para que no parezca chapucero a simple vista, pero siga manteniendo las mismas chapuzas de fondo.
- Intentar ampliarlo a 128k (algo que no hacía el transtape).
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2884
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 55 veces
Gracias recibidas: 239 veces
Contactar:

Re: sna2transtape - Convirtiendo snapshots a cintas

Mensajepor zup » 15 Jun 2020, 08:07

He ido actualizando tan rápido que ni he puesto los mensajes... ahora el programa va por la versión 1.20.

Las dos grandes novedades son:
- Ya convierte ficheros de 128k.
- En los ficheros de 128k, se detecta el primer y último byte usado de cada página para reducir el tamaño de los tap (y tiempo de carga). Se ha añadido el switch -t para desactivar este comportamiento (y crear copias que cargan explícitamente toda la memoria).

Este "recorte" ha traído a la luz un pequeño detalle de los Spectrum 128k... no inicializan toda la RAM a 0. O más bien la inicializan, pero luego la usan. En toda la gama de 128k siempre se usa de la página 7, por lo que el snapshot siempre tiene bytes usados en la RAM 7. En el caso de los +2A y +3 el uso de la RAM 7 se amplía y además se usan las RAM 1, 3, 4 y 6 para el RAMDisk.

¿Resultado? Un Snapshot de Fairlight sacado en un +2 tarda en cargar 8m 06s, mientras que el mismo snapshot sacado en un +3 se va a los 12m 19s (más o menos lo que tardaría en cargar una copia completa de la RAM). Por contra, un snapshot sacado de una máquina en la que previamente se ha puesto a cero (casi) toda la RAM tarda 7m 45s.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2884
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 55 veces
Gracias recibidas: 239 veces
Contactar:

Re: sna2transtape - Convirtiendo snapshots a cintas

Mensajepor zup » 27 Jun 2020, 20:03

Vale, creo que esta va a ser una de las últimas actualizaciones al programa. Las novedades son:
- Bugfix para las versiones 1.02 y 1.20... no las había testeado lo suficiente. Se habían escapado un bug que causaba que los ficheros de 128k solo se convirtieran al utilizar -v, y otro que hacía que las cargas tuvieran una alta probabilidad de fallar en +2A/+3.
- Nueva versión 1.24. En esta versión se ha añadido un algoritmo de compresión RLE, lo que acorta tiempos de carga (no es demasiado espectacular, pero resuelve los tiempos de carga con snapshots de +3). Esto está controlado con el switch -t. Si lo ponemos, se hace un fichero .tap XXL con toda la memoria; si no lo ponemos el programa aplicará los algoritmos de recorte y compresión.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2884
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 55 veces
Gracias recibidas: 239 veces
Contactar:

Re: snap2transtape - Convirtiendo snapshots a cintas

Mensajepor zup » 23 Jul 2020, 16:42

Creo que ya este programa ya está terminado (salvo informes de bugs), así que he subido la versión 1.28. Las novedades son:
- Se sustituye la compresión RLE de 16 bits por RLE de 8 bits. Los ficheros se comprimen algo menos, pero la rutina es mucho más clara.
- Se añade sna2phoenix, el equivalente usando el formato del Phoenix (corrupción de pantalla más discreta).
- Se añade sp2transtape, homenaje al emulador de Pedro Gimeno.
- Se añade sna2zx7, que utiliza la rutina de arranque de Phoenix (misma corrupción) pero comprime casi toda la RAM usando el algoritmo zx7.
- Se han vuelto a "barajar" las funciones y repartirlas de una manera más racional (¿seguro?) en los ficheros .h para evitar duplicidades de código.

Dos cosas a destacar:
- El cargador original del Phoenix no creo que sea 100% compatible con todos los dispositivos (especialmente con el DivIDE), así que se usa un cargador alternativo y compatible. Si se usa sna2phoenix con el switch -s, se generará un .tap idéntico al de Phoenix... incluyendo el problemático cargador original.
- Mientras programaba sna2zx7 tuve que consultar con su autor acerca de un comportamiento no esperado. Si comprime datos "revueltos", la compresión es muy rápida; si comprime datos con muchas repeticiones (por ejemplo, esas páginas llenas de 0xE5 del +3), la compresión es asquerosamente lenta. Al parecer, es un comportamiento normal... menos mal que los tap se generan solo una vez.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados