Attract-Mode - Launch Decorator plugin

Frontend principali e loro configurazioni
Avatar utente
alucard
Level Start
Level Start
Messaggi: 16
Iscritto il: 01/03/2021, 9:06
Reputation: 15

Attract-Mode - Launch Decorator plugin

Messaggio da alucard »

Salve

ho realizzato un plugin per Attract-Mode che consente di invocare automaticamente uno script prima e/o dopo l'esecuzione di un gioco.

Premessa
Ricordo che questo comportamento si può ottenere anche senza plugin. E' sufficiente fare in modo che AM invochi un opportuno script al posto dell'invocazione diretta dell'emulatore. Con un po' di pazienza, si riesce a realizzare uno script generico, in grado di invocare a sua volta altri script prima e dopo l'esecuzione del gioco.

Descrizione
Il funzionamento del plugin si basa su un approccio tipicamente definito "convention over configuration", quindi, a patto di seguire la convenzione imposta, si ottiene automaticamente l'intervento del plugin.

Dopo l'installazione e l'abilitazione, è necessario configurare due parametri:
  • ScriptRoot, cartella radice che conterrà tutti gli script invocati
  • ScriptExtensions, le estensioni da considerare per gli script, separate da virgola. Es .bat,.exe,.au3
Gli script vanno organizzati rispettando la seguente struttura

📦ScriptRoot
📂{nome emulatore}
┃ ┗ 📜before.{estensione script}
┃ ┗ 📜after.{estensione script}
┃ ┗ 📜...
┃ ┗ 📜before.{nome gioco}.{estensione script}
┃ ┗ 📜after.{nome gioco}.{estensione script}
┃ ┗ 📜...

📂...

dove
  • {nome emulatore} deve corrispondere ai valori della colonna Emulator delle rom list
  • {nome gioco} deve corrispondere ai valori della colonna Name delle rom list
Ad eccezione della radice ScriptRoot (configurabile), tutti gli altri elementi sono opzionali e le estensioni possono essere miste.
Gli script verranno eseguiti solo se presenti.

Lanciando un gioco da frontend, il pugin cercherà uno script valido da invocare secondo il seguente criterio:
  1. script specifico per il gioco

    Codice: Seleziona tutto

     {nome emulatore}/before.{nome gioco}.{estensione file} ==> Es. mame/before.1943.bat 
  2. script specifico per emulatore

    Codice: Seleziona tutto

     {nome emulatore}/before.{estensione file} ==> Es. mame/before.bat 
Nel primo caso, lo script di esempio verrà eseguito solo per quel determinato gioco. Nel secondo caso, lo script di esempio verrà eseguito per tutti i giochi associati a quell'emulatore.

Stessa logica dopo l'uscita dal gioco, con il termine "after" al posto di "before".

La ricerca viene tentata per tutte le estensioni censite e termina al primo file trovato.

Allo script invocato, vengono passati in ingresso i seguenti parametri: nome emulatore, nome gioco. I parametri possono essere usati o ignorati.

Note
Il plugin è in grado di invocare i medesimi script invocabili direttamente da riga di comando. Per alcuni tipi occorre istruire preventivamente il sistema. In ambiente Windows, è sufficiente provare a lanciare una volta lo script da riga di comando.

Download
Il plugin e le istruzioni sono reperibili a questo indirizzo
https://github.com/matteocedroni/am-lau ... tor-plugin