Archivo de la categoría: 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:

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.

Tirador de muelle y Tilt para Virtual Pinball (video)

En un anterior artículo ya explicamos la construcción del tirador de muelle analógico. Ahora hemos querido acabarlo de explicar y hacer un pequeño video.

A continuación se detalla las conexiones de los botones, el potenciómetro (A0) y el acelerómetro (SDA, SCL) en el Arduino Pro Mini:

    Arduino Pro Micro 
    (plunger, acceleròmetre, i 6 botons)

\t\t\t*\t*
\t\t\t*\t* GND
\t\t\t*\t*
\t\t\t*\t* VCC
\t\t    SDA\t*\t*
 \t\t    SCL\t*\t*
\t  4: Left. BUT0\t*\t*
         5: Right. BUT1\t*\t* A0 (Pot)
          6: Exit. BUT2\t*\t*
         7: Start. BUT3\t*\t*
          8: Coin. BUT4\t*\t*
         9: Enter. BUT5\t*\t*

Finalmente, hay que cargar el firmware en el Arduino, que incorpora la librería Joystick. El acelerómetro, que detecta la fuerza lateral ejercida sobre el mueble, a partir de un umbral de fuerza simula el disparo de un botón joystick. Todas las acciones de los botones del joystick HDI se aocian a presiones del teclado gracias al software JoyToKey, que corre en background. La asociación de teclas es la típica de Visual Pinball (el emulador). Por ejemplo, COIN está asociado a la tecla 5, y la función Tilt/nudge dispara las teclas Z/X.

Tenía miedo que un potenciómetro deslizante se deteriorase con el tiempo, y hubiese preferido utilizar algún sensor no mecánico. Tengo que decir, pero, que de momento, el funcionamiento es muy estable.

He construido dos máquinas en paralelo, una basada en el tema del Jacks Open, y la otra basada en el tema de Avengers. En una de les máquinas el funcionament no va muy fino, y he de ver todavía cuál es la causa: el ordenador, la RAM, la tarjeta de video o el plunger.

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:

Encuentros en la Tercera Fase, tema del Pocket pinball

He querido hacer el tema del pinball lo más similar posible al orginal de Gottlieb, sin obsesionarme. Para hacerlo he pintado una base de amarillo en el moble, y con la CNC unas cuantas plantillas para sobreponer los colores azul y blanco. El resultado me ha gustado bastante, aunque hay margen de mejora. Pero crec que el objetivo está bastante conseguido.

Para que la máquina sea realmente un Close Encounters, quiero suprimir la pantalla azul de presentación del Windows, y que cuando arranque el PinballX abra directamente esta mesa.