Archivo de la categoría: Juegos

sna2transtape – Un programa para generar cintas de transtape

¿Qué hace?

Este programa de línea de comando genera un fichero .tap a partir de un fichero .sna. El fichero .tap tiene las mismas características que los grabados con un transtape auténtico (estructura de bloques, corrupción de pantalla y demás).

¿Cómo se usa?

sna2transtape [-h] [-f] [-b] [-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 transtape (aunque sí que se mantiene la corrupción de pantalla).
  • -v: Muestra información acerca del snapshot y de lo que va haciendo el programa.
  • -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.
  • 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). 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.

Descargas:

Historial y código fuente:

Estos enlaces solo contienen el código fuente. Para crear el proyecto he utilizado Code::Blocks, aunque debería funcionar en cualquier compilador C.

  • 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.

Bailando con lobas (y así acaba el culebrón)

Acaba de llegarme desde Hong Kong el adaptador de mandos de Playstation 2 a USB que había pedido. Tiene buena pinta, y funciona correctamente (en vez de ser un joystick de 6 ejes y 12 botones, ha pasado a ser uno de 4 ejes y 16 botones). En fin, que para jugar al Stepmania, las soluciones menos traumáticas son:

Ahora que ya puede usar la alfombrilla sin cruzarla, a ver si iLuN deja de protestarme que se va a matar con ella.

NOTA: El hardware que está usando es el adaptador de EMS (identificación USB 0B43:0003) y una alfombrilla comprada de oferta en el Game.

OTRA NOTA: El adaptador es la leche. No sólo funcionan pads, alfombrillas y volantes, sino que encima te deja mapear los botones del joystick a teclas del teclado. Con este puedes controlar cualquier programa con el pad de play (algo que eché muchísimo de menos cuando jugaba al Maple Story… poder controlarlo con un pad).

Tanz der Vampire (lo mismo, pero en Linux)

Durante las pruebas de Stepmania, lo tuve que instalar en Linux para comprobar si el problema del adaptador (no se puede usar arriba/abajo a la vez) eran los drivers de Windows o el adaptador en sí. Tanto el binario como el código fuente de Stepmania se pueden descargar desde la página del juego (ver enlaces en el artículo anterior), pero ponerlo en marcha en Linux puede no ser tan sencillo como parece.

Para instalarlo, sólo hay que bajar el binario y descomprimirlo en alguna parte:

  • tar -zxvf StepMania-3.9a-linux.tar.gz

Cuando quise ponerlo en marcha, Stepmania me dió tres problemas:

  • Stepmania requiere soporte de Direct Rendering. En mi caso, lo probé en un portátil con tarjeta gráfica i815. Esta tarjeta sólo usa Direct Rendering en los modos de video de 16 bits. En el caso de usuarios de ATI y nVidia, quizás sea necesario descargar los drivers oficiales (aunque probablemente los drivers open source también soporten Direct Rendering). Se puede comprobar si está activado mirando la salida del comando glxinfo.
  • El problema de los ejes. Este problema sólo se produce con adaptadores de consola a PC, y las soluciones se discutieron en el post anterior. Lo único destacable es que existe una solución única para Linux, que es parchear el driver de joystick del núcleo.
  • Stepmania se lleva a patadas con KDE. Bueno, el problema no es de KDE, sino de las tarjetas de sonido. En mi caso, la tarjeta de sonido no tiene soporte para varios canales por hardware. ¿Cuál es el problema? Que dos procesos no pueden acceder al sonido a la vez. En el caso de KDE, KDE arranca el demonio artsd para proveer de sonido a sus aplicaciones, lo que impide que otras aplicaciones no integradas en KDE (Stepmania, claro) puedan sacar sonido. Para este problema hay tres soluciones: “tocar” el fichero Stepmania.ini y cambiar el driver de sonido, matar arts antes de jugar o ejecutar Stepmania mediante artsdsp (artsdsp ./Stepmania). El programa artsdsp es una especie de entorno que deja usar a los programas los dispositivos /etc/dsp. Esta es la solución que me ha funcionado a mí.

Todo está perfectamente documentado en inglés en los siguientes documentos:

  • Hacks para pads en Linux: Aquí están algunas modificaciones que pueden hacerse para que cualquier adaptador funcione correctamente en Linux.
  • FAQ de Stepmania para Linux: Soluciones a los problemas más frecuentes (como el mencionado problema de KDE).
  • Pad de baile USB: Gracias a yS, del foro de Meristation, por indicarme un pad de baile que funciona conectado directamente al USB, sin adaptadores ni nada. Usar pads USB te quita muchos problemas… para empezar el de los ejes.

NOTA: El problema de Stepmania con KDE viene derivado de la tarjeta de sonido, que es cutre a rabiar. Una tarjeta con varios canales por hardware (Una SB Live!, por ejemplo) debería funcionar sin problemas. Más que nada lo menciono porque al parecer hay fanáticos de Gnome que están a la que saltan…

El baile de los Vampiros (Stepmania y compañía)

Estaba cantado: no se puede ir a la Euskal Party (aunque sólo sea de observador) y seguir igual. ¿Las consecuencias? Pues que le compré a la novia un pad de baile y llevamos un par de semanas dándole al Stepmania… aunque con varios problemas.

¿Qué es el Stepmania? Pues es un clón para PC del juego de recreativa Dance Dance Revolution (la máquina de bailar, vamos). Para poder jugar necesitaremos unas cuantas cosas: el juego, un pad de baile y canciones. El juego lo puedes descargar de la página oficial, las canciones se pueden conseguir en muchos sitios, y el pad… el problema es el pad.

En la web hay un apartado dedicado a varios tipos de pads. Básicamente hay pads para PC, Gamecube, Playstation y Xbox. Nosotros utilizamos un pad de PS2, conectado con un adaptador de PS2 a PC.

El problema es que algunos adaptadores de PS2 a PC hacen que las flechas del pad se comporten como si fueran los ejes de un joystick. No parece muy problemático, ¿verdad? Pues lo es: cuando en una PS2 pones los pies sobre arriba y abajo a la vez, la PS2 lo trata como si fuera ARRIBA+ABAJO (que es lo que se quiere), mientras que la mayoría de los adaptadores lo envían como si fuera EN EL CENTRO (es decir, ninguna flecha pulsada, con lo que haces un miss).

Las soluciones al problema (con sus propios problemas):

  • Jugar con el pad puesto en diagonal, usando las flechas diagonales en vez de las flechas normales. Funcionará, pero tendrás que abrir más las piernas (mi novia está mosqueada por esto).
  • Conseguirse nuevos drivers para el adaptador. Algunos adaptadores tienen drivers que solucionan el problema, otros no. Si usáis Linux, hay una modificación a los drivers de joystick del kernel que os evitarán este problema (pero tendréis que modificar el código cada vez que descarguéis un nuevo kernel).
  • El código secreto: En algunos adaptadores, si pulsas Arriba+Select+Start durante 3 segundos, se activa el modo pad de baile y se soluciona el problema.
  • Recablear el pad: Desatornillando la carcasa del pad, accedes a las placas impresas. Puedes cambiar los cables para que las flechas se traten como botones, pero tendrás que tirar de soldador.
  • Adquirir otro adaptador o comprar un pad con conexión USB. Esta es la opción que hemos decidido emplear. Hemos comprado un adaptador en Play Asia y estamos esperando a que nos llegue.
  • Existe un programa (SMAxisRemap) que diferencia cuando no hay nada pulsado y cuando hay dos flechas pulsadas. No funciona con todos los adaptadores y, desde luego, no funciona con el mío.

Hemos probado el Stepmanía con dos adaptadores comprados en tiendas Game, que no han funcionado. Los adaptadores tienen las identificaciones USB 0E8F:0003 y 0C12:0005 (esto se puede mirar desde el Administrador de dispositivos en Windows, usando el programa Everest o usando el comando lsusb en Linux). El adaptador tradicional por puerto paralelo funciona si se usa el driver NTPad, pero no lo he comprobado personalmente.

Otros juegos musicales que podéis descargar serían Frets on Fire (adaptación de los Guitar Hero), Click Beat (Osu! Tatakae! Ouendan! y Elite Beat Agents) y Ultrastar (Singstar).

Unos cuantos enlaces para que miréis:

  • Stepmania: La máquina de baile en tu casa. Aquí encontraréis un montón de información sobre los diferentes tipos de pads, adaptadores para PC y las canciones de los Stepmix.
  • Joysticks Axes Problem: Está escondida dentro de las páginas de Stepmania. Aquí se habla sobre el problema de los ejes en los adaptadores, y sobre sus soluciones (en inglés).
  • Frets on Fire: Guitar hero para los que no quieren usar el de consolas. Se puede jugar con las guitarras de Xbox o PS2, y con el teclado (no lo recomiendo con teclados multimedia).
  • ClickBeat: ¿Elite Beat Agents con ratón? A cualquiera que lo haya jugado en Nintendo DS la idea le sonará rara… aunque merece la pena echarle un ojo.
  • UltraStar: Singstar para PC. Con soporte de videos, mp3 y micrófonos.
  • vanBasco Karaoke Player: Otro programa de Karaoke. Sólo funciona con ficheros .kar (son MIDIs, es casi imprescindible una tarjeta que funcione bien en ese sentido y un buen soundfont) y no puntúa… pero es el mejor programa de Karaoke MIDI para Windows.