Zona Arcade. Construye, Restaura y Decora tu Máquina Arcade y Pinball.

Tutorial: Haz que el botón de créditos de tu recreativa suene como si echases monedas

« Older   Newer »
  Share  
view post Posted on 21/9/2009, 18:49     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,839
Location:
Alcobendas (Madrid)

Status:


Tutorial: Haz que el botón de créditos de tu máquina recreativa o panel de control suene como si echases monedas con "Autohotkeys"

- Introducción

La idea es sencilla, hay que hacer que suene un sonido de “caída de moneda” antes de que el emulador Mame procese la pulsación de crédito, ya que así resulta más real todo y da apariencia de que estemos utilizando un monedero arcade de verdad.

Nota: Antes de empezar, decir que este procedimiento lo he realizado para un mando que va por IPP con dos botones de monedas (Coin 1 y Coin 2). Supongo que para el resto de mandos se podrá realizar de forma similar.

Importante: Solo sirve si MAME esta compilado para funcionar mediante DirectInput, de forma que los programas que mapean el teclado (JoyTokey, Xapdder, etc.) funcionen.

En las versiones actuales de Mame, después de la v. 0.117, está activada la función “RawInput” en vez de la “DirectInput”. Hay que cambiarlo.


- Haz que el botón de créditos de tu máquina recreativa o panel de control suene como si echases monedas

Qué necesitaremos:

- Un sonido de monedas al caer. Yo he empleado este sonido, pero buscando un poco aparecen un montón.

- AutoHotKey, que es libre y lo podemos de su página: www.autohotkey.com


Instalación del programa “AutoHotKey”

No tiene más misterio la instalación de “Autohotkeys”:
image


Simular inserción de moneda

En primer lugar vamos a ir al directorio donde tengamos nuestro mame y vamos a crear un nuevo directorio para tenerlo todo ordenadito. Yo he llamado a la nueva carpeta “coindrop”y ahí he guardado el sonido.

image

Para reproducir el sonido vamos a crear un “script Autohotkey” que realice esta tarea cuando se pulsen los botones de créditos:

Creamos un archivo de texto en nuestro nuevo directorio y copiamos el siguiente código:

Nota: En mi caso los botones de créditos son el “Joy9” y el “Joy10” dentro del Autohotkey.


CODE
SetKeyDelay 50

#IfWinActive ahk_class MAME

Joy9::
SoundPlay CoinIn5.wav
Sleep 1000
KeyWait Joy9
Send {5 down}
Send {5 up}
return

Joy10::
SoundPlay CoinIn5.wav
Sleep 1000
KeyWait Joy10
Send {6 down}
Send {6 up}
return


El funcionamiento del script es muy sencillo, AutoHotkey captura la pulsación de los botones de crédito del mando lanzando el sonido, para a continuación simular la pulsación de la tecla que tengo asignada en MAME para los créditos.

Aunque el archivo de sonido no tiene la ruta completa, es recomendable ponerla porque dependiendo de cómo se lanze el script el sonido puede que no suene (típicos problemas de rutas relativas).

El tiempo de pausa que definimos: “Sleep”, va en función de la longitud de nuestro sonido de monedas.

En este ejemplo el sonido dura algo más de 1 seg. por lo que dejamos una pausa de un segundo para que el crédito se produzca justo cuando se oye la moneda caer en la caja de monedas.

Cerraremos el archivo de texto y cambiamos la extension “txt” por “ahk”, y ya tenemos el directorio listo.

image

Ejecutamos el script de forma que se lanze el AutoHotkey de forma automática.

Para probar la simulación se puede utilizar cualquier editor de texto, pero primero es necesario comentar la primera línea del script que límita el funcionamiento a cuando se esté ejecutando y activa la ventana de MAME. Hay que cambiar:

CODE
#IfWinActive ahk_class MAME


por:

CODE
;#IfWinActive ahk_class MAME


Estará todo correcto si al pulsar cualquiera de las teclas de crédito suena el sonido y aparece el número “5” (tecla por defecto de los créditos de Mame o la tecla que se quiera).


Posibles mejoras del sistema

Una posible mejora a este sistema de monedero simulado es la de crear un programita que ejecute un sonido de moneda de forma aleatoria entre muchos que tengamos almacenados en un directorio concreto. Esto le daría un toque aún más real, ya que ni todas las monedas ni todas las maquinas sonaban igual cuando nos gastábamos los duros en ellas.

Por último, decir que lo suyo hubiera sido integrar esta opción en el código de Mame, pero no he conseguido meterle mano y, luego está el tema del “DirectInput/RawInput” que utiliza el emulador que da para una novela de terror...

¡Espero que os haya gustado el "mod"!


- Por jdpb81 -
Maquetado por: Mikonos

Edited by Mikonos - 25/12/2010, 13:49
 
Web  Top
pikaetas
view post Posted on 21/9/2009, 22:12     +1   -1




Muy interesante. Aún quedan cosas por aprender.

Un saludo.


Edited by pikaetas - 22/9/2009, 00:24
 
Top
view post Posted on 21/9/2009, 22:29     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,839
Location:
Alcobendas (Madrid)

Status:


Observando el tutorial original he visto que el autor ha puesto casi exáctamente la misma línea con un ";" delante. Lo he corregido! Quedo a la espera de si esto es correcto.


Gracias por la nota!


Saludos
 
Web  Top
jdpb81
view post Posted on 21/9/2009, 22:40     +1   -1




QUOTE (Mikonos @ 21/9/2009, 23:29)
Observando el tutorial original he visto que el autor ha puesto casi exáctamente la misma línea con un ";" delante. Lo he corregido! Quedo a la espera de si esto es correcto.


Gracias por la nota!


Saludos

Todo correcto.

El ; es la instrucción que le indica al AutoHotkey que la linea es un comentario y se ignora en la ejecución del script.

Como siempre, una "maqueo" sencillamente fantástico.

Muchas gracias.
 
Top
view post Posted on 21/9/2009, 23:03     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,839
Location:
Alcobendas (Madrid)

Status:


QUOTE
Todo correcto.

El ; es la instrucción que le indica al AutoHotkey que la linea es un comentario y se ignora en la ejecución del script.

Como siempre, una "maqueo" sencillamente fantástico.

Gracias a tí!

Entre todos haremos un espacio aún mejor!


Saludos
 
Web  Top
wilsonwad
view post Posted on 22/9/2009, 07:39     +1   -1




Curioso tutorial, yo prefiero poner un monedero de verdad pero bueno, la simulacion avanza a pasos avanzados.
 
Top
cardet1
view post Posted on 29/9/2009, 18:04     +1   -1




Hey, que bueno!
Me encantaría conseguirlo, pero de momento no lo he conseguido...es lo que tiene cuando uno es lerdo en la materia, je je!
En mi caso el botón de créditos es el 8 segun me marca el JoytoKey, el que se corresponde con el 5 en Mame.

Pues bien, he modificado el script para que en lugar de joy 9 y joy10 como aparece en el ejemplo, la instrucción se refiera al botón 8...de momento sin éxito.

Algun voluntario que me desencalle? Me encantaría obtener este efecto!

Muchas gracias!
 
Top
view post Posted on 29/9/2009, 20:40     +1   -1


Group:
Member
Posts:
1,517
Location:
Valencia

Status:


Ey cardet 11

A mi me pasa lo mismo, no logro que reproduzca el sonido, pero creo que no te tienes que guiar por el boton que te pone en el joytokey, sino en el autohotkey, que en verdad no se como se hace pero creo que es asi.

Si lo consigues me avisas que yo tambien lo estoy intentando sin exito, no se como saber cual es mi boton de credito.

Al guien que nos ayude por favoooorr. jeje

gracias
 
Top
jdpb81
view post Posted on 29/9/2009, 20:58     +1   -1




Id probando ..

Según la documentación del AutoHotkey el primer botón empieza en el 1.

http://www.autohotkey.com/docs/KeyList.htm

Joy1
Joy2
Joy3
...
 
Top
view post Posted on 29/9/2009, 21:05     +1   -1


Group:
Member
Posts:
1,517
Location:
Valencia

Status:


Gracias, pero esque yo utilizo hacks de mandos xbox360 como controles y no se si funcionara de la misma manera.

Pero me parece que el sonido tambien lo tengo mal puesto porque no hace el ruido aunque los aprete todos los botones.

En la fila soundplay del ahk que hay que hacer no habria que poner el nombre del archivo de sonido en vez de lo que pone.

y tiene que estar en wav?

gracias
 
Top
jdpb81
view post Posted on 29/9/2009, 21:16     +1   -1




QUOTE (miliet @ 29/9/2009, 22:05)
Gracias, pero esque yo utilizo hacks de mandos xbox360 como controles y no se si funcionara de la misma manera.

En teoría eso no importa ...

De todas formas veo que no has visto el enlace que he puesto pero hay un hermoso script para testar los joystick en el apartado dedicado a los Joystick:

QUOTE
To help determine the button numbers for your joystick, use this test script

http://www.autohotkey.com/docs/scripts/JoystickTest.htm

QUOTE (miliet @ 29/9/2009, 22:05)
Pero me parece que el sonido tambien lo tengo mal puesto porque no hace el ruido aunque los aprete todos los botones.

En la fila soundplay del ahk que hay que hacer no habria que poner el nombre del archivo de sonido en vez de lo que pone.

y tiene que estar en wav?

gracias

El sonido tiene que estar en un formato de sonido (wav, mp3, etc ...) y si no suena cuando haces doble click sobre él malo, y como has puesto en otro hilo si esta en jpg (formato de imagen) pues peor.
 
Top
view post Posted on 29/9/2009, 22:32     +1   -1


Group:
Member
Posts:
1,517
Location:
Valencia

Status:


No hombre, si que reproduce cuando das doble click.

Acabo de llegar voy a ver si cambiando lo que me has dicho lo soluciono y si no ya te digo.

muchas gracias
 
Top
view post Posted on 29/9/2009, 23:20     +1   -1


Group:
Member
Posts:
1,517
Location:
Valencia

Status:


Yuhu, ya me funciona!!
Pero ahora lo que pasa esque no se como poner que lo haga tambien en un boton del segundo mando, que en la aplicacion que me has dado para saber que boton es, el segundo mando ni lo detecta.

Eso si que ya no se como se hace. jeje

muchas gracias

Ya lo he descubierto muchisimas gracias
 
Top
view post Posted on 29/9/2009, 23:38     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,839
Location:
Alcobendas (Madrid)

Status:


Bueno, nosotros nos alegramos de ello!

:lo quiero:


Saludos
 
Web  Top
jdpb81
view post Posted on 30/9/2009, 09:26     +1   -1




QUOTE (miliet @ 30/9/2009, 00:20)
Yuhu, ya me funciona!!
Pero ahora lo que pasa esque no se como poner que lo haga tambien en un boton del segundo mando, que en la aplicacion que me has dado para saber que boton es, el segundo mando ni lo detecta.

Eso si que ya no se como se hace. jeje

muchas gracias

Ya lo he descubierto muchisimas gracias

Lo suyo es que pongas aquí el script que has hecho por si alguien le sirve y ya de paso vemos lo que se puede hacer con el segundo mando.
 
Top
35 replies since 21/9/2009, 18:49   3932 views
  Share