Little update for groovymame patch (to compile against 0.145u6):
--- 0145u4_groovymame_013f.diff	2012-04-12 15:36:38.049538976 +0200
+++ 0145u6_groovymame_013f.diff	2012-04-12 15:36:38.055538820 +0200
@@ -22,7 +22,7 @@
 +
  // the running machine
  #include "machine.h"
- #include "mame.h"
+ #include "driver.h"
 diff -Nru src/emu/emu.mak src/emu/emu.mak
 --- src/emu/emu.mak	2012-03-17 15:46:18.000000000 +0100
 +++ src/emu/emu.mak	2012-03-17 16:45:04.000000000 +0100
@@ -42,7 +42,7 @@
  
  OSDSRC = $(SRC)/osd
  OSDOBJ = $(OBJ)/osd
-@@ -317,8 +319,13 @@
+@@ -318,8 +320,13 @@
  	$(EMUIMAGEDEV)/serial.o		\
  	$(EMUIMAGEDEV)/snapquik.o	\
  
@@ -60,7 +60,7 @@
 diff -Nru src/emu/emuopts.c src/emu/emuopts.c
 --- src/emu/emuopts.c	2012-03-17 15:46:18.000000000 +0100
 +++ src/emu/emuopts.c	2012-03-17 18:19:08.000000000 +0100
-@@ -106,6 +106,7 @@
+@@ -107,6 +107,7 @@
  	{ OPTION_FRAMESKIP ";fs(0-10)",                      "0",         OPTION_INTEGER,    "set frameskip to fixed value, 0-10 (autoframeskip must be disabled)" },
  	{ OPTION_SECONDS_TO_RUN ";str",                      "0",         OPTION_INTEGER,    "number of emulated seconds to run before automatically exiting" },
  	{ OPTION_THROTTLE,                                   "1",         OPTION_BOOLEAN,    "enable throttling to keep game running in sync with real time" },
@@ -68,7 +68,7 @@
  	{ OPTION_SLEEP,                                      "1",         OPTION_BOOLEAN,    "enable sleeping, which gives time back to other applications when idle" },
  	{ OPTION_SPEED "(0.01-100)",                         "1.0",       OPTION_FLOAT,      "controls the speed of gameplay, relative to realtime; smaller numbers are slower" },
  	{ OPTION_REFRESHSPEED ";rs",                         "0",         OPTION_BOOLEAN,    "automatically adjusts the speed of gameplay to keep the refresh rate lower than the screen" },
-@@ -122,12 +123,12 @@
+@@ -123,12 +124,12 @@
  
  	// artwork options
  	{ NULL,                                              NULL,        OPTION_HEADER,     "CORE ARTWORK OPTIONS" },
@@ -87,7 +87,7 @@
  
  	// screen options
  	{ NULL,                                              NULL,        OPTION_HEADER,     "CORE SCREEN OPTIONS" },
-@@ -197,11 +198,37 @@
+@@ -198,11 +199,37 @@
  	{ 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" },
  	// MKChamp Hiscore Diff options 
@@ -235,15 +235,15 @@
 diff -Nru src/emu/machine.c src/emu/machine.c
 --- src/emu/machine.c	2012-03-17 15:46:18.000000000 +0100
 +++ src/emu/machine.c	2012-03-17 16:45:04.000000000 +0100
-@@ -189,6 +189,7 @@
+@@ -188,6 +188,7 @@
+ {
  	memset(gfx, 0, sizeof(gfx));
- 	memset(&generic, 0, sizeof(generic));
  	memset(&m_base_time, 0, sizeof(m_base_time));
 +	memset(&switchRes, 0, sizeof(switchRes));
  
  	// set the machine on all devices
  	device_iterator iter(root_device());
-@@ -264,6 +265,9 @@
+@@ -263,6 +264,9 @@
  	// allocate a soft_reset timer
  	m_soft_reset_timer = m_scheduler.timer_alloc(timer_expired_delegate(FUNC(running_machine::soft_reset), this));
  
@@ -256,20 +256,20 @@
 diff -Nru src/emu/machine.h src/emu/machine.h
 --- src/emu/machine.h	2012-03-17 15:46:18.000000000 +0100
 +++ src/emu/machine.h	2012-03-17 16:45:04.000000000 +0100
-@@ -418,6 +418,9 @@
+@@ -407,6 +407,9 @@
  	// debugger-related information
  	UINT32					debug_flags;		// the current debug flags
  
 +	// SwitchRes patch
-+	SwitchRes				switchRes;			// SwitchRes data
++	SwitchRes				switchRes;		// SwitchRes data
 +
- 	// generic pointers
- 	generic_pointers		generic;			// generic pointers
- 
+ 	// internal core information
+ 	palette_private *		palette_data;		// internal data from palette.c
+ 	romload_private *		romload_data;		// internal data from romload.c
 diff -Nru src/emu/render.c src/emu/render.c
 --- src/emu/render.c	2012-01-24 15:18:56.000000000 +0100
 +++ src/emu/render.c	2012-03-17 16:45:04.000000000 +0100
-@@ -1203,10 +1203,54 @@
+@@ -1204,10 +1204,54 @@
  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;
@@ -326,7 +326,7 @@
  	{
  		// start with the aspect ratio of the square pixel layout
  		width = m_curview->effective_aspect(m_layerconfig);
-@@ -1221,9 +1265,9 @@
+@@ -1222,9 +1266,9 @@
  
  		// based on the height/width ratio of the source and target, compute the scale factor
  		if (width / height > (float)target_width / (float)target_height)
@@ -338,7 +338,7 @@
  	}
  
  	// stretch-to-fit case
-@@ -1231,12 +1275,12 @@
+@@ -1232,12 +1276,12 @@
  	{
  		width = (float)target_width;
  		height = (float)target_height;
@@ -354,7 +354,7 @@
  }
  
  
-@@ -1343,7 +1387,7 @@
+@@ -1344,7 +1388,7 @@
  	root_xform.yscale = (float)visheight;
  	root_xform.color.r = root_xform.color.g = root_xform.color.b = root_xform.color.a = 1.0f;
  	root_xform.orientation = m_orientation;
@@ -363,7 +363,7 @@
  
  	// iterate over layers back-to-front, but only if we're running
  	if (m_manager.machine().phase() >= MACHINE_PHASE_RESET)
-@@ -1372,7 +1416,7 @@
+@@ -1373,7 +1417,7 @@
  					item_xform.color.b = curitem->color().b * root_xform.color.b;
  					item_xform.color.a = curitem->color().a * root_xform.color.a;
  					item_xform.orientation = orientation_add(curitem->orientation(), root_xform.orientation);
@@ -1932,7 +1932,7 @@
 diff -Nru src/mame/drivers/galaxian.c src/mame/drivers/galaxian.c
 --- src/mame/drivers/galaxian.c	2012-03-17 15:45:37.000000000 +0100
 +++ src/mame/drivers/galaxian.c	2012-03-17 16:45:05.000000000 +0100
-@@ -2016,7 +2016,7 @@
+@@ -2113,7 +2113,7 @@
  static MACHINE_CONFIG_START( galaxian_base, galaxian_state )
  
  	/* basic machine hardware */
@@ -1941,7 +1941,7 @@
  	MCFG_CPU_PROGRAM_MAP(galaxian_map)
  	MCFG_CPU_VBLANK_INT("screen", interrupt_gen)
  
-@@ -2119,7 +2119,7 @@
+@@ -2216,7 +2126,7 @@
  	MCFG_CPU_VBLANK_INT("screen", fakechange_interrupt_gen)
  
  	/* basic machine hardware */
@@ -1950,7 +1950,7 @@
  	MCFG_CPU_PROGRAM_MAP(tenspot_select_map)
  	//MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
  
-@@ -2235,7 +2235,7 @@
+@@ -2328,7 +2328,7 @@
  	MCFG_CPU_IO_MAP(mshuttle_portmap)
  
  	/* sound hardware */