Benvenuto Ospite,
per utilizzare il Forum ed avere accesso a tutte le sezioni e poter aprire un tuo Topic, rispondere nelle varie discussioni, mandare o ricevere Messaggi Privati devi seguire pochi passaggi:


Leggi il nostro Regolamento -> PREMI QUI <-
Segui il link su come Iscriversi -> PREMI QUI <-


Ricordati di aggiornare l'Avatar usando una immagine che ti distingua nel Forum

Applicare a MameUIFX patch per togliere i nag screen

Tutti gli emulatori che ci possono servire sul nostro cab con SO Windows
Avatar utente
Kernel
God of Arcade
God of Arcade
Messaggi: 6794
Iscritto il: 25/07/2005, 10:54
Grazie Inviati: 2 volte
Grazie Ricevuti: 2 volte

Applicare a MameUIFX patch per togliere i nag screen

Messaggio da Kernel »

Qualcuno mi può aiutare a capire se la cosa è fattibile?

In pratica partendo dai sorgenti del mameuifx mi piacerebbe applicare la patch per togliere i nag screen (schermate di warning e di caricamento).

Sorgenti mameuifx 0.148u3:
http://www.mediafire.com/download.php?zmm3zk0o0bpgujv
Da:
http://www.phpbbserver.com/mameuifx/vie ... m=mameuifx


Patch hiscore-nag 0.148u3 (uguale alla u2):
http://mamestuff.lowtrucks.net/MKChamp/hi_148u2.txt
Da:
http://forum.arcadecontrols.com/index.php?topic=64298.0


In fase di patch ottengo diversi errori che indicano files mancanti e altri probabilmente dovuti al fatto che il supporto agli hi-score è già presente in mameuifx.

Sarebbe bello usare il mameuifx sul cab per via del supporto ad alcuni giochi extra come il recente bubble bobble lost cave.

Ogni suggerimento è ben accetto!
Avatar utente
PaTrYcK
Moderatore
Moderatore
Messaggi: 11588
Iscritto il: 12/10/2009, 20:35
Città: Cagliari
Grazie Ricevuti: 27 volte

Re: Applicare a memuifx patch per togliere i nag screen

Messaggio da PaTrYcK »

Io ho ricompilato il mameuifx in modo da avere all'interno anche alcuni giochi extra come bubble bobble lost cave, ma io uso ancora la 140, nn aggiorno da un po'..prima di ricompilare avevo una sezione sul cab con i giochi extra non funzionanti e/o nn presenti come ad esempio tekken (epsxe) e ci avevo messo anche lost cave.

Ora provo con i file che hai postato, ma quella patch da dove arriva?
Avatar utente
Kernel
God of Arcade
God of Arcade
Messaggi: 6794
Iscritto il: 25/07/2005, 10:54
Grazie Inviati: 2 volte
Grazie Ricevuti: 2 volte

Re: Applicare a MameUIFX patch per togliere i nag screen

Messaggio da Kernel »

Ottimo!

Quella patch è di MKChamp del forum arcadecontrols: http://forum.arcadecontrols.com/index.php?topic=64298.0 che tra l'altro dovrebbe essere adottata anche dal GroovyMame.
Avatar utente
Ansa89
Cab-maniaco
Cab-maniaco
Messaggi: 1511
Iscritto il: 19/06/2011, 8:43
Città: EarthRealm

Re: Applicare a MameUIFX patch per togliere i nag screen

Messaggio da Ansa89 »

Kernel ha scritto:Quella patch è di MKChamp del forum arcadecontrols: http://forum.arcadecontrols.com/index.php?topic=64298.0 che tra l'altro dovrebbe essere adottata anche dal GroovyMame.
Confermo.
---
Earth could be the hell of another world.
Avatar utente
Dungeonmaster

Silver Medal Bronze Medal Donatore Top Seller
God of Arcade
God of Arcade
Messaggi: 3159
Iscritto il: 26/03/2012, 11:55
Medaglie: 5
Città: Padova
Località: Padova
Grazie Inviati: 20 volte
Grazie Ricevuti: 8 volte
Contatta:

Re: Applicare a MameUIFX patch per togliere i nag screen

Messaggio da Dungeonmaster »

sarebbe davvero una gran cosa questa con mameuifx
difatti anche io arrivato alla 0.148 mi sono trovato davanti ad una scelta.
Uifx ed ho il supporto di altri giochi, o UI ed evito nag screen.
Per ora uso UI ma se risolvete con Uifx sarebbe una gran cosa <-clap->
Avatar utente
Zak0077

Gold Medal Silver Medal Bronze Medal Donatore
Banned
Banned
Messaggi: 5818
Iscritto il: 23/05/2012, 12:26
Medaglie: 10
Città: viterbo
Grazie Ricevuti: 1 volta

Re: R: Applicare a MameUIFX patch per togliere i nag screen

Messaggio da Zak0077 »

Gia...
Nel cab ho messo anche questa vers 148 con solo 2 giochi...lost cave e out run e.

Inviato dal mio GT-I8150 con Tapatalk 2
Avatar utente
Kernel
God of Arcade
God of Arcade
Messaggi: 6794
Iscritto il: 25/07/2005, 10:54
Grazie Inviati: 2 volte
Grazie Ricevuti: 2 volte

Re: Applicare a MameUIFX patch per togliere i nag screen

Messaggio da Kernel »

Abbandono le speranze?
Avatar utente
Jorghino

Gold Medal Silver Medal Bronze Medal
Cab-dipendente
Cab-dipendente
Messaggi: 651
Iscritto il: 05/11/2011, 14:01
Medaglie: 11
Città: Gradara
Località: Pesaro/Rimini
Grazie Inviati: 3 volte

Re: Applicare a MameUIFX patch per togliere i nag screen

Messaggio da Jorghino »

Io per la 0.148 ci avevo provato e mi sembra funzionare.
Ma io non ci capisco una cippa di programmazione e l'ho fatto solo come esperimento per provare a capire se ci capivo qualcosa.
Purtroppo ho tenuto l'eseguibile ma non mi ricordo più se la diff che avevo creato studiando il sorgente del mameuifx e la diff per i nag screen è questa o questa era solo una delle tante prove:

Codice: Seleziona tutto

diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/emuopts.c C:\mingw\mingw64-w32\mame_original/src/emu/emuopts.c
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/emuopts.c	Fri Jan 11 17:38:25 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/emuopts.c	Sat Feb 16 11:29:02 2013
***************
*** 82,88 ****
  	{ OPTION_SNAPSHOT_DIRECTORY,                         "snap",      OPTION_STRING,     "directory to save screenshots" },
  	{ OPTION_DIFF_DIRECTORY,                             "diff",      OPTION_STRING,     "directory to save hard drive image difference files" },
  	{ OPTION_COMMENT_DIRECTORY,                          "comments",  OPTION_STRING,     "directory to save debugger comments" },
! 	{ OPTION_HISCORE_DIRECTORY,                          "hi",  	  OPTION_STRING,     "directory to save high scores" },
  
  	// state/playback options
  	{ NULL,                                              NULL,        OPTION_HEADER,     "CORE STATE/PLAYBACK OPTIONS" },
--- 82,91 ----
  	{ OPTION_SNAPSHOT_DIRECTORY,                         "snap",      OPTION_STRING,     "directory to save screenshots" },
  	{ OPTION_DIFF_DIRECTORY,                             "diff",      OPTION_STRING,     "directory to save hard drive image difference files" },
  	{ OPTION_COMMENT_DIRECTORY,                          "comments",  OPTION_STRING,     "directory to save debugger comments" },
! 	
! 	// MKCHAMP - ADDING CFG OPTION TO SPECIFY HISCORE DIRECTORY..."hi" BY DEFAULT
! 	{ NULL,                                              NULL,        OPTION_HEADER,     "CORE OUTPUT DIRECTORY OPTIONS" },
! 	{ OPTION_HISCORE_DIRECTORY,                          "hi",        OPTION_STRING,     "directory to save hiscores" },
  
  	// state/playback options
  	{ NULL,                                              NULL,        OPTION_HEADER,     "CORE STATE/PLAYBACK OPTIONS" },
***************
*** 196,204 ****
  	{ OPTION_SKIP_GAMEINFO,                              "0",         OPTION_BOOLEAN,    "skip displaying the information screen at startup" },
  	{ OPTION_UI_FONT,                                    "default",   OPTION_STRING,     "specify a font to use" },
  	{ OPTION_RAMSIZE ";ram",                             NULL,        OPTION_STRING,     "size of RAM (if supported by driver)" },
 	{ OPTION_CONFIRM_QUIT,                               "1",         OPTION_BOOLEAN,    "display confirm quit screen on exit" },
  	{ OPTION_UI_MOUSE,                                   "0",         OPTION_BOOLEAN,    "display ui mouse cursor" },
! 	{ OPTION_HISCORE,                                    "1",         OPTION_BOOLEAN,    "enable hiscore subsystem" },
  	{ NULL }
  };
  
--- 197,209 ----
  	{ OPTION_SKIP_GAMEINFO,                              "0",         OPTION_BOOLEAN,    "skip displaying the information screen at startup" },
  	{ OPTION_UI_FONT,                                    "default",   OPTION_STRING,     "specify a font to use" },
  	{ OPTION_RAMSIZE ";ram",                             NULL,        OPTION_STRING,     "size of RAM (if supported by driver)" },
 	{ OPTION_CONFIRM_QUIT,                               "0",         OPTION_BOOLEAN,    "display confirm quit screen on exit" },
  	{ OPTION_UI_MOUSE,                                   "0",         OPTION_BOOLEAN,    "display ui mouse cursor" },
! 	// MKChamp Hiscore Diff options 
!   { NULL,                        											 NULL,        OPTION_HEADER,     "CORE MKChamp OPTIONS" },
!   { OPTION_DISABLE_HISCORE_PATCH, 										 "0",         OPTION_BOOLEAN,    "disable hiscore saving" },
!   { OPTION_DISABLE_NAGSCREEN_PATCH,  									 "0",         OPTION_BOOLEAN,    "disable suppression of nagscreens" },
!   { OPTION_DISABLE_LOADING_PATCH,    									 "0",         OPTION_BOOLEAN,    "disable suppression of loading screens /white box" },
  	{ NULL }
  };
  
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/emuopts.h C:\mingw\mingw64-w32\mame_original/src/emu/emuopts.h
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/emuopts.h	Fri Jan 11 17:40:26 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/emuopts.h	Sat Feb 16 11:29:02 2013
***************
*** 201,207 ****
  
  #define OPTION_CONFIRM_QUIT         "confirm_quit"
  #define OPTION_UI_MOUSE             "ui_mouse"
  #define OPTION_HISCORE			  "hiscore"
  
  
  //**************************************************************************
--- 200,210 ----
  
  #define OPTION_CONFIRM_QUIT         "confirm_quit"
  #define OPTION_UI_MOUSE             "ui_mouse"
  #define OPTION_HISCORE			  "hiscore"
+ /* MKChamp Hiscore Diff Options */
+ #define OPTION_DISABLE_HISCORE_PATCH		"disable_hiscore_patch"
+ #define OPTION_DISABLE_NAGSCREEN_PATCH		"disable_nagscreen_patch"
+ #define OPTION_DISABLE_LOADING_PATCH		"disable_loading_patch"
  
  
  //**************************************************************************
***************
*** 356,365 ****
  	bool skip_gameinfo() const { return bool_value(OPTION_SKIP_GAMEINFO); }
  	const char *ui_font() const { return value(OPTION_UI_FONT); }
  	const char *ram_size() const { return value(OPTION_RAMSIZE); }
  
  	bool confirm_quit() const { return bool_value(OPTION_CONFIRM_QUIT); }
  	bool ui_mouse() const { return bool_value(OPTION_UI_MOUSE); }
- 	bool hiscore() const { return bool_value(OPTION_HISCORE); }
  
  	// device-specific options
  	const char *device_option(device_image_interface &image);
--- 359,372 ----
  	bool skip_gameinfo() const { return bool_value(OPTION_SKIP_GAMEINFO); }
  	const char *ui_font() const { return value(OPTION_UI_FONT); }
  	const char *ram_size() const { return value(OPTION_RAMSIZE); }
+ 	
+ 	// MKChamp Hiscore Diff options 
+ 	bool disable_hiscore_patch() const { return bool_value(OPTION_DISABLE_HISCORE_PATCH); }
+ 	bool disable_nagscreen_patch() const { return bool_value(OPTION_DISABLE_NAGSCREEN_PATCH); }
+ 	bool disable_loading_patch() const { return bool_value(OPTION_DISABLE_LOADING_PATCH); }
  
  	bool confirm_quit() const { return bool_value(OPTION_CONFIRM_QUIT); }
  	bool ui_mouse() const { return bool_value(OPTION_UI_MOUSE); }
  
  	// device-specific options
  	const char *device_option(device_image_interface &image);
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/machine.c C:\mingw\mingw64-w32\mame_original/src/emu/machine.c
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/machine.c	Fri Jan 11 17:46:04 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/machine.c	Sat Feb 16 11:29:02 2013
***************
*** 133,138 ****
--- 133,140 ----
  //  running_machine - constructor
  //-------------------------------------------------
  
+ int cpunum;
+ 
  running_machine::running_machine(const machine_config &_config, osd_interface &osd, bool exit_to_game_select)
  	: firstcpu(NULL),
  		primary_screen(NULL),
***************
*** 196,207 ****
  		}
  	screen_device_iterator screeniter(root_device());
  	primary_screen = screeniter.first();
! 
! 	// hiscore
!   	cpu[0] = firstcpu;
!  	for (int cpunum = 1; cpunum < ARRAY_LENGTH(cpu) && cpu[cpunum - 1] != NULL; cpunum++)
   		cpu[cpunum] = cpu[cpunum - 1]->next();
- 
  	// fetch core options
  	if (options().debug())
  		debug_flags = (DEBUG_FLAG_ENABLED | DEBUG_FLAG_CALL_HOOK) | (options().debug_internal() ? 0 : DEBUG_FLAG_OSD_ENABLED);
--- 198,207 ----
  		}
  	screen_device_iterator screeniter(root_device());
  	primary_screen = screeniter.first();
! 	//MKCHAMP--initialize the cpu for hiscore
!   cpu[0] = firstcpu;
!  	for (cpunum = 1; cpunum < ARRAY_LENGTH(cpu) && cpu[cpunum - 1] != NULL; cpunum++)
   		cpu[cpunum] = cpu[cpunum - 1]->next();
  	// fetch core options
  	if (options().debug())
  		debug_flags = (DEBUG_FLAG_ENABLED | DEBUG_FLAG_CALL_HOOK) | (options().debug_internal() ? 0 : DEBUG_FLAG_OSD_ENABLED);
***************
*** 328,336 ****
  	// set up the cheat engine
  	m_cheat = auto_alloc(*this, cheat_manager(*this));
  
! 	// initialize the hiscore system
! 	if (options().hiscore())
! 		hiscore_init(*this); 
  
  	// disallow save state registrations starting here
  	m_save.allow_registration(false);
--- 328,336 ----
  	// set up the cheat engine
  	m_cheat = auto_alloc(*this, cheat_manager(*this));
  
!   //MKCHAMP - INITIALIZING THE HISCORE ENGINE
!   if (! options().disable_hiscore_patch())
!  		hiscore_init(*this);
  
  	// disallow save state registrations starting here
  	m_save.allow_registration(false);
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/mame.c C:\mingw\mingw64-w32\mame_original/src/emu/mame.c
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/mame.c	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/mame.c	Sat Feb 16 11:29:02 2013
***************
*** 79,84 ****
--- 79,86 ----
  #include "debugger.h"
  #include "render.h"
  #include "cheat.h"
+ //MKCHAMP - ADDING HEADER FILE HISCORE FOR INCLUSION
+ #include "hiscore.h"
  #include "ui.h"
  #include "uiinput.h"
  #include "crsshair.h"
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/profiler.c C:\mingw\mingw64-w32\mame_original/src/emu/profiler.c
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/profiler.c	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/profiler.c	Sat Feb 16 11:29:02 2013
***************
*** 185,190 ****
--- 185,192 ----
  		{ PROFILER_BLIT,             "OSD Blitting" },
  		{ PROFILER_SOUND,            "Sound Generation" },
  		{ PROFILER_TIMER_CALLBACK,   "Timer Callbacks" },
+ 		//MKCHAMP - INCLUDING THE HISCORE ENGINE TO THE PROFILER
+ 		{ PROFILER_HISCORE,          "Hiscore" },
  		{ PROFILER_INPUT,            "Input Processing" },
  		{ PROFILER_MOVIE_REC,        "Movie Recording" },
  		{ PROFILER_LOGERROR,         "Error Logging" },
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/profiler.h C:\mingw\mingw64-w32\mame_original/src/emu/profiler.h
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/profiler.h	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/profiler.h	Sat Feb 16 11:29:02 2013
***************
*** 80,85 ****
--- 80,87 ----
  	PROFILER_BLIT,
  	PROFILER_SOUND,
  	PROFILER_TIMER_CALLBACK,
+ 	//MKCHAMP - INCLUDING THE HISCORE ENGINE TO THE PROFILER
+  	PROFILER_HISCORE,
  	PROFILER_INPUT,             // input.c and inptport.c
  	PROFILER_MOVIE_REC,         // movie recording
  	PROFILER_LOGERROR,          // logerror
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/render.c C:\mingw\mingw64-w32\mame_original/src/emu/render.c
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/render.c	Fri Jan 11 17:47:44 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/render.c	Fri Jan 11 08:32:46 2013
***************
*** 1205,1288 ****
  
  void render_target::compute_visible_area(INT32 target_width, INT32 target_height, float target_pixel_aspect, int target_orientation, INT32 &visible_width, INT32 &visible_height)
  {
! 	if (m_manager.machine().options().cleanstretch())
! 	{
! 		float width = 0, height = 0;
! 		float scale = 0, aspect = 0;
! 
! 		// scan the current view for all screens
! 		for (item_layer layer = ITEM_LAYER_FIRST; layer < ITEM_LAYER_MAX; layer++)
! 
! 			// iterate over items in the layer
! 			for (layout_view::item *curitem = m_curview->first_item(layer); curitem != NULL; curitem = curitem->next())
! 				if (curitem->screen() != NULL)
! 				{
! 					// use a hard-coded default visible area for vector screens
! 					screen_device *screen = curitem->screen();
! 					const rectangle vectorvis(0, 639, 0, 479);
! 					const rectangle &visarea = (screen->screen_type() == SCREEN_TYPE_VECTOR) ? vectorvis : screen->visible_area();
! 					aspect = (float)visarea.width()/visarea.height();
! 				}
  
  		width = m_curview->effective_aspect(m_layerconfig);
  		height = 1.0f;
- 	
- 		if (aspect <= 1.2f)
- 			set_view(1);	// pixel_aspect
- 		else 		
- 			set_view(0);	// standard
  
  		if (target_orientation & ORIENTATION_SWAP_XY)
! 			width *= 4.0f/3.0f;
! 		else
! 			height *= 3.0f/4.0f;
  
  		if (width / height > (float)target_width / (float)target_height)
  			scale = (float)target_width / width;
  		else
  			scale = (float)target_height / height;
- 
-  		visible_width = render_round_nearest(width * scale);
- 		visible_height = render_round_nearest(height * scale);
  	}
  	else
  	{
! 		float width, height;
! 		float scale;
! 	
! 		// constrained case
! 		if (target_pixel_aspect != 0.0f)
! 		{
! 			// start with the aspect ratio of the square pixel layout
! 			width = m_curview->effective_aspect(m_layerconfig);
! 			height = 1.0f;
! 	
! 			// first apply target orientation
! 			if (target_orientation & ORIENTATION_SWAP_XY)
! 				FSWAP(width, height);
! 	
! 			// apply the target pixel aspect ratio
! 			height *= target_pixel_aspect;
! 	
! 			// based on the height/width ratio of the source and target, compute the scale factor
! 			if (width / height > (float)target_width / (float)target_height)
! 				scale = (float)target_width / width;
! 			else
! 				scale = (float)target_height / height;
! 		}
! 	
! 		// stretch-to-fit case
! 		else
! 		{
! 			width = (float)target_width;
! 			height = (float)target_height;
! 			scale = 1.0f;
! 		}
! 	
! 		// set the final width/height
! 		visible_width = render_round_nearest(width * scale);
! 		visible_height = render_round_nearest(height * scale);
  	}
  }
  
  
--- 1205,1245 ----
  
  void render_target::compute_visible_area(INT32 target_width, INT32 target_height, float target_pixel_aspect, int target_orientation, INT32 &visible_width, INT32 &visible_height)
  {
! 	float width, height;
! 	float scale;
  
+ 	// constrained case
+ 	if (target_pixel_aspect != 0.0f)
+ 	{
+ 		// start with the aspect ratio of the square pixel layout
  		width = m_curview->effective_aspect(m_layerconfig);
  		height = 1.0f;
  
+ 		// first apply target orientation
  		if (target_orientation & ORIENTATION_SWAP_XY)
! 			FSWAP(width, height);
  
+ 		// apply the target pixel aspect ratio
+ 		height *= target_pixel_aspect;
+ 
+ 		// based on the height/width ratio of the source and target, compute the scale factor
  		if (width / height > (float)target_width / (float)target_height)
  			scale = (float)target_width / width;
  		else
  			scale = (float)target_height / height;
  	}
+ 
+ 	// stretch-to-fit case
  	else
  	{
! 		width = (float)target_width;
! 		height = (float)target_height;
! 		scale = 1.0f;
  	}
+ 
+ 	// set the final width/height
+ 	visible_width = render_round_nearest(width * scale);
+ 	visible_height = render_round_nearest(height * scale);
  }
  
  
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/romload.c C:\mingw\mingw64-w32\mame_original/src/emu/romload.c
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/romload.c	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/romload.c	Sat Feb 16 11:29:02 2013
***************
*** 471,476 ****
--- 471,480 ----
  
  	// 2010-04, FP - FIXME: in MESS, load_software_part_region sometimes calls this with romstotalsize = 0!
  	// as a temp workaround, I added a check for romstotalsize !=0.
+ 	//MKCHAMP - DISABLING WHOLE SUB ROUTINE TO ELIMINATE LOADING MESSAGES
+ 	//REMOVING ALWAYS
+  	//if (!options_get_bool(mame_options(), OPTION_DISABLE_LOADING_PATCH))
+  		return;
  	if (name != NULL && romdata->romstotalsize)
  		sprintf(buffer, "Loading (%d%%)", (UINT32)(100 * (UINT64)romdata->romsloadedsize / (UINT64)romdata->romstotalsize));
  	else
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/ui.c C:\mingw\mingw64-w32\mame_original/src/emu/ui.c
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/ui.c	Fri Jan 11 17:48:12 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/ui.c	Sat Feb 16 11:29:02 2013
***************
*** 336,346 ****
--- 336,352 ----
  		switch (state)
  		{
  			case 0:
+ 				//MKCHAMP - BREAKING OUT SO DISCLAIMERS AREN'T SHOWN
+ 				if (! machine.options().disable_nagscreen_patch())
+   					break;
  				if (show_disclaimer && disclaimer_string(machine, messagebox_text).len() > 0)
  					ui_set_handler(handler_messagebox_ok, 0);
  				break;
  
  			case 1:
+ 				//MKCHAMP - BREAKING OUT SO WARNINGS AREN'T SHOWN
+   				if (! machine.options().disable_nagscreen_patch())
+   					break;
  				if (show_warnings && warnings_string(machine, messagebox_text).len() > 0)
  				{
  					ui_set_handler(handler_messagebox_ok, 0);
***************
*** 352,357 ****
--- 358,366 ----
  				break;
  
  			case 2:
+ 				//MKCHAMP - BREAKING OUT SO GAME INFO ISN'T SHOWN
+    				if (! machine.options().disable_nagscreen_patch())
+   					break;
  				if (show_gameinfo && game_info_astring(machine, messagebox_text).len() > 0)
  					ui_set_handler(handler_messagebox_anykey, 0);
  				break;
***************
*** 362,373 ****
  		while (machine.input().poll_switches() != INPUT_CODE_INVALID) ;
  
  		/* loop while we have a handler */
! 		while (ui_handler_callback != handler_ingame && !machine.scheduled_event_pending() && !ui_menu::stack_has_special_main_menu())
! 			machine.video().frame_update();
  
  		/* clear the handler and force an update */
  		ui_set_handler(handler_ingame, 0);
! 		machine.video().frame_update();
  	}
  
  	/* if we're the empty driver, force the menus on */
--- 371,388 ----
  		while (machine.input().poll_switches() != INPUT_CODE_INVALID) ;
  
  		/* loop while we have a handler */
! 		//MKChamp Disabling of whitebox
!  		if (machine.options().disable_nagscreen_patch())
!  		{
! 			while (ui_handler_callback != handler_ingame && !machine.scheduled_event_pending() && !ui_menu::stack_has_special_main_menu())
! 				machine.video().frame_update();
! 		}
  
  		/* clear the handler and force an update */
  		ui_set_handler(handler_ingame, 0);
! 		//MKChamp Disabling of whitebox
! 		if (machine.options().disable_nagscreen_patch())
! 			machine.video().frame_update();
  	}
  
  	/* if we're the empty driver, force the menus on */
***************
*** 389,402 ****
  	osd_ticks_t curtime = osd_ticks();
  
  	/* copy in the new text */
! 	messagebox_text.cpy(text);
! 	messagebox_backcolor = UI_BACKGROUND_COLOR;
  
  	/* don't update more than 4 times/second */
  	if (force || (curtime - lastupdatetime) > osd_ticks_per_second() / 4)
  	{
  		lastupdatetime = curtime;
! 		machine.video().frame_update();
  	}
  }
  
--- 404,425 ----
  	osd_ticks_t curtime = osd_ticks();
  
  	/* copy in the new text */
! 	//MKCHAMP -- DISABLE IS NOT DISABLED :-)
!  	if (machine.options().disable_nagscreen_patch())
!  	{
! 		messagebox_text.cpy(text);
! 		messagebox_backcolor = UI_BACKGROUND_COLOR;
! 	}
  
  	/* don't update more than 4 times/second */
  	if (force || (curtime - lastupdatetime) > osd_ticks_per_second() / 4)
  	{
  		lastupdatetime = curtime;
! 		//MKCHAMP - CALLING NEW SUB CALLED video_frame_update_hi SO WHITE BOX DOES NOT SHOW BUT REFRESHSPEED IS STILL CALCULATED
!  		if (! machine.options().disable_loading_patch())
!  			machine.video().frame_update_hi();
!  		else
! 			machine.video().frame_update();
  	}
  }
  
***************
*** 1754,1760 ****
  		{
  			void *param = (void *)&exec->device();
  			string.printf("Overclock CPU %s", exec->device().tag());
! 			*tailptr = slider_alloc(machine, string, 10, 1000, 4000, 50, slider_overclock, param);
  			tailptr = &(*tailptr)->next;
  		}
  	}
--- 1777,1783 ----
  		{
  			void *param = (void *)&exec->device();
  			string.printf("Overclock CPU %s", exec->device().tag());
! 			*tailptr = slider_alloc(machine, string, 10, 1000, 2000, 1, slider_overclock, param);
  			tailptr = &(*tailptr)->next;
  		}
  	}
***************
*** 1773,1779 ****
  		if (machine.options().cheat())
  		{
  			string.printf("%s Refresh Rate", slider_get_screen_desc(*screen));
! 			*tailptr = slider_alloc(machine, string, -33000, 0, 33000, 1000, slider_refresh, param);
  			tailptr = &(*tailptr)->next;
  		}
  
--- 1796,1802 ----
  		if (machine.options().cheat())
  		{
  			string.printf("%s Refresh Rate", slider_get_screen_desc(*screen));
! 			*tailptr = slider_alloc(machine, string, -10000, 0, 10000, 1000, slider_refresh, param);
  			tailptr = &(*tailptr)->next;
  		}
  
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/ui.h C:\mingw\mingw64-w32\mame_original/src/emu/ui.h
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/ui.h	Fri Jan 11 17:48:38 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/ui.h	Fri Jan 11 08:32:46 2013
***************
*** 34,60 ****
  #define UI_BOX_TB_BORDER        (UI_TARGET_FONT_HEIGHT * 0.25f)
  
  /* handy colors */
! #define ARGB_WHITE				MAKE_ARGB(0xff,0xff,0xff,0xff)
! #define ARGB_BLACK				MAKE_ARGB(0xff,0x00,0x00,0x00)
! #define UI_BORDER_COLOR			MAKE_ARGB(0xff,0x00,0x00,0x00)
! #define UI_BACKGROUND_COLOR		MAKE_ARGB(0xef,0xcc,0xcc,0xcc)
! #define UI_GFXVIEWER_BG_COLOR	MAKE_ARGB(0xef,0x00,0x00,0x00)
! #define UI_GREEN_COLOR			MAKE_ARGB(0xef,0x00,0xff,0x00)
! #define UI_YELLOW_COLOR			MAKE_ARGB(0xef,0xff,0xff,0x00)
! #define UI_RED_COLOR			MAKE_ARGB(0xef,0xff,0x00,0x00)
! #define UI_UNAVAILABLE_COLOR	MAKE_ARGB(0xff,0x40,0x40,0x40)
! #define UI_TEXT_COLOR			MAKE_ARGB(0xff,0x00,0x00,0x00)
! #define UI_TEXT_BG_COLOR		MAKE_ARGB(0xef,0xcc,0xcc,0xcc)
! #define UI_SUBITEM_COLOR		MAKE_ARGB(0xff,0x00,0x00,0xff)
! #define UI_CLONE_COLOR			MAKE_ARGB(0xff,0x00,0x33,0xff)
! #define UI_SELECTED_COLOR		MAKE_ARGB(0xff,0xff,0xff,0x00)
! #define UI_SELECTED_BG_COLOR	MAKE_ARGB(0xef,0x00,0x66,0xff)
! #define UI_MOUSEOVER_COLOR		MAKE_ARGB(0xff,0xff,0xff,0x80)
! #define UI_MOUSEOVER_BG_COLOR	MAKE_ARGB(0xef,0x00,0x99,0xff)
! #define UI_MOUSEDOWN_COLOR		MAKE_ARGB(0xff,0xff,0xff,0x00)
! #define UI_MOUSEDOWN_BG_COLOR	MAKE_ARGB(0xef,0x00,0x66,0xff)
! #define UI_DIPSW_COLOR			MAKE_ARGB(0xef,0x66,0x66,0x66)
! #define UI_SLIDER_COLOR			MAKE_ARGB(0xef,0x00,0xff,0x00)
  
  /* cancel return value for a UI handler */
  #define UI_HANDLER_CANCEL       ((UINT32)~0)
--- 34,60 ----
  #define UI_BOX_TB_BORDER        (UI_TARGET_FONT_HEIGHT * 0.25f)
  
  /* handy colors */
! #define ARGB_WHITE              MAKE_ARGB(0xff,0xff,0xff,0xff)
! #define ARGB_BLACK              MAKE_ARGB(0xff,0x00,0x00,0x00)
! #define UI_BORDER_COLOR         MAKE_ARGB(0xff,0xff,0xff,0xff)
! #define UI_BACKGROUND_COLOR     MAKE_ARGB(0xef,0x10,0x10,0x30)
! #define UI_GFXVIEWER_BG_COLOR   MAKE_ARGB(0xef,0x10,0x10,0x30)
! #define UI_GREEN_COLOR          MAKE_ARGB(0xef,0x10,0x60,0x10)
! #define UI_YELLOW_COLOR         MAKE_ARGB(0xef,0x60,0x60,0x10)
! #define UI_RED_COLOR            MAKE_ARGB(0xf0,0x60,0x10,0x10)
! #define UI_UNAVAILABLE_COLOR    MAKE_ARGB(0xff,0x40,0x40,0x40)
! #define UI_TEXT_COLOR           MAKE_ARGB(0xff,0xff,0xff,0xff)
! #define UI_TEXT_BG_COLOR        MAKE_ARGB(0xef,0x00,0x00,0x00)
! #define UI_SUBITEM_COLOR        MAKE_ARGB(0xff,0xff,0xff,0xff)
! #define UI_CLONE_COLOR          MAKE_ARGB(0xff,0x80,0x80,0x80)
! #define UI_SELECTED_COLOR       MAKE_ARGB(0xff,0xff,0xff,0x00)
! #define UI_SELECTED_BG_COLOR    MAKE_ARGB(0xef,0x80,0x80,0x00)
! #define UI_MOUSEOVER_COLOR      MAKE_ARGB(0xff,0xff,0xff,0x80)
! #define UI_MOUSEOVER_BG_COLOR   MAKE_ARGB(0x70,0x40,0x40,0x00)
! #define UI_MOUSEDOWN_COLOR      MAKE_ARGB(0xff,0xff,0xff,0x80)
! #define UI_MOUSEDOWN_BG_COLOR   MAKE_ARGB(0xb0,0x60,0x60,0x00)
! #define UI_DIPSW_COLOR          MAKE_ARGB(0xff,0xff,0xff,0x00)
! #define UI_SLIDER_COLOR         MAKE_ARGB(0xff,0xff,0xff,0xff)
  
  /* cancel return value for a UI handler */
  #define UI_HANDLER_CANCEL       ((UINT32)~0)
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/video.c C:\mingw\mingw64-w32\mame_original/src/emu/video.c
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/video.c	Fri Jan 11 17:49:58 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/video.c	Sat Feb 16 11:29:02 2013
***************
*** 502,507 ****
--- 502,568 ----
  	m_movie_frame = 0;
  }
  
+ /*-------------------------------------------------
+    MKCHAMP - BELOW IS THE NEW SUB CALLED FROM UI.C. ONLY DIFFERENCE BETWEEN THIS SUB AND
+    frame_update IS IT CALLS NEW SUB CALLED update_hi INSTEAD OF update (located
+    in osd/windows/video.c)
+ -------------------------------------------------*/
+ 
+ void video_manager::frame_update_hi(bool debug)
+ {
+ 	// only render sound and video if we're in the running phase
+ 	int phase = machine().phase();
+ 	bool skipped_it = m_skipping_this_frame;
+ 	if (phase == MACHINE_PHASE_RUNNING && (!machine().paused() || machine().options().update_in_pause()))
+ 	{
+ 		bool anything_changed = finish_screen_updates();
+ 
+ 		// if none of the screens changed and we haven't skipped too many frames in a row,
+         // mark this frame as skipped to prevent throttling; this helps for games that
+         // don't update their screen at the monitor refresh rate
+ 		if (!anything_changed && !m_auto_frameskip && m_frameskip_level == 0 && m_empty_skip_count++ < 3)
+ 			skipped_it = true;
+ 		else
+ 			m_empty_skip_count = 0;
+ 	}
+ 
+ 	// draw the user interface
+ 	ui_update_and_render(machine(), &machine().render().ui_container());
+ 
+ 	// update the internal render debugger
+ 	debugint_update_during_game(machine());
+ 
+ 	// if we're throttling, synchronize before rendering
+ 	attotime current_time = machine().time();
+ 	if (!debug && !skipped_it && effective_throttle())
+ 		update_throttle(current_time);
+ 
+ 	// ask the OSD to update
+ 	g_profiler.start(PROFILER_BLIT);
+ 	machine().osd().update_hi(!debug && skipped_it);
+ 	g_profiler.stop();
+ 
+ 	// perform tasks for this frame
+ 	if (!debug)
+ 		machine().call_notifiers(MACHINE_NOTIFY_FRAME);
+ 
+ 	// update frameskipping
+ 	if (!debug)
+ 		update_frameskip();
+ 
+ 	// update speed computations
+ 	if (!debug && !skipped_it)
+ 		recompute_speed(current_time);
+ 
+ 	// call the end-of-frame callback
+ 	if (phase == MACHINE_PHASE_RUNNING)
+ 	{
+ 		// reset partial updates if we're paused or if the debugger is active
+ 		if (machine().primary_screen != NULL && (machine().paused() || debug || debugger_within_instruction_hook(machine())))
+ 			machine().primary_screen->reset_partial_updates();
+ 	}
+ }
+ 
  
  //-------------------------------------------------
  //  add_sound_to_recording - add sound to a movie
***************
*** 1008,1015 ****
  		osd_ticks_t tps = osd_ticks_per_second();
  		m_speed_percent = delta_emutime.as_double() * (double)tps / (double)delta_realtime;
  
- 		machine().speed_percent = speed_percent();
- 
  		// remember the last times
  		m_speed_last_realtime = realtime;
  		m_speed_last_emutime = emutime;
--- 1069,1074 ----
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/emu/video.h C:\mingw\mingw64-w32\mame_original/src/emu/video.h
*** C:\mingw\mingw64-w32\mame_modificato/src/emu/video.h	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/emu/video.h	Sat Feb 16 11:29:02 2013
***************
*** 103,108 ****
--- 103,111 ----
  
  	// render a frame
  	void frame_update(bool debug = false);
+ 	
+ 	// MKCHAMP - DECLARING THE NEW video_frame_update_hi SUB
+   void frame_update_hi(bool debug = false);
  
  	// current speed helpers
  	astring &speed_text(astring &string);
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/lib/util/astring.c C:\mingw\mingw64-w32\mame_original/src/lib/util/astring.c
*** C:\mingw\mingw64-w32\mame_modificato/src/lib/util/astring.c	Thu Aug 23 02:44:00 2012
--- C:\mingw\mingw64-w32\mame_original/src/lib/util/astring.c	Sat Aug 18 12:02:48 2012
***************
*** 75,97 ****
  		return true;
  
  	// allocate a new buffer with some slop
! 	int alloclen = length + 1;
! 	alloclen += (alloclen < 262144) ? alloclen : 262144;;
! 
! 	// memory alignment, in bytes (must be power of 2)
! 	alloclen += 8 - (alloclen % 8);
! 
  	char *newbuf = new char[alloclen];
  
  	// swap in the new buffer and free the old one
  	char *oldbuf = (m_text == m_smallbuf) ? NULL : m_text;
! 
! 	memcpy(newbuf, m_text, m_alloclen);
! 	m_text = newbuf;
  	m_alloclen = alloclen;
! 
! 	if (oldbuf)
! 		delete[] oldbuf;
  
  	return true;
  }
--- 75,89 ----
  		return true;
  
  	// allocate a new buffer with some slop
! 	int alloclen = length + 256;
  	char *newbuf = new char[alloclen];
  
  	// swap in the new buffer and free the old one
  	char *oldbuf = (m_text == m_smallbuf) ? NULL : m_text;
! 	m_text = strcpy(newbuf, m_text);
! 	m_len = strlen(m_text);
  	m_alloclen = alloclen;
! 	delete[] oldbuf;
  
  	return true;
  }
***************
*** 453,459 ****
  		if (*src != ch)
  			*dst++ = *src;
  	*dst = 0;
! 	m_len = dst - m_text;
  	return *this;
  }
  
--- 445,451 ----
  		if (*src != ch)
  			*dst++ = *src;
  	*dst = 0;
! 	m_len = strlen(m_text);
  	return *this;
  }
  
***************
*** 508,522 ****
  {
  	// first remove stuff from the end
  	for (char *ptr = m_text + len() - 1; ptr >= m_text && (!(*ptr & 0x80) && isspace(UINT8(*ptr))); ptr--)
- 	{
- 		m_len--;
  		*ptr = 0;
- 	}
  
  	// then count how much to remove from the beginning
  	char *ptr;
  	for (ptr = m_text; *ptr != 0 && (!(*ptr & 0x80) && isspace(UINT8(*ptr))); ptr++) ;
  	if (ptr > m_text)
  		substr(ptr - m_text);
  	return *this;
  }
--- 500,512 ----
  {
  	// first remove stuff from the end
  	for (char *ptr = m_text + len() - 1; ptr >= m_text && (!(*ptr & 0x80) && isspace(UINT8(*ptr))); ptr--)
  		*ptr = 0;
  
  	// then count how much to remove from the beginning
  	char *ptr;
  	for (ptr = m_text; *ptr != 0 && (!(*ptr & 0x80) && isspace(UINT8(*ptr))); ptr++) ;
  	if (ptr > m_text)
  		substr(ptr - m_text);
+ 	m_len = strlen(m_text);
  	return *this;
  }
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/mame/machine/cps2crpt.c C:\mingw\mingw64-w32\mame_original/src/mame/machine/cps2crpt.c
*** C:\mingw\mingw64-w32\mame_modificato/src/mame/machine/cps2crpt.c	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/mame/machine/cps2crpt.c	Sat Feb 16 11:29:02 2013
***************
*** 111,116 ****
--- 111,117 ----
  *******************************************************************************/
  
  #include "emu.h"
+ #include "emuopts.h"
  #include "cpu/m68000/m68000.h"
  #include "ui.h"
  #include "includes/cps1.h"
***************
*** 672,680 ****
  
  		if ((i & 0xff) == 0)
  		{
! 			char loadingMessage[256]; // for displaying with UI
! 			sprintf(loadingMessage, "Decrypting %d%%", i*100/0x10000);
! 			ui_set_startup_text(machine, loadingMessage,FALSE);
  		}
  
  
--- 673,685 ----
  
  		if ((i & 0xff) == 0)
  		{
! 			//MKCHAMP - DISABLING THE DECRYPING MESSAGE		
! 			if (machine.options().disable_loading_patch())
! 			{
! 				char loadingMessage[256]; // for displaying with UI
! 				sprintf(loadingMessage, "Decrypting %d%%", i*100/0x10000);
! 				ui_set_startup_text(machine, loadingMessage,FALSE);
! 			}
  		}
  
  
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/osd/osdepend.c C:\mingw\mingw64-w32\mame_original/src/osd/osdepend.c
*** C:\mingw\mingw64-w32\mame_modificato/src/osd/osdepend.c	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/osd/osdepend.c	Sat Feb 16 11:29:02 2013
***************
*** 115,120 ****
--- 115,136 ----
  	//
  }
  
+ //-------------------------------------------------
+ //  MKChamp update_hi - periodic system update
+ //-------------------------------------------------
+ 
+ void osd_interface::update_hi(bool skip_redraw)
+ {
+ 	//
+ 	// This method is called periodically to flush video updates to the
+ 	// screen, and also to allow the OSD a chance to update other systems
+ 	// on a regular basis. In general this will be called at the frame
+ 	// rate of the system being run; however, it may be called at more
+ 	// irregular intervals in some circumstances (e.g., multi-screen games
+ 	// or games with asynchronous updates).
+ 	//
+ }
+ 
  
  //-------------------------------------------------
  //  init_debugger - perform debugger-specific
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/osd/osdepend.h C:\mingw\mingw64-w32\mame_original/src/osd/osdepend.h
*** C:\mingw\mingw64-w32\mame_modificato/src/osd/osdepend.h	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/osd/osdepend.h	Sat Feb 16 11:29:02 2013
***************
*** 93,98 ****
--- 93,101 ----
  
  	// video overridables
  	virtual void *get_slider_list();
+ 	
+ 	//MKCHAMP - DECLARING THE NEW osd_update_hi SUB
+  	virtual void update_hi(bool skip_redraw);
  
  private:
  	// internal state
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/osd/windows/video.c C:\mingw\mingw64-w32\mame_original/src/osd/windows/video.c
*** C:\mingw\mingw64-w32\mame_modificato/src/osd/windows/video.c	Thu Dec 15 15:10:46 2011
--- C:\mingw\mingw64-w32\mame_original/src/osd/windows/video.c	Sat Feb 16 11:29:02 2013
***************
*** 226,231 ****
--- 226,253 ----
  	check_osd_inputs(machine());
  }
  
+ //============================================================
+ //  MKCHAMP - BELOW IS THE NEW SUB CALLED FROM emu/video.c. ONLY
+ //  DIFFERENCE BETWEEN THIS SUB AND osd_update IS IT CALLS NEW SUB CALLED winwindow_video_window_update_hi
+ //  INSTEAD OF winwindow_video_window_update (located in osd/windows/window.c)
+ //============================================================
+ 
+ void windows_osd_interface::update_hi(bool skip_redraw)
+ {
+ 	// ping the watchdog on each update
+ 	winmain_watchdog_ping();
+ 
+ 	// if we're not skipping this redraw, update all windows
+ 	if (!skip_redraw)
+ 		for (win_window_info *window = win_window_list; window != NULL; window = window->next)
+ 			winwindow_video_window_update_hi(window);
+ 
+ 	// poll the joystick values here
+ 	winwindow_process_events(machine(), TRUE);
+ 	wininput_poll(machine());
+ 	check_osd_inputs(machine());
+ }
+ 
  
  
  //============================================================
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/osd/windows/window.c C:\mingw\mingw64-w32\mame_original/src/osd/windows/window.c
*** C:\mingw\mingw64-w32\mame_modificato/src/osd/windows/window.c	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/osd/windows/window.c	Sat Feb 16 11:29:02 2013
***************
*** 825,830 ****
--- 825,909 ----
  	mtlog_add("winwindow_video_window_update: end");
  }
  
+ //============================================================
+ //  MKCHAMP - LAST OF THE NEW SUB CHAIN. FOR THOSE FOLLOWING, THE PATH IS:
+ //  emu/ui.c->ui_set_startup_text CALLS emu/video.c->video_frame_update_hi WHICH CALLS
+ //  osd/windows/video.c->osd_update_hi WHICH CALLS THIS SUB. 
+ //  THE ONLY DIFFERENCE BETWEEN THIS SUB AND winwindow_video_window_update IS IT DOES NOT
+ //  perform PostMessage(window->hwnd, WM_USER_REDRAW, 0, (LPARAM)primlist) OR
+ //  SendMessage(window->hwnd, WM_USER_REDRAW, 0, (LPARAM)primlist)
+ //  ALL THIS DOES IS ALLOW MAME TO PROPERLY RUN TO CALCULATE THE REFRESHSPEED/ETC. WITHOUT
+ //  GIVING THE WHITE BOX THAT SEEMS TO ANNOY SOME PEOPLE!
+ //============================================================
+ 
+ void winwindow_video_window_update_hi(win_window_info *window)
+ {
+ 	int targetview, targetorient;
+ 	render_layer_config targetlayerconfig;
+ 
+ 	assert(GetCurrentThreadId() == main_threadid);
+ 
+ 	mtlog_add("winwindow_video_window_update: begin");
+ 
+ 	// see if the target has changed significantly in window mode
+ 	targetview = window->target->view();
+ 	targetorient = window->target->orientation();
+ 	targetlayerconfig = window->target->layer_config();
+ 	if (targetview != window->targetview || targetorient != window->targetorient || targetlayerconfig != window->targetlayerconfig)
+ 	{
+ 		window->targetview = targetview;
+ 		window->targetorient = targetorient;
+ 		window->targetlayerconfig = targetlayerconfig;
+ 
+ 		// in window mode, reminimize/maximize
+ 		if (!window->fullscreen)
+ 		{
+ 			if (window->isminimized)
+ 				SendMessage(window->hwnd, WM_USER_SET_MINSIZE, 0, 0);
+ 			if (window->ismaximized)
+ 				SendMessage(window->hwnd, WM_USER_SET_MAXSIZE, 0, 0);
+ 		}
+ 	}
+ 
+ 	// if we're visible and running and not in the middle of a resize, draw
+ 	if (window->hwnd != NULL && window->target != NULL && window->drawdata != NULL)
+ 	{
+ 		int got_lock = TRUE;
+ 
+ 		mtlog_add("winwindow_video_window_update: try lock");
+ 
+ 		// only block if we're throttled
+ 		if (window->machine().video().throttled() || timeGetTime() - last_update_time > 250)
+ 			osd_lock_acquire(window->render_lock);
+ 		else
+ 			got_lock = osd_lock_try(window->render_lock);
+ 
+ 		// only render if we were able to get the lock
+ 		if (got_lock)
+ 		{
+ 		//	render_primitive_list *primlist;
+ 
+ 			mtlog_add("winwindow_video_window_update: got lock");
+ 
+ 			// don't hold the lock; we just used it to see if rendering was still happening
+ 			osd_lock_release(window->render_lock);
+ 
+ 			// ensure the target bounds are up-to-date, and then get the primitives
+ 		//	primlist = (*draw.window_get_primitives)(window);
+ 			(*draw.window_get_primitives)(window);
+ 			// post a redraw request with the primitive list as a parameter
+ 			last_update_time = timeGetTime();
+ 			mtlog_add("winwindow_video_window_update: PostMessage start");
+ 		//	if (multithreading_enabled)
+ 		//		PostMessage(window->hwnd, WM_USER_REDRAW, 0, (LPARAM)primlist);
+ 		//	else
+ 		//		SendMessage(window->hwnd, WM_USER_REDRAW, 0, (LPARAM)primlist);
+ 			mtlog_add("winwindow_video_window_update: PostMessage end");
+ 		}
+ 	}
+ 
+ 	mtlog_add("winwindow_video_window_update: end");
+ }
  
  
  //============================================================
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/osd/windows/window.h C:\mingw\mingw64-w32\mame_original/src/osd/windows/window.h
*** C:\mingw\mingw64-w32\mame_modificato/src/osd/windows/window.h	Fri Jan 11 08:32:46 2013
--- C:\mingw\mingw64-w32\mame_original/src/osd/windows/window.h	Sat Feb 16 11:29:02 2013
***************
*** 150,155 ****
--- 150,157 ----
  BOOL winwindow_has_focus(void);
  void winwindow_update_cursor_state(running_machine &machine);
  void winwindow_video_window_update(win_window_info *window);
+ //MKCHAMP - DECLARING THE NEW SUB winwindow_video_window_update_hi
+ void winwindow_video_window_update_hi(win_window_info *window);
  win_monitor_info *winwindow_video_window_monitor(win_window_info *window, const RECT *proposed);
  
  LRESULT CALLBACK winwindow_video_window_proc(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam);
diff -crB C:\mingw\mingw64-w32\mame_modificato/src/osd/windows/winmain.h C:\mingw\mingw64-w32\mame_original/src/osd/windows/winmain.h
*** C:\mingw\mingw64-w32\mame_modificato/src/osd/windows/winmain.h	Fri Jan 11 17:55:27 2013
--- C:\mingw\mingw64-w32\mame_original/src/osd/windows/winmain.h	Sat Feb 16 11:29:02 2013
***************
*** 339,344 ****
--- 323,330 ----
  
  private:
  	static void osd_exit(running_machine &machine);
+ 	//MKChamp - Declaring hi subroutine
+  	virtual void update_hi(bool skip_redraw);
  
  	static const int DEFAULT_FONT_HEIGHT = 200;
  };
Only in C:\mingw\mingw64-w32\mame_modificato/src/osd: winui
In caso andrebbe applicata al sorgente non del mame ma del mamefx 0.148. Altrimenti potrei provare e mettere il mio eseguibile da qualche parte ma non saprei come fare. Questa però disabilità del tutto i nag screen e non ti consente di rimetterli dal file .ini del mame perchè quel passaggio non l'ho capito!
Comunque non mi assumo responsabilità poichè come già detto è stato un mio esperimento personale ed in ste cose sono una pippa. Se volete provare prendetelo anche voi come un esperimento!
Rispondi

Torna a “Emulatori Windows”