Pagina 1 di 2
Tasto hotkey uscita emu + autoit + windows 10
Inviato: 07/04/2020, 22:28
da _Gioacchino_
Salve a tutti, sono riuscito a scrivere sto script su autoit e ad compilarlo. funziona per funzionare.
il problema è che non ne vuole sapere di partire in automatico all' avvio di windows / pc. sto uscendo pazzo, dove sbaglio?
Codice: Seleziona tutto
#RequireAdmin
Sleep (1500)
$dll = DllOpen("user32.dll")
; alt = 12
;d = 44
$i = 0
While 1
if _IsPressed(12) and _IsPressed(44) and ProcessExists("DemulShooter.exe") Then
ProcessClose ( "demul.exe" )
ProcessClose ( "DemulShooter.exe" )
EndIf
wend
Func _IsPressed($s_hexKey, $v_dll = 'user32.dll')
; $hexKey must be the value of one of the keys.
; _Is_Key_Pressed will return 0 if the key is not pressed, 1 if it is.
Local $a_R = DllCall($v_dll, "int", "GetAsyncKeyState", "int", '0x' & $s_hexKey)
If Not @error And BitAND($a_R[0], 0x8000) = 0x8000 Then Return 1
Return 0
EndFunc ;==>_IsPressed
ragazzi siamo molto vicini all' obiettivo, me lo sento.
post originale
_Gioacchino_ ha scritto: ↑07/04/2020, 22:28
Salve gente,
ho un mamecab funzionante con attract-mode stand-alone.
Ora, siccome sto realizzando due lightgun come da questa guida
http://www.arcadeitalia.net/viewtopic.php?f=14&t=33317
ho la necessità di far partire il tool demulshooter (che si occupa della gestione delle lightgun) al lancio di determiante rom su deterimante piattaforme emulate. insomma se parte
insomma se da fe lancio house of dead su naomi
, deve partire in modo automatico una riga di comando con demushooter.exe rom=houd2 etc etc oltre a demul, ovviamente.
come si puo gestire questa cosa?
1) attraverso l'uso di software esterni (autohotkeys, bho)
2) impostando attract mode con rocketlauncher (e qui chiedo il vostro aiuto)
3) mi lega ancora utilizzare attractmode per via di questo tema robospin* (vedi allegato)
quindi potrei migrare da attractmode su hyperspin per poi configurarlo con rocketlauncher installando questo tema (e qui mi servite anocra voi)
*ho preso una cantonata e in realta questa tema è gia pronto su hyperspin?
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 08/04/2020, 8:11
da alucard
Ti consiglio di rimanere con il frontend che hai.
Fai in modo, dove necessario, che i file puntati da attract mode siano degli script e hai risolto.
Ci sono diversi modi per farlo. Uno è quello di aggiungere alle estensioni ammesse dell’emulatore, anche quella dello script. Nella cartella delle rom, sposti in un sotto cartella quelle rimpiazzate dallo script omonimo.
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 08/04/2020, 12:49
da Tox Nox Fox
Script script script
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 08/04/2020, 17:27
da _Gioacchino_
alucard ha scritto: ↑08/04/2020, 8:11
Ti consiglio di rimanere con il frontend che hai.
Fai in modo, dove necessario, che i file puntati da attract mode siano degli script e hai risolto.
Ci sono diversi modi per farlo. Uno è quello di aggiungere alle estensioni ammesse dell’emulatore, anche quella dello script. Nella cartella delle rom, sposti in un sotto cartella quelle rimpiazzate dallo script omonimo.
fin qui ci siamo, ma dove dico ad attract di far partire lo script?
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 08/04/2020, 18:50
da alucard
I dettagli sulle rom da lanciare, sono contenuti nelle romlist di Attract. Le romlist si trovano nella cartella "romlists".
La prima colonna del file indica il nome dalla rom. Il nome è privo di estensione. Facendo come ti ho suggerito, quando Attract lancerà la rom, troverà al suo posto lo script che hai messo.
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 08/04/2020, 21:01
da _Gioacchino_
alucard ha scritto: ↑08/04/2020, 18:50
I dettagli sulle rom da lanciare, sono contenuti nelle romlist di Attract. Le romlist si trovano nella cartella "romlists".
La prima colonna del file indica il nome dalla rom. Il nome è privo di estensione. Facendo come ti ho suggerito, quando Attract lancerà la rom, troverà al suo posto lo script che hai messo.
quindi se lancio mettiamo caso house of dead 2
lancerà sia la rom che il file bat con la stringa per eseguire demulshooter, giusto?
1)devo aggiugnere bat alle estenzioni, giusto?
2)metto tutto insieme sia rom che file *.bat? nella stessa cartella?
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 08/04/2020, 21:04
da _Gioacchino_
_Gioacchino_ ha scritto: ↑08/04/2020, 21:01
alucard ha scritto: ↑08/04/2020, 18:50
2)metto tutto insieme sia rom che file *.bat? nella stessa cartella?
file bat o file *.sh?
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 08/04/2020, 23:40
da alucard
Il modo più lineare per farlo, che è quello che faccio per i giochi pc, e impostare l'estensione dell'emulatore in .bat.
Nella cartella delle rom metto solo .bat e ogni bat lancia il suo gioco. Quasi tutti i bat internamente sono uguali, ma alcuni fanno cose più complesse. Per Attract è indifferente.
Diciamo invece che su console, nella maggior parte dei casi ti basta lanciare le rom in modo standard e solo per alcune vuoi un comportamento particolare. Di conseguenza preferisci lasciare tutto standard e intervenire solo su una piccola parte. In questo caso, cloni l'emulatore (il suo file di cfg in Attract) e avrai ad esempio
Il secondo è quasi uguale al primo, ma avrà dentro
Ora, nel file txt delle rom, per ogni rom che vuoi far partire con uno script, modifichi il contenuto della colonna "Emulator" mettendo snes-script. Quando lanci un gioco, Attract lo lancia con l'emulatore specificato nell'apposita colonna (questo è molto flessibile, perché volendo ti permette di avere una lista aggregata di diverse piattaforme) quindi quando troverà snes-script, lancerà il .bat
Chiaramente, dove ora c'è la rom dovrai mettere anche il .bat con tutto il necessario a lanciare la rom, quindi sia l'extra che ti occorre che lo standard
ps: io in realtà al posto dei bat utilizzo Autoit, ma vai pure con i bat
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 09/04/2020, 12:01
da _Gioacchino_
alucard ha scritto:Il modo più lineare per farlo, che è quello che faccio per i giochi pc, e impostare l'estensione dell'emulatore in .bat.
Nella cartella delle rom metto solo .bat e ogni bat lancia il suo gioco. Quasi tutti i bat internamente sono uguali, ma alcuni fanno cose più complesse. Per Attract è indifferente.
Diciamo invece che su console, nella maggior parte dei casi ti basta lanciare le rom in modo standard e solo per alcune vuoi un comportamento particolare. Di conseguenza preferisci lasciare tutto standard e intervenire solo su una piccola parte. In questo caso, cloni l'emulatore (il suo file di cfg in Attract) e avrai ad esempio
Il secondo è quasi uguale al primo, ma avrà dentro
Ora, nel file txt delle rom, per ogni rom che vuoi far partire con uno script, modifichi il contenuto della colonna "Emulator" mettendo snes-script. Quando lanci un gioco, Attract lo lancia con l'emulatore specificato nell'apposita colonna (questo è molto flessibile, perché volendo ti permette di avere una lista aggregata di diverse piattaforme) quindi quando troverà snes-script, lancerà il .bat
Chiaramente, dove ora c'è la rom dovrai mettere anche il .bat con tutto il necessario a lanciare la rom, quindi sia l'extra che ti occorre che lo standard
ps: io in realtà al posto dei bat utilizzo Autoit, ma vai pure con i bat
Fantastico ci sono riuscito.
Sarebbe serio capire perché demul mi va a finestra, forse perché viene aperta la finestra col cmd. È impostato per andare full screen.
Qui mi sa che devo imparare autoit, magari fa tutto in modo silente
Sarebbe serio se mi dassi due dritte in merito
C'è modo poi al ritorno da demul in attract Di chiudere demul e lo demulshooter?
Inviato dal mio Pixel 3a utilizzando Tapatalk
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 10/04/2020, 8:42
da alucard
Quello è il modo standard di eseguire un comando di sistema. Di base, Attract lo fa in modo silente e almeno quando ho usato i batch che lanciavano semplicemente l’eseguibile del gioco, non si vedeva nulla senza aver usato alcuna accortezza.
Giochi per Win conviene lanciarli tutti in questo modo, perché possono richiedere parametri diversi o appartenere a diverse piattaforme di vendita: Steam, Epic, ...
Sono passato ad Autoit perché è più potente, ma devi vederlo come un linguaggio di programmazione, quindi occorre documentarsi.
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 11/04/2020, 16:33
da _Gioacchino_
primo post modificato. ci sono aggiornamenti.
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 11/04/2020, 17:40
da alucard
Questo post è un mutaforma
Visto che hai deciso di buttarti su Autoit per la parte batch, questo è quello che metto io nella configurazione dell'emulatore che ne fa uso
Codice: Seleziona tutto
...
executable "C:\Program Files (x86)\AutoIt3\AutoIt3_x64.exe"
args "[romfilename]"
romext .au3
...
Di base Attract passa la palla al processo, e al termine del processo a cui ha passato la palla (non ad un suo delegato questo è importante) ritorna in primo piano. Quindi in generale lo script Autoit deve essere redatto in modo tale da rimanere vivo fino alla fine dei processi che lancia.
Ora mi guardo il tuo script e vedo di capire cosa non sta andando
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 11/04/2020, 17:57
da alucard
_Gioacchino_ ha scritto: ↑07/04/2020, 22:28
Salve a tutti, sono riuscito a scrivere sto script su autoit e ad compilarlo. funziona per funzionare.
il problema è che non ne vuole sapere di partire in automatico all' avvio di windows / pc. sto uscendo pazzo, dove sbaglio?
...
A cosa ti serve farlo partire all'avvio di Windows? Per avere un monitor sempre attivo, tale che alla pressione di quella combinazione di tasti esegue quella catena di chiusure? Fossi in te farei uno script generico che lancia un gioco demul (parametro ricevuto da Attract) che rimane poi in attesa di quella combinazione. Chiaro che lo userai solo per i giochi interessati.
Altra curiosità. _IsPressed è una funzione che hai se includi la direttiva "#include <Misc.au3>", perché usare uno pseudo codice sorgente di quella funzione?
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 11/04/2020, 21:27
da _Gioacchino_
alucard ha scritto: ↑11/04/2020, 17:57
A cosa ti serve farlo partire all'avvio di Windows? Per avere un monitor sempre attivo, tale che alla pressione di quella combinazione di tasti esegue quella catena di chiusure? Fossi in te farei uno script generico che lancia un gioco demul (parametro ricevuto da Attract) che rimane poi in attesa di quella combinazione. Chiaro che lo userai solo per i giochi interessati.
io ho fatto cosi: (per il momento solo su piattaforma naomi):
1) ho copiato il file di conf dell' emulatore per poter lanciare solo giochi light gun : naomi.cfg >>> naomi_lightgun.cfg
2)aperto naomi_lightgun, ho eliminato demul come eseguibile ed ho sostituito con cmd. questo emulatore lancerà i file bat per ogni gioco lightgun
(si ho creato ogni file bat per ogni rom lightgun)
3) ogni file .bat contiene due linee: una per far partire demul col nome gioco e una fa partire demul
(tutti e due col nome rom per esatto e non come argomento da attract)
4)per ritornare dall' emulatore ad attract dovrebbe lavorare sto script, ma al momento funziona quando gli pare, vedi seconda risposta
5)ovviamente ho editato la romlist naomi, dove punto i giochi lightgun con naomi_lightgun.
mi piacerebbe seguire cosa tu hai scritto, come posso passare come argomento il nome della rom?
dichiarando una variabile? tipo $rom = [romname] ad inizio script??
alucard ha scritto: ↑11/04/2020, 17:57
Altra curiosità. _IsPressed è una funzione che hai se includi la direttiva "#include <Misc.au3>", perché usare uno pseudo codice sorgente di quella funzione?
ora la includo e lo ricompilo, cosa strana è che naomi_lightgun l'ho lasciato senza hotkey per chiudere l'emutore e mi chiude lo stesso gli emulatori con la combo select + start p1 (combo che impostato in tutti gli emulatori su attract mode).
puo' essere che lo script si prende a caso qualunque tasto per soddisfare sta combo?
poi passano dei minuti e la combo non funziona più, funziona la combo script alt + d.
ripeto passare per argomento la romname non è male, cosi mi eviti anche di installare roba in piu tipo joytokey.
grazie tante per il supporto
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 12/04/2020, 17:30
da _Gioacchino_
allora ho trovato questa libreria da includere per lavorare direttamente col joypad senza utilizzare joytokey
https://www.autoitscript.com/forum/topi ... padex-udf/
qui ho provato ad aggiornare il codice ma non funziona ovviamente
Codice: Seleziona tutto
#RequireAdmin
#include <Misc.au3>
#include <GamePadEx.au3>
Sleep (1500)
Global $myGamePadHandle = GPExInitialize() ; Get a handle. This doesn't have to be global but needs to be passed to all the other functions.
Global $myID = 0 ; We want to monitor the default GamePad
While 1
Sleep(10)
$pressedbutton = GPExGetPressed($myGamePadHandle, $myID)
$pressedbutton2 = GPExGetPressed($myGamePadHandle, $myID)
if $pressedbutton= GPExButton(9) and $pressedbutton2 = GPExButton(10) and ProcessExists("DemulShooter.exe") Then
ProcessClose ( "demul.exe" )
ProcessClose ( "DemulShooter.exe" )
EndIf
WEnd
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 12/04/2020, 17:30
da _Gioacchino_
nel mentre lavoro alla parte del lancio emulatore
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 13/04/2020, 18:14
da _Gioacchino_
riesco a chiudere demul e demulshooter con la combinazione dei tasti dei pulsanti senza utilizzo di joytokey
Codice: Seleziona tutto
#RequireAdmin
#include <Misc.au3>
#include <GamePadEx.au3>
Sleep (100)
Global $myGamePadHandle = GPExInitialize() ; Get a handle. This doesn't have to be global but needs to be passed to all the other functions.
Global $myID = 0 ; We want to monitor the default GamePad
While 1
Sleep(10)
$testrawdata = GPExGetRawData($myGamePadHandle, $myID) ; Get almost every data possible from the gamepad. Returns in an array with 8 elements.
if $testrawdata[7]= (768) and ProcessExists("DemulShooter.exe") Then
ProcessClose ( "demul.exe" )
ProcessClose ( "DemulShooter.exe" )
EndIf
WEnd
qual' è la sintassi per passare il nome rom come argomento per la riga di comando?
Codice: Seleziona tutto
$romname=name
Run ("C:\Users\marie\Downloads\demul07a_221215\demul.exe -$romname")
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 13/04/2020, 19:30
da alucard
_Gioacchino_ ha scritto: ↑13/04/2020, 18:14
qual' è la sintassi per passare il nome rom come argomento per la riga di comando?
Codice: Seleziona tutto
$romname=name
Run ("C:\Users\marie\Downloads\demul07a_221215\demul.exe -$romname")
Non credo riesca a sostituire il valore della variabile in quel modo. Penso sia
Codice: Seleziona tutto
RunWait ("C:\Users\marie\Downloads\demul07a_221215\demul.exe -" & $romname)
nell'esempio ho usato inoltre RunWait, così il processo rimane in attesa del termine del gioco
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 13/04/2020, 22:01
da _Gioacchino_
alucard ha scritto: ↑13/04/2020, 19:30
nell'esempio ho usato inoltre RunWait, così il processo rimane in attesa del termine del gioco
per quanto riguarda demulshooter?
Codice: Seleziona tutto
RunWait ("C:\Users\marie\Downloads\demul07a_221215\DemulShooter.exe" -target=demul07a -rom=$romname -noresize -widescreen -v)
corretto così?
Re: Tasto hotkey uscita emu + autoit + windows 10
Inviato: 14/04/2020, 6:52
da _Gioacchino_
buondì, ad oggi:
codice emulatore naomi lightgun
Codice: Seleziona tutto
# Generated by Attract-Mode v2.6.1
#
executable C:\Cabinato\Utility\naomi_loader.exe
args "[romfilename]"
rompath C:\Cabinato\Rom\Sega Naomi
romext .zip
system Sega Naomi
info_source thegamesdb.net
exit_hotkey
artwork marquee C:\Cabinato\Rom\Sega Naomi\Logos
artwork snap C:\Cabinato\Rom\Sega Naomi\Video_MP4_HI_QUAL
artwork wheel C:\Cabinato\Rom\Sega Naomi\Logos
codice emulatore atomiswave lightgun
Codice: Seleziona tutto
# Generated by Attract-Mode v2.6.1
#
executable C:\Cabinato\Utility\sammy_loader.exe
args "[romfilename]"
rompath C:\Cabinato\Rom\Sammy Atomiswave
romext .zip
system Sammy Atomiswave
info_source thegamesdb.net
exit_hotkey
artwork marquee C:\Cabinato\Rom\Sammy Atomiswave\Logos
artwork snap C:\Cabinato\Rom\Sammy Atomiswave\Snap
artwork wheel C:\Cabinato\Rom\Sammy Atomiswave\wheel
naomi loader
Codice: Seleziona tutto
#RequireAdmin
#include <Misc.au3>
#include <GamePadEx.au3>
Sleep (100)
Global $myGamePadHandle = GPExInitialize() ; Get a handle. This doesn't have to be global but needs to be passed to all the other functions.
Global $myID = 0 ; We want to monitor the default GamePad
RunWait ("C:\Cabinato\Emulatori\demul07a_221215\demul.exe -run=naomi -rom=romfilename")
RunWait ("C:\Cabinato\Emulatori\demul07a_221215\DemulShooter.exe -target=demul07a -rom=romfilename -noresize -widescreen -v")
While 1
Sleep(10)
$testrawdata = GPExGetRawData($myGamePadHandle, $myID) ; Get almost every data possible from the gamepad. Returns in an array with 8 elements.
if $testrawdata[7]= (768) and ProcessExists("DemulShooter.exe") Then
ProcessClose ( "demul.exe" )
ProcessClose ( "DemulShooter.exe" )
Exit
EndIf
WEnd
sammy loader
Codice: Seleziona tutto
#RequireAdmin
#include <Misc.au3>
#include <GamePadEx.au3>
Sleep (100)
Global $myGamePadHandle = GPExInitialize() ; Get a handle. This doesn't have to be global but needs to be passed to all the other functions.
Global $myID = 0 ; We want to monitor the default GamePad
RunWait ("C:\Cabinato\Emulatori\demul07a_221215\demul.exe -run=awave -rom=romfilename")
RunWait ("C:\Cabinato\Emulatori\demul07a_221215\DemulShooter.exe -target=demul07a -rom=romfilename -noresize -widescreen -v")
While 1
Sleep(10)
$testrawdata = GPExGetRawData($myGamePadHandle, $myID) ; Get almost every data possible from the gamepad. Returns in an array with 8 elements.
if $testrawdata[7]= (768) and ProcessExists("DemulShooter.exe") Then
ProcessClose ( "demul.exe" )
ProcessClose ( "DemulShooter.exe" )
Exit
EndIf
WEnd
naomi
rom non-lighgun che lightgun vengono eseguite ok!
demulshooter non risulta eseguito, non spunta vicino l' orologio di sistema
lo script compilato non spunta vicino l' orologio di sistema
atomiswave
rom non-lightgun tutto ok / rom lightgun NON PARTONO
demulshooter non risulta eseguito, non spunta vicino l' orologio di sistema
lo script compilato non spunta vicino l' orologio di sistema
c'è qualche cosa che non va nel lanciare demul e il tool per le lightgun ....