Lo script in pratica avvia il gioco e la registrazione con groovywolf, finita la partita alla pressione tel tasto esc rinomina automaticamente il file .inp appena creato così si eviterà, avviando una nuova partita, di poter sovrascrivere la precedente registrazione, perdendo magari un record buono. Questo comporta la creazione di uno script per ogni gioco ma non credo sia un problema, un attacco al record in genere viene fatto su uno o due titoli quindi ci può stare.
Ho realizzato due versioni dello stesso script, una completamente "silenziosa", durante la quale non avremo comunicazioni, l'altra che ci mostrerà un messaggio dopo la pressione del tasto esc e la rinomina del file .inp, in qiesto caso era riferito a gigawing ed era il terzo tentativo.
Alla pressione del tasto enter il messaggio scompare e siamo pronti ad iniziare una nuova partita, questo nel caso ci volessimo annotare il numero inp, volendo tener traccia della partita appena fatta.
Alla pressione del tasto enter il messaggio scompare e siamo pronti ad iniziare una nuova partita, questo nel caso ci volessimo annotare il numero inp, volendo tener traccia della partita appena fatta.
Spesso capita che dovendo chiudere il frontend per rinominare il file o controllarne il nome si perda quella concentrazione fondamentale se si sta tentando un record.
Gli script sono perfettamente funzionanti e testati con il frontend Attractmode, non ho avuto modo di provarli con altri FE ma non dovrebbeero esserci problemi, eccoli di seguito.
Versione "silenziosa"
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.14.2
Author: b4nd1t0
Funzione dello script: avvio e registrazione partita + rinomina in automatico del file .inp appena registrato per impedire che venga sovrascritto iniziando una nuova partita.
Script Function: Start playing and recording + automatically renames the newly registered .inp file to prevent it from being overwritten by starting a new game.
#ce ----------------------------------------------------------------------------
; Script StartRun("groovywolf.exe nomerom -record nomerom.inp -nvram_directory NUL")
AutoIt Version: 3.3.14.2
Author: b4nd1t0
Funzione dello script: avvio e registrazione partita + rinomina in automatico del file .inp appena registrato per impedire che venga sovrascritto iniziando una nuova partita.
Script Function: Start playing and recording + automatically renames the newly registered .inp file to prevent it from being overwritten by starting a new game.
#ce ----------------------------------------------------------------------------
; Script StartRun("groovywolf.exe nomerom -record nomerom.inp -nvram_directory NUL")
While 1
If Not ProcessExists("groovywolf.exe") Then
#include <File.au3>
Global $sFileFrom = "inp\nomerom.inp"
Global $sFileTo = "inp\nomerom.inp"
$vResult = _SecureFileMove($sFileFrom, $sFileTo)
Exit
Func _SecureFileMove($sFileFrom, $sFileTo)
Local $iIndex = 0, $sFileTemp, $iResult
Local $sDrive, $sDir, $sFName, $sExt
If FileExists($sFileTo) Then
_PathSplit($sFileTo, $sDrive, $sDir, $sFName, $sExt)
While 1
$iIndex = $iIndex + 1
$sFileTemp = $sDrive & $sDir & $sFName & "_" & $iIndex & $sExt
If Not FileExists($sFileTemp) Then ExitLoop
WEnd
$sFileTo = $sFileTemp
EndIf
$iResult = FileCopy($sFileFrom, $sFileTo)
If $iResult = 1 Then Return $sFileTo
Return 0
EndFunc ;==>_SecureFileMove
Exit
EndIf
WEnd
Versione con conferma di rinomina
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.14.2
Author: b4nd1t0
Funzione dello script: avvio e registrazione partita + rinomina in automatico del file .inp appena registrato per impedire che venga sovrascritto iniziando una nuova partita. Appena effettuata la rinomina compare una finestra di conferma con il nome file assegnato, premere enter per proseguire.
Script Function: Start playing and recording + automatically renames the newly registered .inp file to prevent it from being overwritten by starting a new game. When renaming is completed, a confirmation window appears with the assigned file name, press enter to continue.
#ce ----------------------------------------------------------------------------Run("groovywolf.exe nomerom -record nomerom.inp -nvram_directory NUL")
AutoIt Version: 3.3.14.2
Author: b4nd1t0
Funzione dello script: avvio e registrazione partita + rinomina in automatico del file .inp appena registrato per impedire che venga sovrascritto iniziando una nuova partita. Appena effettuata la rinomina compare una finestra di conferma con il nome file assegnato, premere enter per proseguire.
Script Function: Start playing and recording + automatically renames the newly registered .inp file to prevent it from being overwritten by starting a new game. When renaming is completed, a confirmation window appears with the assigned file name, press enter to continue.
#ce ----------------------------------------------------------------------------Run("groovywolf.exe nomerom -record nomerom.inp -nvram_directory NUL")
While 1
If Not ProcessExists("groovywolf.exe") Then
#include <File.au3>
Global $sFileFrom = "inp\nomerom.inp"
Global $sFileTo = "inp\nomerom.inp"
$vResult = _SecureFileMove($sFileFrom, $sFileTo)
If $vResult == 0 Then ; 0 = error
MsgBox(0, "", "Errore nel rinominare il file/Error renaming file: " & $sFileTo)
Else ; on success the name of the moved file is returned
MsgBox(0, "", "File salvato correttamente/File saved successfully: " & $vResult)
EndIf
Exit
Func _SecureFileMove($sFileFrom, $sFileTo)
Local $iIndex = 0, $sFileTemp, $iResult
Local $sDrive, $sDir, $sFName, $sExt
If FileExists($sFileTo) Then
_PathSplit($sFileTo, $sDrive, $sDir, $sFName, $sExt)
While 1
$iIndex = $iIndex + 1
$sFileTemp = $sDrive & $sDir & $sFName & "_" & $iIndex & $sExt
If Not FileExists($sFileTemp) Then ExitLoop
WEnd
$sFileTo = $sFileTemp
EndIf
$iResult = FileCopy($sFileFrom, $sFileTo)
If $iResult = 1 Then Return $sFileTo
Return 0
EndFunc ;==>_SecureFileMove
Exit
EndIf
WEnd
gli unici parametri che andranno modificati in entrambe le versioni sono il nome dell'eseguibile groovywolf e il nome della rom da avviare con il relativo inp (2 eseguibili e 4 nomerom)
Per qualunque problema o consiglio (si può sempre migliorare 😤) non esitate a contattarmi.