• El makeTSX, cuando encuentra una secuencia de pulsos, va realizando intentos de extraerlos como distintos tipos de bloques autoreconociendolos. Para evitar falsos positivos las pruebas se realizan del bloque más concreto al más generico.

    Como es un programa específicamente creado para extraer bloques MSX (4B), la detección de bloques Spectrum es un tanto rudimentaria, por lo que solo detecta bloques 10 (Spectrum estandar).
    Si en una cinta hubiera bloques 11 (Spectrum custom/no estandar) habría que usar makeTSX para extraer la parte MSX y algún otro programa (por ejemplo MAKETZX de Ramsoft) para extraer los bloques 11.
    Posteriormente usar el ZX BlockEditor para juntar ambos ficheros (TSX y TZX) en un solo fichero final TSX.

    Sobre lo que comentas, creo que estamos mezclando dos niveles: el lógico que implica encriptación/compresión y el físico que es más a nivel de pulsos y su distribución.
    Si hay un bloque Spectrum 10/11 eso se podrá extraer sin problema a nivel de pulsos, luego, lo que haga el cargador con esos bits que lee en formato Spectrum ya es cosa suya (desencriptar, etc).

    De todas formas hasta que no pueda dedicarle un rato a mirar el formato de pulsos, todo esto es un poco especular por especular. Esperemos que el formato sea posible describirlo con un bloque 10 u 11 smile
     

  • Hola Natialia,

    Gracias por clarificar.

    Por mi lado sólo aclaro que no creo que esté mezclando los niveles de datos. Para mí está claro que la encriptación a nivel byte es lógica y es completamente manejada por el cargador. Sin embargo, como desconocía el proceso de extracción utilizado por makeTSX, no quedaba muy claro como se obtienen los bloques. Ahora con tu comentario, se entiende que makeTSX analiza los pulsos, lo cual ocurre a un nivel más bajo.

    Para simplificar, ¿se podría decir que el formato TSX es capaz de contener bloques a nivel byte (bloques standard MSX) y en caso de protecciones, también bloques a nivel pulso (por ejemplo, cuando se detectan bloques que son custom/Spectrum)? De otro modo no sería posible para un cargador no standard volver a leer los pulsos originales e interpretarlos según la lógica programada.


     

  • Perdón que me meta, pero por lo que leo lo que hace el formato TSX es muy similar al PZX de Spectrum. Es un formato creado hace algunos años por el autor del emulador ZXDS y justamente hace eso, almacenar los pulsos para ser independiente del cargador usado.

    LINK
     

  • Creo que no me expliqué bien... el formato TSX no es más que el propio formato TZX 1.20 pero con un bloque nuevo (4B) que permite añadir datos en formato KCS (por ejemplo de MSX, SVI-3x8, Dragon, BBC, etc...). Lo hemos renombrado a TSX para diferenciarlo y subido la revisión a la 1.21
    Es simplemente eso, así que tiene todas las funcionalidades de un archivo TZX más la nueva funcionalidad.

    Por tanto permite bloques basados en bytes (10, 11, 4B, ...) y bloques basados en pulsos (12, 13, 15, 18, ...).
    Insisto en que si un cargador custom usa pulsos que pueden ser descritos con bloques de bytes creo que estos son preferibles a usar bloques de pulsos, ya que permite tener un acceso más directo a los datos.

    Sobre el formato PZX, igualmente permite bloques de bytes (DATA) y bloques de pulsos (PULS). Hablando de ello, estoy preparando la definición de un nuevo bloque para PZX (XDAT) que permitiría la inclusión de cualquier tipo de datos/pulsos mientras sigan la técnica de modulación FSK, incluyendo por supuesto bloques estándar Spectrum, Amstrad y KCS, y por tanto datos MSX.

    Por otro lado, ayer estuve mirando el WAV y conseguí extraer parte de los datos:
    - Los dos bloques MSX (cabecera y datos) están pegados sin pausa entre ellos, por lo que el makeTSX no los reconoce bien, he añadido una pausa a mano en el WAV y ahora los extrae perfectamente. Posteriormente elimino la pausa en el TSX con el ZX BlockEditor.
    - Hay 5 bloques más que son reconocibles como bloques Spectrum, 3 de ellos cumplen el formato estandar con el Flag y el CRC correctos, los otros dos no coincide el CRC aunque los he comprobado a mano pulso a pulso (son 6 y 9 bytes solamente) y aún así parecen ser correctos los bytes extraídos.

    A ver si consigo un poco más de tiempo y sigo analizándolo para tener un TSX funcional, de momento ya carga bien el cargador y se ve el contador de tiempo.
     

  • Gracias por la aclaración, Natalia!

    Justamente ayer le comentaba a José Manuel que en principio, el formato TSX no me pareció muy interesante, pero eso fue sólo porque no se entendía que también tendría la capacidad de almacenar pulsos. Ahora la diferencia entre CAS y TSX queda clara en favor de TSX. Espero que el proyecto siga adelante porque es muy bueno. Mucha suerte!
     

  • Hola de nuevo:

    Pues aprovechando que llevaba bastante tiempo sin mover esto aprovecho para comentar varias cosillas...

    La creación de Ficheros TSX sigue y sigue creciendo.... (¡ya vamos por los 342...!):

    LINK

    La incansable e infatigable NataliaPC ha publicado los Fuentes y Binarios de su super MakeTSX aquí:

    LINK

    Así que si alguien quiere echarle un vistazo y enredar con el tema pues ¡bienvenido...! wink

    Y aquí tenéis un articulillo sobre el Tema:

    LINK

    Y pondría otra cosilla más pero creo que todavía NataliaPC no lo ha hecho oficial así que de momento ¡esto es todo! (¡qué no es poco...!)

    Os recordamos que cualquier ayuda/colaboración en este Proyecto será bienvenida. wink

    ¡Gracias & Saludetes! wink
     

  • Hola de nuevo:

    Pues como NataliaPC ya lo ha hecho público, os pongo aquí este enlace con un Super-Tutorial donde explica cómo crear Ficheros TSX:

    LINK

    ¡A disfrutarlo...! wink

    Gracias & Saludetes. wink
     

Moderador (s): homecomputer, Selandari, pastbytes, El Griego, damian.worf, the woz