Video del Star Wars del MAME en un osciloscopio

starwars-vector.jpg
Aquí tenéis un vídeo en exclusiva del clásico de las máquinas de marcianitos: el arcade vectorial de la Guerra de las Galaxias de Atari corriendo en un osciloscopio a través de una tarjeta de sonido y un MAME —el emulador de arcades— parcheado. Después de ver la noticia en Wired me quedé tan flipado que hablé con James Brown —el inventor del tinglado, no el Padrino del Soul— para preguntarle detalles y pedirle que nos grabar un vídeo sólo para Gizmodo:




Jesus Diaz: Alucinante el hack, James. La primera pregunta: has probado Asteroides en esto?
James Brown: Debe correr cualquiera de los juegos vectoriales del MAME. Sólo lo he probado con Star Wars y Asteroides. Tengo en YouTube un vídeo del Asteroides, pero es de baja calidad:




JD: ¿Tuviste que parchear el código fuente del MAME?
JB: Sí, lo tuve que parchear. De hecho, es todo lo que requiere. Modifiqué el motor de renderizado de vectores del MAME para que, en vez de rasterizar la imagen para un monitor convencional, hiciera lo que hacía el hardware original.

Como no hay entrada en el osciloscopio para el cambio de brillo del rayo, varié la velocidad para producir el mismo efecto. La señal se saca utilizando una tarjeta de sonido (no de vídeo) y el osciloscopio está conectado a los canales de sonido izquierdo y derecho en modo XY.

JD: Increíble. ¿Y cuánto tiempo te ha llevado?
JB: En total un par de horas, desde el principio hasta que estaba funcionando.

JD: ¿Es la electrónica algo relacionado con profesión o sólo un pasatiempo?
JB: Trabajo para Lumen Digital creando muestras interactivas. En la mayoría se trata de software pero también hago prototipos de hardware. Pero este hack no utiliza la electrónica; lo único es que tenía un osciloscopio por ahí y me apetecía jugar con él.

JD: Es difícil creer que no hace falta hacer cosas electrónicas raras para un indocumentado como yo…
JB: Ya, la verdad es que no hay mucho que decir sobre este proyecto a nivel técnico. No utiliza hardware especial, sólo el osciloscopio conectado a la tarjeta de sonido. Los juegos vectoriales de principios de los 80 no tenían casi detalle. En Star Wars se usan menos de 1.000 líneas, incluyendo el reposicionamiento del rayo y el campo estelar. Esta información es fácil de transportar en el ancho de banda del audio.

No hay control de intensidad en mi osciloscopio, así que varío la velocidad del rayo. Si subes el brillo del osciloscopio verás el rayo moviéndose de una línea a otra. Pero si lo bajas, sólo verás las líneas que quieres ver, las lentas.

JD: Así que sólo la tarjeta de sonido es necesaria…
JB: Sí, lo que es un problema. La tarjetas de sonido sacan una señal de corriente alterna, cualquier componente de corriente contínua se cancela. Esto significa que la señal se empieza a mover de un lado a otro, pero para solucionarlo hice un código que controla este movimiento de la imagen dibujando cuatro puntos en las esquinas, que se pueden ver en el vídeo.

JD: ¿Vas a sacar el código para otra gente?
JB: Estoy tentado, pero no es lo mismo hacer código de garrafón para ti mismo que sacarlo para que la gente lo utilice y lo incorporen en MAME. Si hay suficiente interés, probablemente lo haré, pero no sé si hay mucha gente con osciloscopios por ahí…

JD: Ya, pero tengo un amigo que tiene un amigo con un cañón láser… imagina esto en la fachada de un edificio.
JB: Si, a mí también me gustaría probarlo con un proyector láser. He construido un scanner XY utilizando un par de altavoces con espejos dentro, pero no tiene suficiente frecuencia de respuesta para mostrar un juego.

JD: Pues espero que alguien te mande uno para probarlo y nos mandes otro vídeo. Gracias por tu tiempo, James. Y de nuevo, un trabajo increíble.
JB: Gracias a ti.

[Tema de Star Wars disco por The Bordens. Entrevista en inglés en Gizmodo USA]


4 respuestas a Video del Star Wars del MAME en un osciloscopio

  1. Git
    11 de diciembre 2007, 14:58

    En la facultad, en la asignatura de hardware, tuvimos que hacer algo similar. De hecho, el examen práctico consistía en hacerse un juego de ruleta (de sólo ocho posiciones) en el osciloscopio, controlado por un teclado y alguna cosa más.

    El truco, como bien dice Brown, es el modo XY del osciloscopio. En ese modo el osciloscopio interpreta dos señales como valores X e Y, y pinta el correspondiente punto en la pantalla (en la posición [X, Y]). Si vas variando los valores de X e Y el punto se mueve, y si se hace deprisa y se redibuja la misma figura unas 10 o 15 veces por segundo la imagen parece que está fija. Así, en este caso basta con enviar los valroes adecuados por la tarjeta de sonido (supongo que podría haberlo hecho también con dos puertos COM, pero probablemente al usar un dos canales de la tarjeta de sonido tuviese una sincronización mejor).

    Es muy efectista. De hecho también tuve que hacer un avión que bombardeaba un objetivo. La verdad es que me tenía que haber puesto serio y hacer un Tank Zone o algo así, pero quizá el 3D y el ensamblador no fueran buena pareja.

  2. Gizmodoforever
    11 de diciembre 2007, 12:00

    Dios, y la canción??? de donde puedo sacar esa canción?

  3. 10 de diciembre 2007, 22:12

    Que bueno!!!! que recuerdos madre mia

  4. el_remora
    10 de diciembre 2007, 13:16

    Ya me quede con ganas de montar el pong hecho con puertas logicas para el osciloscopio, por la paja mental que era. Pero esto mmmm me mola su sencillez y resultado, a ver si lo libera prontito.

    1 saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

(*)

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>