snap2tranfer – Programas para generar cintas al estilo transfer

¿Qué hacen?

Estos programas de línea de comando generan ficheros .tap (cinta de ZX Spectrum) a partir de ficheros de snapshot de emuladores. El fichero .tap tiene las mismas características que los grabados con ciertos transfers (estructura de bloques, corrupción de pantalla y demás).

Por el momento se han creado:

  • sp2transtape: Convierte .sp (emulador de Pedro Gimeno) al estilo transtape.
  • sna2transtape: Convierte .sna al estilo transtape.
  • sna2phoenix: Convierte .sna al estilo Phoenix.
  • sna2zx7: Convierte .sna a cintas comprimidas con zx7. En este caso, la rutina de arranque se ha tomado prestada del Phoenix.

¿Cómo se usan?

Estos programas se han de usar desde la línea de comandos. El formato general sería el siguiente (no todas las opciones están disponibles en todos los programas).

sna2transtape [-h] [-f] [-b] [-t] [-s] [-v] [-n] fichero(s)

El programa convertirá los ficheros de formato .sna a formato .tap. Los ficheros llevarán el mismo nombre, pero con la extensión cambiada.

Los switches tienen las siguientes funciones:

  • -h: Muestra la ayuda del programa.
  • -f: Fuerza el modo 48k al cargar. Esto permite que algunos snapshots (p.ej.: Jet Pac) puedan ser cargados sin problemas desde la opción Cargador de los 128k.
  • -b: Carga todos los bloques desde BASIC. El fichero .tap generado solo funcionará en máquinas 128k, y permitirá que el programa resultante pueda ser traspasado fácilmente a disco para +3. Al usar este switch, no se sigue la estructura habitual del transfer (aunque sí que se mantiene la corrupción de pantalla).
  • -t: Al convertir ficheros se copia toda la RAM a cinta. Esto afecta al Phoenix (en modo 48k) y a todas las conversiones de 128k. Si no se especifica, el programa “recortará” o comprimirá datos para ocupar menos espacio (y ahorrar tiempo de carga).
  • -s: Modo estricto: Genera un fichero .tap exactamente igual al que haría el transfer. Esta opción deshabilita -b y -f y no deja convertir snapshots de 128k. En el caso del Phoenix, se utilizará el cargador original de Ábaco y desactiva también el switch -n (la ventaja es que algunas utilidades reconocerán estas cintas como Phoenix, la desventaja es que este cargador no funciona en todos los dispositivos).
  • -v: Muestra información acerca del snapshot y de lo que va haciendo el programa. Esta opción es más para depuración que otra cosa… a veces muestra demasiada información.
  • -n: Pide el nombre que aparecerá al hacer LOAD “”. Si no se le indica otra cosa, el nombre serán “Loader”, “Loader48”, “BASIC” o “BASIC48” (según se usen las opciones -b y -f).

Limitaciones:

El programa tiene las siguientes limitaciones:

  • El switch -f funciona bloqueando la paginación en las máquinas de 128k. Esto hace que algunos programas que habitualmente tienen que ser cargados en modo 48k puedan cargarse desde cualquier modo. Otros programas con otros problemas de compatibilidad (vectores de interrupción, uso del puerto $ff) seguirán sin funcionar. En estos casos, habrá que conseguir una versión compatible o poner los POKEs correspondientes para que funcionen.
  • Algunos ficheros .sna de 128k son de clones rusos con TR-DOS. Aunque se detecta (y se informa) de los que tengan TR-DOS activado, hay otros que sencillamente no funcionarán (por ejemplo, Doom Mania).
  • El juego de caracteres del Spectrum es ligeramente diferente al ASCII. Por ello, al usar la opción -n solo se admitirán letras mayúsculas, minúsculas, números y el espacio.

Pantallas de muestra:

Pantalla de carga y durante el juego de Jet Pac Advanced. En la pantalla de carga se ve la corrupción producida por el transtape, pero en el juego no se vuelve a ver.

Pantalla de carga y durante el juego del Teenage Mutant Hero Turtles (Probe) usando transtape. La corrupción se puede ver tanto en la pantalla de carga como durante el juego porque este juego nunca borra el marco de la pantalla.

Pantalla de carga y durante el juego del Spy vs Spy usando Phoenix. La corrupción se ve tanto en la carga como en el juego, pero en este caso es algo más discreta.

Descargas:

Historial y código fuente:

Estos enlaces solo contienen el código fuente. Para crear el proyecto he utilizado Code::Blocks, y el código es GCC-friendly, pero debería poder compilarse en casi cualquier compilador C.

  • v1.28: Se añaden sna2phoenix, sna2zx7 y sp2transtape.
  • v1.24: Se añade compresión RLE a los snapshots de 128k.
  • v1.20: Los ficheros de 128k se recortan por defecto.
  • v1.02: Se añade la posibilidad de convertir snapshots de 128k.
  • v0.48: Se reorganiza todo el código para mayor legibilidad. Última versión exclusiva de 48k.
  • v0.43: Se añade el switch -n y se hacen algunos cambios cosméticos.
  • v0.40: Se añade el switch -b y se corrige algún error más.
  • v0.30: Se corrigen varios errores con las interrupciones y el registro R
  • v0.20: Se procesa la línea de comandos, el programa ya es capaz de informar de los errores (en vez de ignorarlos). Se añaden los switches -h, -v y -f.
  • v0.01: Prueba de concepto. No hay switches, no se procesa la línea de comandos. Solo convierte un fichero y punto.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s