snap2transfer, pasando de sna a tap con estilo

Aquí solo proyectos que incluyan el código fuente

Moderador: Fundadores

Reglas del Foro
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
Avatar de Usuario
Zup !Sinclair 1
Aspirante a demonio
Aspirante a demonio
Mensajes: 241
Registrado: 27 Ene 2019, 17:41
Ubicación: Navarra
Been thanked: 14 times

snap2transfer, pasando de sna a tap con estilo

Mensaje por Zup »

Raro que no hubiera promocionado el programa por aquí...

Después de un montón de versiones ya presentadas en otros foros, os presento sna2transtape, un programa que pilla ficheros .sna y escupe ficheros .tap igualicos a los que hacía en tiempos el transtape.

Las características principales:
- Convierte tus sna a ficheros .tap que podrás meter en tu emulador favorito, en un divide o en un ZX Uno sin más problemas.
- Utiliza las cargas de la ROM, compatibilidad 100%.
- Posibilidad de forzar la compatibilidad con un 128k (hasta cierto punto... es casi lo mismo que cargar desde el modo 48k).
- Posibilidad de cargar todo desde BASIC. Esto genera un tap solo compatible con 128k, pero que es muy fácil de pasar a disco o de POKEAR.
- ¡Las mismas rayas que el transtape! ¡100% nostalgia!

Esta maravilla de la técnica la podéis descargar desde mi blog.

Próximas mejoras:
- Reorganizar el código para que a primera vista no parezca una chapuza, pero manteniendo el nivel de cutrez habitual.
- Ampliar el programa para que convierte snapshots de 128k, algo que no hacía el transtape original.
Última edición por Zup el 23 Jul 2020, 17:07, editado 4 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.
Avatar de Usuario
primy
Demonio segundo orden
Demonio segundo orden
Mensajes: 1281
Registrado: 03 Nov 2014, 11:41
Has thanked: 16 times
Been thanked: 6 times
Contactar:

Re: sna2transtape, pasando de sna a tap con estilo

Mensaje por primy »

justo estaba buscando una aplicación que hiciera esto, mil gracias compañero.
Visita nuestra web y descarga nuestra revista gratis

http://www.yoteniaunjuego.com/
Avatar de Usuario
Onlyfordj
Demonio segundo orden
Demonio segundo orden
Mensajes: 1023
Registrado: 30 Dic 2016, 09:28
Ubicación: Valencia
Has thanked: 58 times
Been thanked: 27 times

Re: sna2transtape, pasando de sna a tap con estilo

Mensaje por Onlyfordj »

Flipante!
Avatar de Usuario
Lord Raptor !Commodore Amiga
Demonio tercer orden
Demonio tercer orden
Mensajes: 732
Registrado: 15 Oct 2014, 23:41
Been thanked: 18 times

Re: sna2transtape, pasando de sna a tap con estilo

Mensaje por Lord Raptor »

Eso significa ke akéllos juegos protegidos/cargas turbo raras, al pasarlos a tap ya no
tendrán la protección de carga, verdad?

Y al tap resultante se le podría meter una pantalla de carga, para ke no salga
corrupta como pasaba con el transtape original?
[imagino ke sí, pero lo pregunto por si acaso]
...Por ké kuesta más karo pagarse un entierro ke kobrarse una vida ?!
Miembro activo en la demoscene de Amiga desde 1992
Avatar de Usuario
Zup !Sinclair 1
Aspirante a demonio
Aspirante a demonio
Mensajes: 241
Registrado: 27 Ene 2019, 17:41
Ubicación: Navarra
Been thanked: 14 times

Re: sna2transtape, pasando de sna a tap con estilo

Mensaje por Zup »

Lord Raptor escribió: 08 Jun 2020, 22:52 Eso significa ke akéllos juegos protegidos/cargas turbo raras, al pasarlos a tap ya no
tendrán la protección de carga, verdad?

Y al tap resultante se le podría meter una pantalla de carga, para ke no salga
corrupta como pasaba con el transtape original?
[imagino ke sí, pero lo pregunto por si acaso]
¿Sí, no, a veces?

- Vamos con una de tecnicismos: el transtape (y todos los transfers) graban a cinta una imagen (casi) completa del estado del ZX Spectrum cuando se pulsa el botón, y esto implica no solo grabar los 48k bytes de la memoria sino también todos los registros de la CPU. Como ves, hay más cosas que grabar que las que te caben en la RAM del Spectrum.

- Protecciones: al grabar se usa la rutina de la ROM, por lo que los juegos se quedan en carga estándar. Si el juego estaba totalmente cargado, te has saltado esa parte de la protección. Otros juegos (p.ej.: las Tortugas Ninja), tenían claves para poder jugar: si grabas el snapshot antes de meter la clave, el juego te la pedirá; si lo has grabado después, también te la has saltado.

- Multicarga: El transtape no es adivino y solo copia el estado del Spectrum... si el juego tiene varias cargas, estas quedan fuera de la copia.

- Corrupción de pantalla: Como he dicho antes, además de la RAM del Spectrum hay que copiar el estado de la CPU y además meter una rutina que cargue todo esto. Como no se sabe qué partes de la RAM está usando el juego, casi todos los transfers meten estos datos extra en la memoria de pantalla porque casi nunca se utiliza para ejecutar código (excepción: Skool Daze/Back to Skool durante el arranque). En el caso del transtape, esos son los 75 bytes que carga a partir de 16384, (las rayas) y sin las rayas no sería posible cargar el juego ni restaurarlo para que funcione. Todos los transfers hacen esto con mayor o menor fortuna (p.ej: el Phoenix tiene unas rayas mucho más discretas, el del Disciple se carga media pantalla). NOTA: Algunos interfaces tenían algo de RAM extra y guardaban esos datos ahí... no causaban corrupción pero para cargar el juego tenías que tener ese mismo interface conectado.

- Pantallas de presentación: Algún transfer (specmate) permitía grabar una pantalla de presentación, y al final cargaban la pantalla con rayas para poder iniciar el juego. En el caso del transtape, hay dos opciones: editar el tap para incluir tu pantalla de presentación, pero durante la mayor parte de la carga se quedará en pantalla la de las rayas (el cargador quedaría como 10 LOAD "" SCREEN$: LOAD ""CODE: RANDOMIZE USR 16384 y en la cinta deberías tener un bloque BASIC, tu pantalla, el cargador de 75 bytes y el bloque sin cabecera de 49052 bytes). Otra opción (a costa de que ese juego se pueda cargar solo en máquinas de 128k) sería modificar la rutina de carga desde BASIC (opción -b) para incluir tu propia pantalla y retrasar al máximo el momento en que pones la pantalla "rayada". Ninguna de estas opciones evitará que al arrancar veas rayas en pantalla (y si el juego no actualiza esa parte de la pantalla, durante todo el juego), pero podrás poner la pantalla que quieras mientras carga.

- En emuladores y (a veces) divide/otros dispositivos de almacenamiento: Tanto el PC como el divide tienen posibilidades de cargar snapshots (sna, z80) y usan su propia memoria extra/capacidades para meter todos los datos de la CPU a martillazos sin corromper la pantalla. Cargando este tipo de ficheros, también te cargas las protecciones y nunca tienes rayas en pantalla.

Hay que recordar que este programa es un ejercicio de nostalgia, aunque puede aprovecharse para otros fines. Si tienes un emulador o un dispositivo que te permita cargar ficheros tap instantáneamente (el TZXduino queda fuera del negocio, emula a un cassette), hay mejores formas de hacer lo que te propones que utilizar este programa.

(En otro orden de cosas... tengo ya funcionando una versión del programa que es capaz de convertir snapshots de 128k, pero me falta cazar algún bug)
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
iroal
Le gustan las llamas
Le gustan las llamas
Mensajes: 96
Registrado: 06 Nov 2017, 09:51
Ubicación: Madrid

Re: sna2transtape, pasando de sna a tap con estilo

Mensaje por iroal »

Zup escribió: 09 Jun 2020, 08:35
- Corrupción de pantalla: Como he dicho antes, además de la RAM del Spectrum hay que copiar el estado de la CPU y además meter una rutina que cargue todo esto. Como no se sabe qué partes de la RAM está usando el juego, casi todos los transfers meten estos datos extra en la memoria de pantalla porque casi nunca se utiliza para ejecutar código (excepción: Skool Daze/Back to Skool durante el arranque). En el caso del transtape, esos son los 75 bytes que carga a partir de 16384, (las rayas) y sin las rayas no sería posible cargar el juego ni restaurarlo para que funcione. Todos los transfers hacen esto con mayor o menor fortuna (p.ej: el Phoenix tiene unas rayas mucho más discretas, el del Disciple se carga media pantalla). NOTA: Algunos interfaces tenían algo de RAM extra y guardaban esos datos ahí... no causaban corrupción pero para cargar el juego tenías que tener ese mismo interface conectado.
Mas de 30 años después, me acabo de enterar porque al cuando cargaba muchos de los juegos piratas me salían esas rayas en la parte superior de la Tv.

Excelente explicación.

Un saludo.
En 8 Bits.
Avatar de Usuario
Zup !Sinclair 1
Aspirante a demonio
Aspirante a demonio
Mensajes: 241
Registrado: 27 Ene 2019, 17:41
Ubicación: Navarra
Been thanked: 14 times

Re: sna2transtape, pasando de sna a tap con estilo

Mensaje por Zup »

Dos noticias:
- He subido una versión de sna2transtape que convierte también .sna de 128k. Falta pulir detalles, pero es funcional.
- He creado una entrada en mi blog hablando un poco de los diferentes transfers, con fotos de sus rayas.
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
alvaroalea España - Asturias
Demonio segundo orden
Demonio segundo orden
Mensajes: 1091
Registrado: 25 Oct 2014, 12:49
Ubicación: Asturias, Paraiso Natural
Has thanked: 13 times
Been thanked: 52 times
Contactar:

Re: sna2transtape, pasando de sna a tap con estilo

Mensaje por alvaroalea »

Muy Interesante la entrada del Blog!
Te falto el interface 007 que se clono por aqui hace unos años... (y que yo tengo uno, y aun no he probado si funciona o no... en fin...)
Avatar de Usuario
Zup !Sinclair 1
Aspirante a demonio
Aspirante a demonio
Mensajes: 241
Registrado: 27 Ene 2019, 17:41
Ubicación: Navarra
Been thanked: 14 times

Re: sna2transtape, pasando de sna a tap con estilo

Mensaje por Zup »

Es un poco complicado... revisando un poco, faltan al menos el RAMJet (en cualquiera de sus versiones), el 007 y el de HILOW.

El problema es que muy pocos de estos cacharros están emulados, por lo que no puedo generar cintas para ver cómo cargan. De hecho, solo están emulados Disciple, Multifaces y Specmate (este estaba emulado en el Real Spectrum). Los pantallazos que he sacado son de ficheros .tap que recogí en su día de internet (supongo que cuando cosas como el Alkatraz no estaban emuladas, hubo gente que subió sus copias "desprotegidas" a internet).

Del interface de HILOW tengo muestras gracias a MicroHobby :)) , pero del resto necesitaría tener un par de muestras para investigarlos. He investigado las ROMs del RAMJet y del 007, pero no he encontrado las rutinas de grabación ni carga. si tuviera una pista de qué estructura siguen al grabar podría intentar encontrar entre mis juegos alguno que cuadre e incluirlos en mi entrada.

EDITO: Ya he encontrado el problema de las ROMs del RAMJet, tienen un bit cruzado. Ahora sé lo que hay que buscar (bloque BASIC, SCREEN$ y dos bloques sin cabecera de 25856 y 16384 bytes)... pero ahora mismo no encuentro una cinta con estas características :?

EDITO 2: He encontrado en mi colección una muestra del RAMJet (una copia de welltris), pero en esta copia en concreto es muy difícil distinguir la corrupción (aparentemente son dos lineas arriba y dos abajo... ¿es este un primo hermano del Dinamid 3?). Ahora bien, el 007 y el de HILOW (¿barbanegra?) me tienen mosqueado... en el caso del 007, parece como si la ROM tuviera algún bit cruzado o estuviera cifrada. En el caso del HILOW, quiero echar una ojeada a la ROM para ver si todo me cuadra pero no encuentro ninguna copia para descargar (salvo un enlace muerto a rapidshare). ¿Alguien puede arrojar algo de luz?
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
alvaroalea España - Asturias
Demonio segundo orden
Demonio segundo orden
Mensajes: 1091
Registrado: 25 Oct 2014, 12:49
Ubicación: Asturias, Paraiso Natural
Has thanked: 13 times
Been thanked: 52 times
Contactar:

Re: sna2transtape, pasando de sna a tap con estilo

Mensaje por alvaroalea »

Zup escribió: 10 Jun 2020, 22:29 EDITO 2: He encontrado en mi colección una muestra del RAMJet (una copia de welltris), pero en esta copia en concreto es muy difícil distinguir la corrupción (aparentemente son dos lineas arriba y dos abajo... ¿es este un primo hermano del Dinamid 3?). Ahora bien, el 007 y el de HILOW (¿barbanegra?) me tienen mosqueado... en el caso del 007, parece como si la ROM tuviera algún bit cruzado o estuviera cifrada. En el caso del HILOW, quiero echar una ojeada a la ROM para ver si todo me cuadra pero no encuentro ninguna copia para descargar (salvo un enlace muerto a rapidshare). ¿Alguien puede arrojar algo de luz?
Creo que no, al menos la 007 no tiene bits cruzados, ni lineas de dirección tampoco.
Aqui tienes el esquema de la 007:
https://github.com/alvaroalea/Interface ... 07_R00.pdf
Juraria que en su momento encontre 3 roms para este interfaz, aunque realmente solo funcionaban dos, pero ahora no se donde las meti...
Responder

Volver a “Proyectos de software abiertos”