Prefrontend : Ecran de sélection du front-end

Pour parler librement d'émulation arcade et consoles.
Répondre
Message
Auteur
Avatar de l’utilisateur
CitrikElektrik
stick de rhodium
Messages : 3481
Inscription : 27 juil. 2015, 19:36
Localisation : Villemomble
A remercié : 6 fois
A été remercié : 15 fois

Prefrontend : Ecran de sélection du front-end

#1 Message par CitrikElektrik »

Prefrontend est un petit programme que j'ai créé pour me permettre de choisir quelle "box" lancer au démarrage de Windows. Le programme est très simple : il affiche une image et attend que le joueur 1 appuie sur la touche 1 ou 2 en fonction du Frontend qu'il veut lancer. Dans mon cas, il s'agit de deux Hyperspin : l'un pour la HFSBox15k, l'autre pour la Crossbox. Fonctionnement :



Le programme est disponible ici : https://mega.nz/#!OtBg3Jjb!vrANInQtHTjK ... jemahd9844

Voici le readme livré avec le programme :

Code : Tout sélectionner

Readme.txt

Prefrontend.exe version 1.0
2018-04-06

Hi there,

I'm CitrikElektrik and I made this little program with AutoIt3 to choose which Frontend I want to
start on my arcade cabinet.

You can use it for yourself, alter it, improve it. Please don't hesitate to share with us your
creations : http://www.neo-arcadia.com/forum/viewtopic.php?f=12&t=63572

Currently, I don't need to handle more than 2 frontends but if you need more than that, I can do
it. Please let me know.

Usage :

Background image must match your Desktop Resolution. Bitmap format prefered. PNG is not working.
The sample delivered with the program uses 640x480 as it is intended to run on a 15khz display.
This sample background uses a text displayed diagonally to be readable whatever the monitor
orientation is. You don't need to do that on your own background if you do not plan to rotate
your monitor. The background image path is set into the ini file in the [background] section.

The sound samples were produced with Balabolka software. Feel free to replace those by any
other sounds by changing the [FEsound] section into the ini file. Wav format works, I didn't try
any other format.

Default keys are 11 for Yoko (FE1) and 12 for Tate (FE2). It's Left Control and Left Alt as they
are the default keys for P1-Button1 and 2 with Mame. You can change the keys by altering the
values into the [FEkey] section of the ini file. This program uses the "_IsPressed" function
which accepts the following codes :

	01 Left mouse button
    02 Right mouse button
    03 Control-break processing
    04 Middle mouse button (three-button mouse)
    05 X1 mouse button
    06 X2 mouse button
    08 BACKSPACE key
    09 TAB key
    0C CLEAR key
    0D ENTER key
    10 SHIFT key
    11 CTRL key
    12 ALT key
    13 PAUSE key
    14 CAPS LOCK key
    1B ESC key
    20 SPACEBAR
    21 PAGE UP key
    22 PAGE DOWN key
    23 END key
    24 HOME key
    25 LEFT ARROW key
    26 UP ARROW key
    27 RIGHT ARROW key
    28 DOWN ARROW key
    29 SELECT key
    2A PRINT key
    2B EXECUTE key
    2C PRINT SCREEN key
    2D INS key
    2E DEL key
    30 0 key
    31 1 key
    32 2 key
    33 3 key
    34 4 key
    35 5 key
    36 6 key
    37 7 key
    38 8 key
    39 9 key
    41 A key
    42 B key
    43 C key
    44 D key
    45 E key
    46 F key
    47 G key
    48 H key
    49 I key
    4A J key
    4B K key
    4C L key
    4D M key
    4E N key
    4F O key
    50 P key
    51 Q key
    52 R key
    53 S key
    54 T key
    55 U key
    56 V key
    57 W key
    58 X key
    59 Y key
    5A Z key
    5B Left Windows key
    5C Right Windows key
    5D PopUp Menu Key - Applications key on a Microsoft Natural Keyboard
    60 Numeric keypad 0 key
    61 Numeric keypad 1 key
    62 Numeric keypad 2 key
    63 Numeric keypad 3 key
    64 Numeric keypad 4 key
    65 Numeric keypad 5 key
    66 Numeric keypad 6 key
    67 Numeric keypad 7 key
    68 Numeric keypad 8 key
    69 Numeric keypad 9 key
    6A Multiply key
    6B Add key
    6C Separator key
    6D Subtract key
    6E Decimal key
    6F Divide key
    70 F1 key
    71 F2 key
    72 F3 key
    73 F4 key
    74 F5 key
    75 F6 key
    76 F7 key
    77 F8 key
    78 F9 key
    79 F10 key
    7A F11 key
    7B F12 key
    7C-7F F13 key - F16 key
    80H-87H F17 key - F24 key
    90 NUM LOCK key
    91 SCROLL LOCK key
    A0 Left SHIFT key
    A1 Right SHIFT key
    A2 Left CONTROL key
    A3 Right CONTROL key
    A4 Left MENU key
    A5 Right MENU key
    BA ;
    BB =
    BC ,
    BD -
    BE .
    BF /
    C0 `
    DB [
    DC \
    DD ]
Et le code source :

Code : Tout sélectionner

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=question.ico
#AutoIt3Wrapper_Outfile=./Prefrontend/Prefrontend_1_0.exe
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>

Prefrontend()

Func Prefrontend()
	Local $INI="./Prefrontend.ini"
	Local $FE1path=IniRead($INI,"FEpath","FE1path","default")
	Local $FE2path=IniRead($INI,"FEpath","FE2path","default")
	Local $bkgrd=IniRead($INI,"background","bkgrd","default")
	Local $FE1sound=IniRead($INI,"FEsound","FE1sound","default")
	Local $FE2sound=IniRead($INI,"FEsound","FE2sound","default")
	Local $FE1key=IniRead($INI,"FEkey","FE1key","default")
	Local $FE2key=IniRead($INI,"FEkey","FE2key","default")

	; Create a GUI with various controls.
	Local $hGUI = GUICreate("fullscreencover",@DesktopWidth,@DesktopHeight,0,0,$WS_POPUP)
	GUICtrlCreatePic($bkgrd, 0, 0, @DesktopWidth, @DesktopHeight)

	; Display the GUI.
	GUISetState(@SW_SHOW, $hGUI)

	Local $hChild = GUICreate("", 210, 72, 20, 15, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hGUI)

	; Display the child GUI.
	GUISetState(@SW_SHOW)

	; Loop until the user exits.
	While 1

		If _IsPressed($FE1key) Then
			SoundPlay($FE1sound)
			ShellExecute($FE1path)
			For $i = 255 To 1 Step -1
				WinSetTrans($hGUI, "", $i)
				Sleep(10)
			Next
			ExitLoop

		ElseIf _IsPressed($FE2key) Then
			SoundPlay($FE2sound)
			ShellExecute($FE2path)
			For $i = 255 To 1 Step -1
				WinSetTrans($hGUI, "", $i)
				Sleep(10)
			Next
			ExitLoop
		EndIf

	WEnd

Sleep(5000)

	GUIDelete($hGUI)
	GUIDelete($hChild)
EndFunc

Message d'origine :
Salut les gars,

J'ai cherché un peu sur Internet sans trouver mon bonheur. Avant de devoir me palucher un programme maison, je voulais savoir si quelqu'un avait une alternative.

Voilà mon besoin : j'ai une mamebox sur laquelle je souhaite faire cohabiter plusieurs boxes : HFSBox 15khz, Crossbox etc... Je voudrais donc avoir un pré-frontend pour sélectionner l'Hyperspin à lancer sans avoir à passer au clavier-souris. Une espèce de pré-front-end quoi.

Quelque-un aurait-il ça dans sa besace ?

Merci d'avance.
Dernière modification par CitrikElektrik le 06 avr. 2018, 13:10, modifié 1 fois.
ImageImage
wasspat a écrit : 21 avr. 2020, 10:09 Pis, n'oubliez pas qu'on parle que de trucs qui font "piou piou piou".

Avatar de l’utilisateur
Viss
stick de rhodium
Messages : 3256
Inscription : 27 févr. 2004, 13:33
Localisation : 92
A remercié : 12 fois
A été remercié : 23 fois

Re: Ecran de sélection du front-end

#2 Message par Viss »

Pas certain à 100% mais Attract-Mode devrait pouvoir t'aider.

Il permet de lister et lancer des .exe assez facilement.

Avatar de l’utilisateur
stickcross
stick de platine
Contact :
Messages : 2591
Inscription : 25 juin 2008, 15:09
Localisation : Toulouse
A remercié : 0
A été remercié : 1 fois

Re: Ecran de sélection du front-end

#3 Message par stickcross »

Sur le forum HFS il y a cela
CrossBox Youtube: http://www.youtube.com/channel/UCM37h4H ... ture=watch

Image

Image
yoanna330 a écrit :
psykotine a écrit : On discute pas les prix c'est dans les règles !
C'est ce que m'a dit une fois une pute qui avait du sang sur ses collants.

Avatar de l’utilisateur
CitrikElektrik
stick de rhodium
Messages : 3481
Inscription : 27 juil. 2015, 19:36
Localisation : Villemomble
A remercié : 6 fois
A été remercié : 15 fois

Re: Ecran de sélection du front-end

#4 Message par CitrikElektrik »

J'ai parcouru le forum mais je trouve pas. :cry:
Tu te souviens pas approximativement dans quelle section ça se trouvait ?

Concernant Attract-mode, je connais pas du tout ce FE. Maintenant la solution consiste peut-être à lancer un HS par un autre HS. Je vais tester.
ImageImage
wasspat a écrit : 21 avr. 2020, 10:09 Pis, n'oubliez pas qu'on parle que de trucs qui font "piou piou piou".

Avatar de l’utilisateur
Slump
stick d'argent
Messages : 731
Inscription : 28 avr. 2013, 10:20
Localisation : Lyon
A remercié : 0
A été remercié : 1 fois

Re: Ecran de sélection du front-end

#5 Message par Slump »

En fait tu cherches une Lapbox :lol:
Image

Avatar de l’utilisateur
CitrikElektrik
stick de rhodium
Messages : 3481
Inscription : 27 juil. 2015, 19:36
Localisation : Villemomble
A remercié : 6 fois
A été remercié : 15 fois

Re: Ecran de sélection du front-end

#6 Message par CitrikElektrik »

Ah bah ouais je suis con, j'aurais du demander directement à Allan. :palm:

J'ai essayé HS mais il ne se lance pas s'il est déjà lancé même si l'exe est renommé et est situé ailleurs.
J'ai essayé Attract-Mode mais c'est chaud de se lancer dans une nouveau FE sans en connaître la logique.
ImageImage
wasspat a écrit : 21 avr. 2020, 10:09 Pis, n'oubliez pas qu'on parle que de trucs qui font "piou piou piou".

Avatar de l’utilisateur
CitrikElektrik
stick de rhodium
Messages : 3481
Inscription : 27 juil. 2015, 19:36
Localisation : Villemomble
A remercié : 6 fois
A été remercié : 15 fois

Re: Ecran de sélection du front-end

#7 Message par CitrikElektrik »

Bon, comme je suis têtu, j'essaye quand même de m'en tirer tout seul. En même temps, on apprend jamais rien sinon.
Donc j'ai fait rapidos un petit écran statique et je vais essayer de coder ça en VB.

Image
ImageImage
wasspat a écrit : 21 avr. 2020, 10:09 Pis, n'oubliez pas qu'on parle que de trucs qui font "piou piou piou".

Avatar de l’utilisateur
CitrikElektrik
stick de rhodium
Messages : 3481
Inscription : 27 juil. 2015, 19:36
Localisation : Villemomble
A remercié : 6 fois
A été remercié : 15 fois

Re: Ecran de sélection du front-end

#8 Message par CitrikElektrik »

Bon bah voilà, après avoir passé des heures à chercher quel framework pourrait me faire le job facilement, mon choix s'est arrêté sur autoit. Ça génère un bête exe, pas de DLL à la con, pas de truc à installer en plus, nickel.

Je me suis même tapé le luxe d'ajouter un petit effet de disparition de la fenêtre en fondu. Sur le fond noir du bureau de la borne, ça sera nickel.

C'est fonctionnel chez moi mais tant qu'à faire, j'aimerais bien que ça soit réutilisable donc je vais essayer de l'associer avec un petit fichier cfg pour paramétrer l'image de fond, les chemins vers les instances Hyperspin, faire en sorte qu'on puisse en paramétrer plus de deux et choisir les hotkeys et puis ajouter une voix digitalisée pour marquer que le choix a bien été pris en compte (c'était le but du fondu au départ).

Voici le code en l'état :

Code : Tout sélectionner

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=Guicreate4.Exe
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>

Prefrontend()

Func Prefrontend()
	Local $sFilePath = "..\GUI\logo_autoit_210x72.gif"

	; Create a GUI with various controls.
	Local $hGUI = GUICreate("fullscreencover",@DesktopWidth,@DesktopHeight,0,0,$WS_POPUP)
	GUICtrlCreatePic("C:\Users\citri\Documents\AutoIt\Image3.bmp", 0, 0, @DesktopWidth, @DesktopHeight)

	; Display the GUI.
	GUISetState(@SW_SHOW, $hGUI)

	Local $hChild = GUICreate("", 210, 72, 20, 15, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hGUI)

	; Create a picture control with a transparent image.
	GUICtrlCreatePic($sFilePath, 0, 0, 210, 72)

	; Display the child GUI.
	GUISetState(@SW_SHOW)

	; Loop until the user exits.
	While 1

		If _IsPressed("11") Then ;si Ctrl est pressé
			ShellExecute("C:\Temp\HS\HS2\HyperSpin.exe")
			For $i = 255 To 1 Step -1
				WinSetTrans($hGUI, "", $i)
				Sleep(10)
			Next
			ExitLoop

		ElseIf _IsPressed("12") Then ;si Alt est pressé
			ShellExecute("C:\Temp\HS\HS3\HyperSpin.exe")
			For $i = 255 To 1 Step -1
				WinSetTrans($hGUI, "", $i)
				Sleep(10)
			Next
			ExitLoop
		EndIf
;		Switch GUIGetMsg()
;			Case $GUI_EVENT_CLOSE
;				ExitLoop

;		EndSwitch
	WEnd

Sleep(5000)
	; Delete the previous GUIs and all controls.
	GUIDelete($hGUI)
	GUIDelete($hChild)
EndFunc
ImageImage
wasspat a écrit : 21 avr. 2020, 10:09 Pis, n'oubliez pas qu'on parle que de trucs qui font "piou piou piou".

Avatar de l’utilisateur
CitrikElektrik
stick de rhodium
Messages : 3481
Inscription : 27 juil. 2015, 19:36
Localisation : Villemomble
A remercié : 6 fois
A été remercié : 15 fois

Re: Ecran de sélection du front-end

#9 Message par CitrikElektrik »

C'est fait !

https://mega.nz/#!OtBg3Jjb!vrANInQtHTjK ... jemahd9844

Je vais éditer mon premier post pour les prochains qui en auraient besoin.
ImageImage
wasspat a écrit : 21 avr. 2020, 10:09 Pis, n'oubliez pas qu'on parle que de trucs qui font "piou piou piou".

Avatar de l’utilisateur
eLLuiGi
stick dans le cul
Messages : 11464
Inscription : 09 juin 2013, 00:29
Localisation : Paris
A remercié : 196 fois
A été remercié : 595 fois

Re: Prefrontend : Ecran de sélection du front-end

#10 Message par eLLuiGi »

Accédez aux projets RpiTeam en cliquant sur la vignette ci-dessous :
Image

Avatar de l’utilisateur
-k-
stick de plomb
Messages : 96
Inscription : 15 oct. 2015, 13:57
A remercié : 0
A été remercié : 0

Re: Prefrontend : Ecran de sélection du front-end

#11 Message par -k- »

Eh ben merci beaucoup Citrik !
C'est simple et efficace, je cherchais justement le moyen de basculer entre les deux orientations d'écran sur une Naomi New-netisée, ce sera plus pratique que le changement de SSD :P

Avatar de l’utilisateur
CitrikElektrik
stick de rhodium
Messages : 3481
Inscription : 27 juil. 2015, 19:36
Localisation : Villemomble
A remercié : 6 fois
A été remercié : 15 fois

Re: Prefrontend : Ecran de sélection du front-end

#12 Message par CitrikElektrik »

Pas de soucis vieux ! :wink:

Merci Tonton pour le lien. Ça a l'air vachement complet. Je testerai cette solution.
ImageImage
wasspat a écrit : 21 avr. 2020, 10:09 Pis, n'oubliez pas qu'on parle que de trucs qui font "piou piou piou".

Répondre