[DEV] M.A.M.E. 0.61+ SDL - v1.0 by F. Lancioni

Qui si parla di M.A.M.E.
Rispondi
Avatar utente
Administrator
Site Admin
Messaggi: 247
Iscritto il: gio feb 25, 2016 6:32 pm
Ha ringraziato: 0
È stato ringraziato: 124 volte

[DEV] M.A.M.E. 0.61+ SDL - v1.0 by F. Lancioni

Messaggio da Administrator »

Immagine
Current version v1.0

INTRODUZIONE
In questo thread si parla del progetto che sto portando avanti nel tempo libero, ovvero un M.A.M.E. basato sulla versione 0.61.

Fondamentalmente è una versione intermedia e matura tra la 0.37b5 e la 0.78 che non è volutamente appesantita dall'ulteriore layer delle versioni Libretro (quindi niente lr- davanti al nome) ;-)
Il codice è altamente ottimizzato per ridurre il carico della CPU e funziona su diversi sistemi, ovviamente Raspberry Pi compreso! Per questo ho utilizzato la libreria SDL in modo da poter esser compilato per qualsiasi sistema che la supporti, ovvero Windows, Linux, macOS ecc.

Oltre a ciò rispetto alla versione 0.61 sono stati aggiunti (e all'occorrenza ne verranno aggiunti altri) ulteriori giochi e questo è uno dei motivi per cui si chiama M.A.M.E. 0.61+ SDL :D

Tra le varie modifiche che man mano vi illustrerò c'è la possibilità di utilizzare artwork in alta risoluzione (formato .lyt, vedere più in basso la sezione apposita).
La storia degli artwork è molto varia. Il supporto inizialmente era solo hardcoded nel driver del gioco, questo fino alla versione 0.60: in parole povere non era possibile aggiungere un, chiamiamolo genericamente, overlay esterno (motivo per cui spesso leggo di persone che chiedono come mai in M.A.M.E. 0.37b5 gli artwork non funzionano seppur presenti nella cartella artwork). La versione 0.61 è stata la prima versione che permetteva l'utilizzo degli artwork in formato .art, artwork che però potevano essere solo in bassa risoluzione. Dalla versione 0.107 invece gli artwork sono supportati (anche in alta risoluzione) in formato .lay.

Il porting regge senza problemi 60 frames al secondo "veri" sui Raspberry Pi, a parte nel primo modello. Per RPi v1 arriva però in aiuto il codice che ho scritto dove, implementando un sistema di frameskipping automatico e dinamico, vengono saltati in background diversi frames al secondo rendendo l'esecuzione sui primi Raspberry Pi praticamente full speed per molti giochi (i nostri occhi fortunatamente non si accorgono se vengono saltati alcuni frames :lol:). Per il Raspberry Pi v1 è richiesto (come con gli altri M.A.M.E.) l'overclock, seguite questa guida

PC DI SVILUPPO vs RASPBERRY PI V1
Ecco un video con un confronto di esecuzione tra il portatile sul quale sviluppo e il Raspberry Pi v1. Guardare per credere ;-)
PC vs Raspberry Pi v1

M.A.M.E. 0.61+ SDL vs lr-mame2003
In questo video viene mostrata la differenza di prestazioni su Raspberry Pi v1 tra lr-mame2003 e il mio emulatore. Direi che lr-mame2003 non regge il contronto ;-)
Raspberry Pi v1: lr-mame2003 vs M.A.M.E. 0.61+ SDL

ADAPTIVE DYNAMIC FRAMESKIPPING
Ho cambiato totalmente la logica di frameskipping presente nel M.A.M.E. migliorando notevolmente le prestazioni sui Raspberry Pi v1 e v0. Quando l'emulatore viene chiuso vedrete, tra le altre, queste informazioni:

Codice: Seleziona tutto

End game summary:
Nominal FPS: 60.000000
Virtual FPS: 60.000802
Real FPS: 60.000802

Total play time: 3192.074000 seconds

M.A.M.E. 0.61+ SDL - v1.0
Developed by Francesco Lancioni
RetroPie Italia Forum
www.retropie-italia.it
Real FPS si riferisce ai frames al secondo mostrati a video, se il valore è identico a Nominal FPS le prestazioni saranno in tutto e per tutto uguali a quelle del cabinato originale. Però attenzione, la magia è questa: Virtual FPS si riferisce ai cicli al secondo del loop principale del gioco, ovvero input, sound, video ecc. Se questo valore è prossimo o identico al valore Nominal FPS le prestazioni percepite saranno identiche a quelle del cabinato originale anche se Real FPS non coincide con Nominal FPS.

Quando Virtual FPS e Real FPS coincidono significa che nessun frame è stato saltato durante l'esecuzione

SCANLINES
Le scanlines servono per imitare l'effetto video dei vecchi schermi CRT e saranno attive di default: è possibile aggiungere il parametro noscanlines da riga di comando per non mostrarle, ad esempio

Codice: Seleziona tutto

./mame_rpi4 -rompath /home/pi/RetroPie/roms/mamesdl dino -noscanlines
Oltre a ciò nel menù del M.A.M.E. è possibile configurare un pulsante per l'opzione Scanlines On/Off per attivare/disattivare le scanlines con il M.A.M.E. in esecuzione premendo semplicemente un pulsante

FRAMEBUFFER
E' possibile impostare la dimensione del framebuffer, ovvero la dimensione della "finestra" in cui verrà mostrato il gioco in modalità fullscreen. Basterà lanciare l'emulatore con i parametri framebuffer-width e framebuffer-height, ad esempio

Codice: Seleziona tutto

./mame_rpi4 -rompath /home/pi/RetroPie/roms/mamesdl dino -framebuffer-width 1280 -framebuffer-height 996
Questo può essere particolarmente utile nel caso in cui avete uno schermo molto grande e volete ridurre la dimensione del gioco. Oppure avete costruito un cabinato arcade ma l'apertura nel legno copre leggermente i bordi dello schermo: utilizzate quindi i parametri appositi e successivamente centrate il framebuffer rispetto all'apertura del cabinato con i comandi posti sul monitor

HD ARTWORK
Gli artwork sono quelle grafiche che circondavano il monitor dei cabinati. Il codice sorgente è stato modificato quindi con M.A.M.E. 0.61+ SDL sono utilizzabili gli artwork in alta risoluzione nel formato .lyt. Vi basterà inserire l'immagine in formato .png nella cartella artwork con lo stesso nome del romset (per Final Fight quindi sarà ffight.png) e un file di testo, con estensione .lyt e sempre con il nome del romset (per Final Fight quindi sarà ffight.lyt), con il seguente contenuto autoesplicativo (almeno credo):

Codice: Seleziona tutto

Width="4000" Height="3743"
HoleWidth="2920" HoleHeight="2190"
HoleX="540" HoleY="822"
Fatto ciò basterà lanciare l'emulatore con il parametro hd-artwork, ad esempio

Codice: Seleziona tutto

./mame_rpi4 -rompath /home/pi/RetroPie/roms/mamesdl dino -hd-artwork
Oltre a ciò nel menù del M.A.M.E. è possibile configurare un pulsante per l'opzione HD Artwork On/Off per mostrare/nascondere l'artwork con il M.A.M.E. in esecuzione premendo semplicemente un pulsante

ROMSET AGGIUNTI / MODIFICATI
Rispetto alla versione 0.61 originale al momento sono stati aggiunti/modificati questi romset:
  • aligator - Alligator Hunt --> from v0.68
  • aligatun - Alligator Hunt (unprotected) --> from v0.68
  • bang - Bang! --> from v0.68
  • dadandrn - Kyukyoku Sentai Dadandarn (Japan ver JAA) --> from v0.68
  • daiskiss - Daisu-Kiss (Ver JAA) --> from v0.68
  • dragoonj - Dragoon Might (Ver JAA) --> from v0.68
  • fantjour - Fantastic Journey --> from v0.68
  • gaiapols - Gaiapolis (Japan ver JAF) --> from v0.68
  • gokuparo - Gokujyou Parodius (Ver JAD) --> from v0.68
  • le2 - Lethal Enforcers II: Gun Fighters (Ver EAA) --> from v0.68
  • le2u - Lethal Enforcers II: Gun Fighters (Ver UAA) --> from v0.68
  • maniacsp - Maniac Square (prototype) --> from v0.68
  • maniacsq - Maniac Square (unprotected) --> from v0.68
  • metamrph - Metamorphic Force (US ver UAA) --> from v0.68
  • mtlchmpj - Martial Champion (Japan ver JAA) --> from v0.68
  • mystwarr - Mystic Warriors (World ver EAA) --> from v0.68
  • mystwaru - Mystic Warriors (US ver UAA) --> from v0.68
  • puzldama - Taisen Puzzle-dama (Ver JAA) --> from v0.68
  • salmndr2 - Salamander 2 (JAA) --> from v0.68
  • sexyparo - Sexy Parodius (Ver JAA) --> from v0.68
  • snowbalt - Snow Board Championship (set 2) --> from v0.68
  • snowboar - Snow Board Championship (set 1) --> from v0.68
  • tbyahhoo - Twin Bee Yahhoo! (Ver JAA) --> from v0.68
  • tkmmpzdm - Tokimeki Memorial Taisen Puzzle-dama (version JAB) --> from v0.68
  • tokkae - Tokkae Puzzle-dama (Ver JAA) --> from v0.68
  • viostorm - Violent Storm (Europe ver EAB) --> from v0.68
  • viostrma - Violent Storm (Asia ver AAC) --> from v0.68
  • viostrmj - Violent Storm (Japan ver JAC) --> from v0.68
  • viostrmu - Violent Storm (US ver UAB) --> from v0.68
  • wrally2 - World Rally 2: Twin Racing --> from v0.68
  • konamigx - System GX --> from v0.68
Per ricreare il set corretto utilizzate MAME Set Rebuilder con il file 0.61+.dat che trovate nell'archivio contenente gli eseguibili oppure estraetelo direttamente dall'eseguibile come indicato qui

NOTA PER RASPBERRY PI
Attualmente (RetroPie v4.7.1) la libreria SDL Image installabile con Raspberry Pi OS (ex Raspbian) (il sistema operativo alla base di Raspberry Pi e quindi di RetroPie) è una versione non recentissima che si appoggia a una versione della libreria libpng (v1.6.36) che contiene un bug. Per poter quindi usare gli artwork in alta risoluzione dovrete compilare entrambe queste librerie dal codice sorgente con alcuni semplici passi.
Se avete la libreria installata rimuovetela con questo comando:

Codice: Seleziona tutto

sudo apt remove --purge libsdl2-image-2.0-0 libsdl2-image-dev
Scaricate questi archivi, libpng-libpng16.zip e SDL2_image-2.0.5.zip, dopodichè copiateli in

Codice: Seleziona tutto

/home/pi
e successivamente seguite questi passaggi in sequenza (tra un passaggio e l'altro dovrete attendere un po' di tempo, aspettate che ogni operazione venga completata correttamente):

LIBPNG

Codice: Seleziona tutto

cd /home/pi
unzip libpng-libpng16.zip
cd libpng-libpng16/
./configure
make
sudo make install
sudo ldconfig
SDL IMAGE

Codice: Seleziona tutto

cd /home/pi
unzip SDL2_image-2.0.5.zip
cd SDL2_image-2.0.5/
mkdir build
cd build
../configure
make -j3
sudo make install
sudo ldconfig
Se il vostro Raspberry Pi è connesso a un monitor VGA-DVI, quindi utilizzando per l'audio il jack apposito, nella riga di comando dovete aggiungere il parametro headphones, ad esempio:

Codice: Seleziona tutto

./mame_rpi4 -rompath /home/pi/RetroPie/roms/mamesdl dino -headphones
CONTROLLI VIA TASTIERA
Come di conseuto di default premete Tab per configurare i comandi tramite il menù di configurazione del M.A.M.E. (usate le frecce ed Invio), premete Esc per tornare indietro e, se il menù non è visualizzato, per chiudere l'emulatore. Sempre come default i tasti 5 e 1 servono rispettivamente per inserire i coins e premere Start per il giocatore 1.
I tasti configurabili sono tutte le lettere dalla A alla Z, tutti le cifre da 0 a 9 (tastierino numerico incluso), i tasti funzione da F1 a F12, i tasti Escape, Backspace, Tab, Invio, Spazio, Canc, le frecce direzionali (tastierino numerico escluso), il blocco maiuscole, Shift, Ctrl, Alt (questi ultimi 3 sia destro che sinistro). Tutti gli altri sono stati volutamente esclusi per non creare confusione con la loro differente posizione a seconda del layout tastiera scelto (italiano, inglese ecc.).
Ad esempio potreste usare W, S, A, D, J, K ed L ragionevolmente associabili in un gioco ad Up, Down, Left, Right, Button 1, Button 2 e Button 3 del giocatore 1

CONTROLLI VIA JOYPAD
Potete collegare fino a 4 joypads conteporaneamente e procedere come di consueto alla loro configurazione premendo Tab su una tastiera collegata ad emulatore avviato (di default usate le frecce ed Invio, premete Esc per tornare indietro e, se il menù non è visualizzato, per chiudere l'emulatore). Quando configurate i joypads tramite il menù del M.A.M.E. la configurazione si basa sull'ID che il sistema operativo assegna ai joypads. Quindi al primo avvio collegate i joypads, ogni joypad in una determinata porta USB, e li configurate nel menù del M.A.M.E. come detto sopra. Se durante il gioco scollegate e ricollegate un joypad, o più di uno, anche se cambiate porta USB non avrete nessun impatto sul mapping che avete eseguito, ovvero potrete continuare a giocare con gli stessi joypad associati agli stessi giocatori. La magia funziona a runtime, se però chiudete l'emulatore e lo riavviate dovrete avere i joypads collegati nelle stesse porte USB di quando avete fatto la prima configurazione, soprattutto se utilizzate joypads diversi, XBOX 360, PlayStation ecc.

Questo è un surplus, nessun emulatore si preoccupa di questo fatto lasciando all'utente l'incombenza di non scollegare i joypads durante l'esecuzione. Ha richiesto parecchie righe di codice e un sistema molto complicato di gestione dei dati per i joypads disconnessi, forse ho perso tempo, ma a me piace di più così ;-)

ROMSET
Non dovete fare altro che copiare le vostre roms versione 0.61+ (come già accennato usate MAME Set Rebuilder con il file .dat allegato al programma oppure estraetelo direttamente dall'eseguibile come indicato qui) nella cartella roms oppure, se state integrando l'emulatore in RetroPie, nella cartella mamesdl come spiegato più avanti

INTEGRAZIONE IN RETROPIE SU RASPBERRY PI
Se volete integrarlo in RetroPie procedete comse segue. Scaricate il programma dal link presente in basso ed estraetelo sul vostro computer. Sul Raspberry Pi aprite il file es_systems.cfg con questo comando

Codice: Seleziona tutto

sudo nano /etc/emulationstation/es_systems.cfg
e aggiungete in fondo al file questa configurazione

Codice: Seleziona tutto

<system>
    <name>mamesdl</name>
    <fullname>MAME 0.61+ SDL</fullname>
    <path>/home/pi/RetroPie/roms/mamesdl</path>
    <extension>.zip .ZIP</extension>
    <command>cd /home/pi/MAME_0.61+_SDL; ./mame_rpi4 -rompath /home/pi/RetroPie/roms/mamesdl %ROM%</command>
    <platform>mamesdl</platform>
    <theme>mame</theme>
</system>
Attenzione: nel tag command sostituite mame_rpi4 con il M.A.M.E. compatibile con il vostro Raspberry Pi, ad esempio per un Raspberry Pi v2 scrivete mame_rpi2
Attenzione: se utilizzate il file es_systems.cfg personalizzato dovete aggiungere la configurazione in quel file
Create la cartella mamesdl e la cartella MAME_0.61+_SDL rispettivamente con questi comandi:

Codice: Seleziona tutto

mkdir /home/pi/RetroPie/roms/mamesdl

Codice: Seleziona tutto

mkdir /home/pi/MAME_0.61+_SDL
Copiate l'eseguibile dell'emulatore, nel nostro esempio mame_rpi4, insieme alla cartelle presenti nell'archivio .zip nella cartella MAME_0.61+_SDL.

Riavviate EmulationStation (o il sistema) ;-)

INTEGRAZIONE IN RETROPIE SU UBUNTU
Come per il Raspberry Pi dovete avere installata la libreria SDL2 insieme a SDL Image, entrambe in versione 32 bit. Poi effettuate una configurazione simile a quella spiegata per Raspberry Pi cambiando il percorso del file es_systems.cfg in base a quello relativo al vostro sistema

VERSIONE WINDOWS
In questo caso vi basterà lanciare da riga di comando l'eseguibile, le librerie necessarie sono contenute nella cartella insieme al M.A.M.E. Per comodità però è consigliabile utilizzare un frontend, uno vale l'altro, se ne volete uno senza fronzoli c'è sempre MAME Simple Frontend che ho personalmente sviluppato
Tenete conto che non è supportata l'opzione dell'interfaccia Original resolution window (poco male in realtà su schermi grandi e ad elevata risoluzione odierni) tra le M.A.M.E. display options
Se usate MAME Simple Frontend le cartelle artwork, cfg ecc. devono esser presenti nella stessa cartella che contiene l'eseguibile di MAME Simple Frontend
CONCLUSIONI
Non resta niente da aggiungere, che dire...
Buon M.A.M.E. a tutti :D

Current version 1.0 (27-02-2021):
- All Raspberry Pi (v0, v1, v2, v3, v4)
- Ubuntu (20.04, 64 bit, librerie SDL2 32 bit)
- Windows (10, 64 bit, librerie SDL2 32 bit)

Download link is inside this file (you must be logged):
M.A.M.E. 0.61+ SDL - v1.00.txt
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Questi utenti hanno ringraziato l'autore Administrator per il post (totale 6):
GuybrushPadremayiNewtonIonicpaologClaus83
Reputazione: 60%
"A volte sono le persone che nessuno immaginava potessero fare certe cose quelle che fanno cose che nessuno può immaginare" A. Turing
_____________________________________________________________
Aiutiamo il forum con una donazione :-)

Hardware:
Raspberry Pi v3 B

Avatar utente
Administrator
Site Admin
Messaggi: 247
Iscritto il: gio feb 25, 2016 6:32 pm
Ha ringraziato: 0
È stato ringraziato: 124 volte

Re: [DEV] M.A.M.E. 0.61 SDL

Messaggio da Administrator »

Claus83 ha scritto:
dom mag 17, 2020 3:09 am
Ciao Guybrush, correggimi se sbaglio..quindi ci sarà un emulatore lr-mame 2002 ? che si potrà usare ovviamente solo con il rom set 0.61...giusto?
Per caso vuoi fare una prova su una versione beta beta beta del porting? Non ho un Raspberry Pi 4 per compilarlo, semmai lo compilo su un Raspberry Pi 3, vediamo come si comporta (ovviamente sarebbe opportuno compilare con i flags di ottimizzazione corretti piattaforma per piattaforma).

Poi semmai ti dico come provarlo, di sicuro ti servirà una tastiera collegata al Raspberry Pi
"A volte sono le persone che nessuno immaginava potessero fare certe cose quelle che fanno cose che nessuno può immaginare" A. Turing
_____________________________________________________________
Aiutiamo il forum con una donazione :-)

Hardware:
Raspberry Pi v3 B

Avatar utente
Claus83
Messaggi: 239
Iscritto il: sab apr 25, 2020 12:12 am
Ha ringraziato: 90 volte
È stato ringraziato: 17 volte

Re: [DEV] M.A.M.E. 0.61 SDL

Messaggio da Claus83 »

Ciao Administrator! Certamente! Ne sono onorato.. :D l’unica cosa è che posso farlo solo la notte..e mi dovrai dire come fare e ti riporto i feedback...intanto preparo il set con mame set rebuilder...a presto
"Che strano gioco... la sola mossa vincente è quella di non giocare..."

dal film "Wargames - giochi di guerra" (1983)
--------------------------------------------------------------------------------------
Raspberry Pi 4 Model B Rev 1.2

Avatar utente
Administrator
Site Admin
Messaggi: 247
Iscritto il: gio feb 25, 2016 6:32 pm
Ha ringraziato: 0
È stato ringraziato: 124 volte

Re: [DEV] M.A.M.E. 0.61 SDL

Messaggio da Administrator »

Claus83 ha scritto:
dom mag 24, 2020 12:12 pm
Ciao Administrator! Certamente! Ne sono onorato.. :D l’unica cosa è che posso farlo solo la notte..e mi dovrai dire come fare e ti riporto i feedback...intanto preparo il set con mame set rebuilder...a presto
Scarica il programma dal primo post del thread ed estrailo in

Codice: Seleziona tutto

/home/pi
Esci da EmulationStation entra nella cartella dell'emulatore e digita:

Codice: Seleziona tutto

./mame <nome_romset>
quindi ad esempio per Cadillacs and Dinosaurs

Codice: Seleziona tutto

./mame dino
Come di conseuto premi Tab per configurare i comandi (usa le frecce ed Invio), premi Esc per tornare indietro e, se il menù non è visualizzato, per chiudere l'emulatore.

Hai un Raspberry Pi 4, è stato compilato sul 3, vediamo intanto se ti funziona (potrebbe non farlo).

Ricordo che è una versione di sviluppo, non un prodotto finito ;-)
"A volte sono le persone che nessuno immaginava potessero fare certe cose quelle che fanno cose che nessuno può immaginare" A. Turing
_____________________________________________________________
Aiutiamo il forum con una donazione :-)

Hardware:
Raspberry Pi v3 B

Avatar utente
Claus83
Messaggi: 239
Iscritto il: sab apr 25, 2020 12:12 am
Ha ringraziato: 90 volte
È stato ringraziato: 17 volte

Re: [DEV] M.A.M.E. 0.61 SDL

Messaggio da Claus83 »

Ciao Administrator, ho provato proprio la rom dino, si avvia istantaneamente in fullscreen..settato i tasti..solo che ho una mini tastiera cinese ed è scomoda per giocarci.. :D
Impressione mia..sia il video che l'audio non sono molto fluidi paragonandolo alla versione sul mame lr 2003..
Per il resto sono a disposizione.. un saluto
"Che strano gioco... la sola mossa vincente è quella di non giocare..."

dal film "Wargames - giochi di guerra" (1983)
--------------------------------------------------------------------------------------
Raspberry Pi 4 Model B Rev 1.2


Avatar utente
Administrator
Site Admin
Messaggi: 247
Iscritto il: gio feb 25, 2016 6:32 pm
Ha ringraziato: 0
È stato ringraziato: 124 volte

Re: [DEV] M.A.M.E. 0.61 SDL

Messaggio da Administrator »

Claus83 ha scritto:
lun mag 25, 2020 2:27 am
Impressione mia..sia il video che l'audio non sono molto fluidi paragonandolo alla versione sul mame lr 2003..
Ciao, mi aspettavo qualche problema visto che non è stato compilato su un Raspberry Pi 4, però partiamo da dati oggettivi.

Per non andare a sensazioni, quantomeno per la parte video, mi dovresti copiare l'output finale che appare nel momento in cui chiudi l'emulatore. Lì vengono indicate queste informazioni:

Codice: Seleziona tutto

Display Width: ...
Display Height: ...
Game FPS: ...
Frames displayed per second: ... (... frames)
Frames skipped per second: ... (... frames)
Last frameskipping value: ... (Higher is better)

M.A.M.E. 0.61 SDL - Beta1
Developed by Francesco Lancioni
RetroPie Italia Forum
www.retropie-italia.it
Se Frames displayed per second è pari, o leggermente superiore, al valore Game FPS la parte video è per forza di cose fluida. Infatti quel valore viene calcolato facendo esattamente il rapporto tra i frames mostrati a video e il tempo di esecuzione durante il quale sono stati disegnati. Non si scappa, se indica circa 60 frames al secondo sono 60 frames al secondo.

Mi aspetto che su un Raspberry Pi 4 il valore Frames skipped per second sia pari a zero visto che lo è sul Raspberry Pi 3. Ad ogni modo però va considerato che i flags passati al compilatore sono per l'hardware del Raspberry Pi 3, per fare un'ulteriore prova potrei provare a compilare il codice senza ottimizzazioni da parte del compilatore.

Intanto fammi sapere
"A volte sono le persone che nessuno immaginava potessero fare certe cose quelle che fanno cose che nessuno può immaginare" A. Turing
_____________________________________________________________
Aiutiamo il forum con una donazione :-)

Hardware:
Raspberry Pi v3 B

Avatar utente
Claus83
Messaggi: 239
Iscritto il: sab apr 25, 2020 12:12 am
Ha ringraziato: 90 volte
È stato ringraziato: 17 volte

Re: [DEV] M.A.M.E. 0.61 SDL

Messaggio da Claus83 »

Buongiorno, eccolo...
Immagine
Ultima modifica di Claus83 il gio giu 11, 2020 1:15 am, modificato 1 volta in totale.
"Che strano gioco... la sola mossa vincente è quella di non giocare..."

dal film "Wargames - giochi di guerra" (1983)
--------------------------------------------------------------------------------------
Raspberry Pi 4 Model B Rev 1.2

Avatar utente
Guybrush
Site Admin
Messaggi: 2226
Iscritto il: gio feb 25, 2016 6:33 pm
Ha ringraziato: 61 volte
È stato ringraziato: 113 volte

Re: [DEV] M.A.M.E. 0.61 SDL

Messaggio da Guybrush »

È interessante che ti abbia saltato alcuni frames, visto che anche sul mio Raspberry Pi 3, come diceva Administrator, non succede.

Ho qualche minuto, mi faccio girare le opzioni e te lo ricompilo io senza flags di ottimizzazione per il Pi 3
"Dobbiamo costruire computer per le masse, non per le classi" J. Tramiel
_____________________________________________________________
Aiutiamo il forum con una donazione :-)

Hardware:
Raspberry Pi Model B Rev 2 (x2)
Raspberry Pi 3 Model B Rev 1.2

Avatar utente
Claus83
Messaggi: 239
Iscritto il: sab apr 25, 2020 12:12 am
Ha ringraziato: 90 volte
È stato ringraziato: 17 volte

Re: [DEV] M.A.M.E. 0.61 SDL

Messaggio da Claus83 »

Una domanda...SDL nel nome dell'emulatore sta per simple directmedia layer? magari non c’entra nulla..ma ho notato che nel menù di setup di retropie c'è installato solo la versione 2... ho re installato da source...poi ho riavviato e fatto ripartire sempre dino...ripeto magari non c’entra nulla..semplice curiosità...ma ho visto che i valori sono diversi..
Immagine
Ultima modifica di Claus83 il gio giu 11, 2020 1:17 am, modificato 1 volta in totale.
"Che strano gioco... la sola mossa vincente è quella di non giocare..."

dal film "Wargames - giochi di guerra" (1983)
--------------------------------------------------------------------------------------
Raspberry Pi 4 Model B Rev 1.2

Avatar utente
Administrator
Site Admin
Messaggi: 247
Iscritto il: gio feb 25, 2016 6:32 pm
Ha ringraziato: 0
È stato ringraziato: 124 volte

Re: [DEV] M.A.M.E. 0.61 SDL

Messaggio da Administrator »

Claus83 ha scritto:
mar mag 26, 2020 12:34 am
Una domanda...SDL nel nome dell'emulatore sta per simple directmedia layer?
Sì, SDL sta proprio per Simple Directmedia Layer.

Il cuore del codice M.A.M.E. non è stato toccato a parte qualche, diciamo, "mistake" veramente stupido presente qua e là che però non influenzava il suo funzionamento. Tutta la parte che utilizzava le librerie di Windows per creare una finestra, mostrare l'immagine, emettere un suono, acquisire input ecc. è stata riscritta utilizzando le librerie SDL.

In questo modo il M.A.M.E. diventa multipiattaforma, quindi può essere compilato per Linux (compresa architettura ARM come Raspberry Pi), Windows, macOS e tutti gli altri sistemi operativi che supportano SDL.

Detto ciò potresti eseguire questo comando

Codice: Seleziona tutto

sdl2-config --version
e indicarmi l'output?

Tra poco allego un video del funzionamento su Raspberry Pi 3. Sui nostri Raspberry non viene saltato nessun frame. Nel primo post del thread trovi la Beta1.1 compilata su Raspberry Pi v3 senza dare in pasto nessun flags di ottimizzazione al compilatore.

In realtà non so cosa aspettarmi, in questo modo su RPi v3 ogni tanto viene saltato qualche frame, vediamo però se con il 4 la situazione è meno peggio dell'eseguire un programma ottimizzato per un altro hardware
"A volte sono le persone che nessuno immaginava potessero fare certe cose quelle che fanno cose che nessuno può immaginare" A. Turing
_____________________________________________________________
Aiutiamo il forum con una donazione :-)

Hardware:
Raspberry Pi v3 B

Rispondi