Pagina 1 di 1

Skip Startup Frames and Disable Validity Checks patches

Inviato: 14/09/2013, 11:44
da pucci
queste due patch trovate su Arcade Controls sono veramente utili per un MAME da mettere in un cabinato

la prima era una funzione presente anche nel vecchio AdvanceMAME. in pratica accelera al massimo l'emulazione per un certo numero di frame iniziali (non ricordo se disabilita anche il sonoro e oscura lo schermo), in modo che appena si sceglie il gioco vengano saltate tutte le sequenze di inizializzazione (a volte molto lunghe), come quelle di Mortal Kombat, dei Taito F2, dei CPS3, ecc...
questa patch è in versione rudimentale (salta 999 frame di animazione), ma AdvanceMAME e un altro progetto nato successivamente avevano fatto le cose più di fino. in pratica la patch leggeva un file di testo dove associato al nome della rom c'erano il numero di frame da "saltare"

la seconda patch disabilità i controlli del MAME per verificare se le rom caricate sono corrette (in pratica i controlli sul CRC32), in questo modo si risparmia tempo per una funzione inutile in un MAMEcab (si presume che prima di mettere le rom nel MAME cab uno le controlli con ClrMAME Pro)

sarebbe molto bello implementare queste patch (magari in GroovyMAME, la migliore versione per un cab) e migliorare la prima calcolando i frame da skippare in ogni gioco

skipStartUpFrames

Codice: Seleziona tutto

--- old/emu/video.c	2013-01-11 07:32:48.000000000 -0800
+++ src/emu/video.c	2013-07-28 22:58:13.000000000 -0700
@@ -224,6 +224,20 @@
 	// only render sound and video if we're in the running phase
 	int phase = machine().phase();
 	bool skipped_it = m_skipping_this_frame;
+	static int Frames=0;
+ 	int skip_startup_frames = 999;
+ 	if (skip_startup_frames)
+	{
+	    Frames++;
+	    if (skip_startup_frames)
+	      {
+	        if (Frames<=skip_startup_frames)
+	          skipped_it = true;
+
+	        if (Frames>skip_startup_frames+2)
+	          skip_startup_frames=0;
+	      }
+	}
 	if (phase == MACHINE_PHASE_RUNNING && (!machine().paused() || machine().options().update_in_pause()))
 	{
 		bool anything_changed = finish_screen_updates();
validityChecks

Codice: Seleziona tutto

--- old/emu/mame.c	2013-07-28 21:23:24.000000000 -0700
+++ src/emu/mame.c	2013-01-11 07:32:48.000000000 -0800
@@ -171,8 +171,8 @@
 		// otherwise, perform validity checks before anything else
 		if (system != NULL)
 		{
-			validity_checker valid(options);
-			valid.check_shared_source(*system);
+//			validity_checker valid(options);
+//			valid.check_shared_source(*system);
 		}
 
 		// create the machine configuration

Re: Skip Startup Frames and Disable Validity Checks patches

Inviato: 14/09/2013, 12:02
da pucci