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

Tutorial: Salvapantallas de juegos en movimiento en el front-end MALA con “Autohotkeys"

« Older   Newer »
  Share  
view post Posted on 3/10/2009, 17:19     +1   -1
Avatar

Restless in Peace

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

Status:


Tutorial: Salvapantallas de juegos en movimiento en el front-end MALA y el programa “Autohotkeys”

- Introducción

Hay veces en los que no te sale nada y no haces más que perder el tiempo y otras que parece que tienes el santo de cara. El caso es que le otro día, mientras me desperezaba en la cama pensé en lo chulo que sería el que el MAME pudiera lanzar juegos de forma aleatoria. De hecho, no se vosotros, pero a mí a menudo me gusta dejar la máquina de juegos con algún titulo rulando en lo que se llama “attract mode”. No hay nada como eso para dar ambiente y decoración a una habitación.

Propuse la idea en el foro de MaLa, ya que este frontend no trae opción para tal menester. Luego estuve investigando y encontré un par de MAME screensavers. Interesantes y funcionales, pero con un gravísimo defecto, esos salvapantallas no pueden saber si tengo mi pantalla dispuesta en horizontal o vertical. En MaLa tengo dos layouts gemelos, uno para cada orientación, intercambio entre ellos con tan solo pulsar un botón del panel de control. Cada layout lleva su lista de juegos con los títulos de cada tipo de orientación. No me vale que el salvapantallas lance juegos sin tener esto en cuenta.

Entonces pense en las posibilidades de los programas de automatización. Ya comprobé la inestimable utilidad de estos programas cuando hice lo del intercambio de cursores. Empecé con el “AutoIt”, hasta que llegué a un punto en el que la cosa no funcionaba (no me extenderé en detalles para no aburrir). Entonces se me ocurrió probar el “AutoHotKey”, una herramienta casi clónica de la anterior. En unas pocas horas, después de probar, de leer la ayuda, de mirar ejemplos y de seguir probando, por fin lo tenía. Soy un negado para la programacion, incluso para las cosas mas básicas, pero también soy bastante cabezón.


- Salvapantallas de juegos en funcionamiento en el front-end MALA y "Autohotkeys"

Bien, el caso es que ya lo tengo funcionando a las mil maravillas. Lo he incluido en mi MaLa Layout. Para descargarlo pinchad en esta dirección:

Link de descarga original: http://www.alvarezeninternet.com/malalayout/

Link de descarga alternativa: stormrider_mala_layout.zip (6.19 MB)

QUOTE
- Designed for 15 KHz low res monitors and TVs
- 320x240 non-interlaced screen resolution
- No more flickering in your frontend
- Enjoy real scanlines and gorgeous arcade display
- Dual setup for horizontal and vertical orientation
- Plenty of information in just one screen
- All functions accesible with your control panel
- Easy to use
- Custom screens, sounds, etc.
- Optional random game screensaver
- Optional coin drop effect with random sounds
- Optional auto-rotation features (with USB sensor)
- Help file included (INSTRUCTIONS.TXT)
- PSD files, fonts, icons, source code... all included
- AND ALSO: Windows XP hidden boot guide, with tools

Os lo bajais y si no os interesa el resto lo borráis. Solo necesitáis los ficheros contenidos en la carpeta “random game screensaver”. Ahí tenéis una serie de ficheros “scr”, que son el mismo salvapantallas, pero con distintos tiempos de duración de muestra del juego.

Los screensavers se instalan como cualquier otro, copiando los “scr” a “ windowssystem32” Botón derecho en el escritorio y elegís el que queráis y el tiempo de activación. Luego en MaLa, entráis en las opciones del menú (barra espaciadora o botón derecho del ratón, o como lo tengáis configurado) y en “GUI, screensaver”, desactiváis el screensaver interno de MaLa, si es que lo tenéis. En mi Layout es un simple y funcional slideshow de imágenes mostrando un mensaje en una pantalla oscura.

Dejáis el Mala inactivo y al cabo del tiempo que le hayáis puesto, salta el screensaver y se ejecuta el script. Primero se presiona mayúscula derecha, con lo que se elige un juego al azar de la lista actual; luego “enter”, con lo que se carga MAME.

Nota: Es importante que tengáis estas teclas configuradas de ese modo en la configuración de “controller, keyboard, basic y advanced”, en “random game” y “start game”, de otro modo la cosa no funcionara. Eso, en cualquier caso, no tiene porqué interferir en la configuración de vuestro panel de control arcade.

Una vez MAME carga el juego, este funciona durante 1 minuto, 2, 5 ó 10, según lo que hayáis elegido. Pasado ese tiempo, sale automáticamente de MAME y se repite el proceso, así hasta el infinito y mas allá.

Lo bueno del tema también está en que, mientras el juego esta mostrándose, podéis tocar cualquier botón y el script se interrumpe de forma transparente, y, entonces, bien seguir dejando correr el juego en “attract mode”, bien salir del juego y seguir manejando MaLa o bien empezar a jugar.

Otra función interesante que he añadido es la de que el script no funcione igual cuando MaLa no está cargado, de manera que si estamos en el escritorio de Windows haciendo cualquier otra cosa, el script pasa a activar el salvapantallas clásico de Windows de la pantalla vacía.

También van incluidos en la carpeta “random game screensaversource” los ficheros “.ahk” del código fuente y el icono. El programa lo podéis bajar de http://www.autohotkey.com/ y viene con su compilador. Ya sabéis que los “exes” se pueden convertir en salvapantallas con sólo renombrarlos, así podéis vosotros mismos modificarlo por alguna necesidad concreta, sobre todo por el tema de como podáis tener la configuración de los mandos.

En fin, aquí lo he estado probando con mi layout y va fenomenal. Como comentaba en el foro de MaLa, era una necesidad simple para la que busqué una solución igual de simple. Espero que si hay que hacer algún arreglo, sea igual de simple. Estas cosas las suelo hacer para mi uso personal, pero si veo que la gente puede sacarle provecho, me gusta compartirlas. Bueno, aquí os pongo el código y las explicaciones.


Características:

El programa detecta las pulsaciones de teclado, botones y movimientos de los eje del joystick como controles que interrumpieran la cuenta atrás hacia el arranque del salvapantallas. Se ha añadido un fragmento (countdown:) en el que, al saltar el script de forma transparente y sin que notemos nada, se empieza a escuchar los ejes del joystick. Si en ese periodo se mueven, se cancela el script y lógicamente se restaura la cuenta hacia el salvapantallas. El único inconveniente del tema es que si ponemos en Windows 3 minutos de espera para el salvapantallas, en realidad van a ser 4, ya que a los 3 salta el script (nosotros no notamos nada), pero en ese momento añade un minuto durante el cual el movimiento del stick cancela la activación.

Otra característica es que este salvapantalla de los juegos en funcionamiento de Mame se le ha puesto en modo “mute”. Si se desea que el salvapantallas tenga sonido se ha de modificar el script.

CODE
#NoTrayIcon

IfWinExist MaLa ahk_class TfrmMain
goto countdown
else
goto nomala

#Persistent
countdown:
WinActivate MaLa ahk_class TfrmMain
SetTimer, WatchAxis, 50
BeginTime := A_TickCount
WatchAxis:
GetKeyState, JoyX, JoyX
GetKeyState, JoyY, JoyY

if JoyX > 70
ExitApp
else if JoyX < 30
ExitApp
else if JoyY > 70
ExitApp
else if JoyY < 30
ExitApp

If (A_TickCount - BeginTime) > 60000
{
SetTimer, WatchAxis, off
SetTimer, mala, -1
}

return

mala:
Loop, 15
{
WinActivate MaLa ahk_class TfrmMain
sleep 800
send {RShift}
sleep 200
send {Enter}
sleep 120000
IfWinExist MAME ahk_class MAME
WinClose MAME
IfWinExist M.U.G.E.N
goto mugen
}

mugen:
sleep 20
sleep 60000
IfWinExist M.U.G.E.N
send {Esc}
sleep 40
IfWinExist M.U.G.E.N
send {Esc}
ExitApp



~Joy1::
~Joy2::
~Joy3::
~Joy4::
~Joy5::
~Joy6::
~Joy7::
~Joy8::
~Joy9::
~Joy10::
~1::
~5::
~Space::
~Tab::
~LControl::
~Rcontrol::
~LAlt::
~RAlt::
~a::
~s::
~d::
~ESC::
~Enter::
~Lbutton::
~Up::
ExitApp

nomala:
run scrnsave.scr /s
settimer, close, 2000000
mousegetpos, x, y
cx = %¬x%
cy = %¬y%
close:
mousegetpos, x, y
if (x!=cx or y!=cy)
ExitApp



- Limitaciones e incidencias del salvapantallas de animado de MALA (Los bugs)

En esta versión silenciosa, el emulador “Mugen” no reactiva el sonido al empezar a jugar. No es nada grave, son salir y volver a cargarlo desde el MaLa arreglado. Ademas, casi nadie tiene un mugen en el MaLa y las posibilidades de que se cargue entre miles de roms son mínimas. Es un mal muy menor.

Hay un retardo de unos 6 segundos o así desde el momento en el que se pulsa un botón en el joystick y se termina la ejecución del script. En realidad, nunca vamos a apreciar eso, pero significa que si pulsamos insertar moneda o cualquier otro botón justo en esos 6 segundos antes de que el script vaya a terminar la demo de un juego, el script saldrá a MaLa igualmente para seguir su ejecución. El sonido también tardará unos segundos en reactivarse. De nuevo, es un caso muy rebuscado y difícilmente se va a dar. Lo curioso es que si se interrumpe el script con una tecla del teclado en vez de con un botón del joystick no hay ese retardo.

Si hay una rom en Mame o cualquier otro emulador incorrecta y no se carga, se vuelve al menú de MaLa. Eso es normal. Lo único que en nuestra versión silenciosa el sonido se queda silenciado hasta que salta de nuevo el salvapantallas. Este bug es algo rebuscado, porque se supone que tenemos la colección de roms bien.

Al instalar la versión silenciosa te puede silenciar el sonido de Windows porque salta la previa del salvapantallas. Es cuestión de mirar el “mixer” después de instalarla.


- Anéxo: Vídeo demostrativo del skin de MALA Low Res





- Por Elaphe666 -

Edited by Mikonos - 10/10/2009, 12:34
 
Web  Top
0 replies since 3/10/2009, 17:19   1641 views
  Share