Arcade bartop amb pantalla vertical

La nova màquina que hem construït és una bartop amb pantalla vertical que integra l’emulador de MAME. Només hem posat aquest emulador perquè és l’únic que té sentit amb una pantalla vertical. Aquí podem trobar els millors jocs de bar dels anys 80, que només té sentit jugar-los amb una pantalla vertical: Aero Fighters, Donkey Kong, Pacman, etc. Després de fer unes quantes màquines amb pantalles grosses de 19”, ja tenia ganes de muntar una pantalla 4:3 orientada verticalment i jugar a uns quants jocs de naus verticals: Aero Fighters, 1942, etc.

El disseny de la màquina està basat en el Pacman, com es veu a la fotografia, i crec que ha quedat bastant xula. Tot i així, el motiu principal per construir la màquina era jugar a shooters verticals aprofitant tota la pantalla. En la màquina hi ha més de 200 jocs verticals de totes les categories, tot i que la majoria són Shooters. També he ficat la resta de jocs horitzontals de MAME (uns 1000), que també es poden jugar perfectament amb aquesta màquina, tot i que es desaprofita molt la pantalla com és lògic.

És una màquina d’un sol jugador, i així es pot mantenir unes proporcions elegants i verticals, amb només 40 cm d’ample. Una màquina de sobretaula que ocupa poc espai amb un disseny elegant.

Com sempre, la màquina porta una Raspberry Pi, i el front-end és el que hem programat nosaltres mateixos (joanillo front-end, algun dia em decidiré a canviar-li el color taronja de fons). Amb el front-end és fàcil alternar entre jocs verticals i horitzontals, i navegar per les diferents categories de jocs.

Rotar la pantalla 90 graus ha estat molt fàcil. Només s’ha de posar display_rotate=1 en el fitxer /boot/config.txt.

Prototipus de spinner

La propera màquina que faré serà un arcade stick amb volant (amb anglès, steering wheel). Hi posaré els jocs de MAME que utilitzen spinner, que bàsicament són els de conducció (no tots els de conducció) i jocs tipus Arkanoid.

El spinner és un control analògic que utilitza un encoder òptic. El més fàcil és aprofitar un ratolí dels antics de bola. Hi ha molts llocs que expliquen com fer-ho, per exemple aquest enllaç. Jo també he utilitzat un reproductor de video antic per aprofitar l’eix, però crec que es pot agafar la mateixa idea i fer-ho totalment de fusta.

No tots els controls analògics que utilitzen els jocs de MAME són spinners (també anomenats dials). Per exemple, alguns jocs utilitzen trackball, que seria com dos spinners (com si utilitzéssim la bola del ratolí per moure’ns en els dos eixos X i Y, però amb una bola més grossa). I uns altres jocs utilitzen un paddle, que seria com un potenciòmetre (com el que s’utilitza en el joc original del Atari Pong).

A mi el que m’interessa són els jocs que utilitzen un sol spinner (o que es poden jugar amb un sol spinner). Anem a considerar un cas típic: el joc de conducció del Pole Position. En el joc tenim un volant. Amb el volant/spinner/dial el que aconseguim és que quan girem poc el volant, la roda gira poc; i quan girem fort, la roda gira fort. D’aquesta manera l’experiència de conducció és molt més divertida i real. En el Pole Position, el gas i el fre són pedals, que també són spinners, de manera que podem accelerar/frenar més o menys. I finalment hi ha un botó que és per canviar la marxa (curta o llarga). En la implementació de la meva màquina només hi ha un volant (control analògic del gir), i tres botons (gas, fre i marxa). Per tant, el gas i el fre són botons on/off (no són analògics).

A part dels jocs de conducció, un cas típic que utilitza spinner és l’Arkanoid i similars (breakout). Jugar a l’Arkanoid amb joystick és pràcticament impossible, no hi ha manera de controlar la pala. En canvi, amb el spinner pots controlar la pala molt millor, fent que es mogui lentament o ràpidament a voluntat.

Per controlar la resolució del dial tenim dos factors. El primer és el número de marques que té el nostre disc encoder (el que jo he escollit són 200 marques). Però això només és la meitat de la configuració, doncs falta la configuració de l’emulador (mame4all). Dins de la configuració, anem a Control Analògic, i podem escollir tres paràmetres associats al dial: speed, resolution i direcció. Per fer-ho ben fet, s’ha d’ajustar manualment cada joc per tal de què l’experiència de jugar sigui el més agradable i fàcil possible. Estem parlant d’uns 60 jocs més o menys.

Quan tingui la màquina acabada ja ensenyaré les fotos. De moment, he xal·lat d’allò més jugant al Pole Position.

El disc encoder l’he generat amb la següent utilitat:

Màquina Arcade Bartop de 2 jugador, model Super Mario World


Ja està la nova màquina de dos jugadors: bartop 2 jugadors model Super Mario World. Té els següents emuladors: MAME, NeoGeo, SNES, Mega Drive (Genesis) i GBA. Per als vinils he trobat un proveïdor factible: pixartprinting.es, treballen bé. A part dels vinils laterals i el penell dels mandos, per a la marquesina s’ha fet un vinil especial per a retroiluminació.
Aquesta màquina m’ha donat bastants problemes amb la targeta SD de 16GB, amb la configuració de la sortida de video HDMI, i amb l’alimentació de la RPi, però res que no es pugui resoldre, i espero en la següent màquina aprendre dels errors.

En el procés de fabricació també he tret conclusions que em serviran per millorar el procés en el futur, tant en la part de construcció del moble com en l’electrònica. Per exemple, és la primera màquina amb U-molding i vinils laterals. La retroil·luminació de la marquesina s’ha fet com en les anteriors màquines: un array de 30 LEDs blancs alimentat a 12V. El front-end és el de sempre, joanillo_arcade_frontend que ja va a la versió 1.0.7, i que des de la versió 1.0.5 és multi-emulador.

El monitor TFT de 19” i la targeta de so s’alimenten amb els seus transformadors. Un transformador de 12V alimenta la marquesina i la Raspberry. Per convertir els 12V a 5V de la Raspberry vaig voler provar un regulador de tensió 78L05, però no funcionava bé, a part de què és molt ineficient. Per tant, al final s’ha optat per un regulador step-down DC-DC de 12V a 5V, i funciona correctament. S’ha millorat bastant la part de crimpar els cables, tot i que el procés encara té marge de millora. És important fer les connexions de la botonera i els pins GPIO abans d’acabar-ho de muntar tot, doncs si hi ha algun error en soldadures o connexions és important no desfer la feina que ja s’ha fet. De fet, aquesta seria la principal conclusió en la millora de l’enginyeria del procés: mirar de no fer les coses dues vegades.

Com en projectes anteriors, s’ha utilitzat el projecte pikeyd per connectar els botons i joysticks als pins GPIO. S’utilitzen quasi tots els pins GPIO, un total de 24 pins GPIO.

A l’espera d’acabar aquesta setmana les dues màquines pendents (mini-bartop i arcade stick), els objectius propers seran incorporar els emuladors Atari 2600 i Commodore 64, migrar a la Raspberry Pi 2 (fins ara he estat utilitzant la B+), així com acabar altres màquines pendents.

Bé, la màquina ja està oferint diversió a tope. Primer vaig estar jugant amb el Pere al Metal Slug matant a uns quants enemics, i després ens vam enfrontar en el Street of Fighter. Després la meva mare contra la meva filla, unes grans campiones, s’ho van passar d’allò més bé amb un Tetris del Neo-Geo.

Alimentació autònoma de la Raspberry Pi

Per fi ja tinc projecte per col·locar la meva bateria recarregable Lipo. Es tracta de fer un Arcade Stick, totalment transportable. L’únic cable que sortirà serà el cable HDMI, llest per connectar-lo a la tele i jugar als teus jocs arcade preferits.

Vaig comprar a Adafruit tant la bateria LiPo (Lithium Ion Polymer Battery – 3.7v 2500mAh, http://www.adafruit.com/product/328) com el carregador/boost (Adafruit PowerBoost 500 + Charger, https://learn.adafruit.com/adafruit-powerboost-500-plus-charger). Entre tots dos uns 30 e. La idea original era fer una PPiGRRL – Raspberry Pi Gameboy (https://learn.adafruit.com/pigrrl-raspberry-pi-gameboy/overview). En aquest projecte utilitzen com a bateria una pila cil·líndrica, una idea també interessant per alimentar la RPi donat el seu poc espai (2200mAh lithium cylindrical battery). La meva bateria LiPo és més plana, i d’altra banda més llarga i ampla.

Al final aquest projecte està aparcat, però aquesta bateria m’anirà de conya per al meu Arcade Stick amb la idea que només en surti un cable, el cable HDMI.

D’una banda tenim la bateria que dóna 3,7V. Per aconseguir els 5V que necessita la RPi necessitem un power boost. D’altra banda, la bateria, que és recarregable, es descarrega i l’hem de recarregar amb un carregador (:-)). Doncs bé, el carregador i el power boost són el mateix element, que ja he ficat l’enllaç més amunt. En la foto veiem clarament les connexions.

Podem soldar un connector USB, i alimentar la RPi amb un cable USB-microUSB. Però jo he optat per alimentar la RPi directament pels pins GPIO, com faig habitualment. Finalment, per carregar la bateria, amb un carregador de mòbil n’hi ha prou.

Veiem a la foto com està funcionant el front-end sense cap problema.

Joanillo Arcade Frontend 1.0.5: ja és multi-emulador

Les màquines de marcianitos que he fet fins ara només portaven l’emulador MAME i eren d’un sol jugador (amb sis botons). Aquest any arribaran màquines de dos jugadors (amb 7 botons per jugador), i diversos emuladors. La primera serà la mini-bartop model Metal-Slug, que està bastant acabada. I després vindran les bartop de dos jugadors, cercant un compromís entre el tamany i la comoditat.

Els emuladors que s’implementen, a part del MAME (mame4all), són el Neo-Geo, Genesis/Mega Drive, GBA i SNES. Per tot això s’ha hagut de millorar el front-end que utilitzo (i que ara ja té un any de vida), per a una versió multi-emulador. Es tracta de la versió 1.0.5, que també incorpora algunes millores que s’han fet necessàries després d’observar com es relaciona la gent amb el front-end.

En definitiva, una versió que pots descarregar, i que ha estat programada de manera que corri amb fluidesa sobre la Raspberry, i que no cerca efectes espectaculars com d’altres front-ends (per ex. Retropie)

Caixa d’explosius / Boom Box / Detonador: construcció

Aquí van unes quantes fotos de la construcció de la Boom Box. Les dimensions les marca la bateria de moto (compte, hi ha dos tamanys de bateria de moto, he fet servir la petita). La molla ha de ser forta i ha de tenir suficient recorregut. També posarem un interruptor ON/OFF per desactivar el circuit quan no es fa servir. Amb la tècnica de la transferència sobre fusta podem personalitzar el text i/o dibuixos. Finalment, una capa de vernís. Amb 10 metres de cable n’hi ha d’haver prou de estar salvaguardats dels petards.

Provant la Caixa d’explosius / Boom Box / Detonador

Ja tenim acabada la Boom Box. Anem a tirar uns petards. Els nens s’ho han passat d’allò més bé amb la joguina. La única cosa que s’hauria de millorar és el temps de resposta. Quan tanques l’interruptor s’encén el llumí, tot i que a vegades no és immediat. I aleshores crema la metxa, que com que no hi ha ningú a la vora, podem fer el més curta possible.

Ja tinc ganes de què el Barça guanyi la Champions aquest any per tirar una traca al més pur estil Coyote vs Correcaminos. La Boom Box està disponible a www.retroplaneta.com.