span.fullpost {display:none;}

viernes, 7 de noviembre de 2008

Emulando al pasado con Spectemu

Hoy vengo en plan nostálgico ya que mientras revisaba mis marcadores de Firefox he vuelto a visitar varias páginas dedicadas a uno de los ordenadores pioneros de la informática de consumo, me refiero, como no, al famoso ZX Spectrum, un "micro" (como así se denominaba entonces) que marcó una época allá por la primera mitad de la década de los 80. Aunque nunca tuve la suerte de poseer uno (me quedó ese trauma), el ZX Spectrum fue un precursor de los ordenadores personales, e introdujo a muchos jóvenes -y no tan jóvenes- de aquella época en el apasionante mundo de la programación y la informática en general, haciendo posible que se familiarizaran con términos abstractos como bit, byte, ROM, procesador, algoritmo o chip, que a la inmensa mayoría de la gente le sonaba a chino.

La evocación de aquel "micro" hizo plantearme la duda de si existen emuladores del ZX para gnu/Linux Así que me puse a buscar raudo y veloz, y en la Guía Ubuntu pude confirmar que, efectivamente, mis sospechas eran reales. Encontré que existe varios emuladores de Spectrum y que uno de ellos, el Spectemu, se encuentra disponible en los repositorios oficiales de Ubuntu. Por lo cual decidí instalar todos los paquetes necesarios para hacerlo funcionar:

$ sudo aptitude install spectemu-x11 spectemu-common spectrum-roms

Tras la instalación de los paquetes me faltaba tener algo con lo que poder empezar a probarlo, así que siguiendo los pasos de la Guía entré en una web donde se ofrecen muchos de aquellos juegos para Spectrum que
durante los años 80 se vendían en cintas magnéticas (aún conservo una que regalaba la revista Microhobby por suscribirte), y ahora se distribuyen en ficheros con formato tap, tzx o z80, entre otros. El modo de cargar y ejecutar los juegos mediante Spectemu no me ha terminado de quedar muy claro, pues lo he hecho de dos maneras distintas y en ambos casos ha funcionado. En la Guía Ubuntu se indica que la forma correcta es la siguiente:

$ aoss xspect -sound-device /dev/dsp1 -tap fichero.tap

aunque esta sintaxis no es válida cuando solo se dispone de "cintas" en formato tzx u otros; en tal caso lo ejecuto de esta otra manera:

$ aoss xspect -sound-device /dev/dsp1 fichero.tzx

que también es válida para ficheros en formato tap.



Una vez que aparece la ventana del emulador habrá que cargar el juego mediante la orden:

LOAD ""

Lo cual se consigue pulsando la tecla j, Alt-2 (dos veces, una para cada comilla), Enter y, por último, Ctrol-o (para despausar la "cinta").













Un asunto que me ha llamado la atención es que el proceso de carga y ejecución de los juegos es un poco lenta, parece como si también se quisiera emular aquella proverbial lentitud que caracterizaba al Spectrum a la hora de cargar juegos y aplicaciones desde la cinta magnética, algo que tanto desesperaba a los usuarios.

El aspecto problemático de todo esto es la cuestión del sonido. He probado a poner en el parámetro -sound-device los dispositivos /dev/dsp y /dev/dsp1, ya que Spectemu solo funciona con OSS y, como dije en un post anterior, tengo dos tarjetas de sonido en mi sistema, pero tan solo cuando especifico el primero de los dispositivos consigo oir una serie de ruidos bastante rudimentarios (algo así como una bip-bip) durante el proceso de carga, después de comenzar el juego desaparece cualquier sonido. No sé si los juegos que me he bajado carecen de audio, o es que éstos no se oyen por el tema del OSS.

Sea lo que fuere, el caso es que, por lo demás, Spectemu funciona correctamente. No lo he probado mucho porque no soy demasiado jugón y mi torpeza en este terreno es claramente manifiesta, a duras penas consigo jugar durante unos pocos minutos (y eso cuando logro averiguar como se arranca el juego). Aún así he podido disfrutar imaginando como debió ser la experiencia de utilizar aquel añorado ZX Spectrum que nunca tuve en mis manos. Tras más de 20 años de ostracismo voy a poder sacarle partido a los artículos y trucos sobre juegos que llenan las páginas de aquellas revistas que aún conservo.

Más vale tarde que nunca ... ¿no?


Seguir leyendo ...

domingo, 2 de noviembre de 2008

Convertir APE+CUE en MP3 con Ubuntu 64

Hay ocasiones en las que alguien se baja de la red ficheros de música en formato APE/CUE y no sabe o no puede oirlos ni, lo que es peor, como convertirlos a otro formato más convencional para poder disfrutar de la música en su reproductor portátil o en el mismo ordenador. APE es un formato utilizado por Monkey's Audio (MAC), un codec que permite realizar conversiones sin pérdida de calidad. Se suele utilizar para almacenar álbumes completos de música, por lo que, normalmente, suele venir acompañado por otro fichero de poco tamaño que lleva extensión CUE, y que no es más que un fichero de texto plano donde se almacena información sobre el inicio y final de cada pista de audio.

Desgraciadamente no existe un soporte oficial de dicho codec para gnu/Linux. Hasta hace poco tiempo había un proyecto en SourceForge para ofrecer un codec MAC con licencia libre, aunque solo para arquitecturas de 32 bits; de cualquier modo, por alguna razón que desconozco, tal proyecto se ha abandonado, dejando un poco huérfanos a los usuarios de gnu/Linux con plataformas de 32 bits. Pero, ¿y los que usamos versiones de 64 bits... ?.

Afortunadamente, los usuarios de Ubuntu 64 tenemos las herramientas necesarias para trabajar con ficheros de ese formato y extraer de ellos las pistas de audio convertidas en MP3 (u OGG, si se desea), utilizando, única y exclusivamente, software libre disponible en los repositorios oficiales de Ubuntu. Voy a explicar como se hace mediante un ejemplo que expongo a través de capturas de pantalla.

En primer lugar abrimos el terminal de comandos para instalar -si no lo están ya- estos tres paquetes: libjmac-java, mp3splt y lame:

$ sudo aptitude install libjmac-java mp3splt lame

El paquete libjmac-java es una implementación en Java del codec Monkey's Audio, y lo vamos a usar para convertir el fichero APE en WAV.

$ java -jar /usr/share/java/jmac.jar d fichero.ape fichero.wav


Una vez conseguido lo más difícil vamos a convertir el fichero WAV resultante en OGG o MP3. Para el primer caso se puede usar, por ejemplo, la aplicación gráfica SoundConverter (también podría servir ffmpeg), aunque yo solo he probado la conversión a MP3, y para esto se debe ejecutar lame de esta manera:

$ lame -h fichero.wav fichero.mp3


Ya solo queda trocear el fichero MP3 resultante en los fragmentos correspondientes a cada pista de audio del fichero original, para hacerlo de manera automática mediante el fichero CUE ejecuta el siguiente comando:

$ mp3splt -f -c fichero.cue -o @n+-+@t fichero.mp3


el cual va creando los distintos ficheros MP3 de cada canción con su nombre correspondiente y ordenados con un prefijo numérico.

Y eso es todo, espero que esta receta os haya sido de utilidad. ;-)

Seguir leyendo ...