ARCADE FOREVER

Simular la experiencia de echar monedas en nuestra máquina recreativa., carcayu

« Older   Newer »
  Share  
xarcadeforeverx
view post Posted on 18/11/2009, 02:08     +1   -1




Uno de los gestos más placenteros a la hora de disfrutar de una máquina recreativa en casa será el de echar monedas; las razones son varias, entre ellas que nos transportará a viejos tiempos y que nos proporcionará partidas en nuestro videojuego favorito; pero sin lugar a dudas, el principal placer se deberá a un poderoso hecho: ¡tendremos la llave del monedero, y por tanto, el echar monedas no supondrá un desembolso económico!

Ahora bien, si vamos a jugar varias partidas, el gesto en sí puede llegar a resultar algo molesto, además de implicar el tener siempre al alcance un número considerable de monedas. Por ello, muchos usuarios optan por duplicar la manera de acceder a créditos, mediante un pulsador normal. Sin embargo, esto diferirá mucho de “la sensación original” propia de los salones recreativos, que obligaba a agacharse para echar monedas, a la vez que se escuchaba el ruido característico de caída de la misma en el cajón interior de la maquina; la imitación de dicho gesto será, por tanto, el motivo de este tutorial.

Paso 1. Utilizar el botón de expulsión de monedas como botón de créditos

Mediante este primer paso lograremos que el hecho de pulsar el botón de expulsión de monedas lo interprete el PC que tengamos alojado en el interior de la maquina como un crédito, con lo cual nos ahorraremos un pulsador, espacio físico en el cpo, y además nos permitirá simular la experiencia de insertar moneda. Para tal cometido, nada más sencillo que alojar un switch en la parte trasera del monedero, a la altura de dicho botón, de tal manera que, al pulsarlo, también generaremos pulso en el switch; resulta obvio que será necesario sujetar dicho switch al monedero; recomiendo para tal cometido utilizar un pegamento fuerte especifico. A continuación se muestra una foto a modo de ejemplo

image

Por otro lado, para configurar ese botón existen dos opciones bien distintas, que dependerán en gran parte de la solución que hayamos adoptado para que el PC interprete las pulsaciones. Si optamos por un Interface de Puerto Paralelo (IPP), tendremos posibilidad de configurar gran cantidad de botones, por lo que seguramente recurriremos a un botón independiente para créditos. Ahora bien, si optamos por otras soluciones que dispongan de limitados botones configurables, como un hack de joystick, I-PAC, J-PAC, etc., nuestra prioridad será “aprovechar” los disponibles, por lo que la medida más inteligente será puentear el switch del monedero para los créditos; es decir, que la pulsación del botón de créditos y el de insertar monedas proporcione el mismo pulso al interface elegido, y así ahorrarnos un botón.

La manera de realizar ese puenteo es bien sencilla: conectaremos en serie los contactos de estado y de masa de ambos botones, como lo hemos hecho en general para todas las masas. A continuación se muestra un esquema del mismo. Será imprescindible prestar atención a la leyenda que acompaña al contacto de estado del switch, ya que si en lugar de conectarlos en “always open” lo hacemos en “always closed”, lo único que conseguiremos es que la pulsación se repita indefinidamente, y que se detenga justo cuando pulsemos manualmente el botón. Habrá que prestar especial atención a esta última cuestión, y mirar la leyenda “always open/always closed” independientemente en cada switch, ya que casi con total probabilidad la ubicación del mismo difiera del switch de alambre con respecto al de palanca. El esquema aquí descrito corresponde a la manera más usual en que se nos encontraremos dicho contacto:

image

Y a continuación se muestra una foto de un monedero, donde se ha instalado dicha funcionalidad; este monedero tiene la peculiaridad, además, de que tiene ranura para dos monedas; será de especial atención el hecho de que para los cuatro switches se conserva el mismo cable de masa.

image
(en azul la conexión en serie para el pulso del monedero 1, en amarillo la del monedero 2 y en verde la conexión en serie para la masa común)


Paso 2. Simular el sonido de la caída de monedas.

Mediante este segundo paso, lograremos que además el hecho de pulsar el botón de expulsión tenga también un efecto acústico, y así la experiencia sea prácticamente idéntica a la original. Para ello, necesitaremos de la instalación de un programa, llamado Autohotkey, cuyo cometido es automatizar tareas mediante la pulsación de teclas. La página oficial de dicho programa es la siguiente:

Autohotkey Web

El funcionamiento de este programa es bien sencillo: abriremos el bloc de notas y crearemos el script deseado; por último le cambiaremos la extensión de .txt a .ahk, y haremos doble clic en el archivo, con lo cual lo ejecutará el programa asociado a dicha extensión y ejecutará la acción deseada. En el caso que nos ocupa, este sería el script a implementar:


QUOTE
SetKeyDelay 50

4::
SoundPlay, C:\Frontend\Coin.wav, wait
KeyWait 4
Send {5 down}
Send {5 up}
return

Para que todo el mundo pueda adaptar este script a sus necesidades, voy a indicar a continuación qué sentido tiene cada línea.

QUOTE
4::

En esta línea se indicará qué tecla, o bien qué botón del mando (joy1, 2,3, etc.) queremos que ejecute la acción.

QUOTE
SoundPlay, C:\Frontend\Coin.wav, wait

En este caso se le pedirá al programa que ejecute un sonido en concreto, en este caso el de una caída de monedas. Será importante indicarle la ruta completa de dicho archivo para evitar conflictos. Podéis encontrar sonidos de caída de monedas googlearndo un poco y utilizando la clave “coin drop sound” como búsqueda. También será de vital importancia el parámetro final “wait”, que provocará que el script no siga ejecutándose hasta que se haya reproducido el sonido; es decir: que no nos de créditos hasta que se haya producido la caída de la moneda. Por último, también sería recomendable editar dicho sonido y aumentar su volumen, de tal manera que, sin necesidad de estar toqueteando en el volumen de cada emulador destaque por encima del fondo musical del juego. Nada más sencillo que abriéndolo con la grabadora de sonidos integrada en Windows, subir el volumen unas cuantas veces y guardar.

image

QUOTE
SetKeyDelay 50
KeyWait 4
Send {5 down}
Send {5 up}

En estas líneas se indica la opción de teclado a ejecutar; la razón de esta necesidad es bien sencilla: al asignar mediante autohotkey una acción a una tecla a botón, este queda inutilizado; por tanto, si el script hubiera sido de esta manera:

QUOTE
5::
SoundPlay C:\Frontend\Coin.wav
return

Lo único que provocaríamos es que al pulsar el botón 5 se escuchara el sonido, pero no lo reconociera. Por tanto, necesitaremos indicarle también que ejecute una acción de teclado; además, estos tienen que ser diferentes (en mi caso 4 es la tecla a automatizar y 5 el resultado), porque si no el programa entraría en un bluce infinito: la tecla 5 ejecuta una acción, que en parte llama a la tecla 5, que ejecuta una acción, que en parte llama a la tecla 5, etc. etc.

En mi caso, como además dispongo de un monedero doble, el script será mas completo, concretamente de esta manera:

QUOTE
SetKeyDelay 50

4::
SoundPlay, C:\Frontend\Coin.wav, wait
KeyWait 4
Send {5 down}
Send {5 up}
return

6::
SoundPlay, C:\Frontend\Coin.wav, wait
KeyWait 6
Send {5 down}
Send {5 up}
Send {5 down}
Send {5 up}
Send {5 down}
Send {5 up}
Return

Asi, mientras que un botón de expulsión (el que corresponde a las 25 pesetas) me facilitaría 1 crédito, el otro (el que corresponde a 50 pesetas) me facilitaría 3 créditos.

Si, además, queremos rizar todavía mas el rizo, podríamos hacer que el sonido de echar monedas fuera aleatorio, es decir, distinto cada vez, para hacerlo mas realista incluso. Este sería el script a implementar:

QUOTE
SetKeyDelay 50
Random, rand, 1, 6

4::
SoundPlay, C:\Frontend\Coin.wav, wait
KeyWait 4
Send {5 down}
Send {5 up}
Random, rand, 1, 6
return

6::
SoundPlay, C:\Frontend\Coin.wav, wait
KeyWait 6
Send {5 down}
Send {5 up}
Send {5 down}
Send {5 up}
Send {5 down}
Send {5 up}
Random, rand, 1, 6
Return

Este script necesitaría que dispusiéramos de 6 sonidos de monedas distintos (coin1.wav, coin2.wav, coin3.wav, coin4.wav, coin5.wav y coin6.wav); o bien que en su lugar modificásemos esta línea en todo el script

QUOTE
Random, rand, 1, 6

Siendo “1” el número del primer archivo (coin1.wav) y 6 el número del último archivo (coin6.wav)

Una vez hayamos personalizado este script daremos un último paso, consistente en convertir el script en un ejecutable, de tal manera que podamos utilizarlo en nuestra máquina recreativa sin que tengamos porque instalar autohotkey. Para ello nos iremos a la carpeta del programa en inicio, y ejecutaremos la aplicación “convert .ahk to .exe”. Nada más sencillo entonces que indicarle la ubicación del archivo origen (en source) la ubicación del ejecutable a crear (en destination) y darle al botón “convert”. También recomiendo activar, dentro de la pestaña “compression”, el parámetro lowest, de manera que autohotkey encripte el programa de la forma mas sencilla posible, y así nos evitemos que se ejecute con lentitud en ordenadores mas antiguos.

image

Por último, y para que no tengamos la necesidad de pulsar en dicho ejecutable, lo automatizaremos para cada vez que se ejecute nuestro frontend favorito. En el caso de mamewah, estas serian las líneas a modificar dentro del archivo “mamewah.ini”

QUOTE
### External Application Settings ###
startup_app_commandlines C:\Frontends\Coin.exe {nowait}
exit_app_commandlines
exit_and_run_app_commandlines

Donde, obviamente, Coin.exe sería el ejecutable facilitado por Autohotkey
Por ultimo, podemos encontrarnos con otro problema, derivado de la versión de M.A.M.E que utilicemos ya que, aunque con el resto de los emuladores de recreativa no tendremos problemas (Zinc, Nebula, etc.) si lo tendremos con M.A.M.E, si es una versión posterior a la 0.117. Todo ello es porque a partir de dicha versión, la función que utiliza M.A.M.E para interpretar las pulsaciones (Rawinput) difiere de las que utiliza en versiones anteriores y que es la que utiliza Autohotkey y el resto de los emuladores (Directinput). Como, obviamente, la opción de cambiar a una versión de mame más antigua no es factible, podemos optar por dos opciones.

La primera: remapear los botones mediante winipac, de manera que al pulsar un botón ejecute dos pulsaciones de teclado, por ejemplo s+5:5 facilitaría la inserción de teclado, y “s” ejecutaría el sonido, mediante este script:

QUOTE
s::
SoundPlay C:\Frontend\Coin.wav
Return

La segunda: compilar una versión de mame personalizada, a la cual le cambiaríamos la función “rawinput” por “directinput” (cuestión que no es motivo de este tutorial), o bien buscar por Internet una versión de M.AM.E ya modificada para tal fin. Así lo hizo el usuario "Jonathan", llamando a dicha modificación “Xpadder Mame-mod” (Xpadder es una aplicación similar a Autohotkey en el sentido de automatizar botones); podéis encontrar una versión reciente de dicha modificación por Internet googleando, o bien dirigiéndoos directamente a esta página:

Xpadder Mame-Mod

Agradecimientos a Dino69, Gonzo90017 y Future
 
Top
0 replies since 18/11/2009, 02:08   2854 views
  Share