Archivo de la etiqueta: arcade

Virtual Pinball basado en Superman (Atari, 1979)

Finalmente ya he acabado el virtual pinball de Superman que irá hacia el País Vasco. Esta vez he mejorado diversos aspectos en el proceso de fabricación: perfiles de acero inoxidable, fijación de la TV, monedero de Industrias Lorenzo, diseño de los vinilos, paletización de la máquina. Y también he incorporado el simulador VPX además del VP9. Pero qué queréis que os diga, no he notado especialmente las mejoras que supuestamente incorpora el VPX.

También he cogido unas cuantas ideas por si he de coger una nueva máquina, que creo que podría hacer más rápidamente que esta última, que se me ha alargado demasiado. Así que ya está, sólo hace falta enviarla.

Referencias:

La hora catalana con Festival (TTS, text to speech)

Estoy trabajando en un Magic Mirror, y le quiero dotar de funciones de reconocimiento de voz (STT, con Pocketsphynx) y síntesis de voz (TTS, con Festival). Quiero que sea un proyecto un poco de cachondeo, y quiero escoger bien los módulos a instalar, y también programar alguno.

Una cosa divertida que había pensado es un módulo que te diga la hora catalana:

-Magic Mirror (le pondré un nombre divertido), quina hora és? (en catalán)
-Són dos quarts i cinc de vuit.

He estado trabajanco con Festival (que se instala sin problemas en una Raspberry Pi) e integrarlo todo con Node/Javascript, que es la tecnología que utiliza MagicMirror.

En el video hau una muestra de lo que se quiere conseguir:

Referencias:

Magic Mirror con la Raspberry Pi (Smart Mirror)

Este es un proyecto divertido y sencillo para hacer con la Raspberry Pi, muy adecuado ahora para el verano. He estado configurando la Raspberry Pi y los diferentes módulos del proyecto MagicMirror, y ya puedo mostrar el video de cómo quedará todo. De todas maneras, el proyecto lo tendré que acabar más adelante cuando decidamos donde podemos colocar el espejo y las dimensiones que tendrá, pues veo que comprar el 2-way mirror es la parte más delicada, y un espejo grande se va del presupuesto.

Uno de los objetivos para realizar este proyecto es que últimamente me estoy concienciando de lo mal que hablamos nuestra lengua (el catalán) y de como se ha empobrecido en general. Para recuperar las expresiones más genuinas (rehusando el calco del castellano allí donde no haga falta), hay todo un movimiento de concienciación. Yo quiero aportar mi grado de arena haciendo este espejo mágico que nos dará una lección de buen catalán cada vez que nos miremos al espejo, por ejemplo cuando nos cepillemos los dientes.

Uno de los módulos por defecto de MagicMirror es la sindicación de contenidos para tener los titulares de las noticias del día. Por ejemplo, mi espejo está suscrito al periódico ARA. Pues bien, he adaptado este módulo para crear mi propio módulo de MagicMirror (el_catala_com_cal). Ha sido bastante fácil. Sólo falta crear y editar un fichero XML con las lecciones de catalán que quiero visualizar. De momento es esto: un fichero estático que tendré que editar cada vez que quiera añadir contenido.

Fiesta Arcade en ARAG

Ya hace días que no escribía en el blog, i es que este trimestre ha sido muy frenético y cansado con el cambio de piso. Por si no era poco, el día antes del traslado tenía comprometido llevar unas máquinas a la fiesta social de la aseguradora ARAG.

Se lo van pasaron en grande con tres máquinas bartop y un pinball que les llevé en la furgoneta. Después, por la noche, a recogerlo todo, cuando los más marchosos todavía estaban en la discoteca.

Mini Virtual Pinball basado en Jack’s Open

He estado haciendo dos pinballs en paralelo, de las mismas dimensiones, y con plunger analógico. El primero basado en el tema de Los Vengadores de Marvel; y el segundo basado en Jacks Open, tema que ya había hecho. Al contrario de la primera versión donde utilicé pintura y máscaras para pintar con spray, esta vez se me ha complicado mucho esta técnica y finalmente he encargado los vinilos, mucho mejor.

Mini virtual pinball based on Marvel’s Avengers

Finalmente he finalizado el pinball de Avengers. He estado haciendo dos pinballs en paralelo, de las mismas dimensiones, y con plunger analógico.

He tardado bastante tiempo en repasar las 200 mesas para adaptarlas al plunger y tilt analógicos. Publicamos este artículo publicando la solución final de la construcción del tirador de muelle, basado en Arduino.

Plunger analógico para virtual pinball

Estoy haciendo un par de pinballs, y esta vez sí que quiero incluir un plunger analógico. Esto es bastante trabajo, pues significa construir un tirador de muelle fiable, y configurar/repasar las 200 mesas con las que trabajo. Además del tirador analógico también incluiré la función de TILT, es decir, cuando dé un golpe lateral al mueble quiero cambiar la trayectoria lateral de la bola, y así evitar que la bola caiga en el sumidero.

Utilizaré un Arduino Pro Micro, que me hará de joystick/gamepad a través del puerto USB. Para que el sistema operativo lo reconozca como HID (Human Interface Device), el firmware del Arduino debe incluir la librería joystick. El Arduino tiene entradas digitales/analógicas y salidas digitales para conectar los sensores y los botones necesarios. De hecho, utilizando el Arduino ya no hará falta el I-PAC que se utiliza en este tipo de proyectos.

En la foto se puede ver el segundo prototipo de plunger analógico, que ya es funcional. Como sensor utilizaré finalmente un potenciómetro lineal deslizante. De momento el muelle que utilizo es un poco fuerte. Estoy buscando otro que sea más flojo, pero que me asegure el retorno del potenciómetro a su posición inicial. Ya sé que utilizar un potenciómetro (elemento mecánico) no es la mejor solución, pero de momento me está funcionando sin problemas. Otras opciones a considerar como sensores son un rotary encoder (que también es mecánico), y dos soluciones que no son mecánicas (larga vida) pero que son más difíciles y caras y que he viso por Internet: utilizar un CCD linear sensor array (TAOS TSL 1410R); y utilizar un sensor de distancia LVDT (es caro, pero unos se lo puede construir).

Como conclusión, le daré una oportunidad al potenciómetro lineal deslizante, y su valor se leerá en una entrada analógica del Arduino.

Para la función tilt necesito un acelerómetro. Usaré el MPU-6050 GY-521, que es un acelerómetro de tres ejes y giroscopio (sólo necesito leer la aceleración en un eje). Usa el bus I2C para conectarse al Arduino (entradas digitales). Además, el resto de botones (en principio 4 botones frontales y los dos botones laterales de los flippers) también utilizarán entradas digitales del Arduino.

Lo que lleva más trabajo es repasar las 200 mesas y modificarlas para que el plunger analógico funcione correctamente. Hay diversas maneras de implementar el tirador, unas mesas más fáciles que otras. Como siempre, muchas gracias a la comunidad de Visual Pinball y a la gente que ha importado todas las mesas para el uso y disfrute de todos.

Ahora ya estoy a punto de acabar, y cuando tenga finalmente el mueble montado y el plunger analógico colocado en un posición final se tendrán que hacer las pruebas definitivas y la versión final del firmware. Ahora ya falta poquito. Cuando lo tenga todo acabado haré un pequeño video.

Si a alguien le interesa mi solución final, que em contacte y lo hablamos.

Referencias:

Close Encounters pinball: profundizando en el gameplay

CLOSE ENCOUNTERS OF THE THIRD KIND
—————————————————————-

INSTRUCTIONS
3 BALLS PER PLAYER

HITTING A-B-C ROLLOVERS INCREASES INDICATED ROTO TARGET VALUE.
COMPLETING A-B-C ROLLOVERS LIGHTS «EXTRA BALL» AND «SPECIAL FEATURES».

STAR ROTO TARGET VALUE IS 500 POINTS. HITTING STAR ROTO TARGET SCORES INDICATED VALUE AND INCREASES BONUS MULTIPLIER.

BLACK DROP TARGETS SCORE 500 POINTS. COMPLETING DROP TARGETS INCREASES BONUS MULTIPLIER, ADDS 5 BONUSES, LIGHTS «EXTRABALL» AND «SPECIAL» FEATURES, SCORES 5000 POINTS AND RESETS TARGETS.

BONUS IS SCORED AND FEATURES RESET AFTER EACH BALL.

A TILT DOES NOT DISQUALIFY A PLAYER.

MATCHING LAST TWO NUMBERS IN SCORE TO NUMBER THAT APPEAR ON BACKGLASS AFTER GAME IS OVER SCORES ONE REPLAY.

424SS B-18583-1

Me gusta más construir las máquinas que jugarlas. De hecho tengo poca paciencia para jugar. Ya que he hecho una nueva máquina dedicada al pinball de Encuentros en la Tercera Fase (Close Encounters of the Third Kind, Gottlieb 1978), dedicaré unos minutos a analizarla y entender bien las reglas del juego. Las Instructions Card dels pinball siempre son muy escuetas (ver foto).

Esta es una máquina con electrónica de estado sólido (SS), lo que significa que todas las reglas del juego están implementadas en un chip que lleva cargado el software/instrucciones de la mesa. Este chip es una memoria donde está almacenado todo el código, es decir, una ROM. La gracia del Visual Pinball y otros emuladores de pinball es que son capaces de leer la información de la ROM (fichero que tenemos guardado en la carpeta roms/, y hacer funcionar la máquina por software. Si se sabe manipular la rom (los bytes) se puede modificar algún aspecto de la mesa, como por ejemplo modificar el High Score por defecto, como hemos hecho en alguna mesa. De hecho, el módulo que se encarga de la emulación es el VPinMAME, proyecto que comparten diferentes emuladores como el Visual Pinball o el Future Pinball.

HITTING A-B-C ROLLOVERS INCREASES INDICATED ROTO TARGET VALUE. Los rollover (A, B, C) son los tres pasillos que hay arriba de todo. Cuando la bola pasa por el pasillo se cierra un interruptor. Como consecuencia, el ROTO-target (rotatory) da vueltas. El ROTO tiene targets que se han de intentar tocar.

COMPLETING A-B-C ROLLOVERS LIGHTS «EXTRA BALL» AND «SPECIAL FEATURES». Si completamos los tres rollovers (siempr con la misma bola) se activa (se ilumina When Lit) la posibilidad de hacer Extra Ball y Special Features (pero todavía no tenemos Extra Ball, sencillamente tenemos la posibilidad de conseguirlo. ¿Cómo se consigue? Si nos fijamos en el playfield, podemos ver Star scores extra ball. Por tanto, cuando en el target izquierdo del ROTO tenemos una estrella, si hacemos target sobre esta estrella, conseguiremos la Extra Ball. De la misma manera, Special Features lo onseguiremos cuan tenemos Star en el target de la derecha (y hacemos diana).

STAR ROTO TARGET VALUE IS 500 POINTS. HITTING STAR ROTO TARGET SCORES INDICATED VALUE AND INCREASES BONUS MULTIPLIER. Cuando hacemos diana sobre una estrella tenemos 500 puntos. Hacer diana sobre un ROTO target incrementa los puntos indicados, y se activa el multiplicador 10x (se ilumina), que significa que en la próxima podemos conseguir 3000, 4000 o 5000 puntos.

BONUS IS SCORED AND FEATURES RESET AFTER EACH BALL. Tenemos diferentes targets que nos pueden dar bonus. Estos targets pueden estar desactivados, o activados cuando la lámpara asociada está iluminada. Cuan perdemos la bola se incrementa el Bonus acumulado, y se vuleven a resetear todas las características. Aproximadamente, el bonus es proporcional al tiempo que haya durado la bola.

A TILT DOES NOT DISQUALIFY A PLAYER. En esta mesa hacer Tilt no está penalitzado. El Tilt se detecta cuando movemos la mesa con el objetivo de desviar la trayectoria y que no caiga en el sumidero. En muchas mesas hacer Tilt es sinónimo de hacer trampas, y esto significa normalmente perder la bola y desactivar temporalmente los flippers.

MATCHING LAST TWO NUMBERS IN SCORE TO NUMBER THAT APPEAR ON BACKGLASS AFTER GAME IS OVER SCORES ONE REPLAY. Cuando se acaba la partida, aún nos queda una oportunidad. Si los dos últimos dígitos de nuestro marcador coinciden con el High Score (?), entonces parece ser que se nos regala una partida.

A grandes rasgos, estas son las reglas de esta máquina. La mayoría de los jugadores (como yo mismo) nos conformamos en hacer durar la bola el máximo de tiempo. Pero si se quiere hacer una buena puntuación, se han de conocer estas reglas y tener una estrategia. Hay gente que se dedica a coleccionar y registrar High Scores de los pinballs. Por ejemplo, como se puede ver en este enlace, para el Close Encounters hay registrada una puntuación de 691.000, con 5 bolas. La posibilidad de jugar con 3 ó 5 bolas depende de una opción en el software, y en las máquinas reales esto se configura con un interruptor DIP que está documentado en la hoja de instrucciones que tiene el operador (en el salón recreativo o en el bar).

Como siempre, lo más divertido de estas mesas es la posibilidad de jugar con varios jugadores (hasta 4 jugadors, que se van turnando).

En las referencias hemos puesto un video de la escalada a la Devil’s Tower, que me parece espectacular. Pensaba que la escalada estaría prohibida, pero no, se puede escalar si se pide el permiso, y no se puede dejar material durante la escalada.

Y recuerda, como se indica en el playfield: We are not alone, y en cualquier momento podemos recibir una visita…

Referencias: