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

Tutorial: Cómo adaptar los controles de Spectrum a un panel de control arcade

« Older   Newer »
  Share  
view post Posted on 24/3/2015, 11:42     +1   -1


Group:
Moderator
Posts:
4,615
Location:
Murcia

Status:


Desde que empecé con el tema del ocio arcade quise tener una máquina recreativa en casa, y tenía bien claro que el sistema que quería incluir sí o sí era Spectrum. ¿El problema? Los controles de los juegos para adaptarlos a un panel de control con palancas y botones.

Como muchos sabéis los juegos en Spectrum no tenían ningún estándar que se pudiera usar para todos ellos, así cada uno usaba una configuración distinta, haciendo casi el uso total de todo el teclado del pequeño ordenador de Sinclair.
Así que la tarea se proponía algo ardua y complicada.

Tras analizar los controles de unos 350 juegos, llegué a la conclusión de que había dos maneras de asignar controles a la mayoría de ellos. La primera, mediante el esquema de control del interface Sinclair II, y la segunda mediante la creación individual de esquema de controles para juegos que no permiten Sinclair II, ni la redefinición de teclas.

Aún con estas, tenía el problema de que algunos juegos necesitan la pulsación de una tecla concreta en un momento determinado para poder empezar a jugar o para poder continuar la partida, por lo que necesitaba poder adaptar un teclado virtual a nuestro emulador para poder pulsar esa tecla maldita y poder disfrutar de la experiencia con nuestro Spectrum al 100%.

Todo esto lo vamos a hacer usando Hyperspin como frontend, modificando el módulo del emulador para hacerlo de un modo totalmente automatizado y con el emulador EmuZWin que es el único que he conseguido hacer funcionar de esta manera.

Así que este tutorial se va a dividir en tres partes:

1º - La creación de diferentes configuraciones con JoyToKey para nuestros juegos de Spectrum

2º - Implementar un teclado virtual al emulador accesible desde el panel de control.

3º - Modificar el módulo de Hyperspin para lanzarlo todo automáticamente.


1ª Parte - Creación de distintas configuraciones con JoyToKey

Para empezar descargamos JoyToKey, el programa que nos va a ayudar a convertir nuestras palancas y botones del panel de control en teclas para asignarlas a las del emulador.

DESCARGAR JOYTOKEY 3.7.9



Este programa no necesita instalación, con descomprimir en cualquier directorio y ejecutar el programa es suficiente. Para tenerlo todo bien ordenado, creamos una carpeta vacía dentro del directorio de nuestro emulador, la llamaremos Joytokey.

carpetasemu



Dentro de esta carpeta es donde vamos a ir creando las distintas configuraciones para los distintos juegos que las necesiten. La primera configuración que vamos a crear la llamaremos Default, y es ni mas ni menos que la que usarán casi todos los juegos. Este es el esquema de asignación de teclas que vamos a usar para un panel de control con 2 palancas, 6 botones de acción, 4 de servicio y 2 de Pinball (éstos últimos son accesorios).

asignacionteclas



Es importante dejar vacíos dos botones, uno de ellos lo usaremos más adelante para abrir el teclado, y el otro para pulsar una tecla virtual de este. Si asignamos teclas a estos dos botones, no funcionará correctamente y puede crearnos conflictos a la hora de usar el teclado.

Una vez creada la carpeta Default, descomprimimos dentro los archivos del programa JoyToKey. Ejecutamos el programa y lo vamos configurando pulsando en cada dirección o botón y pulsando en el teclado la tecla correspondiente. Muy fácil e intuitivo. Esto lo haremos con los dos jugadores, y una vez terminada la configuración cerraremos el programa y ésta se guardará.

joytokey1



joytokey2



Ya tenemos listos los controles para el 90% de nuestros juegos. Por lo que queda crear uno por uno los controles para aquellos juegos que no permitan el interface Sinclair II o el redefinir teclas. Operaremos de la misma manera que para el Default, creamos una carpeta por juego, copiamos los archivos del programa JoyToKey, y lo configuramos a la necesidad del juego. No os olvidéis de poner la tecla que tengáis asignada para salir del emulador en el botón correspondiente!!! jejejeje...

carpetasjoytokey



Bien pues con esto ya tenemos configurados los controles para todos nuestros juegos de Spectrum, pero todavía nos queda el teclado y lanzarlo todo desde Hyperlaunch en nuestro Hyperspin, no??? Pues sí, esto es lo que vamos a hacer en los siguientes pasos del tutorial.

2ª parte - Implementar un teclado virtual

Esta es la parte que más problemas y comeduras de cabeza me ha dado, sin duda. Le di muchas vueltas, busqué y probé muchos teclados virtuales hasta que encontré lo que necesitaba: Keyboard Plus Plus.

Este programa se encarga por sí solo, de salir de pantalla completa del emulador, mostrar un teclado virtual de Spectrum y poder moverse por las teclas del mismo con la palanca y pulsar una tecla con un botón del panel de control o joystick. Es justo lo que necesitamos!!! Vamos a por él!!!

Os dejo un link con la descarga del programa con una pequeña modificación que he hecho, ya que la imagen por defecto que usaba para mostrar el teclado no me gustaba demasiado, no tenía mucha calidad y se veía regular, así que he creado una imagen partiendo de la que lleva que se mucho mejor y es más cómoda de usar.

DESCARGAR KEYBOARD PLUS PLUS MODIFICADO



Este programa tampoco hace falta instalarlo, con descomprimir y ejecutar es suficiente. Por lo que vamos a crear una carpeta dentro del directorio general de nuestro emulador, que llamaremos Kpp, y dentro meteremos todos los archivos del programa. Una vez hecho esto, ejecutamos el programa y loo configuramos así:

KPPmenu



Guardamos los cambios y listo, ya lo tenemos. Podemos comprobar que funciona ejecutándolo y dejándolo en segundo plano, después abrimos el emulador de Spectrum, lanzamos un juego a pantalla completa y pulsamos el botón para mostrar el teclado, comprobamos también que se pulse alguna tecla, volvemos a cerrar el teclado y comprobamos que le emulador sigue funcionando a pantalla completa. Perfecto, ya casi lo tenemos.

3ª parte - Modificación del módulo para automatizarlo todo

Una vez comprobado que todo funciona, emulador, juegos, controles y teclado virtual, ahora nos disponemos a configurar el módulo para añadir todo lo que hemos creado.

Modulo1



Abrimos el módulo dentro de la carpeta Modules de Hyperspin con el bloc de notas, por ejemplo. Aquí tenemos que añadir varias líneas. Si tenemos algún JoyToKey funcionando tenemos que cerrarlo para no crear conflicto en la asignación de teclas. Para eso añadimos una línea al principio del módulo (después de la descripción si la tiene). La línea dirá lo siguiente:

Process, Close, JoyToKey.exe

Siendo JoyToKey el nombre del ejecutable, si no lo habéis cambiado por otro. Si es así, poned el nombre que hayáis usado.

Ahora toca añadir nuestro Default, este se abrirá siempre al iniciar el módulo, pero también se cerrará si encuentra algún juego con una configuración específica. También vamos a añadir el teclado virtual. Por lo que insertaremos estas dos líneas en el módulo, justo debajo de la anterior si la hemos creado:

Run, .\Emulators\ZX Spectrum\Joytokey\Default\JoyToKey.exe
Run, .\Emulators\ZX Spectrum\Kpp\Kpp.exe


Aseguraros que la ruta hacia el emulador es la correcta, poned la que tengáis vosotros.

Bien, con esto ya tenemos funcionando nuestro default y nuestro teclado cada vez que lanzamos un juego. Pero que pasa si queremos jugar a un juego con una configuración específica del teclado??? Pues entonces lo que tendremos que hacer es ir añadiendo una cadena de texto como la siguiente para cada uno de ellos seguidamente de las dos instrucciones que acabamos de escribir:

If ( romName = "nombredeljuego")
{
Process, Close, JoyToKey.exe
Run, ".\Emulators\Zx Spectrum\Joytokey\nombredeljuego\JoyToKey.exe"
}


Iremos añadiendo esta cadena una detrás de otra hasta tener todos los juegos con sus controles asignados. Al final de la cadena, justo antes de lanzar el juego, debemos añadir una pequeña línea con una pausa, ya que a veces si no se nos puede quedar trabado el emulador, así nos aseguramos que todo funcione perfectamente. La instrucción es la siguiente:

Sleep, 1000

Y ya solo nos queda cerrar todo esto para volver a Hyperspin. Para ello, añadimos estas líneas en el apartado destinado a ello:

Process, Close, JoyToKey.exe
Process, Close, Kbb.exe
Run, .\rutadeljoytokeyprincipaldevuestrohyperspin\JoyToKey.exe


Modulo2



En la última línea añadir el directorio que uséis para vuestro JoyToKey si es que tenéis uno para manejar vuestro Hyperspin, claro. Si no, esta línea la podéis omitir.

Bueno, pues ya está todo!!! Si no hemos cometido algún error, debería funcionar a la perfección. Al pulsar el botón asignado del panel dentro de un juego, el emulador saldrá de pantalla completa, se mostrará el teclado y podrás elegir tecla o teclas para ser pulsadas, y volver al juego a pantalla completa pulsando de nuevo el botón asignado.

pantallazo



Espero que os sirva de ayuda como me ha servido a mí para tener mi Spectrum como se merece y poder jugar a la mayoría de sus juegos desde un panel de control arcade.

Suerte con las configuraciones compis!!! Un saludo!!!
 
Top
view post Posted on 25/3/2015, 13:14     +1   -1
Avatar

Restless in Peace

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

Status:


Muy bueno, compa! :rolleyes:

Te lo recopilo para los documentos terminados y te lo anuncio con con todo lo que ello conlleva: circular, subforo de noticias, tablón, grupos de noticias de facebook y twitter, mensajero, etc.?


Saludos
 
Web  Top
view post Posted on 25/3/2015, 21:56     +1   -1


Group:
Moderator
Posts:
4,615
Location:
Murcia

Status:


Por supuesto Mik!!! Un nuevo documento para el mejor foro de la red!!! Creo que no hay un tutorial como este por internet, o por lo menos yo no lo conozco... Un saludo!!!
 
Top
view post Posted on 25/3/2015, 22:18     +1   -1
Avatar

Restless in Peace

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

Status:


Genial, compa!


Me pongo manos a la obra y, si no mañana, pasado, está publicado! ^_^


QUOTE
Por supuesto Mik!!! Un nuevo documento para el mejor foro de la red!!!

y con la mejor gente! :rolleyes:




Saludos
 
Web  Top
dionix
view post Posted on 9/4/2015, 17:47     +1   -1




Buenas ,

Este tutorial me viene perfecto para algunos de los emuladores que tengo como el Amiga donde tengo varios juegos que llevan distintos controles y podía jugarlos fuera del hyperspin .. pero claro me gustaría poder jugarlos dentro del hyperspin.

El teclado virtual no lo voy a implementar , y las diferentes configuraciones de teclas las hago con el xpadder , asi que he copiado las instrucciones que habéis puesto en el modulo de espectrum y lo he implementado al de mio de Amiga pero no me funciona .. no me coje las teclas en los juegos que quiero .

Os pongo aquí el modulo que he puesto por si alguien me puede ayudar y ve algún error.


;----------------------------------------------------------------------------
; Commodore Amiga
; WinUAE 2.3.3
; by djvj
; 1.0
;
; Info:
; You can configure WinUAE from the built-in GUI or use another loader that makes things a bit simpler
; To configure WinUAE settings using WinUAE Loader v1.72 or later
; Paths->WinUAE Exe->WinUAE Exe should point to your winuae.exe
; Paths->Rom Folders->WHDLoad should point to your roms dir
; Input->Exit Options->Global Exit Key should be 27 (if you use ESC). Check "Force WHDLoad Close" and set "Close Timeout" to 0 for the fastest exit
; Settings->Display Options set Full Screen and all the check boxes
;
; Don't forget to open WinUAE directly and goto Paths and set your System ROMs dir. WinAUE will scan all your roms and enable what it finds
;
; Set emupath to your WinUAELoader dir and the exe to WinUAELoader.exe
; Script modificado por "GREGOGAME" para cargar con pantalla de espera
;----------------------------------------------------------------------------


If ( romName = "North&South_v1.5_2397")
{

Run c:\xpadder\xpadder.exe nada amiga1 amiga2
WinMinimize

}

If ( romName = "spy_vs_spy ")
{

Run c:\xpadder\xpadder.exe nada spy1 spy2
WinMinimize

}
sleep, 1000

RunWait, %executable% -mode whdload -game "%­romPath%%­romName%%­romExtension%" , %emuPath%


ExitApp

CloseProcess:
Process, close, %executable%
Run c:\xpadder\xpadder.exe nada hyper nada
return
 
Top
4 replies since 24/3/2015, 11:42   384 views
  Share