Newsgroup: it.comp.software.emulatori
Titolo: Prestazioni del mame: un'analisi scientifica

IPOTESI DA VERIFICARE:
i rallentamenti del mame sarebbero causati da un'aumento 
dell'accuratezza nell'emulazione
CONSEGUENZE DELL'IPOTESI:
se l'ipotesi risulta vera, i decadimenti prestazionali si verificheranno 
SOLO quando l'accuratezza dell'emulazione viene aumentata, mentre le 
prestazioni resteranno costanti se l'accuratezza resta costante. Invece, 
se l'ipotesi è falsa, i rallentamenti saranno continui
SVOLGIMENTO DELLA PROVA:
sono state scaricate varie versioni del mame, rilasciate 
approssimativamente a distanza di 6 mesi l'una dall'altra, partendo dal 
maggio del 2001 (quando, per la prima volta, la versione ufficiale è 
stata compilata per Windows anziché per DOS) fino ad arrivare all'ultima 
versione. Sono state confrontate le prestazioni su 4 giochi: Bombjack, 
Pacman e Tempest perchè menzionati nel precedente topic sulle 
prestazioni del mame; Mortal Kombat 3 perchè è più complesso da emulare 
rispetto agli altri tre e permette di osservare se le prestazioni 
variano in maniera diversa quando si emulano giochi di diversa 
complessità. I risultati sono stati inseriti in una tabella ed è stato 
costruito un grafico per averne una rappresentazione più immediata. La 
tabella e il grafico sono scaricabili da:
http://devilmaster.altervista.org/mamelento.pdf
OSSERVAZIONI:
Dalle analisi effettuate si nota quanto segue:
- Dalla versione 0.61, Tempest ha avuto un calo di prestazioni 
spaventoso. Il motivo NON è spiegato nel whatsnew, che non fa alcun 
riferimento alla gestione della grafica vettoriale (gli unici 
cambiamenti della parte grafica menzionati riguardano l'interfaccia). 
Per quale motivo è stato TACIUTO questo cambiamento?
- Dalla versione 0.87, le rom dei giochi impiegano molto più tempo a 
caricare (bombjack impiega 20 secondi). Il problema è stato risolto tra 
la versione 0.96 e la 0.102. Di nuovo, il whatsnew non fa menzione del 
problema nè menziona alcun cambiamento nel sistema di caricamento dei 
giochi.
- Dalla versione 0.107 è stato implementato un "nuovo sistema di 
rendering" che imposta la finta modalità Direct3D come default, 
costringe a forzare le DirectDraw e il cambio di risoluzione con -video 
ddraw -switchres, cambia il modo di rappresentare i giochi vettoriali 
(linee che diventano più luminose nei punti di intersezione, invece che 
linee con luminosità costante) e abbassa le prestazioni in qualsiasi 
modalità video (anche DirectDraw). Questo è l'UNICO abbassamento di 
prestazioni documentato nel whatsnew.
- I rallentamenti sono continui fino alla versione 0.131, a partire 
dalla quale le prestazioni sono praticamente costanti. Questo invalida 
l'ipotesi da verificare e permette di concludere che i rallentamenti non 
sono causati da aumenti dell'accuratezza, ma fa sorgere altre domande. 
Cos'è successo nel mame team prima che uscisse? Nuovi membri? Vecchi 
membri che se ne sono andati? Cambio di politica? Il whatsnew non ne fa 
parola.
- Il whatsnew documenta l'abbassamento di prestazioni dovuto al nuovo 
sistema di rendering. Invece, NON documenta i graduali ma continui 
rallentamenti tra una versione e la successiva, nè il mostruoso 
rallentamento di Tempest a partire dalla versione 0.61, nè l'improvviso 
stabilizzarsi delle prestazioni a partire dalla versione 0.131. Esistono 
solo due motivi per questo: o il mame team non si rende(va) conto di 
quello che sta(va) facendo, quindi non documenta(va) i rallentamenti 
perchè non sa(peva) nemmeno di causarli, o il mame team 
inserisce(inseriva) apposta i rallentamenti per trollare chi usa il 
mame, per cui non li documenta(va) perchè farlo renderebbe palese il 
trollaggio.
CONCLUSIONI
Queste sono le prove che la maggior parte dei rallentamenti non sono un 
effetto collaterale dell'aumento di accuratezza, ma causati da stupidità 
o malafede, e le prove che chiunque sostenga il contrario ha torto.

 o malafede, e le prove che chiunque sostenga il contrario ha torto.
Non sono completamente convinto.
Non conosco il codice del MAME, ma ti parlo da sviluppatore.
Ti faccio un esempio che, secondo me, e' una ipotesi plausibille.
Un aumento nell'accuratezza dell'emulazione della cpu utilizzata da 
Tempest, potrebbe permettere il funzionamento di altri giochi che 
utilizzano la stessa cpu, mentre per quanto riguarda Tempest non 
cambierebbe niente (funzionava prima e funziona dopo), a parte un degrado 
di prestazioni.
Quindi magari Tempest non viene esplicitamente nominato nel whatsnew, ma 
viene nominata una modifica alla emulazione della cpu. O all'engine 
comune agli emulatori delle cpu (ammesso che esista un engine comune).
Potrebbe essere che viene nominata nel whatsnew una ristrutturazione del 
codice volta a preparare la strada per permettere un miglioramento 
dell'accuratezza dell'emulazione.
Questa ristrutturazione, magari, ha semplicemente lo scopo di 
semplificare o razionalizzare le cose, ridurre la possibilita' di 
introdurre errori nei nuovi sviluppi.
Tutte queste cose che ho nominato non si vedono a livello di accuratezza 
dell'emulazione di Tempest, ma agiscono sulle prestazioni.
E se le prestazioni NON sono un loro problema, come dichiarato... non 
sempre si curano di specificare cio' nel whatsnew.
Marco Turconi

 o malafede, e le prove che chiunque sostenga il contrario ha torto.
Il MAME team ha obiettivi che non sono i tuoi.
Secondo i loro modo di vedere, quello che fanno lo fanno al meglio.
-- 
 ____  Saluti dal   | Eliminate  .non.voglio.spam  dall'indirizzo
(_  _)  __  __ ___  | per rispondermi, se non vi piace quello che
  )/ o\/  \/o_\>-_) | ho scritto considerate che,  in un universo
 (_\_-_|_|_\__/___> | parallelo,  potrebbe essere anche  diverso.

 Il MAME team ha obiettivi che non sono i tuoi.
Il mame team dichiara obiettivi che i rallentamenti impediscono di 
raggiungere, visto che un gioco che va più lento dell'originale non è 
emulato in maniera accurata. E di nuovo: o è incompetenza, o gli 
obiettivi che il mame team HA non sono quelli che DICHIARA.

 obiettivi che il mame team HA non sono quelli che DICHIARA.
Qualsiasi cosa emulata ha bisogno di potenza di calcolo maggiore
dell'originale, quindi il discorso regge fino ad un certo punto.
E' impossibile emulare un Pentium con un 486 e ottenere la velocita' del
primo; cosi' come pretendere "Virtua Racing" al 100% su di un 386.
Nessuno ha mai indicato il sistema minimo su cui e' garantito che tutto giri
almeno al 100%.
Gli obiettivi DICHIARATI dal MAME team e' che a certi input si ottengano gli
stessi output del arcade originale, sia a livello audio-video che a livello
dell'elettronica interna.
Non e' importante (per loro) se il sistema emulante non riesce a farlo in
tempo reale.


 tempo reale.
E lui ti ripeterà: proprio perché non riesce a farlo in tempo reale ma 
in maniera più lenta -> non è accurato
e questo può essere anche condivisibile come punto di vista, lui ne ha 
uno diverso e sono solo cazzi suoi
il concetto mentale che proprio non gli entra è che oggi il MAME non ha 
bisogno di un "ferro all'anno" o di un computer nuovo all'anno (cit. 
Krupezz e Pezzenti), vuoi per l'uscita dei Core 2 Duo anni fa 
(architetture parecchio ottimizzate nonché multicore), vuoi per mille 
altri motivi legati al progresso dell'hardware e della parte software 
(sistemi operativi, compilatori, ambiente finalmente a 64bit veri) che 
c'è stato negli ultimi tempi, il discorso fatto dalla triade dei pezzenz 
è anacronistico in maniera pazzesca... specie se parliamo di giochi 2d 
dagli albori ad oggi molti dei quali emulati in maniera perfetta (per 
quanto ci si possa andare vicini alla perfezione...) e questo la dice 
lunga sulla filosofia adottata per il MAME
oggi come allora esiste una bella fetta di titoli arcade che non è 
possibile giocare e godersi full-speed con il MAME neanche possedendo un 
PC Ninja (vedi Metal Slug 6 aggiunto con l'ultima release u di ieri, 
parte ma è chiaramente lentissimo come lammerda, hw Atomiswave) perché 
questi giochi sono attualmente troppo pesanti per le CPU attuali, tra 10 
anni non lo saranno più... esattamente come 10 anni fa potevano essere 
pesanti tanti altri titoli che oggi non lo sono affatto e che girano 
senza alcuna esitazione...
nel frattempo ci sono gli emu dedicati (Demul, Model2, ecc.) che tra 10 
anni nessuno si inculerà più perché i giochi supportati saranno 
giocabili, meglio documentati e pure meglio emulati dal MAME
e Devil Pezzenz starà ancora col suo Pentium III 800Mhz, rotfl

Secondo i loro modo di vedere, quello che fanno lo fanno al meglio.
Qualunque software GRATUITO del pianeta (non solo emulatori) quando fa
uscire una versione nuova che dovrebbe portare benefici ma si scopre
un bug grosso, viene rilasciato subito dopo un bugfix, una versione
corretta o qualcosa del genere.
Non parliamo del software a pagamento (che comunque è difficile che
esca con bug notevoli, perché hanno dei tester pagati per questo,
mentre è pacifico che per il sw gratuito i tester sono gli stessi
utenti).
Il MAME Team non lo fa.
Non solo non ritorna sui suoi passi quando introduce rallentamenti, ma
non spiega neanche perché avvengono.
No, "perché abbiamo aggiunto altri giochi" non è una giustificazione
valida. Se aggiungi il gioco X e il gioco Y che era sempre andato bene
comincia ad avere problemi, può capitare, ma nella versione dopo
correggi, o almeno dici che stai cercando di farlo. Se non dici
niente, vuol dire che te ne freghi, e allora invece di programmare
dovresti andare a zappare, ci faresti una figura migliore.
Una volta fui nominato "Gran preservatore della continuità del MAME"
(ho comunque disconosciuto questo titolo da almeno 3 anni, perché non
mi rivedo più nelle scelte del MAME): beh, quella "continuità" se n'è
andata. Una volta si emulavano nuovi titoli ma mica per questo i
vecchi mica andavano peggio. Non c'erano aumenti di prestazioni, ma
neanche peggioramenti. Mi riferisco alle versioni DOS. Poi con Windows
sono cominciati i problemi. Ma non venitemi ora a dire che la colpa è
di Windows. Ci sono emulatori ottimi per Windows e lo stesso MAME32,
che è per Windows, finché il MAME DOS andava bene è andato bene pure
lui. Poi chiaramente ha seguito a ruota i problemi del fratello
maggiore.

e Devil Pezzenz starà ancora col suo Pentium III 800Mhz, rotfl
Non lo sai neanche leggere, ha detto che lo ha usato solo per i test
per verificare la progressiva lentezza del MAME sui processori più
vecchi.
Tra l'altro dubito che uno come lui, patito della stereoscopia e
dell'hardware spinto, possa stare con un computer del genere.
Vuoi fare una cosa buona nella vita visto che finora hai fatto solo
cazzate?
Tornatene su ICC, in mezzo alle merde, nessuno sano di mente sentirà
la tua mancanza.
No, neanche Zappa, anche se sul MAME andate d'accordo. Ma almeno lui è
intelligente, tu neanche quello.

 tempo reale.
Quindi non vogliono l'accuratezza totale, perchè l'accuratezza totale 
richiede anche che gli output seguano gli input dopo gli stessi 
intervalli di tempo della macchina reale. Se nella macchina emulata il 
tempo è diverso, l'accuratezza non è totale.

 neanche peggioramenti. Mi riferisco alle versioni DOS.
Non è vero, anche le versioni DOS avevano questi problemi. Già nel 1998 
me n'ero accorto, quando una versione del mame emulava benissimo Ghosts 
'n' Goblins su un P200 MMX, mentre quella successiva lo faceva scattare.

 intelligente, tu neanche quello.
Senn� mi scateni orde di messaggi fake?

 tempo è diverso, l'accuratezza non è totale.
CVD


Killfiltralo. Io l'ho fatto, ma adesso che gli hai risposto mi tocca 
leggermelo lo stesso. :-(

 'n' Goblins su un P200 MMX, mentre quella successiva lo faceva scattare.
I Mortal Kombat? dapprima erano lenti, poi di colpo Aaron Giles fece uno 
speed-up del driver pazzesco rendendoli giocabili e fluidi
quanti casi del genere ci sono stati? ne hai una vaga idea? non credo 
proprio
oltretutto facci caso, continui a fare esempi di 10 anni fa... il MAME 
oggi è cambiato e in meglio

 Non sai neanche leggere, ha detto che lo ha usato solo per i test
Fixed. :-P

 la tua mancanza.
Quoto in toto. Il poverino è confuso e ha tanto bisogno di evasione.
MASTER

 speed-up del driver pazzesco rendendoli giocabili e fluidi
Se non ricordo male si trattò non di uno speed-up del driver, ma di
una semplicissima correzione della velocità di una delle cpu emulate -
all'inizio si pensava che tipo 'sta CPU andasse a 200 mhz (e
ovviamente andava lentissima), poi ci si accorse che invece i mhz
erano 20 (e l'emulazione divenne fluida).

ovviamente andava lentissima),
Se è vera è da MEGAFAIL clamoroso visto che il primo MK è del 1993 e i
200 MHz a quel tempo non ce li aveva manco la NASA

 200 MHz a quel tempo non ce li aveva manco la NASA
Ma ROTFL, allora scrivili tu i driver e contribuisci al progetto, coglione!

dovresti andare a zappare, ci faresti una figura migliore.
In questa frase � racchiusa tutta la vostra supponenza e probabilmente
anche malafede nel voler ignorare tutto il lavoro che gira attorno al
progetto MAME. E' davvero vergognoso che tu arrivi al livello del
"meglio se andassero a zappare" dopo tutto la fatica e i traguardi
raggiunti in questi anni. Mi spiace dover essere cos� duro, ma non
trovo davvero altre parole.
-- 
Zappa
"Sacred hearts won't take the pain
 But mine will never be the same"
Dream Theater - Surrounded

 versione ogni 15 anni.
Magari allora quella versione funzionerebbe a dovere.

Magari allora quella versione funzionerebbe a dovere.
E tu ti lamenteresti che le nuove versioni ci mettono 15 anni ad
uscire.


 con un macinino di 15 anni fa.
Ti rendi conto sì che piglia solo per il culo
ecco perché co 'sta gente non scendo a compromessi con il linguaggio, 
sono dei pezzenti e basta

 uscire.
Se ho avuto la pazienza di aspettare Duke Nukem Forever...

 Se ho avuto la pazienza di aspettare Duke Nukem Forever...
e di grazia, dove lo vorresti installare? sul pentium3? AHAHAHAHAAHAHA