Aquí tenéis el tuto en inglés por si le interesara a alguien.
AllInOneFYCHabrá mucha gente que ahora vez algún que otro post con versiones nuevas de AllInOneFYC pero realmente no sepa que narices hace o es el programa. Esto es debido a que realmente no existe un tutorial/libro del programa sino muchos posts en el que he puesto ejemplos de como hacer determinas cosas pero a lo mejor falta explicar la finalidad del programa, el qué y el cómo puedo hacerlo.
AllInOneFYC sería un Todo en uno para tu recreativa.
Partiendo de ahí, quise hacer un programa con que se pudieran hacer cosas que hacían otros programas pero abarcando más posibilidades.
Principalmente lo que el programa es capaz de hacer son tres cosas:
+ Remapear.
+ Lanzar programas/procesos.
+ Matar programas/procesos.
+ Algún extra o añadido que he ido metiendo sobre la marcha como controlar el sonido del PC, o cambiar resolución de Windows.El programa podría ser controlado con teclas pero su potencia o finalidad real está enfocada a ser utilizada con una recreativa usando un panel de control. De ahí el FYC del nombre (For your cabinet).
El paquete AllInOneFYC viene principalmente con dos ficheros:
AllInOneFYC.exe
AllInOneFYC.iniEl primero es el ejecutable y el segundo el fichero ini del que coge la información y actua o funciona en consecuencia.
Nota sobre el fichero ini:Se ha traducido el frontend del programa para la configuración del fichero ini pero no el contenido del mismo por lo que es altamente recomendable modificar el ini SOLO a traves de AllInOneFYC.Podría venir con un par de ficheros más usados para poder convertir el programa como un servicio de windows; estos ficheros serían
instsrv.exe y
srvany.exe.
Si lanzamos el programa
AllInOneFYC.exe bien haciendo doble click o desde línea de comandos, el programa buscará en el mismo directorio el fichero
AllInOneFYC.ini y de ahí leerá la configuración.
Igualmente, podremos ejecutar el programa pasándole como primer parámetro un fichero ini distinto, por ejemplo:
AllInOneFYC.exe manicminer.ini
Este fichero manicminer.ini serviría para tener la configuración específica para el juego ManicMiner cuando usemos el emulador de Spectrum y así para cada juego.
Antes de nada vamos a comentar que en el fichero ini hay una variable que se llama
ProgramMode. Esta variable determinará el modo de funcionamiento del programa dependiendo del valor que tenga dicha variable que podrán ser:
NORMAL
CONFIG
TESTSi contiene el valor
NORMAL AllInOneFYC se ejecutará de forma normal.
Si contiene el valor
CONFIG AllInOneFYC entrará en modo configuración y podremos de forma visual configurar el fichero ini.
Si contiene el valor
TEST AllInOneFYC entrará en modo detección de botones de nuestro panel de control (sólo será necesario para detectar botones de joystick ya que si usamos IPAC o simlares serían teclas).
Como recomendación, os diría que no se tocase este parámetro dejándolo en
NORMAL y usáramos la segunda alternativa para entrar tanto en modo
CONFIG como en el modo
TEST.
La alternativa sería lanzarlo desde línea de comandos añadiendo sendas palabras (una u otra) como parámetro:
AllInOneFYC.exe CONFIG
independientemente del valor que haya en el fichero AllInOneFYC.ini entraría en modo configuración.
Igualmente, si ejecutamos
AllInOneFYC.exe TEST
entraría en modo detección de botones haciendo caso omiso a la variable
ProgramMode del fichero ini.
Otra forma mucho más visual sería crearnos dos accesos directos en Windows (botón derecho del ratón sobre el icono de AllInOneFYC.exe) al que llamaríamos por ejemplo,
AllInOneFYC Config y
AllInOneFYC Test.
Editaríamos luego las propiedades y en
Destino detrás del nombre del ejecutable escribiríamos las palabras
CONFIG y
TEST cada una en su correspondiente Acceso Directo y a continuación del nombre de AllInOneFYC.exe dejando un espacion en blanco en medio.
En este momento podríamos hacer doble click de ratón de forma rápida para entrar tanto en un modo como en otro sin tener que modificar el fichero ini en ese sentido; es lo más práctico,rápido y menos lioso.
Aquí dejo video de los distintos modos de programa que tiene AllInOneFYC
A continuación, vamos a entrar en modo
CONFIG para ir viendo lo que podríamos configurar. Lanzamos
AllInOneFYC de cualquiera de las formas vistas anteriormente para entrar en modo configuración, preferiblemente la del acceso directo.
Lo primero que veremos sería una pantalla parecida a esta:
Lo primero que podemos ver es que está dividido en pestañas.
Tenemos dos botones (en principio, ya pondremos alguno más) uno para salir guardando los cambios y otro para salir sin guardar cambios, osea
Save y
Exit respectivamente.
Aparecemos con la primera pestaña seleccionada que es la pestaña llamada
General.
En ella podemos ver que tenemos varios parámetros que serían los siguientes.
GeneralPausaInicialEn esta variable pondremos un número en milisegundos y que será la pausa que hará el programa tras haber sido lanzado antes de empezar a funcionar.
ProgramModeYa hemos explicado anteriormente para que sirve y sus posibles valores al igual que sería recomendable dejarla siempre con el valor
NORMAL.
LanguageEsta variable sólo podrá contener dos letras como valores o bien una
E para poner el idioma en inglés o bien una
S para ponerlo en español.
Hay que recordar que el lenguaje en principio sólo será para el frontend y para los mensajes que muestre el programa pero no para el fichero ini.RepeatEsta variable sólo podrá contener los valores 0 o 1. Si contiene el valor 1 quiere decir que si remapeamos por ejemplo la letra K a la A, es decir, queremos que cuando pulsemos la letra K se pulse una letra A, si el valor es 1 es como si se pulsaran las dos. Si tuviéramos el notepad abierto se escribiría una K seguida de una A. Sin embargo si la variable contiene un 0, entonces la K no se escribiría y sólo se escribiría una letra A.
HideMouseEsta variable podrá contener los valores SI o NO (o en inglés YES) de forma que si le ponemos el valor YES ocultará el cursor del ratón recuperándolo al volver a poner un YES
(pendiente de check)JoyModeEsta variable podrá contener los valores NORMAL o EXTRA.
(Pendiente de definir)Se han añadido en la columna de la derecha todos los nombres de todas las pestañas que tiene el programa de forma que aparecen en
verde las que están activas y en
rojo las que están desactivadas de forma que sea más fácil ver que tenemos definido y que no.
Para esta pestaña creo que no hacen falta ejemplos ya que más o menos ha quedado todo explicado, no obstante si alguien tiene alguna duda solo tiene que comentarlo.
A continuación vamos a pasar a la siguiente pestaña
RemapeoTeclas o
KeysRemap si lo tenemos en inglés.
En esta sección podremos realizar un remapeo simple de una o dos teclas o uno o dos botones.Es decir, que pulsamos la tecla definida o
teclaspararemapear (aquí valdrían botones) y las que se pulsen serán las que definamos en
TeclaRemapeadas (aquí sólo valen teclas y no botones).
Una visión de esta pestaña sería la siguiente (vista actual versión 1.070):
RemapeoTeclasAhora en la versión 1.070 como se puede ver en la foto anterior tendremos la posibilidad de configurar 3 combinaciones dobles para el remapeo.
ActivarRemapeoTeclasEsta variable sirve como ya veremos en la mayoría de las secciones para activar la sección en la que nos encontremos. En este caso la sección de RemapeoTeclas. Deberá contener el valor SI, NO o dejarla en blanco que sería el equivalente al NO. En el pantallazo de ejemplo podemos ver que la sección no estaría activa.
TeclaParaRemapear1En esta variable podemos definir una tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc.
TeclaParaRemapear2En esta variable podemos definir una segunda tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc. En caso de definir esta segunda variable se deberían pulsar al mismo tiempo lo que definamos en variable 1 y en esta variable.
Ambas variables anteriores son opcionales; es decir, no tienen porqué definirse y en caso de no definirse nada se remapearía, es decir, se produciría la pulsación de lo que definamos en la siguiente variable
TeclaRemapeada.
TeclaRemapeadaEn esta variable definiremos la tecla o combinación de teclas que realmente serían remapeadas cuando se pulsaran las definidas en las variables
TeclaParaRemapear1 y
2. Al decir remapeadas y no pulsadas nos referimos a que realmente se pulsan las definidas en las variables
TeclaParaRemapear1 y
2 pero el efecto final es como si pulsásemos la definida en esta variable.
Aquí podríamos definir varios valores, por ejemplo:
!{F1}{F4}{F5}
PausaAntesRemapearEn esta variable podremos poner un valor numérico que definirá en milisegundos el tiempo de pausa que se detendrá AllInOneFYC antes de remapear la tecla definida.
ExitAfterRemapEsta variable podrá contener el valor SI o NO y lo que hará es que en el caso de contener el valor SI, AllInOneFYC se cerrará una vez realizado el remapeo.
Nota:Ahora con la versión 1.070 que se han añadido tres combinaciones de remapeo tendremos que tener en cuenta que si en cualquiera de las 3 combinaciones ponemos su ExitAfterRemap a
SI, el programa se cerrará. Podemos ponerlas todas a SI, si queremos pero con la primera que se lanze AllInOneFYC se cerrará.
Ejemplos RemapeoTeclas1.-Un ejemplo podría ser el emulador
Fusion. Para salir de este emulador tenemos que pulsar la combinación de teclas
Alt+F4Imaginemos que el botón que queremos usar para cerrar el emulador es el
1joy7. Configuraríamos AllInOneFYC.ini así
donde podemos apreciar que hemos activado la sección, definido
1joy7 como botón a pulsar de forma que cuando pulsemos dicho botón el resultado será pulsar
Alt+F4.
2.- Imaginemos un segundo ejemplo de un emulador X que no hay manera de lanzarlo en modo fullscreen. Para ponerlo en modo fullscreen es necesario pulsar la combinación de teclas
Alt+Enter.
Este problema podríamos verlo de dos formas distintas, una sería resolverlo como en el ejemplo anterior que sería pulsando el botón que quisiéramos de nuestro panel de control.
Otra forma sería no definir ningún botón a pulsar de forma que AllInOneFYC esperaría el tiempo definido en la variable
PauseBeforeRemap y luego remapearía de forma automática las teclas a remapear.
Como podemos ver en este último ejemplo, hemos activado la sección. No hemos definido ninguna tecla o botón a pulsar y hemos definido
Alt+Enter. Dichas teclas serán remapeadas transcurridos 3 segundos.
En ambos ejemplos la variable
ExitAfterRemap contiene el valor
YES por lo que una vez remapeada AllInOneFYC se cerrará.
3.- En un foro extranjero un usuario que trabaja con un IPAC quería remapear su
botón número 1 que actualmente trabaja como si fuera la tecla
Shift, de forma que cuando lo pulse sea la tecla
ALT.
Yo la verdad es que nunca he trabajado con un IPAC pero supongo que configurándolo de la siguiente forma debería funcionar ...
4.- En el emulador Kega Fusion no se puede asignar un botón para cerrarlo sino que hay que pulsar la combinación de teclas Alt+F4 (!{F4} sería en AllInOneFYC) desde el teclado de nuestro PC, así que os dejo video de como configurar AllInOneFYC para cerrar dicho emulador usando 2 botones de un gamepad (por supuesto, podrían ser dos botones de vuestra recreativa).
Si alguien tiene uno y puede probarlo y comentar, agradecido quedaremos ...
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++MatarProcesosEn esta sección podremos definir hasta 8 procesos que podrán ser matados cuando pulsemos las teclas o botones que configuremos en las variables correspondientes o si las dejamos en blanco se matarán los procesos una vez pasado el tiempo de espera definido.
Una vista de esta sección sería la siguiente:
ActivateKillProcessesEsta variable sirve para activar esta sección. Deberá contener el valor SI o NO.
KeyToKill1En esta variable podemos definir una tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc para matar los procesos que definamos.
KeyToKill2En esta variable podemos definir una segunda tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc para matar los procesos que definamos.
En caso de definir esta segunda variable se deberían pulsar al mismo tiempo lo que definamos en variable 1 y en esta variable para matar a los procesos.
Ambas variables anteriores son opcionales; es decir, no tienen porqué asignarsele un valor y en caso de no definirse nada se matarían los procesos definidos en las siguientes variables una vez transcurrido el tiempo que se estipule en
PauseAKillProcess.
ProcessToKill1
ProcessToKill2
ProcessToKill3
ProcessToKill4
ProcessToKill5
ProcessToKill6
ProcessToKill7
ProcessToKill8En cada una de estas variables podremos definir un proceso (un proceso en cada variable) que serían los procesos a matar bien mediante la pulsación de las teclas o botones definidos o bien tras la pausa correspondiente.
PauseAKillProcessValor numérico expresado en milisegundos que corresponderán con la pausa que
AllInOneFYC hará antes de matar a los procesos definidos.
QuitAfterKillingProcessEsta variable podrá contener el valor
SI o
NO. En caso de contener el valor
SI, una vez matado los procesos
AllInOneFYC se cerrará.
Ejemplos MatarProcesos1.- Como primer ejemplo puede valer el pantallazo anterior donde podemos ver que hemos activado la sección. Hemos seleccionado el proceso
notepad.exe como único proceso a matar y sin definir ninguna tecla o botón para ello así que en este caso
AllInOneFYC esperará
2 segundos antes de matar el proceso
notepad.exe2.- Como segundo ejemplo podría valer este
link en el que configuramos el juego
Maldita Castilla.exeEn definitiva se trata de que tenemos un juego en este caso cuyo proceso es el mismo nombre del juego, ose
Maldita Castilla.exe y en el que deseamos matar dicho proceso cuando pulsemos el botón 7 de nuestro joystick 1 (
1joy7).
Para ello configuraremos la sección así:
Podemos apreciar que hemos habilitado la sección. Hemos definido el botón
1joy7 para matar el proceso
Maldita Castilla.exeAllInOneFYC hará una pausa de
2 segundos desde que pulsemos el botón
1joy7 hasta que mate el proceso
Maldita Castilla.exe para luego cerrarse.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++HelpEn las primeras versiones esta pestaña se creo para que apareciera una ventanita y poder ver el contenido del
fichero ini. Desde hace un par de versiones ya se puede hacer entrando en modo config así que finalmente no sé como quedará. Si se os ocurre algo. En principio, puede ser que la deje como simplemente como
About this.
Una vista de la sección sería la siguiente:
ActivateHelpEsta variable sirve para activar esta sección. Deberá contener el valor
SI o
NO.
HelpKey1En esta variable podemos definir una tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc para ver la ayuda en pantalla.
HelpKey2En esta variable podemos definir una segunda tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc para ver la ayuda en pantalla.
En caso de definir esta segunda variable se deberían pulsar al mismo tiempo lo que definamos en variable 1 y en esta variable para poder ver la ayuda.
Creo que para esta sección no hacen falta ejemplos.
QuitEsta sección sirve para poder definir teclas o botones con los que cerrar
AllInOneFYC en cualquier momento.
Una vista de la sección sería la siguiente:
ActivateQuitScriptEsta variable sirve para activar esta sección. Deberá contener el valor
SI o
NO.
QuitButtonScript1En esta variable podemos definir una tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc para cerrar
AllInOneFYC.
QuitButtonScript2En esta variable podemos definir una tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc para cerrar
AllInOneFYC.
En caso de definir esta segunda variable se deberían pulsar al mismo tiempo lo que definamos en variable 1 y en esta variable 2 para cerrar
AllInOneFYC.
Creo que no es necesario poner ejemplos para esta sección pero sí podemos comentar el pantallazo en el que podemos ver que la sección estaba activada y que si pulsamos la tecla
q,
AllInOneFYC se cerraría.
Install ServiceEsta sección fue creada para intentar hacer que
AllInOneFYC funcionara como un servicio de windows.
No está 100% probada.
Una vista de la sección sería la siguiente:
ActivateInstallServiceEsta variable sirve para activar esta sección. Deberá contener el valor
SI o
NO.
ServiceProgramEn esta variable definiremos el proceso que queremos que funcione como servicio de Windows.
ServiceNameEn esta variable definiremos el nombre que queremos que tenga el servicio en Windows.
No hay ejemplos para esta sección pero quiero recordar que para que esta sección funcione deberemos tener los programas
instsrv.exe y
srvany.exe en el mismo directorio que
AllInOneFYC.exeTotalRemapButtonsEsta sección es para remapear todos los botones que necesitemos como por ejemplo para juegos de PC o un emulador de Spectrum. Podremos remapear
hasta 24 teclas o botones.
Una vista de la sección sería la siguiente:
ActivateTotalRemapButtonsEsta variable sirve para activar esta sección. Deberá contener el valor
SI o
NO.
Button1 to 24En esta variable podrás definir una tecla o botón a ser remapeada (la que tu querrías). Será la tecla o botón que físicamente pulsarás.
Remapped1 to 24En esta variable definiras la tecla o botón que será remapeada. Será la tecla o botón que está definida en el emulador o programa.
Cada
botónX corresponde con su
RemappedX.
En el pantallazo anterior, podemos ver que la sección está activa y que hemos remapeado varios botones con las típicas teclas usadas en juegos de Spectrum.
Por ejemplo, cuando pulsemos el botón 5 de nuestro joystick 1 (
1joy5) sería como si pulsáramos una
Q en el teclado. Es más, si abrimos el notepad y pulsamos dicho botón podríamos ver como se escribiría una
Q. Igual para el resto de botones definidos.
Ejemplos TotalRemapButtonsEn breve, pondré algún ejemplo.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++LaunchProcessEsta sección es para poder lanzar procesos mediante la pulsación de teclas o botones.
Una vista de la sección sería la siguiente:
ActivateLaunchProcessEsta variable sirve para activar esta sección. Deberá contener el valor
SI o
NO.
ExecutionKey1En esta variable podemos definir una tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc para lanzar los procesos.
ExecutionKey2En esta variable podemos definir una segunda tecla o botón que sería el que pulsaríamos físicamente en nuestro ordenador,maca, gamepad, etc para lanzar los procesos.
En caso de definir esta segunda variable se deberían pulsar al mismo tiempo lo que definamos en variable 1 y en esta variable 2 para lanzar los procesos.
ProcessToLaunchEn esta variable podemos definir un proceso a ejecutar.
ProcessToLaunch2En esta variable podemos definir un segundo proceso a ejecutar.
LaunchPauseEsta variable contendrá un valor numérico expresado en milisegundos que corresponderá con la pausa que AllInOneFYC hará antes de lanzar los procesos seleccionados en las variables anteriores.
PauseBeforeKillingPLaunchedEsta variable contendrá un valor numérico expresado en milisegundos que corresponderá con la pausa que AllInOneFYC hará antes de matar los procesos anteriormente lanzados. Si dejamos la variable en blanco no se matarán los procesos anteriores.
ProcessToLaunchAtTheEndEn esta variable definiremos un proceso que únicamente será lanzado si la variable
PauseBeforeKillingPLaunched no está en blanco.
DetectSecondPressLPEsta variable contendrá un valor numérico expresado en milisegundos que corresponderá con el tiempo que habría que tener pulsada las teclas o botones definidos en las variables
ExecutionKey1 y
ExecutionKey2. Si el valor es 0 basta con pulsarlas al mismo tiempo.
ExitAfterLaunchProcessEsta variable podrá contener el valor SI o NO. En caso de contener el valor SI, una vez lanzado los procesos AllInOneFYC se cerrará.
Ejemplos LaunchProcess1.- En el pantallazo anterior podemos ver que la sección está activa. Para lanzar el proceso
notepad.exe tendremos que mantener pulsadas las teclas
1 y
2 durante
3 segundos (3000 milisegundos). Antes de lanzar dicho proceso,
AllInOneFYC hará una pausa de medio segundo. A los
4 segundos AllInOneFYC matará el proceso
notepad.exe para finalmente ejecutar el proceso
mspaint.exe.
AllInOneFYC se cerrará tras ejecutar el proceso
mspaint.exe2.- Podríamos querer apagar el PC con una combinación de botones por ejemplo 1joy1 y 1joy2.
Para hacer esto bien podríamos crearnos un fichero bat, que llamaremos
apagaOrd.bat y cuyo contenido podría ser el siguiente:
@echo off
shutdown -s -t 0
Dicho fichero bat lo pondríamos como fichero a lanzar, quedando algo parecido a esto.
O no creamos el fichero bat y configuramos
AllInOneFYC así
3.- Simplemente, imagina la potencia de que puedes crearte cualquier fichero bat o ejecutable que quieras y lanzarlo con una combinación de teclas...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++JoystickDirectionsEn esta sección se intentará poder remapear las direcciones de un joystick analógico aunque he añadido la posibilidad de 2 mandos al mismo tiempo.
23/06/16 (pendiente check)Aquí necesito testers e ideas porque sólo he probado con un mando de Xbox 360. Es lo que tengo y en principio ha funcionado.
Una vista de la sección sería la siguiente:
ActivateJoystickDirectionsEsta variable sirve para activar esta sección. Deberá contener el valor SI o NO.
ActivatePOVDirectionsEsta variable sirve para activar esta sección. Deberá contener el valor SI o NO.
LeftDirectionEn esta variable definimos la tecla a ser remapeada cuando pulsemos hacia la izquierda nuestro joystick analógico.
RightDirectionEn esta variable definimos la tecla a ser remapeada cuando pulsemos hacia la derecha nuestro joystick analógico.
UpDirectionEn esta variable definimos la tecla a ser remapeada cuando pulsemos hacia arriba nuestro joystick analógico.
DownDirectionEn esta variable definimos la tecla a ser remapeada cuando pulsemos hacia abajo nuestro joystick analógico.
OtherJoystickContendrá un valor numérico que equivaldrá al mando que necesitamos mapear.
OtherLeftDirectionEn esta variable definimos la tecla a ser remapeada cuando pulsemos hacia la izquierda nuestro joystick analógico.
OtherRightDirectionEn esta variable definimos la tecla a ser remapeada cuando pulsemos hacia la derecha nuestro joystick analógico.
OtherUpDirectionEn esta variable definimos la tecla a ser remapeada cuando pulsemos hacia arriba nuestro joystick analógico.
OtherDownDirectionEn esta variable definimos la tecla a ser remapeada cuando pulsemos hacia abajo nuestro joystick analógico.
Ejemplos JoystickDirectionsEn el pantallazo anterior podemos ver que la sección está activa y que las teclas que serán remapeadas son
qaop. He probado con una mando de
Xbox 360, he abierto el notepad y cuando pulso el mando de la xbox 360
podremos ver en notepad que las teclas se han escrito por lo que han sido remapeadas.
He usado el analógico del mando de la Xbox 360. Si quiero usar la cruceta entonces tengo que activar la opción de
ActivatePOVDirections.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++continuará...