summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2012-04-06 19:59:27 +0000
committer Aaron Giles <aaron@aarongiles.com>2012-04-06 19:59:27 +0000
commit3e575ad6b94974bf2a782c7ebf2d5a8b79d09ae5 (patch)
tree9b943997a6110915b7f3663de8f6db809bb15514 /src
parent12b4c3a38dc1678193d454367bf3148d04d267ec (diff)
Move driver list/enumerator to new file drivenum.c/.h.
Move game_driver definition and constants to new header gamedrv.h.
Diffstat (limited to 'src')
-rw-r--r--src/build/makelist.c1
-rw-r--r--src/emu/audit.h1
-rw-r--r--src/emu/clifront.h1
-rw-r--r--src/emu/config.c1
-rw-r--r--src/emu/diimage.c1
-rw-r--r--src/emu/drivenum.c (renamed from src/emu/driver.c)3
-rw-r--r--src/emu/drivenum.h (renamed from src/emu/driver.h)178
-rw-r--r--src/emu/emu.h2
-rw-r--r--src/emu/emu.mak2
-rw-r--r--src/emu/emuopts.c1
-rw-r--r--src/emu/gamedrv.h221
-rw-r--r--src/emu/hashfile.c1
-rw-r--r--src/emu/info.h2
-rw-r--r--src/emu/render.c1
-rw-r--r--src/emu/romload.c1
-rw-r--r--src/emu/screen.h4
-rw-r--r--src/emu/uimain.h1
-rw-r--r--src/emu/validity.h1
18 files changed, 251 insertions, 172 deletions
diff --git a/src/build/makelist.c b/src/build/makelist.c
index d6f0aa88786..21b0d284e7e 100644
--- a/src/build/makelist.c
+++ b/src/build/makelist.c
@@ -251,6 +251,7 @@ int main(int argc, char *argv[])
// start with a header
printf("#include \"emu.h\"\n\n");
+ printf("#include \"drivenum.h\"\n\n");
// output the list of externs first
for (int index = 0; index < drivcount; index++)
diff --git a/src/emu/audit.h b/src/emu/audit.h
index ee802f94e5f..1dd47c0a112 100644
--- a/src/emu/audit.h
+++ b/src/emu/audit.h
@@ -42,6 +42,7 @@
#ifndef __AUDIT_H__
#define __AUDIT_H__
+#include "drivenum.h"
#include "hash.h"
diff --git a/src/emu/clifront.h b/src/emu/clifront.h
index bc95761034e..02ec7dd2142 100644
--- a/src/emu/clifront.h
+++ b/src/emu/clifront.h
@@ -43,6 +43,7 @@
#define __CLIFRONT_H__
#include "emuopts.h"
+#include "drivenum.h"
//**************************************************************************
diff --git a/src/emu/config.c b/src/emu/config.c
index d2937d38f21..c0df9f9737d 100644
--- a/src/emu/config.c
+++ b/src/emu/config.c
@@ -11,6 +11,7 @@
#include "emu.h"
#include "emuopts.h"
+#include "drivenum.h"
#include "config.h"
#include "xmlfile.h"
diff --git a/src/emu/diimage.c b/src/emu/diimage.c
index 16ff28ba107..11fdec1f6b9 100644
--- a/src/emu/diimage.c
+++ b/src/emu/diimage.c
@@ -39,6 +39,7 @@
#include "emu.h"
#include "emuopts.h"
+#include "drivenum.h"
#include "ui.h"
#include "zippath.h"
#include "uiimage.h"
diff --git a/src/emu/driver.c b/src/emu/drivenum.c
index e0e121e1d50..2f06589ad2b 100644
--- a/src/emu/driver.c
+++ b/src/emu/drivenum.c
@@ -1,6 +1,6 @@
/***************************************************************************
- driver.c
+ drivenum.c
Driver enumeration helpers.
@@ -38,6 +38,7 @@
***************************************************************************/
#include "emu.h"
+#include "drivenum.h"
#include <ctype.h>
diff --git a/src/emu/driver.h b/src/emu/drivenum.h
index 40c3364d8e7..40fc2ea0c13 100644
--- a/src/emu/driver.h
+++ b/src/emu/drivenum.h
@@ -1,6 +1,6 @@
/***************************************************************************
- driver.h
+ drivenum.h
Driver enumeration helpers.
@@ -39,77 +39,15 @@
#pragma once
-#ifndef __EMU_H__
-#error Dont include this file directly; include emu.h instead.
-#endif
-
-#ifndef __DRIVER_H__
-#define __DRIVER_H__
-
-
-/***************************************************************************
- CONSTANTS
-***************************************************************************/
+#ifndef __DRIVENUM_H__
+#define __DRIVENUM_H__
-/* maxima */
-#define MAX_DRIVER_NAME_CHARS 8
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
-
-/* ----- flags for game drivers ----- */
-
-#define ORIENTATION_MASK 0x00000007
-#define GAME_NOT_WORKING 0x00000008
-#define GAME_UNEMULATED_PROTECTION 0x00000010 /* game's protection not fully emulated */
-#define GAME_WRONG_COLORS 0x00000020 /* colors are totally wrong */
-#define GAME_IMPERFECT_COLORS 0x00000040 /* colors are not 100% accurate, but close */
-#define GAME_IMPERFECT_GRAPHICS 0x00000080 /* graphics are wrong/incomplete */
-#define GAME_NO_COCKTAIL 0x00000100 /* screen flip support is missing */
-#define GAME_NO_SOUND 0x00000200 /* sound is missing */
-#define GAME_IMPERFECT_SOUND 0x00000400 /* sound is known to be wrong */
-#define GAME_SUPPORTS_SAVE 0x00000800 /* game supports save states */
-#define GAME_IS_BIOS_ROOT 0x00001000 /* this driver entry is a BIOS root */
-#define GAME_NO_STANDALONE 0x00002000 /* this driver cannot stand alone */
-#define GAME_REQUIRES_ARTWORK 0x00004000 /* the driver requires external artwork for key elements of the game */
-#define GAME_UNOFFICIAL 0x00008000 /* unofficial hardware change */
-#define GAME_NO_SOUND_HW 0x00010000 /* sound hardware not available */
-#define GAME_MECHANICAL 0x00020000 /* contains mechanical parts (pinball, redemption games,...) */
-#define GAME_IS_SKELETON 0x00000208 /* mask for skelly games */
-#define GAME_IS_SKELETON_MECHANICAL 0x00024208 /* mask for skelly mechanical games */
-#define GAME_TYPE_ARCADE 0x00040000 /* arcade machine (coin operated machines) */
-#define GAME_TYPE_CONSOLE 0x00080000 /* console system */
-#define GAME_TYPE_COMPUTER 0x00100000 /* any kind of computer including home computers, minis, calcs,... */
-#define GAME_TYPE_OTHER 0x00200000 /* any other emulated system that doesn't fit above (ex. clock, satelite receiver,...) */
-
-/* ----- flags to return from video_update ----- */
-#define UPDATE_HAS_NOT_CHANGED 0x0001 /* the video has not changed */
-
-
-
-/***************************************************************************
- TYPE DEFINITIONS
-***************************************************************************/
-
-typedef void (*driver_init_func)(running_machine &machine);
-
-
-struct game_driver
-{
- const char * source_file; /* set this to __FILE__ */
- const char * parent; /* if this is a clone, the name of the parent */
- const char * name; /* short (8-character) name of the game */
- const char * description; /* full name of the game */
- const char * year; /* year the game was released */
- const char * manufacturer; /* manufacturer of the game */
- machine_config_constructor machine_config; /* machine driver tokens */
- ioport_constructor ipt; /* pointer to array of input port tokens */
- void (*driver_init)(running_machine &machine); /* DRIVER_INIT callback */
- const rom_entry * rom; /* pointer to list of ROMs for the game */
- const char * compatible_with;
- UINT32 flags; /* orientation and other flags; see defines below */
- const char * default_layout; /* default internally defined layout */
-};
-
+// ======================> driver_list
// driver_list is a purely static class that wraps the global driver list
class driver_list
@@ -153,6 +91,8 @@ protected:
};
+// ======================> driver_enumerator
+
// driver_enumerator enables efficient iteration through the driver list
class driver_enumerator : public driver_list
{
@@ -238,104 +178,4 @@ private:
mutable simple_list<config_entry> m_config_cache;
};
-
-
-/***************************************************************************
- MACROS FOR BUILDING GAME DRIVERS
-***************************************************************************/
-
-
-#define DRIVER_INIT_NAME(name) driver_init_##name
-#define DRIVER_INIT(name) void DRIVER_INIT_NAME(name)(running_machine &machine)
-#define DRIVER_INIT_CALL(name) DRIVER_INIT_NAME(name)(machine)
-
-#define driver_init_0 NULL
-
-
-#define GAME_NAME(name) driver_##name
-#define GAME_EXTERN(name) extern const game_driver GAME_NAME(name)
-
-#define GAME(YEAR,NAME,PARENT,MACHINE,INPUT,INIT,MONITOR,COMPANY,FULLNAME,FLAGS) \
- GAMEL(YEAR,NAME,PARENT,MACHINE,INPUT,INIT,MONITOR,COMPANY,FULLNAME,FLAGS,((const char *)0))
-
-#define GAMEL(YEAR,NAME,PARENT,MACHINE,INPUT,INIT,MONITOR,COMPANY,FULLNAME,FLAGS,LAYOUT) \
-extern const game_driver GAME_NAME(NAME) = \
-{ \
- __FILE__, \
- #PARENT, \
- #NAME, \
- FULLNAME, \
- #YEAR, \
- COMPANY, \
- MACHINE_CONFIG_NAME(MACHINE), \
- INPUT_PORTS_NAME(INPUT), \
- DRIVER_INIT_NAME(INIT), \
- ROM_NAME(NAME), \
- NULL, \
- (MONITOR)|(FLAGS)|GAME_TYPE_ARCADE, \
- &LAYOUT[0] \
-};
-
-#define CONS(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,INIT,COMPANY,FULLNAME,FLAGS) \
-extern const game_driver GAME_NAME(NAME) = \
-{ \
- __FILE__, \
- #PARENT, \
- #NAME, \
- FULLNAME, \
- #YEAR, \
- COMPANY, \
- MACHINE_CONFIG_NAME(MACHINE), \
- INPUT_PORTS_NAME(INPUT), \
- DRIVER_INIT_NAME(INIT), \
- ROM_NAME(NAME), \
- #COMPAT, \
- ROT0|(FLAGS)|GAME_TYPE_CONSOLE, \
- NULL \
-};
-
-#define COMP(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,INIT,COMPANY,FULLNAME,FLAGS) \
-extern const game_driver GAME_NAME(NAME) = \
-{ \
- __FILE__, \
- #PARENT, \
- #NAME, \
- FULLNAME, \
- #YEAR, \
- COMPANY, \
- MACHINE_CONFIG_NAME(MACHINE), \
- INPUT_PORTS_NAME(INPUT), \
- DRIVER_INIT_NAME(INIT), \
- ROM_NAME(NAME), \
- #COMPAT, \
- ROT0|(FLAGS)|GAME_TYPE_COMPUTER, \
- NULL \
-};
-
-#define SYST(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,INIT,COMPANY,FULLNAME,FLAGS) \
-extern const game_driver GAME_NAME(NAME) = \
-{ \
- __FILE__, \
- #PARENT, \
- #NAME, \
- FULLNAME, \
- #YEAR, \
- COMPANY, \
- MACHINE_CONFIG_NAME(MACHINE), \
- INPUT_PORTS_NAME(INPUT), \
- DRIVER_INIT_NAME(INIT), \
- ROM_NAME(NAME), \
- #COMPAT, \
- ROT0|(FLAGS)|GAME_TYPE_OTHER, \
- NULL \
-};
-
-/***************************************************************************
- GLOBAL VARIABLES
-***************************************************************************/
-
-GAME_EXTERN(___empty);
-
-
-
#endif
diff --git a/src/emu/emu.h b/src/emu/emu.h
index 1ff548835d4..005efc2244e 100644
--- a/src/emu/emu.h
+++ b/src/emu/emu.h
@@ -112,7 +112,7 @@ typedef device_t * (*machine_config_constructor)(machine_config &config, device_
// machine and driver configuration
#include "mconfig.h"
-#include "driver.h"
+#include "gamedrv.h"
// image-related
#include "softlist.h"
diff --git a/src/emu/emu.mak b/src/emu/emu.mak
index 03779bea239..2ad743db39e 100644
--- a/src/emu/emu.mak
+++ b/src/emu/emu.mak
@@ -70,7 +70,7 @@ EMUOBJS = \
$(EMUOBJ)/disound.o \
$(EMUOBJ)/distate.o \
$(EMUOBJ)/drawgfx.o \
- $(EMUOBJ)/driver.o \
+ $(EMUOBJ)/drivenum.o \
$(EMUOBJ)/emualloc.o \
$(EMUOBJ)/emucore.o \
$(EMUOBJ)/emuopts.o \
diff --git a/src/emu/emuopts.c b/src/emu/emuopts.c
index ddea3ecdf9e..72baf54a2f0 100644
--- a/src/emu/emuopts.c
+++ b/src/emu/emuopts.c
@@ -39,6 +39,7 @@
#include "emu.h"
#include "emuopts.h"
+#include "drivenum.h"
#include <ctype.h>
diff --git a/src/emu/gamedrv.h b/src/emu/gamedrv.h
new file mode 100644
index 00000000000..bb5f2111618
--- /dev/null
+++ b/src/emu/gamedrv.h
@@ -0,0 +1,221 @@
+/***************************************************************************
+
+ gamedrv.h
+
+ Definitions for game drivers.
+
+****************************************************************************
+
+ Copyright Aaron Giles
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name 'MAME' nor the names of its contributors may be
+ used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __GAMEDRV_H__
+#define __GAMEDRV_H__
+
+
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
+
+// maxima
+const int MAX_DRIVER_NAME_CHARS = 8;
+
+// flags for game drivers
+const UINT32 ORIENTATION_MASK = 0x00000007;
+const UINT32 GAME_NOT_WORKING = 0x00000008;
+const UINT32 GAME_UNEMULATED_PROTECTION = 0x00000010; // game's protection not fully emulated
+const UINT32 GAME_WRONG_COLORS = 0x00000020; // colors are totally wrong
+const UINT32 GAME_IMPERFECT_COLORS = 0x00000040; // colors are not 100% accurate, but close
+const UINT32 GAME_IMPERFECT_GRAPHICS = 0x00000080; // graphics are wrong/incomplete
+const UINT32 GAME_NO_COCKTAIL = 0x00000100; // screen flip support is missing
+const UINT32 GAME_NO_SOUND = 0x00000200; // sound is missing
+const UINT32 GAME_IMPERFECT_SOUND = 0x00000400; // sound is known to be wrong
+const UINT32 GAME_SUPPORTS_SAVE = 0x00000800; // game supports save states
+const UINT32 GAME_IS_BIOS_ROOT = 0x00001000; // this driver entry is a BIOS root
+const UINT32 GAME_NO_STANDALONE = 0x00002000; // this driver cannot stand alone
+const UINT32 GAME_REQUIRES_ARTWORK = 0x00004000; // the driver requires external artwork for key elements of the game
+const UINT32 GAME_UNOFFICIAL = 0x00008000; // unofficial hardware change
+const UINT32 GAME_NO_SOUND_HW = 0x00010000; // sound hardware not available
+const UINT32 GAME_MECHANICAL = 0x00020000; // contains mechanical parts (pinball, redemption games,...)
+const UINT32 GAME_TYPE_ARCADE = 0x00040000; // arcade machine (coin operated machines)
+const UINT32 GAME_TYPE_CONSOLE = 0x00080000; // console system
+const UINT32 GAME_TYPE_COMPUTER = 0x00100000; // any kind of computer including home computers, minis, calcs,...
+const UINT32 GAME_TYPE_OTHER = 0x00200000; // any other emulated system that doesn't fit above (ex. clock, satelite receiver,...)
+
+// useful combinations of flags
+const UINT32 GAME_IS_SKELETON = GAME_NO_SOUND | GAME_NOT_WORKING; // mask for skelly games
+const UINT32 GAME_IS_SKELETON_MECHANICAL = GAME_IS_SKELETON | GAME_MECHANICAL | GAME_REQUIRES_ARTWORK; // mask for skelly mechanical games
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// static driver initialization callback
+typedef void (*driver_init_func)(running_machine &machine);
+
+/*
+// wrapper template to allow members
+template<class _DriverClass, void (_DriverClass::*_Function)()>
+void driver_init_wrapper(running_machine &machine)
+{
+ _DriverClass *object = machine.driver_data<_DriverClass>();
+ (object->*_Function)();
+}
+*/
+
+// static POD structure describing each game driver entry
+struct game_driver
+{
+ const char * source_file; // set this to __FILE__
+ const char * parent; // if this is a clone, the name of the parent
+ const char * name; // short (8-character) name of the game
+ const char * description; // full name of the game
+ const char * year; // year the game was released
+ const char * manufacturer; // manufacturer of the game
+ machine_config_constructor machine_config; // machine driver tokens
+ ioport_constructor ipt; // pointer to constructor for input ports
+ void (*driver_init)(running_machine &machine); // DRIVER_INIT callback
+ const rom_entry * rom; // pointer to list of ROMs for the game
+ const char * compatible_with;
+ UINT32 flags; // orientation and other flags; see defines below
+ const char * default_layout; // default internally defined layout
+};
+
+
+
+//**************************************************************************
+// MACROS
+//**************************************************************************
+
+// wrappers for the DRIVER_INIT callback
+#define DRIVER_INIT_NAME(name) driver_init_##name
+#define DRIVER_INIT(name) void DRIVER_INIT_NAME(name)(running_machine &machine)
+#define DRIVER_INIT_CALL(name) DRIVER_INIT_NAME(name)(machine)
+
+#define driver_init_0 NULL
+
+// wrappers for declaring and defining game drivers
+#define GAME_NAME(name) driver_##name
+#define GAME_EXTERN(name) extern const game_driver GAME_NAME(name)
+
+// standard GAME() macro
+#define GAME(YEAR,NAME,PARENT,MACHINE,INPUT,INIT,MONITOR,COMPANY,FULLNAME,FLAGS) \
+ GAMEL(YEAR,NAME,PARENT,MACHINE,INPUT,INIT,MONITOR,COMPANY,FULLNAME,FLAGS,((const char *)0))
+
+// standard macro with additional layout
+#define GAMEL(YEAR,NAME,PARENT,MACHINE,INPUT,INIT,MONITOR,COMPANY,FULLNAME,FLAGS,LAYOUT) \
+extern const game_driver GAME_NAME(NAME) = \
+{ \
+ __FILE__, \
+ #PARENT, \
+ #NAME, \
+ FULLNAME, \
+ #YEAR, \
+ COMPANY, \
+ MACHINE_CONFIG_NAME(MACHINE), \
+ INPUT_PORTS_NAME(INPUT), \
+ DRIVER_INIT_NAME(INIT), \
+ ROM_NAME(NAME), \
+ NULL, \
+ (MONITOR)|(FLAGS)|GAME_TYPE_ARCADE, \
+ &LAYOUT[0] \
+};
+
+// standard console definition macro
+#define CONS(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,INIT,COMPANY,FULLNAME,FLAGS) \
+extern const game_driver GAME_NAME(NAME) = \
+{ \
+ __FILE__, \
+ #PARENT, \
+ #NAME, \
+ FULLNAME, \
+ #YEAR, \
+ COMPANY, \
+ MACHINE_CONFIG_NAME(MACHINE), \
+ INPUT_PORTS_NAME(INPUT), \
+ DRIVER_INIT_NAME(INIT), \
+ ROM_NAME(NAME), \
+ #COMPAT, \
+ ROT0|(FLAGS)|GAME_TYPE_CONSOLE, \
+ NULL \
+};
+
+// standard computer definition macro
+#define COMP(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,INIT,COMPANY,FULLNAME,FLAGS) \
+extern const game_driver GAME_NAME(NAME) = \
+{ \
+ __FILE__, \
+ #PARENT, \
+ #NAME, \
+ FULLNAME, \
+ #YEAR, \
+ COMPANY, \
+ MACHINE_CONFIG_NAME(MACHINE), \
+ INPUT_PORTS_NAME(INPUT), \
+ DRIVER_INIT_NAME(INIT), \
+ ROM_NAME(NAME), \
+ #COMPAT, \
+ ROT0|(FLAGS)|GAME_TYPE_COMPUTER, \
+ NULL \
+};
+
+// standard system definition macro
+#define SYST(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,INIT,COMPANY,FULLNAME,FLAGS) \
+extern const game_driver GAME_NAME(NAME) = \
+{ \
+ __FILE__, \
+ #PARENT, \
+ #NAME, \
+ FULLNAME, \
+ #YEAR, \
+ COMPANY, \
+ MACHINE_CONFIG_NAME(MACHINE), \
+ INPUT_PORTS_NAME(INPUT), \
+ DRIVER_INIT_NAME(INIT), \
+ ROM_NAME(NAME), \
+ #COMPAT, \
+ ROT0|(FLAGS)|GAME_TYPE_OTHER, \
+ NULL \
+};
+
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+GAME_EXTERN(___empty);
+
+#endif
diff --git a/src/emu/hashfile.c b/src/emu/hashfile.c
index f80b21158d8..e79cf84e186 100644
--- a/src/emu/hashfile.c
+++ b/src/emu/hashfile.c
@@ -11,6 +11,7 @@
#include "expat.h"
#include "emuopts.h"
#include "hash.h"
+#include "drivenum.h"
/***************************************************************************
diff --git a/src/emu/info.h b/src/emu/info.h
index 1ebdea13322..5deb4946ea7 100644
--- a/src/emu/info.h
+++ b/src/emu/info.h
@@ -42,6 +42,8 @@
#ifndef __INFO_H__
#define __INFO_H__
+#include "drivenum.h"
+
//**************************************************************************
// FUNCTION PROTOTYPES
diff --git a/src/emu/render.c b/src/emu/render.c
index 7f971618b25..f9482214cd3 100644
--- a/src/emu/render.c
+++ b/src/emu/render.c
@@ -72,6 +72,7 @@
#include "rendlay.h"
#include "rendutil.h"
#include "config.h"
+#include "drivenum.h"
#include "xmlfile.h"
diff --git a/src/emu/romload.c b/src/emu/romload.c
index 99acddceef0..a4138fcfea5 100644
--- a/src/emu/romload.c
+++ b/src/emu/romload.c
@@ -11,6 +11,7 @@
#include "emu.h"
#include "emuopts.h"
+#include "drivenum.h"
#include "png.h"
#include "harddisk.h"
#include "config.h"
diff --git a/src/emu/screen.h b/src/emu/screen.h
index bb854ce2d3a..ed141513c18 100644
--- a/src/emu/screen.h
+++ b/src/emu/screen.h
@@ -61,6 +61,10 @@ enum screen_type_enum
};
+// screen_update callback flags
+const UINT32 UPDATE_HAS_NOT_CHANGED = 0x0001; // the video has not changed
+
+
//**************************************************************************
// TYPE DEFINITIONS
diff --git a/src/emu/uimain.h b/src/emu/uimain.h
index b2b6d22530c..31eb79090a8 100644
--- a/src/emu/uimain.h
+++ b/src/emu/uimain.h
@@ -15,6 +15,7 @@
#define __UIMAIN_H__
#include "crsshair.h"
+#include "drivenum.h"
class ui_menu_main : public ui_menu {
public:
diff --git a/src/emu/validity.h b/src/emu/validity.h
index 1e56d138930..dd7799b3047 100644
--- a/src/emu/validity.h
+++ b/src/emu/validity.h
@@ -43,6 +43,7 @@
#define __VALIDITY_H__
#include "emu.h"
+#include "drivenum.h"
//**************************************************************************