Gamoover

Vous aimez GAMOOVER ? Vous avez trouvé la perle rare grâce à notre forum ?
Alors pourquoi pas nous soutenir en effectuant un petit don Paypal sur : contribution@gamoover.net
C'est peut être un détail pour vous, mais nous, ça nous aiderait beaucoup !

Comment quitter Kega fusion avec un bouton arcade?

Démarré par emixama, Mardi 17 Juillet 2012, 20:31:37 PM

emixama

salut tout le monde
j'aimerais savoir configurer hyperspin ou kega fusion pour quitter l'emulateur à l'aide d'un bouton de la borne d'arcade, ce n est pas configurable dans l'emulateur.
Merci
Max

argonlefou

Hello,
Dans ma borne qui n'utilise que MAME avec un frontend, j'ai eu envie de rajouter Kega avec les StreetOfRage

Ayant été confronté au même problème, et sans avoir trouvé d'info pouvant me servir sur le net, je me suis réduit à faire un petit programme qui tourne en fond, et qui sur l'appui de la touche Escape (enfin du bouton mappé sur cette touche quoi, pour que ce soit la même que pour quitter un jeu MAME) vérifie le nom de la fenêtre active, et si c'est l'émulateur Kega, il stoppe le processus....
Je n'ai rien trouvé d'autre comme idée, mais celle là marchait. Il y a peut-être plus simple

emixama

il y a une histoire de scripts autohotkey mais je ne comprends rien.
MAx

wikee

c'est ça,
il faut que tu fasses un script ahk qui lorsque tu appuiera sur une touche kill le process kega
avec une petite condition comme l'as dis argonlefou

probablement quelquechose dans ce goût là

ESC::
if WinExist("nom de la fenetre kega")
{
Process, Close, kega.exe
ExitAPP
}
return



à tester !


New Astro City & Jeutel

emixama

j'ai ça pour hyperspin

;*********************************SEGA Genesis**********************************

else if (systemName = "Sega Genesis" && executable = "Fusion.exe")
{
    hideDesktop()
    Hotkey, %exitEmulatorKey%, CloseProcess
    Run, %Executable% "%romPath%%romName%%romExtension%" -auto -gen -fullscreen, %EmuPath%, Hide UseErrorLevel
    Process, WaitClose, fusion.exe
}

je dois le remplacer par quoi? je n y connais rien en programmation.
Merci
Max

emixama

Slt
marble m'a refilé ça mais je ne sais pas quoi en faire et où je note le bouton pour exit.

;----------------------------------------------------------------------------
; Sega Genesis
; Fusion v3.64
; by djvj
; 1.2
;
; Notes:
; Don't forget to setup your bios or you might just get a black screen.
; Set your fullscreen resolution by going to Video->Full Screen Resolution
; Fusion only supports 4 different windowed resolutions. If you don't use fullscreen, set the one you want by going to Video->Window Size
;----------------------------------------------------------------------------
Fullscreen = true
hideTitleBar = true      ; Removes the border, titlebar, menubar, and centers the emu on your screen. Only need this is fullscreen is false
;----------------------------------------------------------------------------

fusionFile := CheckFile(emuPath . "\fusion.ini")
FileRead, fusionIni, %fusionFile%

GUI_ID := FadeInStart()

7z1 := 7z(romPath, romName, romExtension, 7zExtractDir)

; Setting Fullscreen setting in cfg if it doesn't match what user wants above
currentFullScreen := (InStr(fusionIni, "FullScreen=1") ? ("true") : ("false"))
If ( Fullscreen != "true" And currentFullScreen = "true" ) {
      StringReplace, fusionIni, fusionIni, FullScreen=1, FullScreen=0
      SaveFile(fusionIni, fusionFile)
   } Else If ( Fullscreen = "true" And currentFullScreen = "false" ) {
      StringReplace, fusionIni, fusionIni, FullScreen=0, FullScreen=1
      SaveFile(fusionIni, fusionFile)
   }

hideEmu := (If Fullscreen = "true" ? ("Hide") : (""))

; This allows us to send variables, that when empty, are not sent to the Run command
RunEmu(executable, "-auto", "-gen", romPath . romName . romExtension, emuPath, hideEmu)

WinWait, Fusion ahk_class KegaClass
WinWaitActive, Fusion ahk_class KegaClass

Loop { ; looping until Fusion is done loading game
      Sleep, 200
      WinGetTitle, winTitle, Fusion ahk_class KegaClass
      StringSplit, T, winTitle, %A_Space%
      If ( T3 = "-" )
         Break
   }

If ( hideTitleBar = "true" ) {
      WinSet, Style, -0x40000, Fusion ahk_class KegaClass ; Removes the border of the game window
      WinSet, Style, -0xC00000, Fusion ahk_class KegaClass ; Removes the TitleBar
      DllCall("SetMenu", uint, WinActive( "A" ), uint, 0) ; Removes the MenuBar
      Center(Fusion ahk_class KegaClass)
   }

GUI_ID2 := FadeInExit()

Process, WaitClose, %executable%

7z2 := 7zCleanUp()

GUI_ID4 := FadeOutExit()

WinActivate, Hyperspin

ExitApp


RunEmu(exe,param1=0,param2=0,rom=0,relativepath=0, option=0) {
      Run, %exe% %param1% %param2% "%rom%", %relativepath%, %option%
   }

Center(title) {
      WinGetPos, X, Y, width, height, %title%
      x := ( A_ScreenWidth / 2 ) - ( width / 2 )
      y := ( A_ScreenHeight / 2 ) - ( height / 2 )
      WinMove, %title%, , x, y
   }

SaveFile(text,file) {
      FileDelete, %file%
      FileAppend, %text%, %file%
   }

CloseProcess:
   GUI_ID3 := FadeOutStart()
   WinClose, Fusion ahk_class KegaClass
Return

argonlefou

#6
Comme dit wikee, restes-en au plus simple : autohotkey

1)Télécharge le programme ICI
2)Installe, exécute le programme.
3)Dans "mes documents", il y va créer (il faut aceepter) un script nommé "AutoHotkey.ahk"
4)Ouvre avec notepad, supprime tout, et dedans tu écris ça :

Citation
ESC::
IfWinExist Fusion
{
Process, Close, Fusion.exe
}

5)Sauvegarde
6)Rajoute le "AutoHotkey.exe" dans le démarage de windows
7)Et voilà  ^-

Testé avec l'émulateur sans ROM de lancé, à voir si le titre de la fenêtre change avec une Rom, mais si il commence toujours par "Fusion", ça doit marcher.
(La touche pour quitter est "Escape")

firestorm

C'est un fichier *.ahk que tu dois renommer "Sega Genesis.ahk" et le mettre dans le répertoire "Modules" puis dans le repèrtoire "Sega Genesis" d'hyperspin sinon ça ne marchera pas.
Surtout, ne change rien dans le fichier, tu risquerais de tout foiré  ;D
N'oublies pas de configurer "HyperHQ" pour les chemins de tes roms et émulateurs, ensuite tu pourras exécuter "HyperLaunch.exe" pour t'assurer du bon fonctionnement de la touche "exit" soit par défaut la touche "échap".
Je n'ai aucun problème à quitter kegafusion ou autres, il suffit de bien configurer à la base et ça roule... ^-

emixama

bon alors,
j'ai ce module disponible ici http://hyperlist.hyperspin-fe.com/?module=browseahk&system=116
avec ce tuto : http://www.hyperspin-fe.com/forum/showthread.php?10709-HyperLaunch-2-x-Released
ça fonctionne tres bien mais avec la touche "ESC", je voudrais quitter avec une touche joystick de la borne car je n ai pas fait de hack clavier.


fusionFile := CheckFile(emuPath . "\fusion.ini")
FileRead, fusionIni, %fusionFile%

GUI_ID := FadeInStart()

7z1 := 7z(romPath, romName, romExtension, 7zExtractDir)

; Setting Fullscreen setting in cfg if it doesn't match what user wants above
currentFullScreen := (InStr(fusionIni, "FullScreen=1") ? ("true") : ("false"))
If ( Fullscreen != "true" And currentFullScreen = "true" ) {
      StringReplace, fusionIni, fusionIni, FullScreen=1, FullScreen=0
      SaveFile(fusionIni, fusionFile)
   } Else If ( Fullscreen = "true" And currentFullScreen = "false" ) {
      StringReplace, fusionIni, fusionIni, FullScreen=0, FullScreen=1
      SaveFile(fusionIni, fusionFile)
   }

hideEmu := (If Fullscreen = "true" ? ("Hide") : (""))

; This allows us to send variables, that when empty, are not sent to the Run command
RunEmu(executable, "-auto", "-gen", romPath . romName . romExtension, emuPath, hideEmu)

WinWait, Fusion ahk_class KegaClass
WinWaitActive, Fusion ahk_class KegaClass

Loop { ; looping until Fusion is done loading game
      Sleep, 200
      WinGetTitle, winTitle, Fusion ahk_class KegaClass
      StringSplit, T, winTitle, %A_Space%
      If ( T3 = "-" )
         Break
   }

If ( hideTitleBar = "true" ) {
      WinSet, Style, -0x40000, Fusion ahk_class KegaClass ; Removes the border of the game window
      WinSet, Style, -0xC00000, Fusion ahk_class KegaClass ; Removes the TitleBar
      DllCall("SetMenu", uint, WinActive( "A" ), uint, 0) ; Removes the MenuBar
      Center(Fusion ahk_class KegaClass)
   }

GUI_ID2 := FadeInExit()

Process, WaitClose, %executable%

7z2 := 7zCleanUp()

GUI_ID4 := FadeOutExit()

WinActivate, Hyperspin

ExitApp


RunEmu(exe,param1=0,param2=0,rom=0,relativepath=0, option=0) {
      Run, %exe% %param1% %param2% "%rom%", %relativepath%, %option%
   }

Center(title) {
      WinGetPos, X, Y, width, height, %title%
      x := ( A_ScreenWidth / 2 ) - ( width / 2 )
      y := ( A_ScreenHeight / 2 ) - ( height / 2 )
      WinMove, %title%, , x, y
   }

SaveFile(text,file) {
      FileDelete, %file%
      FileAppend, %text%, %file%
   }

CloseProcess:
   GUI_ID3 := FadeOutStart()
   WinClose, Fusion ahk_class KegaClass
Return

argonlefou

Je ne connais pas Hyperspin ni le fonctionnement de ses scripts, mais j'ai l'impression que dans celui-ci - même s'il y a la procédure pour killer le process - il n'y a pas mention de la touche qui déclenche tout ça.

Tu n'as pas fait de hack clavier, c'est pas grave.
Comment quittes-tu un jeu MAME ? Avec un bouton de la borne ? Car par défault un jeu MAME se quitte avec ESC. Sauf si tu as changé la config de MAME, ce bouton devrait marcher.

Si la config de MAME a changé (donc ce n'est pas ESC):
Tu as un Panel avec des joystick et des boutons, donc soit tu as du matos style X-arcade, reconnu comme un périphérique de jeu par windows, soit tu as une interface genre I-PAC sur laquelle sont cablés les boutons

Dans le premier cas, laisse ce script tel qu'il est et utilise Joy2Key.
Ça te permet de "convertir" l'appui d'un bouton d'une manette en touche clavier, voilà comment obtenir un ESC

Dans le second cas, WinIPAC est paramétrable et tu peux choisir quelle touche de clavier sera envoyée à l'appui de chaque bouton

Troisième solution : trouver un pro de Hyperspin qui te dira où trouver le paramétrage du bouton qui lance le script de Kill de Kega  :D

Au boulot ! ^-

emixama

slt
oui j'avais changé la config de mame, c est bon ça fonctionne, j'ai utilisé le joytokey et hyperlaunch.
Merci à tous et à marble pour son aide par mail.
Max