Consulta sobre formato TZX y su soporte en Divide/DivMMC y Dandanator

Moderador: Fundadores

Responder
Avatar de Usuario
djbyte1977
Seguidor infernal
Seguidor infernal
Mensajes: 19
Registrado: 13 Abr 2021, 22:20

Consulta sobre formato TZX y su soporte en Divide/DivMMC y Dandanator

Mensaje por djbyte1977 »

Hola, estoy viendo y comparando el funcionamiento de los distintos interfaces y veo que el formato TZX, que se utiliza muchísimo a nivel de emuladores, resulta que no tiene soporte en ningún dispositivo dedicado a cargar juegos sobre hardware real.

Seguramente será un tema más que trillado pero yo no tengo ni idea y me gustaría entenderlo. Según leo el TZX permite cargar la práctica totalidad de juegos en cinta, mientras que el TAP es parecido en cuanto a formato pero con más limitaciones. He probado alguno de los conversores TZX-> TAP y en todas o casi todas las pruebas sacan avisos de que igual se pierde info...

¡Muchas gracias!
Avatar de Usuario
Spirax !Sinclair 1
Demonio tercer orden
Demonio tercer orden
Mensajes: 715
Registrado: 09 Oct 2017, 17:03
Ubicación: Leganes (Madrid)
Has thanked: 24 times
Been thanked: 46 times

Re: Consulta sobre formato TZX y su soporte en Divide/DivMMC y Dandanator

Mensaje por Spirax »

el tzx contiene toda la informacion del sonido de la cinta.
por ejemplo un juego protegido con turbo, el bloque turbo en el tzx contiene valores de velocidad, numero de pulsos en la cabecera, etc.
eso quiere decir que al reproducir el fichero tzx se reproduce el sonido tal y como estaba grabado en la cinta original.
el fichero tap solo contiene la informacion del bloque respecto al tamaño y direccion de carga pero usa la rutina standard de la rom para cargarse.
los dispositivos de carga tipo divide/divmmc/dandanator
lo que hacen es capturar la llamada a la rutna de carga de la rom y cuando la detectan cargan el bloque del fichero tap tal cual.

Un emulador puede cargar de una cinta real de audio a traves de la entrada mic del PC, asi que la mayoria de emuladores lo que hacen en reproducir el tzx internamente para que el emulador cargue del sonido, pero claro aceleran la ejecucion del emulador mientras carga para que tarde menos.
Dependiendo del emulador puede cargar muy rapido (por ejemplo espectaculator acelera hasta x20) o puede que lo cargue a velocidad normal :)

la carga del tap es practicamente instantanea por que el emulador simplemente copia el bloque del tap en la memoria, pero el tzx tiene que reproducirlo para ser fiel al sonido que hay grabado en el.
tambien puedes tener un tzx en el que los bloques sean a velocidad estandard de la rom.
al convertir un fichero tzx con bloques estandard, se pierde todo lo relativo a las especificaciones de velocidad etc, que el tap no utilza, pero funcionara perfectamente ya que eran bloques estandard.
pero si intentas convertir un tzx con bloques turbo a tab NO FUNCIOANARA al perder todo lo relativo a pulsos, velocidad etc.
Al cargar el programa basic de este tap, este ira a buscar la rutina de carga turbo que ha cargado y dicha rutina NO es interceptada por los divide/divmmc/dandanator etc
asi que aunque tengas el tap en el divide el spectrum se quedara ejecutando la rutina de carga turbo esperando a que le llegue el audio de la cinta.

Saludos
Avatar de Usuario
elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1825
Registrado: 01 Abr 2013, 22:00
Been thanked: 25 times

Re: Consulta sobre formato TZX y su soporte en Divide/DivMMC y Dandanator

Mensaje por elfoscuro »

Hay una cosa llamada TZXduino. Busca info, a ver si te vale.

Imagino que el divide y compañía llevan un micro muy antigüo y de poca capacidad, por lo que se queda en los Z80 y TAP, porque son lo fácil, copiar y pegar. Pero hoy día hay cosas como arduino, raspberry, etc., que ya tienen una potencia bastante superior, que si permite reproducir (a 1x de velocidad, claro, no se puede acelerar la máquina original) TZX.

Lo que ganas en fidelidad, lo pierdes en tiempos de carga. Es lo que hay en hardware real.

Un saludo.
Fin de impresión
Avatar de Usuario
mad3001 !Atari
Demonio segundo orden
Demonio segundo orden
Mensajes: 1921
Registrado: 25 Nov 2015, 00:15
Ubicación: Mostoles(Madrid)
Has thanked: 81 times
Been thanked: 113 times

Re: Consulta sobre formato TZX y su soporte en Divide/DivMMC y Dandanator

Mensaje por mad3001 »

Tienes distintos dispositivos y capacidades dispares tanto para TZX como TAP.... como te dicen en formato TZX si se usa la ROM normal del spectrum (nada de cargas especiales ni turbo) podrás usar la herramienta esa de convertir a TAP, pero yo diría que el 95% de lo que encuentres en TZX tiene cargas específicas...
Los TAP puedes reproducirlo, al igual que los TZX con hardware como el TZXDuino, el Megaduino y otros "duinos" variados..... también tienes dispositivos que permiten la carga rápida de TAPs, Dandanator, Dandanator+Multiply, Divide y otros....con esos en pocos segundos tienes el juego funcionando. En el caso del dandanator tienes el modo TAP nativo que hace la carga "a toda velocidad" incluso de juegos multicarga...
Volviendo a los origenes... programa en assembler
Avatar de Usuario
djbyte1977
Seguidor infernal
Seguidor infernal
Mensajes: 19
Registrado: 13 Abr 2021, 22:20

Re: Consulta sobre formato TZX y su soporte en Divide/DivMMC y Dandanator

Mensaje por djbyte1977 »

Spirax escribió: 05 May 2021, 17:31 el tzx contiene toda la informacion del sonido de la cinta.
por ejemplo un juego protegido con turbo, el bloque turbo en el tzx contiene valores de velocidad, numero de pulsos en la cabecera, etc.
eso quiere decir que al reproducir el fichero tzx se reproduce el sonido tal y como estaba grabado en la cinta original.
el fichero tap solo contiene la informacion del bloque respecto al tamaño y direccion de carga pero usa la rutina standard de la rom para cargarse.
los dispositivos de carga tipo divide/divmmc/dandanator
lo que hacen es capturar la llamada a la rutna de carga de la rom y cuando la detectan cargan el bloque del fichero tap tal cual.

Un emulador puede cargar de una cinta real de audio a traves de la entrada mic del PC, asi que la mayoria de emuladores lo que hacen en reproducir el tzx internamente para que el emulador cargue del sonido, pero claro aceleran la ejecucion del emulador mientras carga para que tarde menos.
Dependiendo del emulador puede cargar muy rapido (por ejemplo espectaculator acelera hasta x20) o puede que lo cargue a velocidad normal :)

la carga del tap es practicamente instantanea por que el emulador simplemente copia el bloque del tap en la memoria, pero el tzx tiene que reproducirlo para ser fiel al sonido que hay grabado en el.
tambien puedes tener un tzx en el que los bloques sean a velocidad estandard de la rom.
al convertir un fichero tzx con bloques estandard, se pierde todo lo relativo a las especificaciones de velocidad etc, que el tap no utilza, pero funcionara perfectamente ya que eran bloques estandard.
pero si intentas convertir un tzx con bloques turbo a tab NO FUNCIOANARA al perder todo lo relativo a pulsos, velocidad etc.
Al cargar el programa basic de este tap, este ira a buscar la rutina de carga turbo que ha cargado y dicha rutina NO es interceptada por los divide/divmmc/dandanator etc
asi que aunque tengas el tap en el divide el spectrum se quedara ejecutando la rutina de carga turbo esperando a que le llegue el audio de la cinta.

Saludos
¡Muchas gracias! Esta es la explicación que necesitaba. Al tener rutinas propias de carga la intercepción de la llamada a la rutina estándar de carga no sirve de nada, por tanto para poder cargar un juego turbo de forma rápida tendrías que tener una especie de biblioteca de rutinas de carga, detectar la utilizada por el juego y implementar una traducción específica de los datos del sonido, casi nada.

Por tanto para cargar estos juegos en el formato original las soluciones más sencillas son recurrir a un dispositivo físico que genere el sonido, tipo TZXDuino o adaptador de cassette "de los chinos" para el +2, o bien recurrir a un emulador, cargar el juego y generar un snapshot.
Responder

Volver a “Sinclair”