summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--scripts/src/3rdparty.lua2
-rw-r--r--scripts/src/devices.lua2
-rw-r--r--scripts/src/emu.lua2
-rw-r--r--scripts/src/lib.lua3
-rw-r--r--scripts/src/main.lua9
-rw-r--r--src/devices/machine/hdc92x4.cpp334
-rw-r--r--src/devices/machine/hdc92x4.h21
-rw-r--r--src/devices/machine/im6402.cpp3
-rw-r--r--src/devices/machine/nmc9306.cpp2
-rw-r--r--src/emu/diimage.cpp6
-rw-r--r--src/emu/romentry.cpp74
-rw-r--r--src/emu/romentry.h14
-rw-r--r--src/emu/romload.h10
-rw-r--r--src/emu/softlist.cpp29
-rw-r--r--src/emu/softlist.h12
-rw-r--r--src/emu/softlist_dev.cpp18
-rw-r--r--src/emu/softlist_dev.h4
-rw-r--r--src/frontend/mame/clifront.cpp2
-rw-r--r--src/frontend/mame/ui/miscmenu.cpp2
-rw-r--r--src/lib/formats/victor9k_dsk.cpp2
-rw-r--r--src/lib/netlist/plib/pparser.cpp8
-rw-r--r--src/lib/netlist/prg/nltool.cpp10
-rw-r--r--src/lib/netlist/tools/nl_convert.cpp251
-rw-r--r--src/lib/netlist/tools/nl_convert.h69
-rw-r--r--src/mame/audio/hng64.cpp6
-rw-r--r--src/mame/drivers/abc1600.cpp11
-rw-r--r--src/mame/drivers/astrafr.cpp16
-rw-r--r--src/mame/drivers/bfm_sc4.cpp12
-rw-r--r--src/mame/drivers/bfm_sc5.cpp2
-rw-r--r--src/mame/drivers/cb2001.cpp4
-rw-r--r--src/mame/drivers/chihiro.cpp16
-rw-r--r--src/mame/drivers/cobra.cpp2
-rw-r--r--src/mame/drivers/crystal.cpp6
-rw-r--r--src/mame/drivers/cv1k.cpp7
-rw-r--r--src/mame/drivers/deco32.cpp4
-rw-r--r--src/mame/drivers/deco_mlc.cpp8
-rw-r--r--[-rwxr-xr-x]src/mame/drivers/divebomb.cpp0
-rw-r--r--src/mame/drivers/dkong.cpp25
-rw-r--r--src/mame/drivers/dreambal.cpp2
-rw-r--r--src/mame/drivers/gambl186.cpp4
-rw-r--r--src/mame/drivers/gba.cpp428
-rw-r--r--src/mame/drivers/glass.cpp2
-rw-r--r--src/mame/drivers/juicebox.cpp16
-rw-r--r--src/mame/drivers/mpu4sw.hxx706
-rw-r--r--src/mame/drivers/mpu5.cpp16
-rw-r--r--src/mame/drivers/mystwarr.cpp42
-rw-r--r--src/mame/drivers/namcos22.cpp2
-rw-r--r--src/mame/drivers/ngen.cpp78
-rw-r--r--src/mame/drivers/plygonet.cpp4
-rw-r--r--src/mame/drivers/segapico.cpp4
-rw-r--r--src/mame/drivers/segasp.cpp10
-rw-r--r--src/mame/drivers/supracan.cpp8
-rw-r--r--[-rwxr-xr-x]src/mame/drivers/tek440x.cpp0
-rw-r--r--src/mame/drivers/toaplan2.cpp193
-rw-r--r--src/mame/drivers/triforce.cpp126
-rw-r--r--src/mame/drivers/uapce.cpp2
-rw-r--r--src/mame/drivers/vegas.cpp16
-rw-r--r--src/mame/drivers/wangpc.cpp4
-rw-r--r--src/mame/includes/toaplan2.h8
-rw-r--r--src/mame/machine/abc1600mac.cpp49
-rw-r--r--src/mame/machine/apollo.cpp2
-rw-r--r--src/mame/machine/bebox.cpp32
-rw-r--r--src/mame/machine/dc.cpp2
-rw-r--r--src/mame/machine/m3comm.cpp4
-rw-r--r--src/mame/machine/n64.cpp8
-rw-r--r--src/mame/machine/segas32.cpp2
-rw-r--r--src/mame/machine/stvprot.cpp4
-rw-r--r--src/mame/machine/victor9k_fdc.cpp2
-rw-r--r--src/mame/machine/wangpckb.cpp165
-rw-r--r--src/mame/machine/wangpckb.h22
-rw-r--r--src/mame/mame.lst10
-rw-r--r--src/mame/video/abc1600.cpp48
-rw-r--r--src/mame/video/abc1600.h4
-rw-r--r--src/mame/video/jaguar.cpp2
-rw-r--r--src/mame/video/kaneko_tmap.cpp4
-rw-r--r--src/osd/modules/sound/xaudio2_sound.cpp7
76 files changed, 1964 insertions, 1082 deletions
diff --git a/scripts/src/3rdparty.lua b/scripts/src/3rdparty.lua
index 2dacc9b8b81..38667d4ae44 100644
--- a/scripts/src/3rdparty.lua
+++ b/scripts/src/3rdparty.lua
@@ -431,6 +431,7 @@ end
--------------------------------------------------
-- LUA library objects
--------------------------------------------------
+if (STANDALONE~=true) then
if not _OPTIONS["with-system-lua"] then
project "lua"
@@ -565,6 +566,7 @@ project "lualibs"
MAME_DIR .. "3rdparty/luafilesystem/src/lfs.c",
}
+end
--------------------------------------------------
-- portmidi library objects
--------------------------------------------------
diff --git a/scripts/src/devices.lua b/scripts/src/devices.lua
index cbdb046f397..081bc7617bb 100644
--- a/scripts/src/devices.lua
+++ b/scripts/src/devices.lua
@@ -41,7 +41,6 @@ function devicesProject(_target, _subtarget)
GEN_DIR .. "emu",
GEN_DIR .. "emu/layout",
ext_includedir("expat"),
- ext_includedir("lua"),
ext_includedir("flac"),
}
@@ -72,7 +71,6 @@ if #disasm_files > 0 then
MAME_DIR .. "3rdparty",
GEN_DIR .. "emu",
ext_includedir("expat"),
- ext_includedir("lua"),
}
files {
diff --git a/scripts/src/emu.lua b/scripts/src/emu.lua
index 78b61d03d54..dc2a7a46a56 100644
--- a/scripts/src/emu.lua
+++ b/scripts/src/emu.lua
@@ -30,7 +30,6 @@ includedirs {
includedirs {
ext_includedir("expat"),
- ext_includedir("lua"),
ext_includedir("zlib"),
ext_includedir("flac"),
ext_includedir("jpeg"),
@@ -150,6 +149,7 @@ files {
MAME_DIR .. "src/emu/romload.cpp",
MAME_DIR .. "src/emu/romload.h",
MAME_DIR .. "src/emu/romentry.h",
+ MAME_DIR .. "src/emu/romentry.cpp",
MAME_DIR .. "src/emu/save.cpp",
MAME_DIR .. "src/emu/save.h",
MAME_DIR .. "src/emu/schedule.cpp",
diff --git a/scripts/src/lib.lua b/scripts/src/lib.lua
index 1549084c918..7a97f1facbe 100644
--- a/scripts/src/lib.lua
+++ b/scripts/src/lib.lua
@@ -427,6 +427,7 @@ project "formats"
MAME_DIR .. "src/lib/formats/itt3030_dsk.h",
}
+if (MACHINES["NETLIST"]~=null or _OPTIONS["with-tools"]) then
-- netlist now defines a project
dofile("netlist.lua")
-
+end
diff --git a/scripts/src/main.lua b/scripts/src/main.lua
index 42615bedebb..4ee2229b8ef 100644
--- a/scripts/src/main.lua
+++ b/scripts/src/main.lua
@@ -197,8 +197,12 @@ if (STANDALONE~=true) then
"frontend",
}
end
+if (MACHINES["NETLIST"]~=null) then
links {
"netlist",
+ }
+end
+ links {
"optional",
"emu",
"formats",
@@ -214,10 +218,13 @@ end
"softfloat",
ext_lib("jpeg"),
"7z",
+ }
+if (STANDALONE~=true) then
+ links {
ext_lib("lua"),
"lualibs",
}
-
+end
if _OPTIONS["USE_LIBUV"]=="1" then
links {
ext_lib("uv"),
diff --git a/src/devices/machine/hdc92x4.cpp b/src/devices/machine/hdc92x4.cpp
index 9579f33bf7c..4701f8c7711 100644
--- a/src/devices/machine/hdc92x4.cpp
+++ b/src/devices/machine/hdc92x4.cpp
@@ -16,6 +16,56 @@
Michael Zapf, August 2015
+ ==================================
+ Specifics of both controller types
+
+ ** 9224 **
+ - Defines a special "ST506" type for hard disks with a fixed 512 byte sector length
+ - No specific IDENT; uses HEAD field for cylinder MSBs (both ST and user-defined types);
+ - Different buffered step rate for SEEK and RESTORE
+ - POLL_DRIVES
+ - must be preceded by DESELECT
+ - DRIVE_SELECT
+ - 00 = ST506
+ - READ_SECTORS_LOGICAL
+ - Bit 1 = Bad sector bypass/terminate
+ - Multi-sector read requires ECC correction disable
+ - WRITE_SECTOR_*
+ - Bit 6 = Bad sector bypass/terminate
+ - FORMAT_TRACK
+ - 3-byte header for ST506, 4-byte otherwise
+ - No IDENT byte in the format parameters; the IDENT field (after the IDAM) is locked to FE
+
+ ** 9234 **
+ - Defines a special "PC-AT" type for hard disks with a selectable sector length (128, 256, 512, 1024)
+ - IDENT field in the sector header encodes cylinder MSBs (HD and MFM floppy)
+ - Defines R6 as CURRENT IDENT byte register
+ - Uses HEAD field for cylinder MSBs (only user-defined type)
+ - Faster step rates, no different rates for SEEK/RESTORE
+ - PC-AT mode:
+ - R/W reg A contains specs for sector length and zone
+ - HEAD register contains sector size code provided by system (W4)
+ or read from disk (R4)
+ - POLL_DRIVES
+ - must be preceded by SEEK or DESELECT
+ - DRIVE_SELECT
+ - 00 = PC-AT
+ - READ_SECTORS_PHYSICAL
+ - PC-AT: Requires W10 to be set appropriately
+ - READ_SECTORS_LOGICAL
+ - Bit 1 = Implied seek enabled/disabled
+ - PC-AT: Requires W10 to be set appropriately
+ - WRITE_SECTOR_*
+ - Bit 6 = Implied seek enable/disable
+ - PC-AT: Requires W10 to be set appropriately
+ - WRITE LONG mode for extended ECC code
+ - MODE register (8) allows for setting WRITE LONG mode
+ - FORMAT_TRACK
+ - 4-byte header for PC-AT, 5-byte otherwise
+ - IDENT byte must be set for MFM floppy and MFM/PC-AT HD
+ - No Bad Sector Flag for PC-AT
+ - HEAD field contains sector size for PC-AT
+
***************************************************************************/
#include "emu.h"
@@ -67,7 +117,6 @@
ECC
Write long (see MODE register; only useful with ECC)
Tape operations
- AT mode (HD)
FM-encoded HD
=== Implemented but untested ===
@@ -75,6 +124,7 @@
Poll drives
Seek/Read ID
Read track
+ AT mode (HD)
=== TODO ===
Create a common state machine for HD and floppy
@@ -232,7 +282,8 @@ enum
TYPE_AT = 0x00,
TYPE_HD = 0x01,
TYPE_FLOPPY8 = 0x02,
- TYPE_FLOPPY5 = 0x03
+ TYPE_FLOPPY5 = 0x03,
+ TYPE_ST = 0x04
};
/*
@@ -241,8 +292,7 @@ enum
enum
{
GEN_TIMER = 1,
- COM_TIMER /*,
- LIVE_TIMER */
+ COM_TIMER
};
/*
@@ -257,14 +307,6 @@ enum {
};
/*
- Step rates in microseconds for MFM. This is set in the mode register,
- bits 0-2. FM mode doubles all values.
-*/
-static const int step_hd[] = { 22, 50, 100, 200, 400, 800, 1600, 3200 };
-static const int step_flop8[] = { 218, 500, 1000, 2000, 4000, 8000, 16000, 32000 };
-static const int step_flop5[] = { 436, 1000, 2000, 4000, 8000, 16000, 32000, 64000 };
-
-/*
Head load timer increments in usec. Delay value is calculated from this value
multiplied by the factor in the DATA/DELAY register. For FM mode all
values are doubled. The values depend on the drive type.
@@ -272,11 +314,6 @@ static const int step_flop5[] = { 436, 1000, 2000, 4000, 8000, 16000, 32000, 6
static const int head_load_timer_increment[] = { 200, 200, 2000, 4000 };
/*
- ID fields association to registers
-*/
-static const int id_field[] = { CURRENT_CYLINDER, CURRENT_HEAD, CURRENT_SECTOR, CURRENT_SIZE, CURRENT_CRC1, CURRENT_CRC2 };
-
-/*
Pulse widths for stepping in usec
*/
enum
@@ -518,19 +555,32 @@ bool hdc92x4_device::reading_track()
*/
/*
- In SMC mode, the cylinder number is stored in bit positions 4,5,6 of the
- head register and in the 8 bits of the cylinder register.
- This is true for the desired cyl/head, current cyl/head, and the header
- fields on the track.
+ The desired head is specified by the last 4 bits of the desired head
+ register in all modes.
*/
int hdc92x4_device::desired_head()
{
return m_register_w[DESIRED_HEAD] & 0x0f;
}
+/*
+ PC-AT mode: Cylinder number is specified by the least significant two
+ bits of the R/W register A (DATA) and the 8 bits of the desired cylinder
+ register.
+
+ SMC mode: Cylinder number is stored in bit positions 4,5,6 of the
+ head register and in the 8 bits of the desired cylinder register.
+*/
int hdc92x4_device::desired_cylinder()
{
- return (m_register_w[DESIRED_CYLINDER] & 0xff) | ((m_register_w[DESIRED_HEAD] & 0x70) << 4);
+ if (m_selected_drive_type == TYPE_AT)
+ {
+ return (m_register_w[DESIRED_CYLINDER] & 0xff) | ((m_register_w[DATA] & 0x03) << 8);
+ }
+ else
+ {
+ return (m_register_w[DESIRED_CYLINDER] & 0xff) | ((m_register_w[DESIRED_HEAD] & 0x70) << 4);
+ }
}
int hdc92x4_device::desired_sector()
@@ -538,14 +588,34 @@ int hdc92x4_device::desired_sector()
return m_register_w[DESIRED_SECTOR] & 0xff;
}
+/*
+ The current head is specified by the last 4 bits of the current head
+ register in all modes.
+*/
int hdc92x4_device::current_head()
{
return m_register_r[CURRENT_HEAD] & 0x0f;
}
+/*
+ PC-AT mode: The current cylinder number is specified by the IDENT field
+ as read from the sector header and the 8 bits of the desired cylinder
+ register.
+ IDENT: FE->0, FF->1, FC->2, FD->3
+
+ SMC mode: The current cylinder number is stored in bit positions 4,5,6 of
+ the head register and in the 8 bits of the desired cylinder register.
+*/
int hdc92x4_device::current_cylinder()
{
- return (m_register_r[CURRENT_CYLINDER] & 0xff) | ((m_register_r[CURRENT_HEAD] & 0x70) << 4);
+ if (m_selected_drive_type == TYPE_AT)
+ {
+ return (m_register_r[CURRENT_CYLINDER] & 0xff) | (((m_register_r[CURRENT_IDENT] + 2) & 0x03) << 8);
+ }
+ else
+ {
+ return (m_register_r[CURRENT_CYLINDER] & 0xff) | ((m_register_r[CURRENT_HEAD] & 0x70) << 4);
+ }
}
int hdc92x4_device::current_sector()
@@ -563,12 +633,77 @@ bool hdc92x4_device::using_floppy()
return (m_selected_drive_type == TYPE_FLOPPY5 || m_selected_drive_type == TYPE_FLOPPY8);
}
+int hdc92x4_device::header_length()
+{
+ return (m_selected_drive_type == TYPE_AT)? 4 : 5;
+}
+
+/*
+ Returns the index of the register where the sector header field shall be stored
+*/
+int hdc92x4_device::register_number(int slot)
+{
+ // The id_field is an array of indexes into the chip registers.
+ // Thus we get the values properly assigned to the registers.
+ // The PC-AT mode does not use a size field.
+ const int id_field[] = { CURRENT_CYLINDER, CURRENT_HEAD, CURRENT_SECTOR, CURRENT_SIZE, CURRENT_CRC1, CURRENT_CRC2 };
+ int index = slot;
+
+ // Skip size for PC-AT
+ if (m_selected_drive_type == TYPE_AT && slot > 2) index++;
+ if (index > 5)
+ {
+ logerror("BUG: Invalid index for header field: %d", index);
+ index = 5;
+ }
+ return id_field[index];
+}
+
+/*
+ Delivers the step time (in microseconds) minus the pulse width (9224).
+ The first two values in the list apply for index==0 (buffered step),
+ but the first one is used for the RESTORE command, the second one is used
+ for SEEK. [2]
+*/
+int hdc9224_device::step_time()
+{
+ int time;
+ // Step rates in microseconds for MFM. This is set in the mode register,
+ // bits 0-2. FM mode doubles all values.
+ const int step_hd[] = { 22, 18, 200, 400, 800, 1600, 3200, 6400, 12800 };
+ const int step_flop8[] = { 218, 176, 2000, 4000, 8000, 16000, 32000, 64000, 128000 };
+ const int step_flop5[] = { 436, 352, 4000, 8000, 16000, 32000, 64000, 128000, 256000 };
+
+ int index = m_register_w[MODE] & MO_STEPRATE;
+ // First value is used only for RESTORE (02, 03)
+ if ((index > 0) || ((current_command() & 0xfe)!=0x02)) index++;
+
+ // Get seek time.
+ if (m_selected_drive_type == TYPE_FLOPPY8)
+ time = step_flop8[index] - pulse_flop8;
+
+ else if (m_selected_drive_type == TYPE_FLOPPY5)
+ time = step_flop5[index] - pulse_flop5;
+ else
+ time = step_hd[index] - pulse_hd;
+
+ if (fm_mode()) time = time * 2;
+ return time;
+}
+
/*
- Delivers the step time (in microseconds) minus the pulse width
+ Delivers the step time (in microseconds) minus the pulse width (9234).
+ The 9234 does not use different values for buffered steps.
*/
-int hdc92x4_device::step_time()
+int hdc9234_device::step_time()
{
int time;
+ // Step rates in microseconds for MFM. This is set in the mode register,
+ // bits 0-2. FM mode doubles all values.
+ const int step_hd[] = { 22, 50, 100, 200, 400, 800, 1600, 3200 };
+ const int step_flop8[] = { 218, 500, 1000, 2000, 4000, 8000, 16000, 32000 };
+ const int step_flop5[] = { 436, 1000, 2000, 4000, 8000, 16000, 32000, 64000 };
+
int index = m_register_w[MODE] & MO_STEPRATE;
// Get seek time.
if (m_selected_drive_type == TYPE_FLOPPY8)
@@ -603,11 +738,24 @@ int hdc92x4_device::pulse_width()
}
/*
- Delivers the sector size
+ Delivers the sector size. The register has been either loaded from the
+ sector header (floppy / generic HD) or from register A (PC-AT mode). For
+ the 9224, 512 bytes is returned when TYPE_ST was selected.
*/
-int hdc92x4_device::calc_sector_size()
+int hdc92x4_device::sector_size()
{
- return 128 << (m_register_r[CURRENT_SIZE] & 3);
+ // TYPE_AT:
+ // CURRENT_HEAD
+ // x S S x x x x x, where SS =0 (256), =1 (512), =2(1024), =3 (128)
+ if (m_selected_drive_type==TYPE_AT)
+ return 128 << (((m_register_r[CURRENT_HEAD] >> 5) + 1) & 0x03);
+ else
+ {
+ if (m_selected_drive_type==TYPE_ST)
+ return 512;
+ else
+ return 128 << (m_register_r[CURRENT_SIZE] & 7);
+ }
}
// ===========================================================================
@@ -1006,7 +1154,7 @@ void hdc92x4_device::data_transfer(int& cont)
(m_register_w[DMA15_8] & 0xff) << 8 |
(m_register_w[DMA7_0] & 0xff);
- dma_address = (dma_address + calc_sector_size()) & 0xffffff;
+ dma_address = (dma_address + sector_size()) & 0xffffff;
m_register_w[DMA23_16] = m_register_r[DMA23_16] = (dma_address & 0xff0000) >> 16;
m_register_w[DMA15_8] = m_register_r[DMA15_8] = (dma_address & 0x00ff00) >> 8;
@@ -1049,7 +1197,7 @@ void hdc92x4_device::data_transfer(int& cont)
(m_register_w[DMA15_8] & 0xff) << 8 |
(m_register_w[DMA7_0] & 0xff);
- dma_address = (dma_address + calc_sector_size()) & 0xffffff;
+ dma_address = (dma_address + sector_size()) & 0xffffff;
m_register_w[DMA23_16] = m_register_r[DMA23_16] = (dma_address & 0xff0000) >> 16;
m_register_w[DMA15_8] = m_register_r[DMA15_8] = (dma_address & 0x00ff00) >> 8;
@@ -1087,6 +1235,56 @@ void hdc92x4_device::data_transfer(int& cont)
}
}
+/*
+ Presets the CRC register, depending on the flag in the Interrupt/Command
+ Termination Register.
+ If this flag is set to 0, the CRC calculation is preset with 0, which
+ means that only media with the same setting will be readable (all others
+ will yield CRC errors).
+ This method simply provides preset values for some particular situations.
+ When value=0, the CRC is preset to 0 or FFFF. Other defined values are:
+ a1 = data value of MFM IDAM
+ a1a1a1 = all three a1s
+ fe = data value of FM IDAM
+ f56a = cell pattern of f8 (DAM, FM)
+ f56b = cell pattern of f9 (DAM, FM)
+ f56e = cell pattern of fa (DAM, FM)
+ f56f = cell pattern of fb (DAM, FM)
+*/
+void hdc92x4_device::preset_crc(live_info& live, int value)
+{
+ if ((m_register_w[INT_COMM_TERM] & 0x80)!=0)
+ {
+ // Preset -1
+ switch (value)
+ {
+ case 0xa1: live.crc = 0x443b; break;
+ case 0xfe: live.crc = 0xef21; break;
+ case 0xf56a: live.crc = 0x8fe7; break; // F8
+ case 0xf56b: live.crc = 0x9fc6; break; // F9
+ case 0xf56e: live.crc = 0xafa5; break; // FA
+ case 0xf56f: live.crc = 0xbf84; break; // FB
+ case 0xa1a1a1: live.crc = 0xcdb4; break; // A1A1A1
+ default: live.crc = 0xffff; break;
+ }
+ }
+ else
+ {
+ // Preset 0
+ switch (value)
+ {
+ case 0xa1: live.crc = 0xc1a9; break;
+ case 0xfe: live.crc = 0x736d; break;
+ case 0xf56a: live.crc = 0x6e17; break; // F8
+ case 0xf56b: live.crc = 0x7e36; break; // F9
+ case 0xf56e: live.crc = 0x4e55; break; // FA
+ case 0xf56f: live.crc = 0x5e74; break; // FB
+ case 0xa1a1a1: live.crc = 0x0128; break; // A1A1A1
+ default: live.crc = 0x0000; break;
+ }
+ }
+};
+
// ===========================================================================
// Commands
// ===========================================================================
@@ -1954,7 +2152,7 @@ void hdc92x4_device::live_start(int state)
m_live_state.next_state = -1;
m_live_state.shift_reg = 0;
- m_live_state.crc = 0xffff;
+ preset_crc(m_live_state, 0);
m_live_state.bit_counter = 0;
m_live_state.byte_counter = 0;
m_live_state.data_separator_phase = false;
@@ -2063,7 +2261,7 @@ void hdc92x4_device::live_run_until(attotime limit)
if (m_live_state.shift_reg == 0x4489)
{
if (TRACE_LIVE) logerror("%s: [%s live] Found an A1 mark\n", tag(),tts(m_live_state.time).c_str());
- m_live_state.crc = 0x443b;
+ preset_crc(m_live_state, 0xa1);
m_live_state.data_separator_phase = false;
m_live_state.bit_counter = 0;
// Next task: find the next two A1 marks
@@ -2076,7 +2274,7 @@ void hdc92x4_device::live_run_until(attotime limit)
if (m_live_state.shift_reg == 0xf57e)
{
if (TRACE_LIVE) logerror("%s: SEARCH_IDAM: IDAM found\n", tag());
- m_live_state.crc = 0xef21;
+ preset_crc(m_live_state, 0xfe);
m_live_state.data_separator_phase = false;
m_live_state.bit_counter = 0;
m_live_state.state = READ_ID_FIELDS_INTO_REGS;
@@ -2174,11 +2372,9 @@ void hdc92x4_device::live_run_until(attotime limit)
if (TRACE_LIVE) logerror("%s: slot %d = %02x, crc=%04x\n", tag(), slot, m_live_state.data_reg, m_live_state.crc);
- // The id_field is an array of indexes into the chip registers.
- // Thus we get the values properly assigned to the registers.
- m_register_r[id_field[slot]] = m_live_state.data_reg;
+ m_register_r[register_number(slot)] = m_live_state.data_reg;
- if(slot > 4)
+ if (slot > 4) // this includes both CRC bytes. There are no different lengths for the floppy headers (excluding the ident byte)
{
// We successfully read the ID fields; let's wait for the machine time to catch up.
if (reading_track())
@@ -2222,7 +2418,7 @@ void hdc92x4_device::live_run_until(attotime limit)
if (m_live_state.bit_counter >= 28*16 && m_live_state.shift_reg == 0x4489)
{
if (TRACE_LIVE) logerror("%s: [%s live] Found an A1 mark\n", tag(),tts(m_live_state.time).c_str());
- m_live_state.crc = 0x443b;
+ preset_crc(m_live_state, 0xa1);
m_live_state.data_separator_phase = false;
m_live_state.bit_counter = 0;
m_live_state.state = READ_TWO_MORE_A1_DAM;
@@ -2240,11 +2436,7 @@ void hdc92x4_device::live_run_until(attotime limit)
if (m_live_state.bit_counter >= 11*16 && (m_live_state.shift_reg == 0xf56a || m_live_state.shift_reg == 0xf56b ||
m_live_state.shift_reg == 0xf56e || m_live_state.shift_reg == 0xf56f)) {
if (TRACE_LIVE) logerror("%s: SEARCH_DAM: found DAM = %04x\n", tag(), m_live_state.shift_reg);
- m_live_state.crc =
- m_live_state.shift_reg == 0xf56a ? 0x8fe7 :
- m_live_state.shift_reg == 0xf56b ? 0x9fc6 :
- m_live_state.shift_reg == 0xf56e ? 0xafa5 :
- 0xbf84;
+ preset_crc(m_live_state, m_live_state.shift_reg);
m_live_state.data_separator_phase = false;
m_live_state.bit_counter = 0;
m_live_state.state = READ_SECTOR_DATA;
@@ -2342,16 +2534,16 @@ void hdc92x4_device::live_run_until(attotime limit)
if (TRACE_LIVE) logerror("%s: [%s live] Found data value %02X, CRC=%04x\n", tag(),tts(m_live_state.time).c_str(), m_live_state.data_reg, m_live_state.crc);
int slot = (m_live_state.bit_counter >> 4)-1;
- if (slot < calc_sector_size())
+ if (slot < sector_size())
{
// Sector data
wait_for_realtime(READ_SECTOR_DATA_CONT);
return;
}
- else if (slot < calc_sector_size()+2)
+ else if (slot < sector_size()+2)
{
// CRC
- if (slot == calc_sector_size()+1)
+ if (slot == sector_size()+1)
{
if (reading_track())
{
@@ -2395,7 +2587,7 @@ void hdc92x4_device::live_run_until(attotime limit)
m_out_dma(0, m_register_r[DATA], 0xff);
// And again, for floppies, clear line after writing each byte, for hard disk, only after the last byte
- if (using_floppy() || (m_live_state.bit_counter >> 4)==calc_sector_size()-1)
+ if (using_floppy() || (m_live_state.bit_counter >> 4)==sector_size()-1)
{
m_out_dip(CLEAR_LINE);
m_out_dmarq(CLEAR_LINE);
@@ -2441,7 +2633,7 @@ void hdc92x4_device::live_run_until(attotime limit)
if (fm_mode())
{
// Init the CRC for the DAM and sector
- m_live_state.crc = 0xffff;
+ preset_crc(m_live_state, 0);
// 1111 0101 0110 1010 = F8 deleted
// 1111 0101 0110 1111 = FB normal
@@ -2450,10 +2642,10 @@ void hdc92x4_device::live_run_until(attotime limit)
else
{
// Init the CRC for the ident byte and sector
- m_live_state.crc = 0xcdb4; // value for 3*A1
+ preset_crc(m_live_state, 0xa1a1a1);
write_on_track(encode(m_deleted? 0xf8 : 0xfb), 1, WRITE_SECDATA);
}
- m_live_state.byte_counter = calc_sector_size();
+ m_live_state.byte_counter = sector_size();
// Set the over/underrun flag and hope that it will be cleared before we start writing
// (only for sector writing)
@@ -2476,7 +2668,7 @@ void hdc92x4_device::live_run_until(attotime limit)
else
{
// For floppies, set this for each byte; for hard disk, set it only at the beginning
- if (using_floppy() || m_live_state.byte_counter == calc_sector_size())
+ if (using_floppy() || m_live_state.byte_counter == sector_size())
m_out_dip(ASSERT_LINE);
m_register_r[DATA] = m_register_w[DATA] = m_in_dma(0, 0xff);
@@ -2624,7 +2816,7 @@ void hdc92x4_device::live_run_until(attotime limit)
write_on_track(0x4489, 3, WRITE_HEADER);
m_live_state.byte_counter = 5;
}
- m_live_state.crc = 0xffff;
+ preset_crc(m_live_state, 0);
break;
case WRITE_HEADER:
@@ -2721,8 +2913,8 @@ void hdc92x4_device::live_run_until(attotime limit)
m_out_dip(ASSERT_LINE);
// Write the header via DMA
- for (auto & elem : id_field)
- m_out_dma(0, m_register_r[elem], 0xff);
+ for (int i=0; i < header_length(); i++)
+ m_out_dma(0, m_register_r[register_number(i)], 0xff);
m_out_dip(CLEAR_LINE);
m_out_dmarq(CLEAR_LINE);
@@ -2877,7 +3069,7 @@ void hdc92x4_device::live_run_hd_until(attotime limit)
if (found_mark(SEARCH_IDAM))
{
if (TRACE_LIVE) logerror("%s: [%s live] Found an A1 mark\n", tag(), tts(m_live_state.time).c_str());
- m_live_state.crc = 0x443b;
+ preset_crc(m_live_state, 0xa1);
m_live_state.data_separator_phase = false;
m_live_state.bit_counter = 0;
@@ -2934,7 +3126,7 @@ void hdc92x4_device::live_run_hd_until(attotime limit)
if (m_live_state.bit_counter & 15) break;
if (TRACE_LIVE) logerror("%s: slot %d = %02x, crc=%04x\n", tag(), slot, m_live_state.data_reg, m_live_state.crc);
- m_register_r[id_field[slot++]] = m_live_state.data_reg;
+ m_register_r[register_number(slot++)] = m_live_state.data_reg;
if(slot > 5)
{
@@ -2972,7 +3164,7 @@ void hdc92x4_device::live_run_hd_until(attotime limit)
if (found_mark(SEARCH_DAM))
{
if (TRACE_LIVE) logerror("%s: [%s live] Found an A1 mark\n", tag(),tts(m_live_state.time).c_str());
- m_live_state.crc = 0x443b;
+ preset_crc(m_live_state, 0xa1);
m_live_state.data_separator_phase = false;
m_live_state.bit_counter = 0;
m_live_state.state = READ_DATADEL_FLAG;
@@ -3030,9 +3222,9 @@ void hdc92x4_device::live_run_hd_until(attotime limit)
if (m_live_state.bit_counter & 15) break;
slot = (m_live_state.bit_counter >> 4)-1;
- if (TRACE_LIVE) logerror("%s: [%s live] Found data value [%d/%d] = %02X, CRC=%04x\n", tag(),tts(m_live_state.time).c_str(), slot, calc_sector_size(), m_live_state.data_reg, m_live_state.crc);
+ if (TRACE_LIVE) logerror("%s: [%s live] Found data value [%d/%d] = %02X, CRC=%04x\n", tag(),tts(m_live_state.time).c_str(), slot, sector_size(), m_live_state.data_reg, m_live_state.crc);
- if (slot < calc_sector_size())
+ if (slot < sector_size())
{
// For the first byte, allow for the DMA acknowledge to be set.
if (slot == 0)
@@ -3042,10 +3234,10 @@ void hdc92x4_device::live_run_hd_until(attotime limit)
}
else m_live_state.state = READ_SECTOR_DATA_CONT;
}
- else if (slot < calc_sector_size()+2)
+ else if (slot < sector_size()+2)
{
// CRC
- if (slot == calc_sector_size()+1)
+ if (slot == sector_size()+1)
{
m_out_dip(CLEAR_LINE);
m_out_dmarq(CLEAR_LINE);
@@ -3176,11 +3368,11 @@ void hdc92x4_device::live_run_hd_until(attotime limit)
if (TRACE_WRITE && TRACE_DETAIL) logerror("%s: Write data mark\n", tag());
// Init the CRC for the ident byte and sector
- m_live_state.crc = 0x443b; // value for 1*A1
+ preset_crc(m_live_state, 0xa1); // only one A1
write_on_track(encode_hd(m_deleted? 0xf8 : 0xfb), 1, WRITE_SECDATA);
- m_live_state.byte_counter = calc_sector_size();
+ m_live_state.byte_counter = sector_size();
// Set the over/underrun flag and hope that it will be cleared before we start writing
// (only for sector writing)
@@ -3204,8 +3396,8 @@ void hdc92x4_device::live_run_hd_until(attotime limit)
{
if (TRACE_WRITE && TRACE_DETAIL) logerror("%s: Write sector byte, %d to go\n", tag(), m_live_state.byte_counter);
- // For floppies, set this for each byte; for hard disk, set it only at the beginning
- if (m_live_state.byte_counter == calc_sector_size())
+ // This is hard disk, so set DIP only at the beginning
+ if (m_live_state.byte_counter == sector_size())
m_out_dip(ASSERT_LINE);
m_register_r[DATA] = m_register_w[DATA] = m_in_dma(0, 0xff);
@@ -3296,8 +3488,8 @@ void hdc92x4_device::live_run_hd_until(attotime limit)
m_out_dip(ASSERT_LINE);
// Write the header via DMA
- for (auto & elem : id_field)
- m_out_dma(0, m_register_r[elem], 0xff);
+ for (int i=0; i < header_length(); i++)
+ m_out_dma(0, m_register_r[register_number(i)], 0xff);
// Continue with reading the sector data
m_live_state.state = SEARCH_DAM;
@@ -3341,7 +3533,7 @@ void hdc92x4_device::live_run_hd_until(attotime limit)
if (TRACE_HEADER) logerror("%s: Writing IDAM and header: ", tag());
write_on_track(encode_a1_hd(), 1, WRITE_HEADER);
m_live_state.byte_counter = 5; // TODO: Check this for AT mode
- m_live_state.crc = 0xffff;
+ preset_crc(m_live_state, 0);
break;
case WRITE_HEADER:
@@ -3997,6 +4189,12 @@ void hdc92x4_device::process_command()
// write are identical, so in that case we copy the contents
if (m_register_pointer < DESIRED_HEAD) m_register_r[m_register_pointer] = m_regvalue;
+ // Note for the PC-AT mode: The DATA register contains two bits (5,4)
+ // that are defined as "Actual sector size" ([1] p. 7). The
+ // specification does not say anything about the meaning of these
+ // bits. The desired sector size is already specified by bits 6 and 5
+ // of the DESIRED_HEAD register, so we ignore these bits for now.
+
// Autoincrement until DATA is reached.
if (m_register_pointer < DATA) m_register_pointer++;
}
diff --git a/src/devices/machine/hdc92x4.h b/src/devices/machine/hdc92x4.h
index fccf23666d7..fc862101919 100644
--- a/src/devices/machine/hdc92x4.h
+++ b/src/devices/machine/hdc92x4.h
@@ -232,6 +232,9 @@ protected:
live_info m_live_state, m_checkpoint_state;
int m_last_live_state;
+ // Presets CRC.
+ void preset_crc(live_info& live, int value);
+
// Starts the live run
void live_start(int state);
@@ -433,13 +436,19 @@ protected:
UINT8 current_command();
// Step time (minus pulse width)
- int step_time();
+ virtual int step_time() =0;
// Step pulse width
int pulse_width();
- // Sector size as read from the track
- int calc_sector_size();
+ // Sector size as read from the track or given by register A (PC-AT mode)
+ int sector_size();
+
+ // Returns the sector header length
+ int header_length();
+
+ // Returns the index of the register for the header field
+ int register_number(int slot);
// Is the currently selected drive a floppy drive?
bool using_floppy();
@@ -476,12 +485,18 @@ class hdc9224_device : public hdc92x4_device
{
public:
hdc9224_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ int step_time() override;
};
class hdc9234_device : public hdc92x4_device
{
public:
hdc9234_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ int step_time() override;
};
#endif
diff --git a/src/devices/machine/im6402.cpp b/src/devices/machine/im6402.cpp
index f713a048517..4d3a7696b46 100644
--- a/src/devices/machine/im6402.cpp
+++ b/src/devices/machine/im6402.cpp
@@ -340,6 +340,9 @@ WRITE_LINE_MEMBER( im6402_device::crl_w )
else parity = PARITY_ODD;
set_data_frame(1, data_bit_count, parity, stop_bits);
+
+ receive_register_reset();
+ transmit_register_reset();
}
}
diff --git a/src/devices/machine/nmc9306.cpp b/src/devices/machine/nmc9306.cpp
index 0b23eda21d7..85580a6a621 100644
--- a/src/devices/machine/nmc9306.cpp
+++ b/src/devices/machine/nmc9306.cpp
@@ -15,7 +15,7 @@
// MACROS / CONSTANTS
//**************************************************************************
-#define LOG 1
+#define LOG 0
#define RAM_SIZE 32
diff --git a/src/emu/diimage.cpp b/src/emu/diimage.cpp
index c29bf3e891b..d4d2be3d4b5 100644
--- a/src/emu/diimage.cpp
+++ b/src/emu/diimage.cpp
@@ -1275,10 +1275,10 @@ const software_part *device_image_interface::find_software_item(const std::strin
{
if (swlist_name.compare(swlistdev.list_name())==0 || !(swlist_name.length() > 0))
{
- const software_info *info = swlistdev.find(swinfo_name.c_str());
+ const software_info *info = swlistdev.find(swinfo_name);
if (info != nullptr)
{
- const software_part *part = info->find_part(swpart_name.c_str(), interface);
+ const software_part *part = info->find_part(swpart_name, interface);
if (part != nullptr)
{
if (dev != nullptr)
@@ -1294,7 +1294,7 @@ const software_part *device_image_interface::find_software_item(const std::strin
// gameboy:sml) which is not handled properly by software_name_split
// since the function cannot distinguish between this and the case
// path = swinfo_name:swpart_name
- const software_info *info = swlistdev.find(swpart_name.c_str());
+ const software_info *info = swlistdev.find(swpart_name);
if (info != nullptr)
{
const software_part *part = info->find_part("", interface);
diff --git a/src/emu/romentry.cpp b/src/emu/romentry.cpp
new file mode 100644
index 00000000000..106a559e927
--- /dev/null
+++ b/src/emu/romentry.cpp
@@ -0,0 +1,74 @@
+// license:BSD-3-Clause
+// copyright-holders:Nicola Salmoria,Aaron Giles
+/*********************************************************************
+
+ romentry.cpp
+
+ ROM loading functions.
+
+*********************************************************************/
+
+#include "romentry.h"
+#include "strformat.h"
+
+
+/***************************************************************************
+ HELPERS
+***************************************************************************/
+
+//-------------------------------------------------
+// hashdata_from_tiny_rom_entry - calculates the
+// proper hashdata string from the value in the
+// tiny_rom_entry
+//-------------------------------------------------
+
+static std::string hashdata_from_tiny_rom_entry(const tiny_rom_entry &ent)
+{
+ std::string result;
+ switch (ent.flags & ROMENTRY_TYPEMASK)
+ {
+ case ROMENTRYTYPE_FILL:
+ case ROMENTRYTYPE_COPY:
+ // for these types, tiny_rom_entry::hashdata is an integer typecasted to a pointer
+ result = string_format("0x%x", (unsigned)(FPTR)ent.hashdata);
+ break;
+
+ default:
+ if (ent.hashdata != nullptr)
+ result.assign(ent.hashdata);
+ break;
+ }
+ return result;
+}
+
+
+/***************************************************************************
+ ROM ENTRY
+***************************************************************************/
+
+//-------------------------------------------------
+// ctor (with move constructors)
+//-------------------------------------------------
+
+rom_entry::rom_entry(std::string &&name, std::string &&hashdata, UINT32 offset, UINT32 length, UINT32 flags)
+ : m_name(std::move(name))
+ , m_hashdata(std::move(hashdata))
+ , m_offset(offset)
+ , m_length(length)
+ , m_flags(flags)
+{
+}
+
+
+//-------------------------------------------------
+// ctor (with tiny_rom_entry)
+//-------------------------------------------------
+
+rom_entry::rom_entry(const tiny_rom_entry &ent)
+ : m_name(ent.name != nullptr ? ent.name : "")
+ , m_hashdata(hashdata_from_tiny_rom_entry(ent))
+ , m_offset(ent.offset)
+ , m_length(ent.length)
+ , m_flags(ent.flags)
+{
+}
diff --git a/src/emu/romentry.h b/src/emu/romentry.h
index fb364fe0a9e..e163fad74d8 100644
--- a/src/emu/romentry.h
+++ b/src/emu/romentry.h
@@ -132,18 +132,8 @@ struct tiny_rom_entry
class rom_entry
{
public:
- rom_entry(const tiny_rom_entry &ent)
- : m_name(ent.name != nullptr ? ent.name : "")
- , m_hashdata(ent.hashdata != nullptr ? ent.hashdata : "")
- , m_offset(ent.offset)
- , m_length(ent.length)
- , m_flags(ent.flags) {}
- rom_entry(std::string &&name, std::string &&hashdata, UINT32 offset, UINT32 length, UINT32 flags)
- : m_name(std::move(name))
- , m_hashdata(std::move(hashdata))
- , m_offset(offset)
- , m_length(length)
- , m_flags(flags) {}
+ rom_entry(const tiny_rom_entry &ent);
+ rom_entry(std::string &&name, std::string &&hashdata, UINT32 offset, UINT32 length, UINT32 flags);
rom_entry(rom_entry const &) = default;
rom_entry(rom_entry &&) = default;
rom_entry &operator=(rom_entry const &) = default;
diff --git a/src/emu/romload.h b/src/emu/romload.h
index 8fb736cc527..37af7bd2323 100644
--- a/src/emu/romload.h
+++ b/src/emu/romload.h
@@ -130,11 +130,11 @@ class software_list_device;
#define ROM_RELOAD_PLAIN(offset,length) { nullptr, nullptr, offset, length, ROMENTRYTYPE_RELOAD },
/* ----- additional ROM-related macros ----- */
-#define ROM_CONTINUE(offset,length) { nullptr, nullptr, offset, length, ROMENTRYTYPE_CONTINUE | ROM_INHERITFLAGS },
-#define ROM_IGNORE(length) { nullptr, nullptr, 0, length, ROMENTRYTYPE_IGNORE | ROM_INHERITFLAGS },
-#define ROM_FILL(offset,length,value) { nullptr, #value, offset, length, ROMENTRYTYPE_FILL },
-#define ROMX_FILL(offset,length,value,flags) { nullptr, #value, offset, length, ROMENTRYTYPE_FILL | flags },
-#define ROM_COPY(srctag,srcoffs,offset,length) { srctag, #srcoffs, offset, length, ROMENTRYTYPE_COPY },
+#define ROM_CONTINUE(offset,length) { nullptr, nullptr, (offset), (length), ROMENTRYTYPE_CONTINUE | ROM_INHERITFLAGS },
+#define ROM_IGNORE(length) { nullptr, nullptr, 0, (length), ROMENTRYTYPE_IGNORE | ROM_INHERITFLAGS },
+#define ROM_FILL(offset,length,value) { nullptr, (const char *)(value), (offset), (length), ROMENTRYTYPE_FILL },
+#define ROMX_FILL(offset,length,value,flags) { nullptr, (const char *)(value), (offset), (length), ROMENTRYTYPE_FILL | flags },
+#define ROM_COPY(srctag,srcoffs,offset,length) { (srctag), (const char *)(srcoffs), (offset), (length), ROMENTRYTYPE_COPY },
/* ----- system BIOS macros ----- */
diff --git a/src/emu/softlist.cpp b/src/emu/softlist.cpp
index 277449c5492..6ae687db843 100644
--- a/src/emu/softlist.cpp
+++ b/src/emu/softlist.cpp
@@ -111,20 +111,16 @@ bool software_part::matches_interface(const char *interface_list) const
// software_info - constructor
//-------------------------------------------------
-software_info::software_info(std::string &&name, std::string &&parent, const char *supported)
- : m_next(nullptr),
- m_supported(SOFTWARE_SUPPORTED_YES),
+software_info::software_info(std::string &&name, std::string &&parent, const std::string &supported)
+ : m_supported(SOFTWARE_SUPPORTED_YES),
m_shortname(std::move(name)),
m_parentname(std::move(parent))
{
// handle the supported flag if provided
- if (supported != nullptr)
- {
- if (strcmp(supported, "partial") == 0)
- m_supported = SOFTWARE_SUPPORTED_PARTIAL;
- else if (strcmp(supported, "no") == 0)
- m_supported = SOFTWARE_SUPPORTED_NO;
- }
+ if (supported == "partial")
+ m_supported = SOFTWARE_SUPPORTED_PARTIAL;
+ else if (supported == "no")
+ m_supported = SOFTWARE_SUPPORTED_NO;
}
@@ -133,22 +129,20 @@ software_info::software_info(std::string &&name, std::string &&parent, const cha
// optional interface match
//-------------------------------------------------
-const software_part *software_info::find_part(const char *partname, const char *interface) const
+const software_part *software_info::find_part(const std::string &partname, const char *interface) const
{
// if neither partname nor interface supplied, then we just return the first entry
- if (partname != nullptr && strlen(partname)==0) partname = nullptr;
-
- if (partname == nullptr && interface == nullptr)
+ if (partname.empty() && interface == nullptr)
return &m_partdata.front();
// look for the part by name and match against the interface if provided
for (const software_part &part : m_partdata)
- if (partname != nullptr && (partname == part.name()))
+ if (!partname.empty() && (partname == part.name()))
{
if (interface == nullptr || part.matches_interface(interface))
return &part;
}
- else if (partname == nullptr && part.matches_interface(interface))
+ else if (partname.empty() && part.matches_interface(interface))
return &part;
return nullptr;
}
@@ -182,12 +176,13 @@ bool software_info::has_multiple_parts(const char *interface) const
// softlist_parser - constructor
//-------------------------------------------------
-softlist_parser::softlist_parser(util::core_file &file, const std::string &filename, std::list<software_info> &infolist, std::ostringstream &errors)
+softlist_parser::softlist_parser(util::core_file &file, const std::string &filename, std::string &description, std::list<software_info> &infolist, std::ostringstream &errors)
: m_file(file),
m_filename(filename),
m_infolist(infolist),
m_errors(errors),
m_done(false),
+ m_description(description),
m_data_accum_expected(false),
m_current_info(nullptr),
m_current_part(nullptr),
diff --git a/src/emu/softlist.h b/src/emu/softlist.h
index b517ab31458..d38779afe5d 100644
--- a/src/emu/softlist.h
+++ b/src/emu/softlist.h
@@ -106,14 +106,13 @@ class software_info
public:
// construction/destruction
- software_info(std::string &&name, std::string &&parent, const char *supported);
+ software_info(std::string &&name, std::string &&parent, const std::string &supported);
software_info(software_info const &) = delete;
software_info(software_info &&) = delete;
software_info& operator=(software_info const &) = delete;
software_info& operator=(software_info &&) = delete;
// getters
- software_info *next() const { return m_next; }
const std::string &shortname() const { return m_shortname; }
const std::string &longname() const { return m_longname; }
const std::string &parentname() const { return m_parentname; }
@@ -125,12 +124,11 @@ public:
const std::list<software_part> &parts() const { return m_partdata; }
// additional operations
- const software_part *find_part(const char *partname, const char *interface = nullptr) const;
+ const software_part *find_part(const std::string &partname, const char *interface = nullptr) const;
bool has_multiple_parts(const char *interface) const;
private:
// internal state
- software_info * m_next;
UINT32 m_supported;
std::string m_shortname;
std::string m_longname;
@@ -150,7 +148,7 @@ class softlist_parser
{
public:
// construction (== execution)
- softlist_parser(util::core_file &file, const std::string &filename, std::list<software_info> &infolist, std::ostringstream &errors);
+ softlist_parser(util::core_file &file, const std::string &filename, std::string &description, std::list<software_info> &infolist, std::ostringstream &errors);
private:
enum parse_position
@@ -193,12 +191,12 @@ private:
// internal parsing state
util::core_file & m_file;
- const std::string & m_filename;
+ std::string m_filename;
std::list<software_info> & m_infolist;
std::ostringstream & m_errors;
struct XML_ParserStruct * m_parser;
bool m_done;
- std::string m_description;
+ std::string & m_description;
bool m_data_accum_expected;
std::string m_data_accum;
software_info * m_current_info;
diff --git a/src/emu/softlist_dev.cpp b/src/emu/softlist_dev.cpp
index a7ad66fb3a2..ce6d96a24d2 100644
--- a/src/emu/softlist_dev.cpp
+++ b/src/emu/softlist_dev.cpp
@@ -229,9 +229,9 @@ void software_list_device::display_matches(const machine_config &config, const c
{
// different output depending on original system or compatible
if (swlistdev.list_type() == SOFTWARE_LIST_ORIGINAL_SYSTEM)
- osd_printf_error("* Software list \"%s\" (%s) matches: \n", swlistdev.list_name().c_str(), swlistdev.description());
+ osd_printf_error("* Software list \"%s\" (%s) matches: \n", swlistdev.list_name().c_str(), swlistdev.description().c_str());
else
- osd_printf_error("* Compatible software list \"%s\" (%s) matches: \n", swlistdev.list_name().c_str(), swlistdev.description());
+ osd_printf_error("* Compatible software list \"%s\" (%s) matches: \n", swlistdev.list_name().c_str(), swlistdev.description().c_str());
// print them out
for (auto &match : matches)
@@ -252,13 +252,13 @@ void software_list_device::display_matches(const machine_config &config, const c
// from an intermediate point
//-------------------------------------------------
-const software_info *software_list_device::find(const char *look_for)
+const software_info *software_list_device::find(const std::string &look_for)
{
- // nullptr search returns nothing
- if (look_for == nullptr)
+ // empty search returns nothing
+ if (look_for.empty())
return nullptr;
- bool iswild = strchr(look_for, '*') != nullptr || strchr(look_for, '?');
+ const bool iswild = look_for.find_first_of("*?") != std::string::npos;
// find a match (will cause a parse if needed when calling get_info)
const auto &info_list = get_info();
@@ -268,8 +268,8 @@ const software_info *software_list_device::find(const char *look_for)
[&](const software_info &info)
{
const char *shortname = info.shortname().c_str();
- return (iswild && core_strwildcmp(look_for, shortname) == 0)
- || core_stricmp(look_for, shortname) == 0;
+ return (iswild && core_strwildcmp(look_for.c_str(), shortname) == 0)
+ || core_stricmp(look_for.c_str(), shortname) == 0;
});
return iter != info_list.end()
@@ -297,7 +297,7 @@ void software_list_device::parse()
{
// parse if no error
std::ostringstream errs;
- softlist_parser parser(m_file, m_description, m_infolist, errs);
+ softlist_parser parser(m_file, m_file.filename(), m_description, m_infolist, errs);
m_file.close();
m_errors = errs.str();
}
diff --git a/src/emu/softlist_dev.h b/src/emu/softlist_dev.h
index dd3b92940ae..c144c93bc4a 100644
--- a/src/emu/softlist_dev.h
+++ b/src/emu/softlist_dev.h
@@ -145,13 +145,13 @@ public:
const char *filename() { return m_file.filename(); }
// getters that may trigger a parse
- const char *description() { if (!m_parsed) parse(); return m_description.c_str(); }
+ const std::string &description() { if (!m_parsed) parse(); return m_description; }
bool valid() { if (!m_parsed) parse(); return !m_infolist.empty(); }
const char *errors_string() { if (!m_parsed) parse(); return m_errors.c_str(); }
const std::list<software_info> &get_info() { if (!m_parsed) parse(); return m_infolist; }
// operations
- const software_info *find(const char *look_for);
+ const software_info *find(const std::string &look_for);
void find_approx_matches(const std::string &name, int matches, const software_info **list, const char *interface);
void release();
software_compatibility is_compatible(const software_part &part) const;
diff --git a/src/frontend/mame/clifront.cpp b/src/frontend/mame/clifront.cpp
index bc98768242a..a274326fac2 100644
--- a/src/frontend/mame/clifront.cpp
+++ b/src/frontend/mame/clifront.cpp
@@ -1387,7 +1387,7 @@ void cli_frontend::verifysamples(const char *gamename)
void cli_frontend::output_single_softlist(FILE *out, software_list_device &swlistdev)
{
- fprintf(out, "\t<softwarelist name=\"%s\" description=\"%s\">\n", swlistdev.list_name().c_str(), xml_normalize_string(swlistdev.description()));
+ fprintf(out, "\t<softwarelist name=\"%s\" description=\"%s\">\n", swlistdev.list_name().c_str(), xml_normalize_string(swlistdev.description().c_str()));
for (const software_info &swinfo : swlistdev.get_info())
{
fprintf(out, "\t\t<software name=\"%s\"", swinfo.shortname().c_str());
diff --git a/src/frontend/mame/ui/miscmenu.cpp b/src/frontend/mame/ui/miscmenu.cpp
index 0191b5d7fea..3da9d91ee4e 100644
--- a/src/frontend/mame/ui/miscmenu.cpp
+++ b/src/frontend/mame/ui/miscmenu.cpp
@@ -78,7 +78,7 @@ void menu_bios_selection::populate()
/* cycle through all devices for this system */
for (device_t &device : device_iterator(machine().root_device()))
{
- if (device.rom_region())
+ if (device.rom_region() != nullptr && !ROMENTRY_ISEND(device.rom_region()))
{
const char *val = "default";
for (const rom_entry *rom = device.rom_region(); !ROMENTRY_ISEND(rom); rom++)
diff --git a/src/lib/formats/victor9k_dsk.cpp b/src/lib/formats/victor9k_dsk.cpp
index 56494094dad..bce82cdf028 100644
--- a/src/lib/formats/victor9k_dsk.cpp
+++ b/src/lib/formats/victor9k_dsk.cpp
@@ -387,7 +387,7 @@ const int victor9k_format::speed_zone[2][80] =
const int victor9k_format::rpm[9] =
{
- 252, 267, 283, 300, 320, 342, 368, 401, 417
+ 252, 267, 283, 300, 321, 342, 368, 401, 417
};
bool victor9k_format::save(io_generic *io, floppy_image *image)
diff --git a/src/lib/netlist/plib/pparser.cpp b/src/lib/netlist/plib/pparser.cpp
index 4f41c73d6f8..0a19685316d 100644
--- a/src/lib/netlist/plib/pparser.cpp
+++ b/src/lib/netlist/plib/pparser.cpp
@@ -106,7 +106,7 @@ pstring ptokenizer::get_identifier_or_number()
token_t tok = get_token();
if (!(tok.is_type(IDENTIFIER) || tok.is_type(NUMBER)))
{
- error(pfmt("Expected an identifier, got <{1}>")(tok.str()) );
+ error(pfmt("Expected an identifier or number, got <{1}>")(tok.str()) );
}
return tok.str();
}
@@ -203,7 +203,8 @@ ptokenizer::token_t ptokenizer::get_token_internal()
{
/* read identifier till non identifier char */
pstring tokstr = "";
- while (m_identifier_chars.find(c) != m_identifier_chars.end()) {
+ while (m_identifier_chars.find(c) != m_identifier_chars.end())
+ {
tokstr += c;
c = getc();
}
@@ -229,7 +230,8 @@ ptokenizer::token_t ptokenizer::get_token_internal()
{
/* read identifier till first identifier char or ws */
pstring tokstr = "";
- while ((m_identifier_chars.find(c)) == m_identifier_chars.end() && (m_whitespace.find(c) == m_whitespace.end())) {
+ while ((m_identifier_chars.find(c) == m_identifier_chars.end()) && (m_whitespace.find(c) == m_whitespace.end()))
+ {
tokstr += c;
/* expensive, check for single char tokens */
if (tokstr.len() == 1)
diff --git a/src/lib/netlist/prg/nltool.cpp b/src/lib/netlist/prg/nltool.cpp
index 92057688954..b095a081f81 100644
--- a/src/lib/netlist/prg/nltool.cpp
+++ b/src/lib/netlist/prg/nltool.cpp
@@ -41,7 +41,7 @@ public:
opt_logs(*this, "l", "log" , "define terminal to log. This option may be specified repeatedly."),
opt_inp(*this, "i", "input", "", "input file to process (default is none)"),
opt_grp4(*this, "Options for convert command", "These options are only used by the convert command."),
- opt_type(*this, "y", "type", "spice", "spice:eagle", "type of file to be converted: spice,eagle"),
+ opt_type(*this, "y", "type", "spice", "spice:eagle:rinf", "type of file to be converted: spice,eagle,rinf"),
opt_ex1(*this, "nltool -c run -t 3.5 -f nl_examples/cdelay.c -n cap_delay",
"Run netlist \"cap_delay\" from file nl_examples/cdelay.c for 3.5 seconds"),
@@ -465,12 +465,18 @@ int main(int argc, char *argv[])
c.convert(contents);
result = c.result();
}
- else
+ else if (opts.opt_type().equals("eagle"))
{
nl_convert_eagle_t c;
c.convert(contents);
result = c.result();
}
+ else if (opts.opt_type().equals("rinf"))
+ {
+ nl_convert_rinf_t c;
+ c.convert(contents);
+ result = c.result();
+ }
/* present result */
pout_strm.write(result.cstr());
}
diff --git a/src/lib/netlist/tools/nl_convert.cpp b/src/lib/netlist/tools/nl_convert.cpp
index b0ca5fe3c0d..978be90caaf 100644
--- a/src/lib/netlist/tools/nl_convert.cpp
+++ b/src/lib/netlist/tools/nl_convert.cpp
@@ -8,9 +8,51 @@
#include <algorithm>
#include <cstdio>
#include <cmath>
+#include <unordered_map>
#include "nl_convert.h"
#include "plib/palloc.h"
+#include "plib/putil.h"
+/* FIXME: temporarily defined here - should be in a file */
+/* FIXME: family logic in netlist is convoluted, create
+ * define a model param on core device
+ */
+/* Format: external name,netlist device,model */
+static const char *s_lib_map =
+"SN74LS00D, TTL_7400_DIP, 74LSXX\n"
+"SN74LS04D, TTL_7404_DIP, 74LSXX\n"
+"SN74ALS08D, TTL_7408_DIP, 74ALSXX\n"
+"SN74ALS10AD, TTL_7410_DIP, 74ALSXX\n"
+"SN74LS30N, TTL_7430_DIP, 74LSXX\n"
+"SN74ALS74AD, TTL_7474_DIP, 74ALSXX\n"
+"SN74LS74AD, TTL_7474_DIP, 74LSXX\n"
+"SN74LS86AD, TTL_7486_DIP, 74LSXX\n"
+"SN74F153D, TTL_74153_DIP, 74FXX\n"
+"SN74LS161AD, TTL_74161_DIP, 74LSXX\n"
+"SN74LS164D, TTL_74164_DIP, 74LSXX\n"
+"DM74LS366AN, TTL_74366_DIP, 74LSXX\n"
+;
+
+struct lib_map_entry
+{
+ pstring dev;
+ pstring model;
+};
+
+using lib_map_t = std::unordered_map<pstring, lib_map_entry>;
+
+static lib_map_t read_lib_map(const pstring lm)
+{
+ plib::pistringstream istrm(lm);
+ lib_map_t m;
+ pstring line;
+ while (istrm.readline(line))
+ {
+ plib::pstring_vector_t split(line, ",");
+ m[split[0].trim()] = { split[1].trim(), split[2].trim() };
+ }
+ return m;
+}
/*-------------------------------------------------
convert - convert a spice netlist
@@ -173,8 +215,9 @@ nl_convert_base_t::unit_t nl_convert_base_t::m_units[] = {
{"M", "CAP_M({1})", 1.0e-3 },
{"u", "CAP_U({1})", 1.0e-6 }, /* eagle */
{"U", "CAP_U({1})", 1.0e-6 },
- {"??", "CAP_U({1})", 1.0e-6 },
+ {"??", "CAP_U({1})", 1.0e-6 }, /* FIXME */
{"N", "CAP_N({1})", 1.0e-9 },
+ {"pF", "CAP_P({1})", 1.0e-12},
{"P", "CAP_P({1})", 1.0e-12},
{"F", "{1}e-15", 1.0e-15},
@@ -448,3 +491,209 @@ void nl_convert_eagle_t::convert(const pstring &contents)
}
}
+
+/* token_id_t m_tok_HFA;
+ token_id_t m_tok_APP;
+ token_id_t m_tok_TIM;
+ token_id_t m_tok_TYP;
+ token_id_t m_tok_ADDC;
+ token_id_t m_tok_ATTC;
+ token_id_t m_tok_NET;
+ token_id_t m_tok_TER;
+ *
+ */
+void nl_convert_rinf_t::convert(const pstring &contents)
+{
+ plib::pistringstream istrm(contents);
+ tokenizer tok(*this, istrm);
+ auto lm = read_lib_map(s_lib_map);
+
+ out("NETLIST_START(dummy)\n");
+ add_term("GND", "GND");
+ add_term("VCC", "VCC");
+ tokenizer::token_t token = tok.get_token();
+ while (true)
+ {
+ if (token.is_type(tokenizer::ENDOFFILE) || token.is(tok.m_tok_END))
+ {
+ dump_nl();
+ // FIXME: Parameter
+ out("NETLIST_END()\n");
+ return;
+ }
+ else if (token.is(tok.m_tok_HEA))
+ {
+ /* seems to be start token - ignore */
+ token = tok.get_token();
+ }
+ else if (token.is(tok.m_tok_APP))
+ {
+ /* version string */
+ pstring app = tok.get_string();
+ out("// APP: {}\n", app);
+ token = tok.get_token();
+ }
+ else if (token.is(tok.m_tok_TIM))
+ {
+ /* time */
+ out("// TIM:");
+ for (int i=0; i<6; i++)
+ {
+ long x = tok.get_number_long();
+ out(" {}", x);
+ }
+ out("\n");
+ token = tok.get_token();
+ }
+ else if (token.is(tok.m_tok_TYP))
+ {
+ pstring id(tok.get_identifier());
+ out("// TYP: {}\n", id);
+ token = tok.get_token();
+ }
+ else if (token.is(tok.m_tok_ADDC))
+ {
+ std::unordered_map<pstring, pstring> attr;
+ pstring id = tok.get_identifier();
+ pstring s1 = tok.get_string();
+ pstring s2 = tok.get_string();
+
+ token = tok.get_token();
+ while (token.is(tok.m_tok_ATTC))
+ {
+ pstring tid = tok.get_identifier();
+ if (tid != id)
+ {
+ out("Error: found {} expected {} in {}\n", tid, id, token.str());
+ return;
+ }
+ pstring at = tok.get_string();
+ pstring val = tok.get_string();
+ attr[at] = val;
+ token = tok.get_token();
+ }
+ pstring sim = attr["Simulation"];
+ pstring val = attr["Value"];
+ pstring com = attr["Comment"];
+ if (val == "")
+ val = com;
+
+ if (sim == "CAP")
+ {
+ add_device("CAP", id, get_sp_val(val));
+ }
+ else if (sim == "RESISTOR")
+ {
+ add_device("RES", id, get_sp_val(val));
+ }
+ else
+ {
+ pstring lib = attr["Library Reference"];
+ auto f = lm.find(lib);
+ if (f != lm.end())
+ add_device(f->second.dev, id);
+ else
+ add_device(lib, id);
+ }
+ }
+ else if (token.is(tok.m_tok_NET))
+ {
+ pstring dev = tok.get_identifier();
+ pstring pin = tok.get_identifier_or_number();
+ pstring net = tok.get_string();
+ add_term(net, dev + "." + pin);
+ token = tok.get_token();
+ if (token.is(tok.m_tok_TER))
+ {
+ token = tok.get_token();
+ while (token.is_type(plib::ptokenizer::IDENTIFIER))
+ {
+ pin = tok.get_identifier_or_number();
+ add_term(net, token.str() + "." + pin);
+ token = tok.get_token();
+ }
+ }
+ }
+#if 0
+ token = tok.get_token();
+ /* skip to semicolon */
+ do
+ {
+ token = tok.get_token();
+ } while (!token.is(tok.m_tok_SEMICOLON));
+ token = tok.get_token();
+ pstring sval = "";
+ if (token.is(tok.m_tok_VALUE))
+ {
+ pstring vname = tok.get_string();
+ sval = tok.get_string();
+ tok.require_token(tok.m_tok_SEMICOLON);
+ token = tok.get_token();
+ }
+ switch (name.code_at(0))
+ {
+ case 'Q':
+ {
+ add_device("QBJT", name, sval);
+ }
+ break;
+ case 'R':
+ {
+ double val = get_sp_val(sval);
+ add_device("RES", name, val);
+ }
+ break;
+ case 'C':
+ {
+ double val = get_sp_val(sval);
+ add_device("CAP", name, val);
+ }
+ break;
+ case 'P':
+ if (sval.ucase() == "HIGH")
+ add_device("TTL_INPUT", name, 1);
+ else if (sval.ucase() == "LOW")
+ add_device("TTL_INPUT", name, 0);
+ else
+ add_device("ANALOG_INPUT", name, sval.as_double());
+ add_pin_alias(name, "1", "Q");
+ break;
+ case 'D':
+ /* Pin 1 = Anode, Pin 2 = Cathode */
+ add_device("DIODE", name, sval);
+ add_pin_alias(name, "1", "A");
+ add_pin_alias(name, "2", "K");
+ break;
+ case 'U':
+ case 'X':
+ {
+ pstring tname = "TTL_" + sval + "_DIP";
+ add_device(tname, name);
+ break;
+ }
+ default:
+ tok.error("// IGNORED " + name);
+ }
+
+ }
+ else if (token.is(tok.m_tok_SIGNAL))
+ {
+ pstring netname = tok.get_string();
+ token = tok.get_token();
+ while (!token.is(tok.m_tok_SEMICOLON))
+ {
+ /* fixme: should check for string */
+ pstring devname = token.str();
+ pstring pin = tok.get_string();
+ add_term(netname, devname + "." + pin);
+ token = tok.get_token(); }
+ }
+#endif
+ else
+ {
+ out("Unexpected {}\n", token.str());
+ return;
+ }
+ }
+
+}
diff --git a/src/lib/netlist/tools/nl_convert.h b/src/lib/netlist/tools/nl_convert.h
index 209057a06d5..fa496a092d7 100644
--- a/src/lib/netlist/tools/nl_convert.h
+++ b/src/lib/netlist/tools/nl_convert.h
@@ -221,4 +221,73 @@ private:
};
+class nl_convert_rinf_t : public nl_convert_base_t
+{
+public:
+
+ nl_convert_rinf_t() : nl_convert_base_t() {}
+ ~nl_convert_rinf_t()
+ {
+ }
+
+ class tokenizer : public plib::ptokenizer
+ {
+ public:
+ tokenizer(nl_convert_rinf_t &convert, plib::pistream &strm)
+ : plib::ptokenizer(strm), m_convert(convert)
+ {
+ set_identifier_chars(".abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_-");
+ set_number_chars("0123456789", "0123456789eE-."); //FIXME: processing of numbers
+ char ws[5];
+ ws[0] = ' ';
+ ws[1] = 9;
+ ws[2] = 10;
+ ws[3] = 13;
+ ws[4] = 0;
+ set_whitespace(ws);
+ /* FIXME: gnetlist doesn't print comments */
+ set_comment("","","//"); // FIXME:needs to be confirmed
+ set_string_char('"');
+ m_tok_HEA = register_token(".HEA");
+ m_tok_APP = register_token(".APP");
+ m_tok_TIM = register_token(".TIM");
+ m_tok_TYP = register_token(".TYP");
+ m_tok_ADDC = register_token(".ADD_COM");
+ m_tok_ATTC = register_token(".ATT_COM");
+ m_tok_NET = register_token(".ADD_TER");
+ m_tok_TER = register_token(".TER");
+ m_tok_END = register_token(".END");
+ }
+
+ token_id_t m_tok_HEA;
+ token_id_t m_tok_APP;
+ token_id_t m_tok_TIM;
+ token_id_t m_tok_TYP;
+ token_id_t m_tok_ADDC;
+ token_id_t m_tok_ATTC;
+ token_id_t m_tok_NET;
+ token_id_t m_tok_TER;
+ token_id_t m_tok_END;
+
+ protected:
+
+ void verror(const pstring &msg, int line_num, const pstring &line) override
+ {
+ m_convert.out("{} (line {}): {}\n", msg.cstr(), line_num, line.cstr());
+ }
+
+
+ private:
+ nl_convert_rinf_t &m_convert;
+ };
+
+ void convert(const pstring &contents) override;
+
+protected:
+
+
+private:
+
+};
+
#endif /* NL_CONVERT_H_ */
diff --git a/src/mame/audio/hng64.cpp b/src/mame/audio/hng64.cpp
index be6857113cb..d6395327b29 100644
--- a/src/mame/audio/hng64.cpp
+++ b/src/mame/audio/hng64.cpp
@@ -110,7 +110,7 @@ READ32_MEMBER(hng64_state::hng64_soundram_r)
WRITE32_MEMBER( hng64_state::hng64_soundcpu_enable_w )
{
- if (mem_mask&0xffff0000)
+ if (ACCESSING_BITS_16_31)
{
int cmd = data >> 16;
// I guess it's only one of the bits, the commands are inverse of each other
@@ -132,9 +132,9 @@ WRITE32_MEMBER( hng64_state::hng64_soundcpu_enable_w )
}
}
- if (mem_mask&0x0000ffff)
+ if (ACCESSING_BITS_0_15)
{
- logerror("unknown hng64_soundcpu_enable_w %08x %08x\n", data, mem_mask);
+ logerror("unknown hng64_soundcpu_enable_w %08x %08x\n", data, mem_mask);
}
}
diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp
index f7db95b7640..8a8077d58d4 100644
--- a/src/mame/drivers/abc1600.cpp
+++ b/src/mame/drivers/abc1600.cpp
@@ -34,6 +34,11 @@
TODO:
+ - abcenix boot stuck in a loop @ 37cfa
+ - segment/page RAM addresses are not correctly decoded, "sas/format/format" can't find the SASI interface because of this
+ forcetask0 1 t0 0 t1 0 t2 0 t3 0
+ sega19 0 task 0
+ sega 000 segd 00 pga 008 pgd 4058 virtual 02c730 (should be 004730)
- short/long reset (RSTBUT)
- CIO
- optimize timers!
@@ -482,7 +487,9 @@ static ADDRESS_MAP_START( mac_mem, AS_PROGRAM, 8, abc1600_state )
AM_RANGE(0x1ff500, 0x1ff500) AM_MIRROR(0xff) AM_DEVREADWRITE(Z8410AB1_2_TAG, z80dma_device, read, write)
AM_RANGE(0x1ff600, 0x1ff607) AM_MIRROR(0xf8) AM_READWRITE(scc_r, scc_w)
AM_RANGE(0x1ff700, 0x1ff707) AM_MIRROR(0xf8) AM_READWRITE(cio_r, cio_w)
- AM_RANGE(0x1ff800, 0x1ffaff) AM_DEVICE(ABC1600_MOVER_TAG, abc1600_mover_device, io_map)
+ AM_RANGE(0x1ff800, 0x1ff8ff) AM_DEVICE(ABC1600_MOVER_TAG, abc1600_mover_device, iowr0_map)
+ AM_RANGE(0x1ff900, 0x1ff9ff) AM_DEVICE(ABC1600_MOVER_TAG, abc1600_mover_device, iowr1_map)
+ AM_RANGE(0x1ffa00, 0x1ffaff) AM_DEVICE(ABC1600_MOVER_TAG, abc1600_mover_device, iowr2_map)
AM_RANGE(0x1ffb00, 0x1ffb00) AM_MIRROR(0x7e) AM_WRITE(fw0_w)
AM_RANGE(0x1ffb01, 0x1ffb01) AM_MIRROR(0x7e) AM_WRITE(fw1_w)
AM_RANGE(0x1ffd00, 0x1ffd07) AM_MIRROR(0xf8) AM_DEVWRITE(ABC1600_MAC_TAG, abc1600_mac_device, dmamap_w)
@@ -892,7 +899,9 @@ static MACHINE_CONFIG_START( abc1600, abc1600_state )
MCFG_Z8536_PC_OUT_CALLBACK(WRITE8(abc1600_state, cio_pc_w))
MCFG_NMC9306_ADD(NMC9306_TAG)
+
MCFG_E0516_ADD(E050_C16PC_TAG, XTAL_32_768kHz)
+
MCFG_FD1797_ADD(SAB1797_02P_TAG, XTAL_64MHz/64)
MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE(Z8536B1_TAG, z8536_device, pb7_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(abc1600_state, fdc_drq_w))
diff --git a/src/mame/drivers/astrafr.cpp b/src/mame/drivers/astrafr.cpp
index 303b0448626..37d0f4c4997 100644
--- a/src/mame/drivers/astrafr.cpp
+++ b/src/mame/drivers/astrafr.cpp
@@ -170,10 +170,10 @@ WRITE32_MEMBER(astrafr_state::astrafr_mem_w)
case 3:
address &= 0xfffff;
- if (mem_mask&0xff000000) astra_fgpa_w(space, address+0, data >> 24);
- if (mem_mask&0x00ff0000) astra_fgpa_w(space, address+1, data >> 16);
- if (mem_mask&0x0000ff00) astra_fgpa_w(space, address+2, data >> 8);
- if (mem_mask&0x000000ff) astra_fgpa_w(space, address+3, data >> 0);
+ if (ACCESSING_BITS_24_31) astra_fgpa_w(space, address+0, data >> 24);
+ if (ACCESSING_BITS_16_23) astra_fgpa_w(space, address+1, data >> 16);
+ if (ACCESSING_BITS_8_15) astra_fgpa_w(space, address+2, data >> 8);
+ if (ACCESSING_BITS_0_7) astra_fgpa_w(space, address+3, data >> 0);
break;
case 2:
@@ -225,10 +225,10 @@ WRITE32_MEMBER(astrafr_state::astrafr_slave_mem_w)
case 3:
address &= 0xfffff;
- if (mem_mask&0xff000000) astra_fgpa_slave_w(space, address+0, data >> 24);
- if (mem_mask&0x00ff0000) astra_fgpa_slave_w(space, address+1, data >> 16);
- if (mem_mask&0x0000ff00) astra_fgpa_slave_w(space, address+2, data >> 8);
- if (mem_mask&0x000000ff) astra_fgpa_slave_w(space, address+3, data >> 0);
+ if (ACCESSING_BITS_24_31) astra_fgpa_slave_w(space, address+0, data >> 24);
+ if (ACCESSING_BITS_16_23) astra_fgpa_slave_w(space, address+1, data >> 16);
+ if (ACCESSING_BITS_8_15) astra_fgpa_slave_w(space, address+2, data >> 8);
+ if (ACCESSING_BITS_0_7) astra_fgpa_slave_w(space, address+3, data >> 0);
break;
case 2:
diff --git a/src/mame/drivers/bfm_sc4.cpp b/src/mame/drivers/bfm_sc4.cpp
index 0ae8c347bc2..bfd99c93683 100644
--- a/src/mame/drivers/bfm_sc4.cpp
+++ b/src/mame/drivers/bfm_sc4.cpp
@@ -205,12 +205,12 @@ READ16_MEMBER(sc4_state::sc4_mem_r)
if (addr < 0x0080)
{
UINT16 retvalue = 0x0000;
- if (mem_mask&0xff00)
+ if (ACCESSING_BITS_8_15)
{
logerror("mem_mask&0xff00 unhandled\n");
}
- if (mem_mask&0x00ff)
+ if (ACCESSING_BITS_0_7)
{
retvalue = read_input_matrix((addr & 0x00f0)>>4);
}
@@ -381,12 +381,12 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w)
if (addr < 0x0200)
{
- if (mem_mask&0xff00)
+ if (ACCESSING_BITS_8_15)
{
logerror("lamp write mem_mask&0xff00 unhandled\n");
}
- if (mem_mask&0x00ff)
+ if (ACCESSING_BITS_0_7)
{ // lamps
mux_output_w(space, (addr & 0x01f0)>>4, data);
}
@@ -394,12 +394,12 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w)
}
else if ((addr >= 0x1000) && (addr < 0x1200))
{
- if (mem_mask&0xff00)
+ if (ACCESSING_BITS_8_15)
{
logerror("lamp write mem_mask&0xff00 unhandled\n");
}
- if (mem_mask&0x00ff)
+ if (ACCESSING_BITS_0_7)
{ // lamps
mux_output2_w(space, (addr & 0x01f0)>>4, data);
}
diff --git a/src/mame/drivers/bfm_sc5.cpp b/src/mame/drivers/bfm_sc5.cpp
index a899ee2260e..bd9b4d2f2a4 100644
--- a/src/mame/drivers/bfm_sc5.cpp
+++ b/src/mame/drivers/bfm_sc5.cpp
@@ -28,7 +28,7 @@ WRITE16_MEMBER( bfm_sc5_state::sc5_duart_w )
// clearly a duart of some kind, write patterns are the same as SC4 games
// printf("%s: duart_w %1x %04x %04x\n", machine().describe_context(), offset, data, mem_mask);
- if (mem_mask &0xff00)
+ if (ACCESSING_BITS_8_15)
{
m_duart->write(space,offset,(data>>8)&0x00ff);
}
diff --git a/src/mame/drivers/cb2001.cpp b/src/mame/drivers/cb2001.cpp
index 10fc8bb527a..c969490595e 100644
--- a/src/mame/drivers/cb2001.cpp
+++ b/src/mame/drivers/cb2001.cpp
@@ -447,7 +447,7 @@ UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &b
is being executed incorrectly */
WRITE16_MEMBER(cb2001_state::cb2001_vidctrl_w)
{
- if (mem_mask&0xff00) // video control?
+ if (ACCESSING_BITS_8_15) // video control?
{
printf("cb2001_vidctrl_w %04x %04x\n", data, mem_mask);
m_videobank = (data & 0x0800)>>11;
@@ -458,7 +458,7 @@ WRITE16_MEMBER(cb2001_state::cb2001_vidctrl_w)
WRITE16_MEMBER(cb2001_state::cb2001_vidctrl2_w)
{
- if (mem_mask&0xff00) // video control?
+ if (ACCESSING_BITS_8_15) // video control?
{
printf("cb2001_vidctrl2_w %04x %04x\n", data, mem_mask); // i think this switches to 'reels' mode
m_videomode = (data>>8) & 0x03; // which bit??
diff --git a/src/mame/drivers/chihiro.cpp b/src/mame/drivers/chihiro.cpp
index d2f15f54fcf..3632cd95872 100644
--- a/src/mame/drivers/chihiro.cpp
+++ b/src/mame/drivers/chihiro.cpp
@@ -13,6 +13,7 @@ Games on this system include....
|*| 20030224 | Crazy Taxi High Roller (Rev B) | Sega / Hitmaker | GDROM | GDX-0002B | 317-0353-COM |
| | 2003 | Virtua Cop 3 | Sega | GDROM | GDX-0003 | 317-0354-COM |
|*| 20030226 | Virtua Cop 3 (Rev A) | Sega | GDROM | GDX-0003A | 317-0354-COM |
+|*| 20030521 | Virtua Cop 3 (Rev B) | Sega | GDROM | GDX-0003B | 317-0354-COM |
| | 2003 | OutRun 2 | Sega | GDROM | GDX-0004 | 317-0372-COM |
|*| 200312 | OutRun 2 (Rev A) | Sega | GDROM | GDX-0004A | 317-0372-COM |
| | 2003 | OutRun 2 prototype (Rev P) | Sega | GDROM | GDX-0004P | |
@@ -1724,7 +1725,7 @@ PIC
255-5508-354
317-0354-COM
*/
-ROM_START( vcop3 )
+ROM_START( vcop3a )
CHIHIRO_BIOS
DISK_REGION( "gdrom" )
@@ -1734,6 +1735,16 @@ ROM_START( vcop3 )
ROM_LOAD("317-0354-com.data", 0x00, 0x50, CRC(df7e3217) SHA1(9f0f4bf6b15f3b6eeea81eaa27b3d25bd94110da) )
ROM_END
+ROM_START( vcop3 )
+ CHIHIRO_BIOS
+
+ DISK_REGION( "gdrom" )
+ DISK_IMAGE_READONLY( "gdx-0003b", 0, SHA1(4268aadb83c880d4f3dab1d43ddd0a3a2f8befa2) )
+
+ ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
+ ROM_LOAD("317-0354-com.data", 0x00, 0x50, CRC(df7e3217) SHA1(9f0f4bf6b15f3b6eeea81eaa27b3d25bd94110da) )
+ROM_END
+
ROM_START( outr2 )
CHIHIRO_BIOS
@@ -2045,7 +2056,8 @@ ROM_END
// 0002A GAME( 2003, crtaxhra, crtaxihr, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (Rev A) (GDX-0002A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
/* 0002B */ GAME( 2003, crtaxihr, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (Rev B) (GDX-0002B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
// 0003 GAME( 2003, vcop3o, vcop3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (GDX-0003)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
-/* 0003A */ GAME( 2003, vcop3, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (Rev A) (GDX-0003A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
+/* 0003A */ GAME( 2003, vcop3a, vcop3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (Rev A) (GDX-0003A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
+/* 0003B */ GAME( 2003, vcop3, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (Rev B) (GDX-0003B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
// 0004 GAME( 2003, outr2o, outr2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 (GDX-0004)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE )
/* 0004A */ GAME( 2003, outr2, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 (Rev A) (GDX-0004A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE )
// 0005 GAME( 2004, sgolcnpt, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Golf Club Network Pro Tour (GDX-0005)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/cobra.cpp b/src/mame/drivers/cobra.cpp
index 4c3a98e1f87..8b440c98659 100644
--- a/src/mame/drivers/cobra.cpp
+++ b/src/mame/drivers/cobra.cpp
@@ -1730,7 +1730,7 @@ READ32_MEMBER(cobra_state::sub_unk1_r)
WRITE32_MEMBER(cobra_state::sub_unk1_w)
{
/*
- if (!(mem_mask & 0xff000000))
+ if (!ACCESSING_BITS_24_31)
{
printf("%02X", data >> 24);
ucount++;
diff --git a/src/mame/drivers/crystal.cpp b/src/mame/drivers/crystal.cpp
index ebe604fbe48..ec80ebaa415 100644
--- a/src/mame/drivers/crystal.cpp
+++ b/src/mame/drivers/crystal.cpp
@@ -318,7 +318,7 @@ READ32_MEMBER(crystal_state::FlipCount_r)
WRITE32_MEMBER(crystal_state::FlipCount_w)
{
- if (mem_mask & 0x00ff0000)
+ if (ACCESSING_BITS_16_23)
{
int fc = (data >> 16) & 0xff;
if (fc == 1)
@@ -351,14 +351,14 @@ WRITE32_MEMBER(crystal_state::IntAck_w)
{
UINT32 IntPend = space.read_dword(0x01800c0c);
- if (mem_mask & 0xff)
+ if (ACCESSING_BITS_0_7)
{
IntPend &= ~(1 << (data & 0x1f));
space.write_dword(0x01800c0c, IntPend);
if (!IntPend)
m_maincpu->set_input_line(SE3208_INT, CLEAR_LINE);
}
- if (mem_mask & 0xff00)
+ if (ACCESSING_BITS_8_15)
m_IntHigh = (data >> 8) & 7;
}
diff --git a/src/mame/drivers/cv1k.cpp b/src/mame/drivers/cv1k.cpp
index 45c751c4725..53edb8c68b7 100644
--- a/src/mame/drivers/cv1k.cpp
+++ b/src/mame/drivers/cv1k.cpp
@@ -734,7 +734,7 @@ ROM_START( pinkswts )
ROM_RELOAD(0x200000,0x200000)
ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
- ROM_LOAD( "pinkswts_u2", 0x000000, 0x8400000, CRC(92d3243a) SHA1(e9d20c62f642fb2f62ef83ed5caeee6b3f67fef9) ) /* (2006/04/06 MASTER VER....) */
+ ROM_LOAD( "pinkswts_u2", 0x000000, 0x8400000, CRC(a2fa5363) SHA1(5be327534840871592df523ac82ee1927bd79d67) ) /* (2006/04/06 MASTER VER....) */
ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(4b82d250) SHA1(ee98dbc3f791efb6d58f3945bcb2044667ae7978) )
@@ -760,7 +760,8 @@ ROM_START( pinkswtsb )
ROM_RELOAD(0x200000,0x200000)
ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
- ROM_LOAD( "pnkswtsb_u2", 0x000000, 0x8400000, CRC(a5666ed9) SHA1(682e06c84990225bc6bb0c9f38b5f46c4e36b430) ) /* (2006/04/06 MASTER VER.) */
+// ROM_LOAD( "pnkswtsb_u2", 0x000000, 0x8400000, BAD_DUMP CRC(a5666ed9) SHA1(682e06c84990225bc6bb0c9f38b5f46c4e36b430) ) /* (2006/04/06 MASTER VER.) */
+ ROM_LOAD( "pnkswtsx_u2", 0x000000, 0x8400000, CRC(91e4deb2) SHA1(893cb10d6f805df7cb4a1bb709a3ea6de147b7e9) ) // (2006/xx/xx MASTER VER.) and (2006/04/06 MASTER VER.)
ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(4b82d250) SHA1(ee98dbc3f791efb6d58f3945bcb2044667ae7978) )
@@ -773,7 +774,7 @@ ROM_START( pinkswtsx )
ROM_RELOAD(0x200000,0x200000)
ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
- ROM_LOAD( "pnkswtsx_u2", 0x000000, 0x8400000, CRC(91e4deb2) SHA1(893cb10d6f805df7cb4a1bb709a3ea6de147b7e9) ) // (2006/xx/xx MASTER VER.)
+ ROM_LOAD( "pnkswtsx_u2", 0x000000, 0x8400000, CRC(91e4deb2) SHA1(893cb10d6f805df7cb4a1bb709a3ea6de147b7e9) ) // (2006/xx/xx MASTER VER.) and (2006/04/06 MASTER VER.)
ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(4b82d250) SHA1(ee98dbc3f791efb6d58f3945bcb2044667ae7978) )
diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp
index afb6c0a5033..131606916d5 100644
--- a/src/mame/drivers/deco32.cpp
+++ b/src/mame/drivers/deco32.cpp
@@ -808,7 +808,7 @@ READ32_MEMBER( deco32_state::fghthist_protection_region_0_146_r )
{
UINT32 retdata = 0x0000ffff;
- if (mem_mask & 0xffff0000)
+ if (ACCESSING_BITS_16_31)
{
mem_mask >>=16;
@@ -826,7 +826,7 @@ READ32_MEMBER( deco32_state::fghthist_protection_region_0_146_r )
WRITE32_MEMBER( deco32_state::fghthist_protection_region_0_146_w )
{
- if (mem_mask & 0xffff0000)
+ if (ACCESSING_BITS_16_31)
{
data >>=16;
mem_mask >>=16;
diff --git a/src/mame/drivers/deco_mlc.cpp b/src/mame/drivers/deco_mlc.cpp
index 61a6ab054b2..0365d844625 100644
--- a/src/mame/drivers/deco_mlc.cpp
+++ b/src/mame/drivers/deco_mlc.cpp
@@ -241,12 +241,12 @@ READ32_MEMBER( deco_mlc_state::mlc_spriteram_r )
{
UINT32 retdata = 0;
- if (mem_mask & 0xffff0000)
+ if (ACCESSING_BITS_16_31)
{
retdata |= 0xffff0000;
}
- if (mem_mask & 0x0000ffff)
+ if (ACCESSING_BITS_0_15)
{
retdata |= m_mlc_spriteram[offset];
}
@@ -257,11 +257,11 @@ READ32_MEMBER( deco_mlc_state::mlc_spriteram_r )
WRITE32_MEMBER( deco_mlc_state::mlc_spriteram_w )
{
- if (mem_mask & 0xffff0000)
+ if (ACCESSING_BITS_16_31)
{
}
- if (mem_mask & 0x0000ffff)
+ if (ACCESSING_BITS_0_15)
{
data &=0x0000ffff;
COMBINE_DATA(&m_mlc_spriteram[offset]);
diff --git a/src/mame/drivers/divebomb.cpp b/src/mame/drivers/divebomb.cpp
index e87e3c6d08d..e87e3c6d08d 100755..100644
--- a/src/mame/drivers/divebomb.cpp
+++ b/src/mame/drivers/divebomb.cpp
diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp
index 546ef915830..93537dd6e80 100644
--- a/src/mame/drivers/dkong.cpp
+++ b/src/mame/drivers/dkong.cpp
@@ -355,6 +355,28 @@ Donkey Kong Notes
Not only did the eprom fix the ladder bug, but it also changed
the copyright screen to read "(C)1981 Nintendo of America".
+
+ --------------------------------------------------------------
+
+ Nintendo Service Department Bulletin # TKG-06 10-04-82
+ GAME: Donkey Kong
+ SUBJECT: Speed-up Kit #2
+
+ In an attempt to increase revenue of Donkey Kong we are making
+ available and updated speed-up kit, part number TKG-23-70.
+
+ The speed-up kit consists of two (2) EPROM's that are mounted
+ on the CPU P.C. Board. The replacement locations vary depend-
+ ing on the P.C. Board style.
+
+ P.C Board Style Eprom Location
+ --------------- --------------
+ TKG2 and TKG3 5F, 5K
+ TKG4 5A, 5E
+
+ These kits are available through all Nintendo distributors. If
+ your distributor is out, they can get immediate shipment from
+ our factory.
D2K Jumpman returns Notes
@@ -378,6 +400,9 @@ Donkey Kong Notes
Hopefully confirmation and information will come along later which confirms
this is a legitimate Nintendo Kit.
+
+ This is probably "Speed-up Kit #2" mentioned above, but this still needs to be
+ confirmed.
***************************************************************************/
diff --git a/src/mame/drivers/dreambal.cpp b/src/mame/drivers/dreambal.cpp
index 55d360aaf68..60e9653a1d5 100644
--- a/src/mame/drivers/dreambal.cpp
+++ b/src/mame/drivers/dreambal.cpp
@@ -64,7 +64,7 @@ public:
logerror("dreambal_eeprom_w unhandled data %04x %04x\n",data&0x0fff8, mem_mask);
}
- if (mem_mask&0x00ff)
+ if (ACCESSING_BITS_0_7)
{
m_eeprom->clk_write(data &0x2 ? ASSERT_LINE : CLEAR_LINE);
m_eeprom->di_write(data &0x1);
diff --git a/src/mame/drivers/gambl186.cpp b/src/mame/drivers/gambl186.cpp
index 89e009743c5..37360a09512 100644
--- a/src/mame/drivers/gambl186.cpp
+++ b/src/mame/drivers/gambl186.cpp
@@ -347,8 +347,8 @@ WRITE16_MEMBER(gambl186_state::upd_w)
// m_upd7759->reset_w(0);
// m_upd7759->reset_w(1);
-// if (mem_mask&0x00ff) m_upd7759->port_w(space, 0, data & 0xff);
-// if (mem_mask&0xff00) m_upd7759->port_w(space, 0, (data >> 8) & 0xff);
+// if (ACCESSING_BITS_0_7) m_upd7759->port_w(space, 0, data & 0xff);
+// if (ACCESSING_BITS_8_15) m_upd7759->port_w(space, 0, (data >> 8) & 0xff);
data = (data >> 8);
popmessage("sample index: %02x", data);
diff --git a/src/mame/drivers/gba.cpp b/src/mame/drivers/gba.cpp
index b58253c03b2..d1f46afc67d 100644
--- a/src/mame/drivers/gba.cpp
+++ b/src/mame/drivers/gba.cpp
@@ -475,12 +475,12 @@ READ32_MEMBER(gba_state::gba_io_r)
switch( offset )
{
case 0x0000/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: DISPCNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_DISPCNT );
retval |= m_DISPCNT;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: Green Swap (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_GRNSWAP );
retval |= m_GRNSWAP << 16;
@@ -490,229 +490,229 @@ READ32_MEMBER(gba_state::gba_io_r)
retval = (m_DISPSTAT & 0xffff) | (machine().first_screen()->vpos()<<16);
break;
case 0x0008/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG0CNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_BG0CNT );
retval |= m_BG0CNT;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG1CNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_BG1CNT );
retval |= m_BG1CNT << 16;
}
break;
case 0x000c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2CNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_BG2CNT );
retval |= m_BG2CNT;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3CNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_BG3CNT );
retval |= m_BG3CNT << 16;
}
break;
case 0x0010/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG0HOFS (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG0VOFS (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0014/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG1HOFS (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG1VOFS (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0018/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2HOFS (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2VOFS (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x001c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3HOFS (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3VOFS (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0020/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2PA (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2PB (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0024/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2PC (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2PD (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0028/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2X_LSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2X_MSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x002c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2Y_LSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG2Y_MSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0030/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3PA (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3PB (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0034/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3PC (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3PD (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0038/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3X_LSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3X_MSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x003c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3Y_LSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BG3Y_MSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0040/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: WIN0H (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: WIN1H (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0044/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: WIN0V (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: WIN1V (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0048/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: WININ (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_WININ );
retval |= m_WININ;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: WINOUT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_WINOUT );
retval |= m_WINOUT << 16;
}
break;
case 0x004c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: MOSAIC (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0050/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BLDCNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_BLDCNT );
retval |= m_BLDCNT;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: BLDALPHA (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_BLDALPHA );
retval |= m_BLDALPHA << 16;
}
break;
case 0x0054/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: BLDY (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0058/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x005c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), 0 );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
@@ -743,7 +743,7 @@ READ32_MEMBER(gba_state::gba_io_r)
break;
case 0x0080/4:
retval = m_gbsound->sound_r(space, 0x14) | m_gbsound->sound_r(space, 0x15)<<8;
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: SOUNDCNT_H (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_SOUNDCNT_H );
retval |= m_SOUNDCNT_H << 16;
@@ -753,12 +753,12 @@ READ32_MEMBER(gba_state::gba_io_r)
retval = m_gbsound->sound_r(space, 0x16);
break;
case 0x0088/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: SOUNDBIAS (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_SOUNDBIAS );
retval |= m_SOUNDBIAS;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
@@ -850,115 +850,115 @@ READ32_MEMBER(gba_state::gba_io_r)
}
break;
case 0x0120/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: SIOMULTI0 (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_SIOMULTI0 );
retval |= m_SIOMULTI0;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: SIOMULTI1 (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_SIOMULTI1 );
retval |= m_SIOMULTI1 << 16;
}
break;
case 0x0124/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: SIOMULTI2 (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_SIOMULTI2 );
retval |= m_SIOMULTI2;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: SIOMULTI3 (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_SIOMULTI3 );
retval |= m_SIOMULTI3 << 16;
}
break;
case 0x0128/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: SIOCNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_SIOCNT );
retval |= m_SIOCNT;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: SIODATA8 (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_SIODATA8 );
retval |= m_SIODATA8 << 16;
}
break;
case 0x0130/4:
- if( (mem_mask) & 0x0000ffff ) // KEYINPUT
+ if( ACCESSING_BITS_0_15 ) // KEYINPUT
{
retval = m_io_inputs->read();
}
- else if( (mem_mask) & 0xffff0000 )
+ else if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: KEYCNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_KEYCNT );
retval |= m_KEYCNT << 16;
}
break;
case 0x0134/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: RCNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_RCNT );
retval |= m_RCNT;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: IR (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0140/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: JOYCNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_JOYCNT );
retval |= m_JOYCNT;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0150/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: JOY_RECV_LSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_JOY_RECV & 0x0000ffff );
retval |= m_JOY_RECV & 0x0000ffff;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: JOY_RECV_MSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, ( m_JOY_RECV & 0xffff0000 ) >> 16 );
retval |= m_JOY_RECV & 0xffff0000;
}
break;
case 0x0154/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: JOY_TRANS_LSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_JOY_TRANS & 0x0000ffff );
retval |= m_JOY_TRANS & 0x0000ffff;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: JOY_TRANS_MSW (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, ( m_JOY_TRANS & 0xffff0000 ) >> 16 );
retval |= m_JOY_TRANS & 0xffff0000;
}
break;
case 0x0158/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: JOYSTAT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_JOYSTAT );
retval |= m_JOYSTAT;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0200/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
// printf("Read: IE (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_IE );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: IF (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_IF );
}
@@ -966,23 +966,23 @@ READ32_MEMBER(gba_state::gba_io_r)
retval = m_IE | (m_IF<<16);
break;
case 0x0204/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: WAITCNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_WAITCNT );
retval |= m_WAITCNT;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
break;
case 0x0208/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Read: IME (%08x) = %04x\n", 0x04000000 + ( offset << 2 ), m_IME );
retval |= m_IME;
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Read: UNKNOWN (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, 0 );
}
@@ -1002,10 +1002,10 @@ WRITE32_MEMBER(gba_state::gba_io_w)
switch( offset )
{
case 0x0000/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: DISPCNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_DISPCNT = ( m_DISPCNT & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_DISPCNT);
if(m_DISPCNT & (DISPCNT_WIN0_EN | DISPCNT_WIN1_EN))
{
m_windowOn = 1;
@@ -1015,7 +1015,7 @@ WRITE32_MEMBER(gba_state::gba_io_w)
m_windowOn = 0;
}
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: Green Swap (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_GRNSWAP = ( m_GRNSWAP & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
@@ -1025,107 +1025,107 @@ WRITE32_MEMBER(gba_state::gba_io_w)
COMBINE_DATA(&m_DISPSTAT);
break;
case 0x0008/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG0CNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG0CNT = ( m_BG0CNT & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG0CNT);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG1CNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG1CNT = ( m_BG1CNT & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x000c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2CNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG2CNT = ( m_BG2CNT & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG2CNT);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3CNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG3CNT = ( m_BG3CNT & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0010/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG0HOFS (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG0HOFS = ( m_BG0HOFS & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG0HOFS);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG0VOFS (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG0VOFS = ( m_BG0VOFS & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0014/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG1HOFS (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG1HOFS = ( m_BG1HOFS & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG1HOFS);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG1VOFS (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG1VOFS = ( m_BG1VOFS & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0018/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2HOFS (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG2HOFS = ( m_BG2HOFS & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG2HOFS);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2VOFS (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG2VOFS = ( m_BG2VOFS & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x001c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3HOFS (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG3HOFS = ( m_BG3HOFS & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG3HOFS);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3VOFS (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG3VOFS = ( m_BG3VOFS & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0020/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2PA (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG2PA = ( m_BG2PA & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG2PA);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2PB (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG2PB = ( m_BG2PB & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0024/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2PC (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG2PC = ( m_BG2PC & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG2PC);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2PD (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG2PD = ( m_BG2PD & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0028/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2X_LSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2X_MSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
@@ -1133,11 +1133,11 @@ WRITE32_MEMBER(gba_state::gba_io_w)
m_gfxBG2Changed |= 1;
break;
case 0x002c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2Y_LSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG2Y_MSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
@@ -1145,35 +1145,35 @@ WRITE32_MEMBER(gba_state::gba_io_w)
m_gfxBG2Changed |= 2;
break;
case 0x0030/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3PA (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG3PA = ( m_BG3PA & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG3PA);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3PB (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG3PB = ( m_BG3PB & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0034/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3PC (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BG3PC = ( m_BG3PC & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BG3PC);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3PD (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BG3PD = ( m_BG3PD & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0038/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3X_LSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3X_MSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
@@ -1181,11 +1181,11 @@ WRITE32_MEMBER(gba_state::gba_io_w)
m_gfxBG3Changed |= 1;
break;
case 0x003c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3Y_LSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BG3Y_MSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
@@ -1193,57 +1193,57 @@ WRITE32_MEMBER(gba_state::gba_io_w)
m_gfxBG3Changed |= 2;
break;
case 0x0040/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: WIN0H (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_WIN0H = ( m_WIN0H & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_WIN0H);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: WIN1H (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_WIN1H = ( m_WIN1H & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0044/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: WIN0V (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_WIN0V = ( m_WIN0V & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_WIN0V);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: WIN1V (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_WIN1V = ( m_WIN1V & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0048/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: WININ (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_WININ = ( m_WININ & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_WININ);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: WINOUT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_WINOUT = ( m_WINOUT & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x004c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: MOSAIC (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_MOSAIC = ( m_MOSAIC & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_MOSAIC);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
break;
case 0x0050/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BLDCNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BLDCNT = ( m_BLDCNT & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BLDCNT);
if(m_BLDCNT & BLDCNT_SFX)
{
m_fxOn = 1;
@@ -1253,142 +1253,142 @@ WRITE32_MEMBER(gba_state::gba_io_w)
m_fxOn = 0;
}
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: BLDALPHA (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
m_BLDALPHA = ( m_BLDALPHA & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0054/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: BLDY (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_BLDY = ( m_BLDY & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_BLDY);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
break;
case 0x0058/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
break;
case 0x005c/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
break;
case 0x0060/4:
- if( (mem_mask) & 0x000000ff ) // SOUNDCNTL
+ if( ACCESSING_BITS_0_7 ) // SOUNDCNTL
{
m_gbsound->sound_w(space, 0, data);
}
- if( (mem_mask) & 0x00ff0000 )
+ if( ACCESSING_BITS_16_23 )
{
m_gbsound->sound_w(space, 1, data>>16); // SOUND1CNT_H
}
- if( (mem_mask) & 0xff000000 )
+ if( ACCESSING_BITS_24_31 )
{
m_gbsound->sound_w(space, 2, data>>24);
}
break;
case 0x0064/4:
- if( (mem_mask) & 0x000000ff ) // SOUNDCNTL
+ if( ACCESSING_BITS_0_7 ) // SOUNDCNTL
{
m_gbsound->sound_w(space, 3, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->sound_w(space, 4, data>>8); // SOUND1CNT_H
}
break;
case 0x0068/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->sound_w(space, 6, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->sound_w(space, 7, data>>8);
}
break;
case 0x006c/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->sound_w(space, 8, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->sound_w(space, 9, data>>8);
}
break;
case 0x0070/4: //SND3CNTL and H
- if( (mem_mask) & 0x000000ff ) // SOUNDCNTL
+ if( ACCESSING_BITS_0_7 ) // SOUNDCNTL
{
m_gbsound->sound_w(space, 0xa, data);
}
- if( (mem_mask) & 0x00ff0000 )
+ if( ACCESSING_BITS_16_23 )
{
m_gbsound->sound_w(space, 0xb, data>>16); // SOUND1CNT_H
}
- if( (mem_mask) & 0xff000000 )
+ if( ACCESSING_BITS_24_31 )
{
m_gbsound->sound_w(space, 0xc, data>>24);
}
break;
case 0x0074/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->sound_w(space, 0xd, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->sound_w(space, 0xe, data>>8);
}
break;
case 0x0078/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->sound_w(space, 0x10, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->sound_w(space, 0x11, data>>8);
}
break;
case 0x007c/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->sound_w(space, 0x12, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->sound_w(space, 0x13, data>>8);
}
break;
case 0x0080/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->sound_w(space, 0x14, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->sound_w(space, 0x15, data>>8);
}
- if ((mem_mask) & 0xffff0000)
+ if (ACCESSING_BITS_16_31)
{
data >>= 16;
m_SOUNDCNT_H = data;
@@ -1413,7 +1413,7 @@ WRITE32_MEMBER(gba_state::gba_io_w)
}
break;
case 0x0084/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->sound_w(space, 0x16, data);
if ((data & 0x80) && !(m_SOUNDCNT_X & 0x80))
@@ -1429,84 +1429,84 @@ WRITE32_MEMBER(gba_state::gba_io_w)
}
break;
case 0x0088/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: SOUNDBIAS (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x0000ffff, ~mem_mask );
- m_SOUNDBIAS = ( m_SOUNDBIAS & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_SOUNDBIAS);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
break;
case 0x0090/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->wave_w(space, 0, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->wave_w(space, 1, data>>8);
}
- if( (mem_mask) & 0x00ff0000 )
+ if( ACCESSING_BITS_16_23 )
{
m_gbsound->wave_w(space, 2, data>>16);
}
- if( (mem_mask) & 0xff000000 )
+ if( ACCESSING_BITS_24_31 )
{
m_gbsound->wave_w(space, 3, data>>24);
}
break;
case 0x0094/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->wave_w(space, 4, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->wave_w(space, 5, data>>8);
}
- if( (mem_mask) & 0x00ff0000 )
+ if( ACCESSING_BITS_16_23 )
{
m_gbsound->wave_w(space, 6, data>>16);
}
- if( (mem_mask) & 0xff000000 )
+ if( ACCESSING_BITS_24_31 )
{
m_gbsound->wave_w(space, 7, data>>24);
}
break;
case 0x0098/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->wave_w(space, 8, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->wave_w(space, 9, data>>8);
}
- if( (mem_mask) & 0x00ff0000 )
+ if( ACCESSING_BITS_16_23 )
{
m_gbsound->wave_w(space, 0xa, data>>16);
}
- if( (mem_mask) & 0xff000000 )
+ if( ACCESSING_BITS_24_31 )
{
m_gbsound->wave_w(space, 0xb, data>>24);
}
break;
case 0x009c/4:
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
m_gbsound->wave_w(space, 0xc, data);
}
- if( (mem_mask) & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
m_gbsound->wave_w(space, 0xd, data>>8);
}
- if( (mem_mask) & 0x00ff0000 )
+ if( ACCESSING_BITS_16_23 )
{
m_gbsound->wave_w(space, 0xe, data>>16);
}
- if( (mem_mask) & 0xff000000 )
+ if( ACCESSING_BITS_24_31 )
{
m_gbsound->wave_w(space, 0xf, data>>24);
}
@@ -1642,31 +1642,31 @@ WRITE32_MEMBER(gba_state::gba_io_w)
}
break;
case 0x0120/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: SIOMULTI0 (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
- m_SIOMULTI0 = ( m_SIOMULTI0 & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_SIOMULTI0);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: SIOMULTI1 (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
m_SIOMULTI1 = ( m_SIOMULTI1 & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0124/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: SIOMULTI2 (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
- m_SIOMULTI2 = ( m_SIOMULTI2 & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_SIOMULTI2);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: SIOMULTI3 (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
m_SIOMULTI3 = ( m_SIOMULTI3 & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0128/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: SIOCNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
// normal mode ?
@@ -1683,16 +1683,16 @@ WRITE32_MEMBER(gba_state::gba_io_w)
}
}
}
- m_SIOCNT = ( m_SIOCNT & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_SIOCNT);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: SIODATA8 (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
m_SIODATA8 = ( m_SIODATA8 & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0130/4:
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
// printf("KEYCNT = %04x\n", data>>16);
verboselog(*this, 2, "GBA IO Register Write: KEYCNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
@@ -1700,68 +1700,68 @@ WRITE32_MEMBER(gba_state::gba_io_w)
}
break;
case 0x0134/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: RCNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
- m_RCNT = ( m_RCNT & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_RCNT);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: IR (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
m_IR = ( m_IR & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0140/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: JOYCNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
- m_JOYCNT = ( m_JOYCNT & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_JOYCNT);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
}
break;
case 0x0150/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: JOY_RECV_LSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
- m_JOY_RECV = ( m_JOY_RECV & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_JOY_RECV);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: JOY_RECV_MSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
m_JOY_RECV = ( m_JOY_RECV & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0154/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: JOY_TRANS_LSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
- m_JOY_TRANS = ( m_JOY_TRANS & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_JOY_TRANS);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: JOY_TRANS_MSW (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
m_JOY_TRANS = ( m_JOY_TRANS & ( ~mem_mask >> 16 ) ) | ( ( data & mem_mask ) >> 16 );
}
break;
case 0x0158/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: JOYSTAT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
- m_JOYSTAT = ( m_JOYSTAT & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_JOYSTAT);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
}
break;
case 0x0200/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
// printf("IE (%08x) = %04x raw %x (%08x) (scan %d PC %x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, data, ~mem_mask, machine.first_screen()->vpos(), space.device().safe_pc());
- m_IE = ( m_IE & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_IE);
#if 0
if (m_IE & m_IF)
{
@@ -1769,7 +1769,7 @@ WRITE32_MEMBER(gba_state::gba_io_w)
}
#endif
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: IF (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ) + 2, ( data & mem_mask ) >> 16, ~mem_mask );
m_IF &= ~( ( data & mem_mask ) >> 16 );
@@ -1782,35 +1782,35 @@ WRITE32_MEMBER(gba_state::gba_io_w)
}
break;
case 0x0204/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 2, "GBA IO Register Write: WAITCNT (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
- m_WAITCNT = ( m_WAITCNT & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_WAITCNT);
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
}
break;
case 0x0208/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
verboselog(*this, 3, "GBA IO Register Write: IME (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, ~mem_mask );
- m_IME = ( m_IME & ~mem_mask ) | ( data & mem_mask );
+ COMBINE_DATA(&m_IME);
if (m_IF)
{
m_irq_timer->adjust(attotime::zero);
}
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 3, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & mem_mask ) >> 16, ~mem_mask );
}
break;
case 0x0300/4:
- if( (mem_mask) & 0x0000ffff )
+ if( ACCESSING_BITS_0_15 )
{
- if( (mem_mask) & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
verboselog(*this, 2, "GBA IO Register Write: POSTFLG (%08x) = %02x (%08x)\n", 0x04000000 + ( offset << 2 ), data & 0x000000ff, ~mem_mask );
m_POSTFLG = data & 0x000000ff;
@@ -1823,7 +1823,7 @@ WRITE32_MEMBER(gba_state::gba_io_w)
m_maincpu->spin_until_interrupt();
}
}
- if( (mem_mask) & 0xffff0000 )
+ if( ACCESSING_BITS_16_31 )
{
verboselog(*this, 2, "GBA IO Register Write: UNKNOWN (%08x) = %04x (%08x)\n", 0x04000000 + ( offset << 2 ), ( data & 0xffff0000 ) >> 16, ~mem_mask );
}
diff --git a/src/mame/drivers/glass.cpp b/src/mame/drivers/glass.cpp
index 5711341018f..285970b54e7 100644
--- a/src/mame/drivers/glass.cpp
+++ b/src/mame/drivers/glass.cpp
@@ -388,7 +388,7 @@ WRITE16_MEMBER( glass_state::mainram_w )
{
// printf("%06x write %06x - %04x %04x\n", pc, (offset*2 + 0xfec000), data, mem_mask);
// several checks write here then expect it to appear mirrored, might be some kind of command + command ack
- if (mem_mask & 0xff00) // sometimes mask 0xff00, but not in cases which poll for change
+ if (ACCESSING_BITS_8_15) // sometimes mask 0xff00, but not in cases which poll for change
{
mem_mask = 0x00ff;
data >>=8;
diff --git a/src/mame/drivers/juicebox.cpp b/src/mame/drivers/juicebox.cpp
index f0e58b3138c..a024b893759 100644
--- a/src/mame/drivers/juicebox.cpp
+++ b/src/mame/drivers/juicebox.cpp
@@ -223,10 +223,10 @@ WRITE32_MEMBER(juicebox_state::s3c44b0_gpio_port_w)
READ32_MEMBER(juicebox_state::juicebox_nand_r)
{
UINT32 data = 0;
- if (mem_mask & 0x000000FF) data = data | (smc_read() << 0);
- if (mem_mask & 0x0000FF00) data = data | (smc_read() << 8);
- if (mem_mask & 0x00FF0000) data = data | (smc_read() << 16);
- if (mem_mask & 0xFF000000) data = data | (smc_read() << 24);
+ if (ACCESSING_BITS_0_7) data = data | (smc_read() << 0);
+ if (ACCESSING_BITS_8_15) data = data | (smc_read() << 8);
+ if (ACCESSING_BITS_16_23) data = data | (smc_read() << 16);
+ if (ACCESSING_BITS_24_31) data = data | (smc_read() << 24);
verboselog( 5, "juicebox_nand_r %08X %08X %08X\n", offset, mem_mask, data);
return data;
}
@@ -234,10 +234,10 @@ READ32_MEMBER(juicebox_state::juicebox_nand_r)
WRITE32_MEMBER(juicebox_state::juicebox_nand_w)
{
verboselog( 5, "juicebox_nand_w %08X %08X %08X\n", offset, mem_mask, data);
- if (mem_mask & 0x000000FF) smc_write((data >> 0) & 0xFF);
- if (mem_mask & 0x0000FF00) smc_write((data >> 8) & 0xFF);
- if (mem_mask & 0x00FF0000) smc_write((data >> 16) & 0xFF);
- if (mem_mask & 0xFF000000) smc_write((data >> 24) & 0xFF);
+ if (ACCESSING_BITS_0_7) smc_write((data >> 0) & 0xFF);
+ if (ACCESSING_BITS_8_15) smc_write((data >> 8) & 0xFF);
+ if (ACCESSING_BITS_16_23) smc_write((data >> 16) & 0xFF);
+ if (ACCESSING_BITS_24_31) smc_write((data >> 24) & 0xFF);
}
// I2S
diff --git a/src/mame/drivers/mpu4sw.hxx b/src/mame/drivers/mpu4sw.hxx
index 74f4b6b802b..29c750a7cf9 100644
--- a/src/mame/drivers/mpu4sw.hxx
+++ b/src/mame/drivers/mpu4sw.hxx
@@ -49,6 +49,34 @@ DRIVER_INIT_MEMBER(mpu4_state,m4debug)
printf("%c", src[j+i]);
}
printf("\n");
+
+ printf("flags ENABLED\n");
+ for (int i = 0xff30; i<0xff9f; i+=2)
+ {
+ UINT8 enable = src[j+i+0];
+ UINT8 letter = src[j+i+1];
+
+ if (enable == 0x00)
+ {
+ printf("%c", letter);
+ }
+ }
+ printf("\n");
+ printf("flags DISABLED\n");
+ for (int i = 0xff30; i<0xff9f; i+=2)
+ {
+ UINT8 enable = src[j+i+0];
+ UINT8 letter = src[j+i+1];
+
+ if (enable == 0xff)
+ {
+ if (letter != 0xff)
+ printf("%c", letter);
+ }
+ }
+ printf("\n");
+
+
}
}
@@ -876,7 +904,9 @@ GAME_CUSTOM( 199?, m4topten__b, m4topten, "topt15t", 0x0000, 0x020000,
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4toot, 0, "toc03c.p1", 0x0000, 0x020000, CRC(752ffa3f) SHA1(6cbe521ff85173159b6d34cc3e29a4192cd66394), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 1)" )
+// "(C)1993 BARCREST" and "TOC 0.3"
+GAME_CUSTOM( 199?, m4toot, 0, "toc03s.p1", 0x0000, 0x020000, CRC(30feff92) SHA1(14397768ebd7469b4d1cff22ca9727f63608a98a), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (TOC 0.3)" )
+GAME_CUSTOM( 199?, m4toot__j, m4toot, "toc03c.p1", 0x0000, 0x020000, CRC(752ffa3f) SHA1(6cbe521ff85173159b6d34cc3e29a4192cd66394), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4toot__a, m4toot, "toc03ad.p1", 0x0000, 0x020000, CRC(f67e53c1) SHA1(07a50fb649c5085a33f0a1a9b3d65b0b61a3f152), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 2)" )
GAME_CUSTOM( 199?, m4toot__b, m4toot, "toc03b.p1", 0x0000, 0x020000, CRC(4265472d) SHA1(01d5eb4e0a30abd1efed45658dcd8455494aabc4), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 3)" )
GAME_CUSTOM( 199?, m4toot__c, m4toot, "toc03bd.p1", 0x0000, 0x020000, CRC(7b64fd04) SHA1(377af32317d8356f06b19de553a13e8558993c34), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 4)" )
@@ -886,8 +916,9 @@ GAME_CUSTOM( 199?, m4toot__f, m4toot, "toc03dr.p1", 0x0000, 0x020000, CRC(8
GAME_CUSTOM( 199?, m4toot__g, m4toot, "toc03dy.p1", 0x0000, 0x020000, CRC(b64075ac) SHA1(ffdf8e45c2eab593570e15efd5161b67de5e4ecf), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 8)" )
GAME_CUSTOM( 199?, m4toot__h, m4toot, "toc03k.p1", 0x0000, 0x020000, CRC(08a2ef7b) SHA1(a4181db6280c7cc37b54baaf9cce1e61f61f3274), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 9)" )
GAME_CUSTOM( 199?, m4toot__i, m4toot, "toc03r.p1", 0x0000, 0x020000, CRC(bbad544a) SHA1(5fb31e5641a9e85147f5b61c5aba5a1ee7470f9c), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4toot__j, m4toot, "toc03s.p1", 0x0000, 0x020000, CRC(30feff92) SHA1(14397768ebd7469b4d1cff22ca9727f63608a98a), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 11)" )
GAME_CUSTOM( 199?, m4toot__k, m4toot, "toc03y.p1", 0x0000, 0x020000, CRC(8f41cf85) SHA1(315b359d6d1a9f6ad939be1fc5e4d8f21f998fb8), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 12)" )
+// "(C)1993 BARCREST" and "TOC 0.4"
+GAME_CUSTOM( 199?, m4toot__v, m4toot, "toc04s.p1", 0x0000, 0x020000, CRC(295e6fff) SHA1(a21d991f00f144e12de60b891e3e2e5dd7d08d71), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (TOC 0.4)" )
GAME_CUSTOM( 199?, m4toot__l, m4toot, "toc04ad.p1", 0x0000, 0x020000, CRC(59075e2e) SHA1(a3ad5c642fb9cebcce2fb6c1e65514f2414948e0), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 13)" )
GAME_CUSTOM( 199?, m4toot__m, m4toot, "toc04b.p1", 0x0000, 0x020000, CRC(b2d54721) SHA1(4c72d434c0f4f37b9a3f08a760c7fe3851717059), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 14)" )
GAME_CUSTOM( 199?, m4toot__n, m4toot, "toc04bd.p1", 0x0000, 0x020000, CRC(d41df0eb) SHA1(e5a04c728a2893073ff8b5f6efd7cffd433a2985), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 15)" )
@@ -898,8 +929,9 @@ GAME_CUSTOM( 199?, m4toot__r, m4toot, "toc04dr.p1", 0x0000, 0x020000, CRC(2
GAME_CUSTOM( 199?, m4toot__s, m4toot, "toc04dy.p1", 0x0000, 0x020000, CRC(19397843) SHA1(e7e3299d8e46c79d3cd0ea7fd639a1d649a806df), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 20)" )
GAME_CUSTOM( 199?, m4toot__t, m4toot, "toc04k.p1", 0x0000, 0x020000, CRC(f812ef77) SHA1(d465b771efed27a9f616052d3fcabdbeb7c2d151), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 21)" )
GAME_CUSTOM( 199?, m4toot__u, m4toot, "toc04r.p1", 0x0000, 0x020000, CRC(4b1d5446) SHA1(f4bac0c8257add41295679b3541d2064d8c772c2), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 22)" )
-GAME_CUSTOM( 199?, m4toot__v, m4toot, "toc04s.p1", 0x0000, 0x020000, CRC(295e6fff) SHA1(a21d991f00f144e12de60b891e3e2e5dd7d08d71), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 23)" )
GAME_CUSTOM( 199?, m4toot__w, m4toot, "toc04y.p1", 0x0000, 0x020000, CRC(7ff1cf89) SHA1(d4ab56b2b5b05643cd077b8d596b6cddf8a25134), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 24)" )
+// "(C)1993 BARCREST" and "TOT 0.5"
+GAME_CUSTOM( 199?, m4toot__7, m4toot, "tot05s.p1", 0x0000, 0x020000, CRC(7dd1cfa8) SHA1(3bd0eeb621cc81ac462a6981e081837985f6635b), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (TOT 0.5)" )
GAME_CUSTOM( 199?, m4toot__x, m4toot, "tot05ad.p1", 0x0000, 0x020000, CRC(fce00fcc) SHA1(7d10c0b83d782a9e603522ed039089866d931474), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 25)" )
GAME_CUSTOM( 199?, m4toot__y, m4toot, "tot05b.p1", 0x0000, 0x020000, CRC(594d551c) SHA1(3fcec5f41cfbea497aa53af4570664265774d1aa), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 26)" )
GAME_CUSTOM( 199?, m4toot__z, m4toot, "tot05bd.p1", 0x0000, 0x020000, CRC(71faa109) SHA1(8bec4a03e2dc43656c910652cf10d1afdf0bab33), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 27)" )
@@ -910,8 +942,9 @@ GAME_CUSTOM( 199?, m4toot__3, m4toot, "tot05dr.p1", 0x0000, 0x020000, CRC(8
GAME_CUSTOM( 199?, m4toot__4, m4toot, "tot05dy.p1", 0x0000, 0x020000, CRC(bcde29a1) SHA1(cf8af40faf81a2a3141d3addd6b28c917beeda49), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 32)" )
GAME_CUSTOM( 199?, m4toot__5, m4toot, "tot05k.p1", 0x0000, 0x020000, CRC(138afd4a) SHA1(bc53d71d926da7aca74c79f45c47610e62e347b6), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 33)" )
GAME_CUSTOM( 199?, m4toot__6, m4toot, "tot05r.p1", 0x0000, 0x020000, CRC(a085467b) SHA1(de2deda7635c9565db0f69aa6f375216ed36b7bb), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 34)" )
-GAME_CUSTOM( 199?, m4toot__7, m4toot, "tot05s.p1", 0x0000, 0x020000, CRC(7dd1cfa8) SHA1(3bd0eeb621cc81ac462a6981e081837985f6635b), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 35)" )
GAME_CUSTOM( 199?, m4toot__8, m4toot, "tot05y.p1", 0x0000, 0x020000, CRC(9469ddb4) SHA1(553812e3ece921d31c585b6a412c00ea5095b1b0), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 36)" )
+// "(C)1993 BARCREST" and "TOT 0.6"
+GAME_CUSTOM( 199?, m4toot__aj, m4toot, "tot06s.p1", 0x0000, 0x020000, CRC(c6140fea) SHA1(c2257dd84bf97b71580e8b873fc745dfa456ddd9), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (TOT 0.6)" )
GAME_CUSTOM( 199?, m4toot__9, m4toot, "tot06ad.p1", 0x0000, 0x020000, CRC(ebe50569) SHA1(1906f1a8d47cc9ee3fa703ad57b180f8a4cdcf89), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 37)" )
GAME_CUSTOM( 199?, m4toot__aa, m4toot, "tot06b.p1", 0x0000, 0x020000, CRC(4d5a8ebe) SHA1(d30da9ce729fed7ad42b30d522b2b6d65a462b84), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 38)" )
GAME_CUSTOM( 199?, m4toot__ab, m4toot, "tot06bd.p1", 0x0000, 0x020000, CRC(66ffabac) SHA1(25822e42a58173b8f51dcbbd98d041b261e675e4), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 39)" )
@@ -922,10 +955,12 @@ GAME_CUSTOM( 199?, m4toot__af, m4toot, "tot06dr.p1", 0x0000, 0x020000, CRC(9
GAME_CUSTOM( 199?, m4toot__ag, m4toot, "tot06dy.p1", 0x0000, 0x020000, CRC(abdb2304) SHA1(1c29f4176306f472323388f8c34b102930fb9f5f), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 44)" )
GAME_CUSTOM( 199?, m4toot__ah, m4toot, "tot06k.p1", 0x0000, 0x020000, CRC(079d26e8) SHA1(60e3d02d62f6fde6bdf4b9e77702549d493ccf09), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 45)" )
GAME_CUSTOM( 199?, m4toot__ai, m4toot, "tot06r.p1", 0x0000, 0x020000, CRC(b4929dd9) SHA1(fa3d99b8f6344c9511ecc864d4fff4629b105b5f), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 46)" )
-GAME_CUSTOM( 199?, m4toot__aj, m4toot, "tot06s.p1", 0x0000, 0x020000, CRC(c6140fea) SHA1(c2257dd84bf97b71580e8b873fc745dfa456ddd9), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 47)" )
GAME_CUSTOM( 199?, m4toot__ak, m4toot, "tot06y.p1", 0x0000, 0x020000, CRC(807e0616) SHA1(2a3f89239a7fa43dfde90dd7ad929747e888074b), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 48)" )
-GAME_CUSTOM( 199?, m4toot__al, m4toot, "tten2010", 0x0000, 0x020000, CRC(28373e9a) SHA1(496df7b511b950b5affe9d65c80037f3ecddc5f8), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (set 49)" )
+// "(C)1993 BARCREST" and "TOC 0.1"
+GAME_CUSTOM( 199?, m4toot__al, m4toot, "tten2010", 0x0000, 0x020000, CRC(28373e9a) SHA1(496df7b511b950b5affe9d65c80037f3ecddc5f8), "Barcrest","Ten Out Of Ten (Barcrest) (MPU4) (TOC 0.1)" )
+// no copyright string and "TOC 0.3"
GAME_CUSTOM( 199?, m4toot__za, m4toot, "tot15g", 0x0000, 0x020000, CRC(1f9508ad) SHA1(33089ea05f6adecf8f4004aa1e4d626969b6ac3a), "hack?","Ten Out Of Ten (Barcrest) (MPU4) (TOC 0.3, hack?)" )
+// no copyright string and "TOT 0.4"
GAME_CUSTOM( 199?, m4toot__zb, m4toot, "tot15t", 0x0000, 0x020000, CRC(1ce7f467) SHA1(cf47a126500680107a2f31743c3fff8290b595b8), "hack?","Ten Out Of Ten (Barcrest) (MPU4) (TOT 0.4, hack?)" )
#define M4EAW_EXTRA_ROMS \
@@ -1142,7 +1177,22 @@ GAME_CUSTOM( 199?, m4wta__af, m4wta, "wta5.5n",
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4goodtm, 0, "gtr20d.p1", 0x0000, 0x020000, CRC(a19eaef1) SHA1(5e9f9cffd841b9d4f21175e3dcec7436d016bb19), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 1)" )
+// "(C)1993 BARCREST" and "GTR 2.0"
+GAME_CUSTOM( 199?, m4goodtm, 0, "gtr20s.p1", 0x0000, 0x020000, CRC(91d2632d) SHA1(b8a7ef106a16e0526626cd69e82d07616d5c07d9), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTR 2.0)" )
+GAME_CUSTOM( 199?, m4goodtm__ae, m4goodtm, "gtr20d.p1", 0x0000, 0x020000, CRC(a19eaef1) SHA1(5e9f9cffd841b9d4f21175e3dcec7436d016bb19), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 1)" )
+GAME_CUSTOM( 199?, m4goodtm__4, m4goodtm, "gtr20ad.p1", 0x0000, 0x020000, CRC(38cf724f) SHA1(e58c02e5ca4ff0ecab41fe4597aa652ff8cc604f), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 32)" )
+GAME_CUSTOM( 199?, m4goodtm__5, m4goodtm, "gtr20b.p1", 0x0000, 0x020000, CRC(820d5cba) SHA1(d297500c3a5388d7c9203fcb15778079e8671329), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 33)" )
+GAME_CUSTOM( 199?, m4goodtm__6, m4goodtm, "gtr20bd.p1", 0x0000, 0x020000, CRC(7208da19) SHA1(c28b50eb91204a7494664b082ce57a910fdb29fd), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 34)" )
+GAME_CUSTOM( 199?, m4goodtm__7, m4goodtm, "gtr20dh.p1", 0x0000, 0x020000, CRC(0f13d16f) SHA1(3a159982a3c5231d577848ca1cde17e8d84660a1), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 35)" )
+GAME_CUSTOM( 199?, m4goodtm__8, m4goodtm, "gtr20dk.p1", 0x0000, 0x020000, CRC(8bc0c97e) SHA1(3b3eb7e44aa3f9ce19f6f612ea6bd24cc78630ff), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 36)" )
+GAME_CUSTOM( 199?, m4goodtm__9, m4goodtm, "gtr20dr.p1", 0x0000, 0x020000, CRC(112e17c7) SHA1(519a62d61a0aa8dc2433369bd74f62f61a85994c), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 37)" )
+GAME_CUSTOM( 199?, m4goodtm__aa, m4goodtm, "gtr20dy.p1", 0x0000, 0x020000, CRC(bf2c52b1) SHA1(c8f97b56e9782b23c0ca8795ae2663c89660225e), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 38)" )
+GAME_CUSTOM( 199?, m4goodtm__ab, m4goodtm, "gtr20h.p1", 0x0000, 0x020000, CRC(ff1657cc) SHA1(07dfbc8c2b2d8fb7001ef51d80ef46562111d3ac), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 39)" )
+GAME_CUSTOM( 199?, m4goodtm__ac, m4goodtm, "gtr20k.p1", 0x0000, 0x020000, CRC(7bc54fdd) SHA1(287c1a403429bae1cc3a4ba9dfe9b510777a64b1), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 40)" )
+GAME_CUSTOM( 199?, m4goodtm__ad, m4goodtm, "gtr20r.p1", 0x0000, 0x020000, CRC(e12b9164) SHA1(a54993c4f9ffc08c03905e6f50e499eba13db0d6), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 41)" )
+GAME_CUSTOM( 199?, m4goodtm__af, m4goodtm, "gtr20y.p1", 0x0000, 0x020000, CRC(4f29d412) SHA1(c6a72e6fa7daaa6d8622936d10ae745814f4a8b7), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 43)" )
+// "(C)1993 BARCREST" and "GTA 0.1"
+GAME_CUSTOM( 199?, m4goodtm__l, m4goodtm, "gta01s.p1", 0x0000, 0x020000, CRC(4340d9f6) SHA1(e9ccd419318bc3a3aba35a0104a98d1756b41731), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTA 0.1)" )
GAME_CUSTOM( 199?, m4goodtm__a, m4goodtm, "gta01ad.p1", 0x0000, 0x020000, CRC(2b556e66) SHA1(50a042fdb53294f74ab23a41a8a850dd14ad580d), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 2)" )
GAME_CUSTOM( 199?, m4goodtm__b, m4goodtm, "gta01b.p1", 0x0000, 0x020000, CRC(67dc4342) SHA1(bade42f329b4ab19e5802d8ac8b139486b05ac5a), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 3)" )
GAME_CUSTOM( 199?, m4goodtm__c, m4goodtm, "gta01bd.p1", 0x0000, 0x020000, CRC(6192c630) SHA1(f18c5042dc45add52b3bd0c28ad1574a85a9f3c4), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 4)" )
@@ -1154,9 +1204,9 @@ GAME_CUSTOM( 199?, m4goodtm__h, m4goodtm, "gta01dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4goodtm__i, m4goodtm, "gta01h.p1", 0x0000, 0x020000, CRC(444fb109) SHA1(ad04dbc67dade0012ce61718854f7656abd9d342), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 10)" )
GAME_CUSTOM( 199?, m4goodtm__j, m4goodtm, "gta01k.p1", 0x0000, 0x020000, CRC(9e145025) SHA1(d26b4aaee4d08d7470e862dc0e5a80c914025991), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 11)" )
GAME_CUSTOM( 199?, m4goodtm__k, m4goodtm, "gta01r.p1", 0x0000, 0x020000, CRC(04fa8e9c) SHA1(9ac94b59dcf8e4e123dd0f1f422d23698f1c8c38), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 12)" )
-GAME_CUSTOM( 199?, m4goodtm__l, m4goodtm, "gta01s.p1", 0x0000, 0x020000, CRC(4340d9f6) SHA1(e9ccd419318bc3a3aba35a0104a98d1756b41731), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 13)" )
GAME_CUSTOM( 199?, m4goodtm__m, m4goodtm, "gta01y.p1", 0x0000, 0x020000, CRC(aaf8cbea) SHA1(a027a0a243538a6b417b3859db90adc64eeb4d31), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 14)" )
-GAME_CUSTOM( 199?, m4goodtm__n, m4goodtm, "gtk02k.p1", 0x0000, 0x020000, CRC(a1665c5d) SHA1(056dcd9370df56129a65267fb70bbfac498f5a97), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 15)" )
+// "(C)1993 BARCREST" and "GTR 1.0"
+GAME_CUSTOM( 199?, m4goodtm__z, m4goodtm, "gtr10s.p1", 0x0000, 0x020000, CRC(f43fd459) SHA1(7247048088bd39cf8b20d96b1c08be48b005ac86), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTR 1.0)" )
GAME_CUSTOM( 199?, m4goodtm__o, m4goodtm, "gtr10ad.p1", 0x0000, 0x020000, CRC(b776f5dd) SHA1(9b6bf6b4d02e432ef411a9d2501c0dc7c5b551b1), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 16)" )
GAME_CUSTOM( 199?, m4goodtm__p, m4goodtm, "gtr10b.p1", 0x0000, 0x020000, CRC(3a0aee1d) SHA1(d7adf7118943ac946082b6c3687e10773f25608e), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 17)" )
GAME_CUSTOM( 199?, m4goodtm__q, m4goodtm, "gtr10bd.p1", 0x0000, 0x020000, CRC(fdb15d8b) SHA1(2542765c382cd84be1a1e7d6654e4668b1fc7fea), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 18)" )
@@ -1168,23 +1218,9 @@ GAME_CUSTOM( 199?, m4goodtm__v, m4goodtm, "gtr10dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4goodtm__w, m4goodtm, "gtr10h.p1", 0x0000, 0x020000, CRC(4711e56b) SHA1(3717b418758039286174594563281c21e4752eb5), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 24)" )
GAME_CUSTOM( 199?, m4goodtm__x, m4goodtm, "gtr10k.p1", 0x0000, 0x020000, CRC(c3c2fd7a) SHA1(d6e91fed1276c660cfe8e92c6902951803947a56), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 25)" )
GAME_CUSTOM( 199?, m4goodtm__y, m4goodtm, "gtr10r.p1", 0x0000, 0x020000, CRC(592c23c3) SHA1(17e7a22c9b80e8669cb46f691d56251bbf0717d0), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 26)" )
-GAME_CUSTOM( 199?, m4goodtm__z, m4goodtm, "gtr10s.p1", 0x0000, 0x020000, CRC(f43fd459) SHA1(7247048088bd39cf8b20d96b1c08be48b005ac86), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 27)" )
GAME_CUSTOM( 199?, m4goodtm__0, m4goodtm, "gtr10y.p1", 0x0000, 0x020000, CRC(f72e66b5) SHA1(14e09a94e1cde77e87573ad7e0f438485f637dfc), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 28)" )
-GAME_CUSTOM( 199?, m4goodtm__1, m4goodtm, "gtr11s", 0x0000, 0x020000, CRC(ff4bd1fb) SHA1(959a7975209e2d17c5b3e4adc72bd52bd3005035), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 29)" )
-GAME_CUSTOM( 199?, m4goodtm__2, m4goodtm, "gtr15g", 0x0000, 0x020000, CRC(9da85042) SHA1(3148e654380f1bcca93c01a282f1c409e4f2d393), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 30)" )
-GAME_CUSTOM( 199?, m4goodtm__3, m4goodtm, "gtr15t", 0x0000, 0x020000, CRC(581bcc5b) SHA1(cf80bba2b2e44c886b9bf6ae6ab1c83e2fbd7888), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 31)" )
-GAME_CUSTOM( 199?, m4goodtm__4, m4goodtm, "gtr20ad.p1", 0x0000, 0x020000, CRC(38cf724f) SHA1(e58c02e5ca4ff0ecab41fe4597aa652ff8cc604f), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 32)" )
-GAME_CUSTOM( 199?, m4goodtm__5, m4goodtm, "gtr20b.p1", 0x0000, 0x020000, CRC(820d5cba) SHA1(d297500c3a5388d7c9203fcb15778079e8671329), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 33)" )
-GAME_CUSTOM( 199?, m4goodtm__6, m4goodtm, "gtr20bd.p1", 0x0000, 0x020000, CRC(7208da19) SHA1(c28b50eb91204a7494664b082ce57a910fdb29fd), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 34)" )
-GAME_CUSTOM( 199?, m4goodtm__7, m4goodtm, "gtr20dh.p1", 0x0000, 0x020000, CRC(0f13d16f) SHA1(3a159982a3c5231d577848ca1cde17e8d84660a1), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 35)" )
-GAME_CUSTOM( 199?, m4goodtm__8, m4goodtm, "gtr20dk.p1", 0x0000, 0x020000, CRC(8bc0c97e) SHA1(3b3eb7e44aa3f9ce19f6f612ea6bd24cc78630ff), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 36)" )
-GAME_CUSTOM( 199?, m4goodtm__9, m4goodtm, "gtr20dr.p1", 0x0000, 0x020000, CRC(112e17c7) SHA1(519a62d61a0aa8dc2433369bd74f62f61a85994c), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 37)" )
-GAME_CUSTOM( 199?, m4goodtm__aa, m4goodtm, "gtr20dy.p1", 0x0000, 0x020000, CRC(bf2c52b1) SHA1(c8f97b56e9782b23c0ca8795ae2663c89660225e), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 38)" )
-GAME_CUSTOM( 199?, m4goodtm__ab, m4goodtm, "gtr20h.p1", 0x0000, 0x020000, CRC(ff1657cc) SHA1(07dfbc8c2b2d8fb7001ef51d80ef46562111d3ac), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 39)" )
-GAME_CUSTOM( 199?, m4goodtm__ac, m4goodtm, "gtr20k.p1", 0x0000, 0x020000, CRC(7bc54fdd) SHA1(287c1a403429bae1cc3a4ba9dfe9b510777a64b1), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 40)" )
-GAME_CUSTOM( 199?, m4goodtm__ad, m4goodtm, "gtr20r.p1", 0x0000, 0x020000, CRC(e12b9164) SHA1(a54993c4f9ffc08c03905e6f50e499eba13db0d6), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 41)" )
-GAME_CUSTOM( 199?, m4goodtm__ae, m4goodtm, "gtr20s.p1", 0x0000, 0x020000, CRC(91d2632d) SHA1(b8a7ef106a16e0526626cd69e82d07616d5c07d9), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 42)" )
-GAME_CUSTOM( 199?, m4goodtm__af, m4goodtm, "gtr20y.p1", 0x0000, 0x020000, CRC(4f29d412) SHA1(c6a72e6fa7daaa6d8622936d10ae745814f4a8b7), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 43)" )
+// "(C)1993 BARCREST" and "GTS 0.1"
+GAME_CUSTOM( 199?, m4goodtm__ar, m4goodtm, "gts01s.p1", 0x0000, 0x020000, CRC(b3819e1f) SHA1(fb44500e06b8a6b09e6b707ee8c0cfe7844870a2), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTS 0.1)" )
GAME_CUSTOM( 199?, m4goodtm__ag, m4goodtm, "gts01ad.p1", 0x0000, 0x020000, CRC(b415d3f3) SHA1(a22d4cbce9b66049c000806b565c86cd3d91fd82), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 44)" )
GAME_CUSTOM( 199?, m4goodtm__ah, m4goodtm, "gts01b.p1", 0x0000, 0x020000, CRC(a05ea188) SHA1(5b6acadaf8b0d18b9c9daaf4aea45202cad13355), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 45)" )
GAME_CUSTOM( 199?, m4goodtm__ai, m4goodtm, "gts01bd.p1", 0x0000, 0x020000, CRC(fed27ba5) SHA1(14f6fd7c3e964c3e6547a4bf5fa5d7cd802f715d), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 46)" )
@@ -1196,9 +1232,9 @@ GAME_CUSTOM( 199?, m4goodtm__an, m4goodtm, "gts01dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4goodtm__ao, m4goodtm, "gts01h.p1", 0x0000, 0x020000, CRC(83cd53c3) SHA1(a4233e22d0bf53b3ddc4c951894a653e7951f5ad), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 52)" )
GAME_CUSTOM( 199?, m4goodtm__ap, m4goodtm, "gts01k.p1", 0x0000, 0x020000, CRC(5996b2ef) SHA1(874d69a4adc31667ea177b3a0350b77bb735ea8d), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 53)" )
GAME_CUSTOM( 199?, m4goodtm__aq, m4goodtm, "gts01r.p1", 0x0000, 0x020000, CRC(c3786c56) SHA1(c9659df6302046c466e6447b8b427628c88b773d), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 54)" )
-GAME_CUSTOM( 199?, m4goodtm__ar, m4goodtm, "gts01s.p1", 0x0000, 0x020000, CRC(b3819e1f) SHA1(fb44500e06b8a6b09e6b707ee8c0cfe7844870a2), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 55)" )
GAME_CUSTOM( 199?, m4goodtm__as, m4goodtm, "gts01y.p1", 0x0000, 0x020000, CRC(6d7a2920) SHA1(7d31087e3645e05baf6b0100966d4773a6d023cd), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 56)" )
-GAME_CUSTOM( 199?, m4goodtm__at, m4goodtm, "gts02s.t", 0x0000, 0x020000, CRC(e4f5ebcc) SHA1(3e070628375db980583c3b38e2676d73fbeaae68), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 57)" )
+// "(C)1993 BARCREST" and "GTS 1.0"
+GAME_CUSTOM( 199?, m4goodtm__a5, m4goodtm, "gts10s.p1", 0x0000, 0x020000, CRC(2851ba23) SHA1(7597a2df22aa0e2670be2d5bb2407ea1feace3a0), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTS 1.0)" )
GAME_CUSTOM( 199?, m4goodtm__au, m4goodtm, "gts10ad.p1", 0x0000, 0x020000, CRC(b754490c) SHA1(26811ae53b3ee8ae0a381604109f0f77f096e2c6), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 58)" )
GAME_CUSTOM( 199?, m4goodtm__av, m4goodtm, "gts10b.p1", 0x0000, 0x020000, CRC(21410553) SHA1(2060269ab6dc9375b6e7101b3944305fcd4b6d12), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 59)" )
GAME_CUSTOM( 199?, m4goodtm__aw, m4goodtm, "gts10bd.p1", 0x0000, 0x020000, CRC(fd93e15a) SHA1(b9574f34f1e7a92cc75d6aed8914f94ad661bba3), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 60)" )
@@ -1210,8 +1246,17 @@ GAME_CUSTOM( 199?, m4goodtm__a1, m4goodtm, "gts10dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4goodtm__a2, m4goodtm, "gts10h.p1", 0x0000, 0x020000, CRC(02d2f718) SHA1(9f46ef4cc7d08c42cf617b471e599ca21b4cd72f), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 66)" )
GAME_CUSTOM( 199?, m4goodtm__a3, m4goodtm, "gts10k.p1", 0x0000, 0x020000, CRC(d8891634) SHA1(0019d2b3dd1c59d37d9c13e912907a55f2a9ca5f), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 67)" )
GAME_CUSTOM( 199?, m4goodtm__a4, m4goodtm, "gts10r.p1", 0x0000, 0x020000, CRC(4267c88d) SHA1(22047782c384caeb9cf2de69dcdd05f42ee137ad), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 68)" )
-GAME_CUSTOM( 199?, m4goodtm__a5, m4goodtm, "gts10s.p1", 0x0000, 0x020000, CRC(2851ba23) SHA1(7597a2df22aa0e2670be2d5bb2407ea1feace3a0), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 69)" )
GAME_CUSTOM( 199?, m4goodtm__a6, m4goodtm, "gts10y.p1", 0x0000, 0x020000, CRC(ec658dfb) SHA1(a9d8ba1b66811ccd336892160d47e5d42eb83a23), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (set 70)" )
+// "(C)1993 BARCREST" and "GTS 0.2"
+GAME_CUSTOM( 199?, m4goodtm__at, m4goodtm, "gts02s.t", 0x0000, 0x020000, CRC(e4f5ebcc) SHA1(3e070628375db980583c3b38e2676d73fbeaae68), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTS 0.2)" )
+// "(C)1993 BARCREST" and "GTK 0.2"
+GAME_CUSTOM( 199?, m4goodtm__n, m4goodtm, "gtk02k.p1", 0x0000, 0x020000, CRC(a1665c5d) SHA1(056dcd9370df56129a65267fb70bbfac498f5a97), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTK 0.2)" )
+// "(C)1993 BARCREST" and "GTR 1.1"
+GAME_CUSTOM( 199?, m4goodtm__1, m4goodtm, "gtr11s", 0x0000, 0x020000, CRC(ff4bd1fb) SHA1(959a7975209e2d17c5b3e4adc72bd52bd3005035), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTR 1.1)" )
+// no copyright string and "GTR 1.0"
+GAME_CUSTOM( 199?, m4goodtm__2, m4goodtm, "gtr15g", 0x0000, 0x020000, CRC(9da85042) SHA1(3148e654380f1bcca93c01a282f1c409e4f2d393), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTR 1.0, hack)" )
+// no copyright string and "GTS 0.1"
+GAME_CUSTOM( 199?, m4goodtm__3, m4goodtm, "gtr15t", 0x0000, 0x020000, CRC(581bcc5b) SHA1(cf80bba2b2e44c886b9bf6ae6ab1c83e2fbd7888), "Barcrest","Let The Good Times Roll (Barcrest) (MPU4) (GTS 0.1, hack)" )
#define M4JPGEM_EXTRA_ROMS \
@@ -1391,19 +1436,8 @@ GAME_CUSTOM( 199?, m4jpgemc__w, m4jpgemc, "hge01y.p1", 0x0000, 0x010000,
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4jolgem, 0, "gem07s.p1", 0x0000, 0x020000, CRC(945ad0d2) SHA1(d636bc41a4f887d24affc0f5b644c5d5351cf0df), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4jolgem__a, m4jolgem, "gem05s", 0x0000, 0x020000, CRC(b7ceafc2) SHA1(b66d846da5ff20df912d31695eaef146dbbe759e), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4jolgem__b, m4jolgem, "gem06ad.p1", 0x0000, 0x020000, CRC(a3270974) SHA1(59992779415ff20b8589843510099b77c9b157fd), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4jolgem__c, m4jolgem, "gem06b.p1", 0x0000, 0x020000, CRC(188ea295) SHA1(b8a2bdede4478a582f041fd3ff84b5563feaedd3), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4jolgem__d, m4jolgem, "gem06bd.p1", 0x0000, 0x020000, CRC(4d1b6a6f) SHA1(6cb733b3f8e011e1d12a9aee25577e2bee7deb1a), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4jolgem__e, m4jolgem, "gem06d.p1", 0x0000, 0x020000, CRC(b68ce7e3) SHA1(ec4400f7c2bb79204fdec1d061801afdd4de70f2), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 6)" )
-GAME_CUSTOM( 199?, m4jolgem__f, m4jolgem, "gem06dh.p1", 0x0000, 0x020000, CRC(0dae55fa) SHA1(3f8a23e4efc0c059852801882865baa6654a4eb3), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4jolgem__g, m4jolgem, "gem06dr.p1", 0x0000, 0x020000, CRC(d7f5b4d6) SHA1(18ff01d9f56d772863698bc72d8e9ec61a9ac9d8), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 8)" )
-GAME_CUSTOM( 199?, m4jolgem__h, m4jolgem, "gem06dy.p1", 0x0000, 0x020000, CRC(19771aa3) SHA1(e785196e55353952000d805d23502bc220b2c747), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 9)" )
-GAME_CUSTOM( 199?, m4jolgem__i, m4jolgem, "gem06h.p1", 0x0000, 0x020000, CRC(583b9d00) SHA1(6cd43f74c9d4d9d9a4b995277313049a353e6d80), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4jolgem__j, m4jolgem, "gem06r.p1", 0x0000, 0x020000, CRC(82607c2c) SHA1(a30366773305aacbba96f0c211a67448dd8a2702), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4jolgem__k, m4jolgem, "gem06s.p1", 0x0000, 0x020000, CRC(e0d82632) SHA1(35a51394a68311d03800db671fbd634bae087e86), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 12)" )
-GAME_CUSTOM( 199?, m4jolgem__l, m4jolgem, "gem06y.p1", 0x0000, 0x020000, CRC(4ce2d259) SHA1(bca3e5f79048965bc5c0e80565bbb5ebeefeac87), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 13)" )
+// "(C)1993 BARCREST" and "GEM 0.7"
+GAME_CUSTOM( 199?, m4jolgem, 0, "gem07s.p1", 0x0000, 0x020000, CRC(945ad0d2) SHA1(d636bc41a4f887d24affc0f5b644c5d5351cf0df), "Barcrest","Jolly Gems (Barcrest) (MPU4) (GEM 0.7)" )
GAME_CUSTOM( 199?, m4jolgem__m, m4jolgem, "gem07ad.p1", 0x0000, 0x020000, CRC(21496739) SHA1(05771636542275ecae1cd45bc248ed104a422f03), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 14)" )
GAME_CUSTOM( 199?, m4jolgem__n, m4jolgem, "gem07b.p1", 0x0000, 0x020000, CRC(70ca3435) SHA1(ff631f9adea268c1160646bacca976c069751ba8), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 15)" )
GAME_CUSTOM( 199?, m4jolgem__o, m4jolgem, "gem07bd.p1", 0x0000, 0x020000, CRC(cf750422) SHA1(01c275c90f33afe4cd54c1b9c4963b6c5e66596b), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 16)" )
@@ -1414,6 +1448,22 @@ GAME_CUSTOM( 199?, m4jolgem__s, m4jolgem, "gem07dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4jolgem__t, m4jolgem, "gem07h.p1", 0x0000, 0x020000, CRC(307f0ba0) SHA1(518acd033599b188e972e51753ac610623038aca), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 21)" )
GAME_CUSTOM( 199?, m4jolgem__u, m4jolgem, "gem07r.p1", 0x0000, 0x020000, CRC(ea24ea8c) SHA1(8d3598e44d219f1d66b63bf3ca4062eb84ecbe60), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 22)" )
GAME_CUSTOM( 199?, m4jolgem__v, m4jolgem, "gem07y.p1", 0x0000, 0x020000, CRC(24a644f9) SHA1(b97b83ce0ebf315529efe6d5be051ad71f2e648a), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 23)" )
+// "(C)1993 BARCREST" and "GEM 0.5"
+GAME_CUSTOM( 199?, m4jolgem__a, m4jolgem, "gem05s", 0x0000, 0x020000, CRC(b7ceafc2) SHA1(b66d846da5ff20df912d31695eaef146dbbe759e), "Barcrest","Jolly Gems (Barcrest) (MPU4) (GEM 0.5)" )
+// "(C)1993 BARCREST" and "GEM 0.6"
+GAME_CUSTOM( 199?, m4jolgem__k, m4jolgem, "gem06s.p1", 0x0000, 0x020000, CRC(e0d82632) SHA1(35a51394a68311d03800db671fbd634bae087e86), "Barcrest","Jolly Gems (Barcrest) (MPU4) (GEM 0.6)" )
+GAME_CUSTOM( 199?, m4jolgem__b, m4jolgem, "gem06ad.p1", 0x0000, 0x020000, CRC(a3270974) SHA1(59992779415ff20b8589843510099b77c9b157fd), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 3)" )
+GAME_CUSTOM( 199?, m4jolgem__c, m4jolgem, "gem06b.p1", 0x0000, 0x020000, CRC(188ea295) SHA1(b8a2bdede4478a582f041fd3ff84b5563feaedd3), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 4)" )
+GAME_CUSTOM( 199?, m4jolgem__d, m4jolgem, "gem06bd.p1", 0x0000, 0x020000, CRC(4d1b6a6f) SHA1(6cb733b3f8e011e1d12a9aee25577e2bee7deb1a), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 5)" )
+GAME_CUSTOM( 199?, m4jolgem__e, m4jolgem, "gem06d.p1", 0x0000, 0x020000, CRC(b68ce7e3) SHA1(ec4400f7c2bb79204fdec1d061801afdd4de70f2), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 6)" )
+GAME_CUSTOM( 199?, m4jolgem__f, m4jolgem, "gem06dh.p1", 0x0000, 0x020000, CRC(0dae55fa) SHA1(3f8a23e4efc0c059852801882865baa6654a4eb3), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 7)" )
+GAME_CUSTOM( 199?, m4jolgem__g, m4jolgem, "gem06dr.p1", 0x0000, 0x020000, CRC(d7f5b4d6) SHA1(18ff01d9f56d772863698bc72d8e9ec61a9ac9d8), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 8)" )
+GAME_CUSTOM( 199?, m4jolgem__h, m4jolgem, "gem06dy.p1", 0x0000, 0x020000, CRC(19771aa3) SHA1(e785196e55353952000d805d23502bc220b2c747), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 9)" )
+GAME_CUSTOM( 199?, m4jolgem__i, m4jolgem, "gem06h.p1", 0x0000, 0x020000, CRC(583b9d00) SHA1(6cd43f74c9d4d9d9a4b995277313049a353e6d80), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 10)" )
+GAME_CUSTOM( 199?, m4jolgem__j, m4jolgem, "gem06r.p1", 0x0000, 0x020000, CRC(82607c2c) SHA1(a30366773305aacbba96f0c211a67448dd8a2702), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 11)" )
+GAME_CUSTOM( 199?, m4jolgem__l, m4jolgem, "gem06y.p1", 0x0000, 0x020000, CRC(4ce2d259) SHA1(bca3e5f79048965bc5c0e80565bbb5ebeefeac87), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 13)" )
+// "(C)1993 BARCREST" and "GMS 0.4"
+GAME_CUSTOM( 199?, m4jolgem__7, m4jolgem, "gms04s.p1", 0x0000, 0x020000, CRC(93f25eef) SHA1(d4bfb2787df10dd09281d33341fbf666850ac23d), "Barcrest","Jolly Gems (Barcrest) (MPU4) (GMS 0.4)" )
GAME_CUSTOM( 199?, m4jolgem__w, m4jolgem, "gms04ad.p1", 0x0000, 0x020000, CRC(afd91cf8) SHA1(43f2549d81d9a414c5e2e049fe62a6939ba48943), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 24)" )
GAME_CUSTOM( 199?, m4jolgem__x, m4jolgem, "gms04b.p1", 0x0000, 0x020000, CRC(a11cd9fd) SHA1(16b23c8091da2ada9823f204e7cd5f02b68d37c3), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 25)" )
GAME_CUSTOM( 199?, m4jolgem__y, m4jolgem, "gms04bd.p1", 0x0000, 0x020000, CRC(41e57fe3) SHA1(77322a0988422df6feb5f6871758fbdcf410dae5), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 26)" )
@@ -1425,8 +1475,9 @@ GAME_CUSTOM( 199?, m4jolgem__3, m4jolgem, "gms04dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4jolgem__4, m4jolgem, "gms04h.p1", 0x0000, 0x020000, CRC(e1a9e668) SHA1(8b732c52dc221934f57a369e8a20ac2df1aa562c), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 32)" )
GAME_CUSTOM( 199?, m4jolgem__5, m4jolgem, "gms04k.p1", 0x0000, 0x020000, CRC(88fdbc75) SHA1(b1842e2f29e2f3d81c6679a407827601955f02f4), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 33)" )
GAME_CUSTOM( 199?, m4jolgem__6, m4jolgem, "gms04r.p1", 0x0000, 0x020000, CRC(3bf20744) SHA1(9b8d1273545abbf5a7e8e0735e4f23ce024505b9), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 34)" )
-GAME_CUSTOM( 199?, m4jolgem__7, m4jolgem, "gms04s.p1", 0x0000, 0x020000, CRC(93f25eef) SHA1(d4bfb2787df10dd09281d33341fbf666850ac23d), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 35)" )
GAME_CUSTOM( 199?, m4jolgem__8, m4jolgem, "gms04y.p1", 0x0000, 0x020000, CRC(f570a931) SHA1(dd50e4626feb9a3e6f0868fa9030204c737f1567), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 36)" )
+// "(C)1993 BARCREST" and "GMS 0.5"
+GAME_CUSTOM( 199?, m4jolgem__ak, m4jolgem, "gms05s.p1", 0x0000, 0x020000, CRC(1b830e70) SHA1(eb053a629bd7854759d14acd9793f7eb545fc008), "Barcrest","Jolly Gems (Barcrest) (MPU4) (GMS 0.5)" )
GAME_CUSTOM( 199?, m4jolgem__9, m4jolgem, "gms05ad.p1", 0x0000, 0x020000, CRC(77d4829c) SHA1(45a240cc2aa3829160854274c928d20655966087), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 37)" )
GAME_CUSTOM( 199?, m4jolgem__aa, m4jolgem, "gms05b.p1", 0x0000, 0x020000, CRC(b929f905) SHA1(028d74687f5c6443d84e84a03666278b9df8e657), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 38)" )
GAME_CUSTOM( 199?, m4jolgem__ab, m4jolgem, "gms05bd.p1", 0x0000, 0x020000, CRC(99e8e187) SHA1(cbb8d3403e6d21fce45b05d1889d17d0355857b4), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 39)" )
@@ -1438,12 +1489,15 @@ GAME_CUSTOM( 199?, m4jolgem__ag, m4jolgem, "gms05dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4jolgem__ah, m4jolgem, "gms05h.p1", 0x0000, 0x020000, CRC(f99cc690) SHA1(c3cf8aaf8376e9d4eff37afdd818802f9ec4fe64), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 45)" )
GAME_CUSTOM( 199?, m4jolgem__ai, m4jolgem, "gms05k.p1", 0x0000, 0x020000, CRC(90c89c8d) SHA1(4b8e23c9a6bd85563be041d8e95175dc4c39b8e7), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 46)" )
GAME_CUSTOM( 199?, m4jolgem__aj, m4jolgem, "gms05r.p1", 0x0000, 0x020000, CRC(23c727bc) SHA1(0187a14a789f018e6161f2ae160f82c87d03b6a8), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 47)" )
-GAME_CUSTOM( 199?, m4jolgem__ak, m4jolgem, "gms05s.p1", 0x0000, 0x020000, CRC(1b830e70) SHA1(eb053a629bd7854759d14acd9793f7eb545fc008), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 48)" )
GAME_CUSTOM( 199?, m4jolgem__al, m4jolgem, "gms05y.p1", 0x0000, 0x020000, CRC(ed4589c9) SHA1(899622c22d29c0ef05bf562176943c9749e236a2), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 49)" )
-GAME_CUSTOM( 199?, m4jolgem__am, m4jolgem, "jgem15g", 0x0000, 0x020000, CRC(8288eb80) SHA1(bfb1004b49914b6ae1b0608c9e5c61efe4635ba3), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 50)" )
-GAME_CUSTOM( 199?, m4jolgem__an, m4jolgem, "jgem15t", 0x0000, 0x020000, CRC(248f0b95) SHA1(89257c583d6540ffc0fa39f7cb31a87ec8f1f45b), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 51)" )
-GAME_CUSTOM( 199?, m4jolgem__ao, m4jolgem, "jjem0", 0x0000, 0x020000, CRC(9b54a881) SHA1(3b1bfacf8fe295c771c558154fe2fca70f049df0), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 52)" )
-GAME_CUSTOM( 199?, m4jolgem__ap, m4jolgem, "jgs_xa_x.1_0", 0x0000, 0x020000, CRC(7ac16252) SHA1(b01b2333e1e99f9404a7e0ac80e5e8ee834ec39d), "Barcrest","Jolly Gems (Barcrest) (MPU4) (set 53)" )
+// "(C)1993 BARCREST" and "GMS 0.3"
+GAME_CUSTOM( 199?, m4jolgem__ao, m4jolgem, "jjem0", 0x0000, 0x020000, CRC(9b54a881) SHA1(3b1bfacf8fe295c771c558154fe2fca70f049df0), "Barcrest","Jolly Gems (Barcrest) (MPU4) (GMS 0.3 K)" )
+// "(C)1999 BWB" and "JGS 1.0"
+GAME_CUSTOM( 199?, m4jolgem__ap, m4jolgem, "jgs_xa_x.1_0", 0x0000, 0x020000, CRC(7ac16252) SHA1(b01b2333e1e99f9404a7e0ac80e5e8ee834ec39d), "Bwb","Jolly Gems (Barcrest) (MPU4) (JGS 1.0)" )
+// no copyright string and "GEM 0.6"
+GAME_CUSTOM( 199?, m4jolgem__am, m4jolgem, "jgem15g", 0x0000, 0x020000, CRC(8288eb80) SHA1(bfb1004b49914b6ae1b0608c9e5c61efe4635ba3), "hack","Jolly Gems (Barcrest) (MPU4) (GEM 0.6, hack)" )
+// no copyright string and "GMS 0.4"
+GAME_CUSTOM( 199?, m4jolgem__an, m4jolgem, "jgem15t", 0x0000, 0x020000, CRC(248f0b95) SHA1(89257c583d6540ffc0fa39f7cb31a87ec8f1f45b), "hack","Jolly Gems (Barcrest) (MPU4) (GMS 0.4, hack)" )
#define M4HITTOP_EXTRA_ROMS \
@@ -1833,8 +1887,25 @@ GAME_CUSTOM( 199?, m4ready__a1, m4ready, "rgt10dy.p1", 0x0000, 0x010000, CR
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4jackpot8per , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4mag7s, 0, "mas12y.p1", 0x0000, 0x020000, CRC(5f012d8e) SHA1(069b493285df9ac3639c43349245a77890333dcc), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4mag7s__a, m4mag7s, "ma714s", 0x0000, 0x020000, CRC(9c1d4f97) SHA1(7875f044f992b313f4dfaae2e7b604baf16387a3), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 2)" )
+// "(C)1993 BARCREST" and "MAS 1.2"
+GAME_CUSTOM( 199?, m4mag7s, 0, "mas12s.p1", 0x0000, 0x020000, CRC(0a94e574) SHA1(e4516638fb7f783e79cfcdbbef1188965351eae2), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (MAS 1.2)" )
+GAME_CUSTOM( 199?, m4mag7s__ag, m4mag7s, "mas12y.p1", 0x0000, 0x020000, CRC(5f012d8e) SHA1(069b493285df9ac3639c43349245a77890333dcc), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 1)" )
+GAME_CUSTOM( 199?, m4mag7s__4, m4mag7s, "mas12ad.p1", 0x0000, 0x020000, CRC(46c6522a) SHA1(e8bfa00afb0e07c524023a92c715f191ad26e759), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 32)" )
+GAME_CUSTOM( 199?, m4mag7s__5, m4mag7s, "mas12b.p1", 0x0000, 0x020000, CRC(9225a526) SHA1(7c9139c45ddfbcbbabf59c28f17d19ce3b8f7c05), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 33)" )
+GAME_CUSTOM( 199?, m4mag7s__6, m4mag7s, "mas12bd.p1", 0x0000, 0x020000, CRC(cbdcfcef) SHA1(11eb24b04535e8fc922bc802ab2f8af5e70881d5), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 34)" )
+GAME_CUSTOM( 199?, m4mag7s__7, m4mag7s, "mas12c.p1", 0x0000, 0x020000, CRC(a56f1834) SHA1(9a3bcca0ff62100a36b1de06c621108910da51d8), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 35)" )
+GAME_CUSTOM( 199?, m4mag7s__8, m4mag7s, "mas12d.p1", 0x0000, 0x020000, CRC(ef3eae50) SHA1(0eb26a6ffc963a84bfb11934bd9c1fecfec15f2a), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 36)" )
+GAME_CUSTOM( 199?, m4mag7s__9, m4mag7s, "mas12dh.p1", 0x0000, 0x020000, CRC(0530acac) SHA1(43d73351b5002afbc0e14c49056c7cac17c93854), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 37)" )
+GAME_CUSTOM( 199?, m4mag7s__aa, m4mag7s, "mas12dk.p1", 0x0000, 0x020000, CRC(811b54b9) SHA1(c54b50b64856615eb362e0de889b7d758866ee77), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 38)" )
+GAME_CUSTOM( 199?, m4mag7s__ab, m4mag7s, "mas12dr.p1", 0x0000, 0x020000, CRC(3214ef88) SHA1(8f0ab310363882c92fb4d58197ee093822e9611c), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 39)" )
+GAME_CUSTOM( 199?, m4mag7s__ac, m4mag7s, "mas12dy.p1", 0x0000, 0x020000, CRC(06f87447) SHA1(9df82a89c9846eb51a3719870b91dd675a97cbe6), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 40)" )
+GAME_CUSTOM( 199?, m4mag7s__ad, m4mag7s, "mas12h.p1", 0x0000, 0x020000, CRC(5cc9f565) SHA1(833c77ebd895e884430193d14edf0882b5bc5a75), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 41)" )
+GAME_CUSTOM( 199?, m4mag7s__ae, m4mag7s, "mas12k.p1", 0x0000, 0x020000, CRC(d8e20d70) SHA1(a411a06b89ff21ad7f55196f80dd2766a99bfc21), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 42)" )
+GAME_CUSTOM( 199?, m4mag7s__af, m4mag7s, "mas12r.p1", 0x0000, 0x020000, CRC(6bedb641) SHA1(39b5a8dfb581ae6ed209c6f2a12c06b38ad861a3), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 43)" )
+// "(C)1993 BARCREST" and "MA7 1.4"
+GAME_CUSTOM( 199?, m4mag7s__a, m4mag7s, "ma714s", 0x0000, 0x020000, CRC(9c1d4f97) SHA1(7875f044f992b313f4dfaae2e7b604baf16387a3), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (MA7 1.4)" )
+// "(C)1993 BARCREST" and "MA7 1.5"
+GAME_CUSTOM( 199?, m4mag7s__m, m4mag7s, "ma715s.p1", 0x0000, 0x020000, CRC(6518c171) SHA1(df884c875f3cfb8e12fb35550dd1f5b331e4b204), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (MA7 1.5)" )
GAME_CUSTOM( 199?, m4mag7s__b, m4mag7s, "ma715ad.p1", 0x0000, 0x020000, CRC(f807cc3f) SHA1(d402a1bf6b9a69d26b0806da83d6a943760aa6ed), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 3)" )
GAME_CUSTOM( 199?, m4mag7s__c, m4mag7s, "ma715b.p1", 0x0000, 0x020000, CRC(bedfd8b5) SHA1(a2bcd42e7163779aa7bb74ddc4a44d07f1179994), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 4)" )
GAME_CUSTOM( 199?, m4mag7s__d, m4mag7s, "ma715bd.p1", 0x0000, 0x020000, CRC(b2c06469) SHA1(00ed3998c24c7f03fc270e3025d3815163b6ff38), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 5)" )
@@ -1846,8 +1917,9 @@ GAME_CUSTOM( 199?, m4mag7s__i, m4mag7s, "ma715dy.p1", 0x0000, 0x020000
GAME_CUSTOM( 199?, m4mag7s__j, m4mag7s, "ma715h.p1", 0x0000, 0x020000, CRC(9a0a4e66) SHA1(ef8acb1f2deda724ff7b2850b1ce7a09f88ac011), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 11)" )
GAME_CUSTOM( 199?, m4mag7s__k, m4mag7s, "ma715k.p1", 0x0000, 0x020000, CRC(4717cbd2) SHA1(b88b17dda9e16ecbcce55bdb99c23d9e8267b7b9), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 12)" )
GAME_CUSTOM( 199?, m4mag7s__l, m4mag7s, "ma715r.p1", 0x0000, 0x020000, CRC(ddf9156b) SHA1(b8fb10944d910cd72a3268a80e8cd1b07dbee8f3), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 13)" )
-GAME_CUSTOM( 199?, m4mag7s__m, m4mag7s, "ma715s.p1", 0x0000, 0x020000, CRC(6518c171) SHA1(df884c875f3cfb8e12fb35550dd1f5b331e4b204), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 14)" )
GAME_CUSTOM( 199?, m4mag7s__n, m4mag7s, "ma715y.p1", 0x0000, 0x020000, CRC(73fb501d) SHA1(2449da89e811ebf27970a8a9336107f85d876229), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 15)" )
+// "(C)1993 BARCREST" and "MA7 1.6"
+GAME_CUSTOM( 199?, m4mag7s__z, m4mag7s, "ma716s.p1", 0x0000, 0x020000, CRC(30fd2e9f) SHA1(9ed06ee736a09b36f48fb3b69be03b39861b0ea5), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (MA7 1.6)" )
GAME_CUSTOM( 199?, m4mag7s__o, m4mag7s, "ma716ad.p1", 0x0000, 0x020000, CRC(7632ce64) SHA1(2308d777110aa7636c4c0fc08be23d1732ba3b69), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 16)" )
GAME_CUSTOM( 199?, m4mag7s__p, m4mag7s, "ma716b.p1", 0x0000, 0x020000, CRC(cc8e289a) SHA1(7f5bac0374ff0eb0395f8d3c18ddad82c3e9c51d), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 17)" )
GAME_CUSTOM( 199?, m4mag7s__q, m4mag7s, "ma716bd.p1", 0x0000, 0x020000, CRC(3cf56632) SHA1(43be834b4d2d3a7fb9893e966ee909971319a10e), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 18)" )
@@ -1859,24 +1931,11 @@ GAME_CUSTOM( 199?, m4mag7s__v, m4mag7s, "ma716dy.p1", 0x0000, 0x020000
GAME_CUSTOM( 199?, m4mag7s__w, m4mag7s, "ma716h.p1", 0x0000, 0x020000, CRC(e85bbe49) SHA1(83ff53b1f4d2c14d313905b3194139089b1f0363), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 24)" )
GAME_CUSTOM( 199?, m4mag7s__x, m4mag7s, "ma716k.p1", 0x0000, 0x020000, CRC(35463bfd) SHA1(c288189f5ca7f00d1ae66521f77976275da39cc1), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 25)" )
GAME_CUSTOM( 199?, m4mag7s__y, m4mag7s, "ma716r.p1", 0x0000, 0x020000, CRC(afa8e544) SHA1(83f7d80ec359ba832caa9814e9a9fa04174ae596), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 26)" )
-GAME_CUSTOM( 199?, m4mag7s__z, m4mag7s, "ma716s.p1", 0x0000, 0x020000, CRC(30fd2e9f) SHA1(9ed06ee736a09b36f48fb3b69be03b39861b0ea5), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 27)" )
GAME_CUSTOM( 199?, m4mag7s__0, m4mag7s, "ma716y.p1", 0x0000, 0x020000, CRC(01aaa032) SHA1(9b27b5b90cbf89e537110964837507cff4573094), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 28)" )
-GAME_CUSTOM( 199?, m4mag7s__1, m4mag7s, "mag715g", 0x0000, 0x020000, CRC(5a28a94b) SHA1(16621ac2294dd7f0b9e58125ba800331e879f39e), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 29)" )
-GAME_CUSTOM( 199?, m4mag7s__2, m4mag7s, "mag715t", 0x0000, 0x020000, CRC(cdea8e84) SHA1(ad38be8bb5e1247c53c7b48ec6dceebe3e757c9c), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 30)" )
-GAME_CUSTOM( 199?, m4mag7s__3, m4mag7s, "mag7s1-6_15.bin", 0x0000, 0x020000, CRC(2a4d7328) SHA1(78b6b358e7ff3efd086512550e7690f59ee4b225), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 31)" )
-GAME_CUSTOM( 199?, m4mag7s__4, m4mag7s, "mas12ad.p1", 0x0000, 0x020000, CRC(46c6522a) SHA1(e8bfa00afb0e07c524023a92c715f191ad26e759), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 32)" )
-GAME_CUSTOM( 199?, m4mag7s__5, m4mag7s, "mas12b.p1", 0x0000, 0x020000, CRC(9225a526) SHA1(7c9139c45ddfbcbbabf59c28f17d19ce3b8f7c05), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 33)" )
-GAME_CUSTOM( 199?, m4mag7s__6, m4mag7s, "mas12bd.p1", 0x0000, 0x020000, CRC(cbdcfcef) SHA1(11eb24b04535e8fc922bc802ab2f8af5e70881d5), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 34)" )
-GAME_CUSTOM( 199?, m4mag7s__7, m4mag7s, "mas12c.p1", 0x0000, 0x020000, CRC(a56f1834) SHA1(9a3bcca0ff62100a36b1de06c621108910da51d8), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 35)" )
-GAME_CUSTOM( 199?, m4mag7s__8, m4mag7s, "mas12d.p1", 0x0000, 0x020000, CRC(ef3eae50) SHA1(0eb26a6ffc963a84bfb11934bd9c1fecfec15f2a), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 36)" )
-GAME_CUSTOM( 199?, m4mag7s__9, m4mag7s, "mas12dh.p1", 0x0000, 0x020000, CRC(0530acac) SHA1(43d73351b5002afbc0e14c49056c7cac17c93854), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 37)" )
-GAME_CUSTOM( 199?, m4mag7s__aa, m4mag7s, "mas12dk.p1", 0x0000, 0x020000, CRC(811b54b9) SHA1(c54b50b64856615eb362e0de889b7d758866ee77), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 38)" )
-GAME_CUSTOM( 199?, m4mag7s__ab, m4mag7s, "mas12dr.p1", 0x0000, 0x020000, CRC(3214ef88) SHA1(8f0ab310363882c92fb4d58197ee093822e9611c), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 39)" )
-GAME_CUSTOM( 199?, m4mag7s__ac, m4mag7s, "mas12dy.p1", 0x0000, 0x020000, CRC(06f87447) SHA1(9df82a89c9846eb51a3719870b91dd675a97cbe6), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 40)" )
-GAME_CUSTOM( 199?, m4mag7s__ad, m4mag7s, "mas12h.p1", 0x0000, 0x020000, CRC(5cc9f565) SHA1(833c77ebd895e884430193d14edf0882b5bc5a75), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 41)" )
-GAME_CUSTOM( 199?, m4mag7s__ae, m4mag7s, "mas12k.p1", 0x0000, 0x020000, CRC(d8e20d70) SHA1(a411a06b89ff21ad7f55196f80dd2766a99bfc21), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 42)" )
-GAME_CUSTOM( 199?, m4mag7s__af, m4mag7s, "mas12r.p1", 0x0000, 0x020000, CRC(6bedb641) SHA1(39b5a8dfb581ae6ed209c6f2a12c06b38ad861a3), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 43)" )
-GAME_CUSTOM( 199?, m4mag7s__ag, m4mag7s, "mas12s.p1", 0x0000, 0x020000, CRC(0a94e574) SHA1(e4516638fb7f783e79cfcdbbef1188965351eae2), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 44)" )
+// "(C)1993 BARCREST" and "MA7 1.6" but doesn't display anything, bad? hack?
+GAME_CUSTOM( 199?, m4mag7s__3, m4mag7s, "mag7s1-6_15.bin", 0x0000, 0x020000, CRC(2a4d7328) SHA1(78b6b358e7ff3efd086512550e7690f59ee4b225), "hack","Magnificent 7s (Barcrest) (MPU4) (MA7 1.6, hack)" )
+// "(C)1993 BARCREST" and "MAS 1.3"
+GAME_CUSTOM( 199?, m4mag7s__at, m4mag7s, "mas13s.p1", 0x0000, 0x020000, CRC(80ca53c0) SHA1(19e67a259fca2fca3990f032d7825d67309d47d3), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (MAS 1.3)" )
GAME_CUSTOM( 199?, m4mag7s__ah, m4mag7s, "mas13ad.p1", 0x0000, 0x020000, CRC(f39f7e0e) SHA1(39453c09c2e8b84fce9e53fbe86244f2381e2ac5), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 45)" )
GAME_CUSTOM( 199?, m4mag7s__ai, m4mag7s, "mas13b.p1", 0x0000, 0x020000, CRC(71863b1f) SHA1(6214d485509f827dd7bbcd00855d6caaec13ba09), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 46)" )
GAME_CUSTOM( 199?, m4mag7s__aj, m4mag7s, "mas13bd.p1", 0x0000, 0x020000, CRC(7e85d0cb) SHA1(598338482bbe0e903983a4061b8f772cb24e4961), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 47)" )
@@ -1889,11 +1948,16 @@ GAME_CUSTOM( 199?, m4mag7s__ap, m4mag7s, "mas13dy.p1", 0x0000, 0x020000
GAME_CUSTOM( 199?, m4mag7s__aq, m4mag7s, "mas13h.p1", 0x0000, 0x020000, CRC(bf6a6b5c) SHA1(a89632a6f71d9a480193924e9e3d678bc06b6f3e), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 54)" )
GAME_CUSTOM( 199?, m4mag7s__ar, m4mag7s, "mas13k.p1", 0x0000, 0x020000, CRC(3b419349) SHA1(d72f6493a6f7631b44f27e9cde499bdd192b5e0a), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 55)" )
GAME_CUSTOM( 199?, m4mag7s__as, m4mag7s, "mas13r.p1", 0x0000, 0x020000, CRC(884e2878) SHA1(c4f070019116543f4683c088d915709c040145ff), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 56)" )
-GAME_CUSTOM( 199?, m4mag7s__at, m4mag7s, "mas13s.p1", 0x0000, 0x020000, CRC(80ca53c0) SHA1(19e67a259fca2fca3990f032d7825d67309d47d3), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 57)" )
GAME_CUSTOM( 199?, m4mag7s__au, m4mag7s, "mas13y.p1", 0x0000, 0x020000, CRC(bca2b3b7) SHA1(ff48b91578230bc77529cb59fbcb7e3bd77b946d), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 58)" )
-GAME_CUSTOM( 199?, m4mag7s__av, m4mag7s, "mas10w.p1", 0x0000, 0x020000, CRC(e2fcc14a) SHA1(69b37a2d130b34636d5ff8e646d2be6d7e8b19f9), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 59)" )
-GAME_CUSTOM( 199?, m4mag7s__aw, m4mag7s, "m7_sj_dc.2r1", 0x0000, 0x020000, CRC(0eefd40c) SHA1(2c30bc42d23c7cfb0a382b47f7ed865865341e2f), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 60)" )
-GAME_CUSTOM( 199?, m4mag7s__ax, m4mag7s, "m7_sja_c.2r1", 0x0000, 0x020000, CRC(3933772c) SHA1(5e9d12a9f58ce5129634b8a4c8c0f083031df295), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (set 61)" )
+// "(C)1993 BARCREST" and "MAS 1.0" (but doesn't boot and doesn't have the usual looking data in the 1st half, maybe bad, maybe 1st half was erased by another game for another platform, check)
+GAME_CUSTOM( 199?, m4mag7s__av, m4mag7s, "mas10w.p1", 0x0000, 0x020000, CRC(e2fcc14a) SHA1(69b37a2d130b34636d5ff8e646d2be6d7e8b19f9), "Barcrest","Magnificent 7s (Barcrest) (MPU4) (MAS 1.0, bad?)" )
+// "(C)1998 B.W.B." and "M7 2.0"
+GAME_CUSTOM( 199?, m4mag7s__aw, m4mag7s, "m7_sj_dc.2r1", 0x0000, 0x020000, CRC(0eefd40c) SHA1(2c30bc42d23c7cfb0a382b47f7ed865865341e2f), "Bwb","Magnificent 7s (Barcrest) (MPU4) (M7 2.0 CD)" )
+GAME_CUSTOM( 199?, m4mag7s__ax, m4mag7s, "m7_sja_c.2r1", 0x0000, 0x020000, CRC(3933772c) SHA1(5e9d12a9f58ce5129634b8a4c8c0f083031df295), "Bwb","Magnificent 7s (Barcrest) (MPU4) (M7 2.0 CK)" )
+// no copyright string and "MA7 1.5"
+GAME_CUSTOM( 199?, m4mag7s__1, m4mag7s, "mag715g", 0x0000, 0x020000, CRC(5a28a94b) SHA1(16621ac2294dd7f0b9e58125ba800331e879f39e), "hack","Magnificent 7s (Barcrest) (MPU4) (MA7 1.5, hack)" )
+// no copyright string and "MAS 1.2"
+GAME_CUSTOM( 199?, m4mag7s__2, m4mag7s, "mag715t", 0x0000, 0x020000, CRC(cdea8e84) SHA1(ad38be8bb5e1247c53c7b48ec6dceebe3e757c9c), "hack","Magnificent 7s (Barcrest) (MPU4) (MAS 1.2, hack)" )
#define M4MAKMNT_EXTRA_ROMS \
@@ -1910,6 +1974,18 @@ GAME_CUSTOM( 199?, m4mag7s__ax, m4mag7s, "m7_sja_c.2r1", 0x0000, 0x020000
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4makmnt, 0, "mams.p1", 0x0000, 0x020000, CRC(af08e1e6) SHA1(c7e87d351f67592084d758ee53ba4d354bb28866), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 1)" )
+GAME_CUSTOM( 199?, m4makmnt__o, m4makmnt, "mamad.p1", 0x0000, 0x020000, CRC(82f63f55) SHA1(2cbc514a49e826505580a57f17ee696bdf9bf436), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 16)" )
+GAME_CUSTOM( 199?, m4makmnt__p, m4makmnt, "mamb.p1", 0x0000, 0x020000, CRC(233c2e35) SHA1(823fc5736469c7e1d1da72bec8d64aabb277f9ab), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 17)" )
+GAME_CUSTOM( 199?, m4makmnt__q, m4makmnt, "mambd.p1", 0x0000, 0x020000, CRC(0fec9190) SHA1(6cea986853efc042c6325f31f790f80ae2993308), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 18)" )
+GAME_CUSTOM( 199?, m4makmnt__r, m4makmnt, "mamc.p1", 0x0000, 0x020000, CRC(14769327) SHA1(435406a46a60666bbe6ebc9392b21d5b0404cffd), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 19)" )
+GAME_CUSTOM( 199?, m4makmnt__s, m4makmnt, "mamd.p1", 0x0000, 0x020000, CRC(5e272543) SHA1(c974b21ba488568e12d47f51f21d3b94d40255f3), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 20)" )
+GAME_CUSTOM( 199?, m4makmnt__t, m4makmnt, "mamdk.p1", 0x0000, 0x020000, CRC(452b39c6) SHA1(8b065391abd01c7b9d6c5beb95cf17a52c8ebe1a), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 21)" )
+GAME_CUSTOM( 199?, m4makmnt__u, m4makmnt, "mamdy.p1", 0x0000, 0x020000, CRC(c2c81938) SHA1(de95d1e28af33dc96343cc615a945c5dfe3f04a7), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 22)" )
+GAME_CUSTOM( 199?, m4makmnt__v, m4makmnt, "mamk.p1", 0x0000, 0x020000, CRC(69fb8663) SHA1(741b6e7b97d0c9b243e8e318ed169f92f8fbd5e9), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 23)" )
+GAME_CUSTOM( 199?, m4makmnt__w, m4makmnt, "mamr.p1", 0x0000, 0x020000, CRC(daf43d52) SHA1(066cf554178d4e4fdff10c1e93567618f711d196), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 24)" )
+GAME_CUSTOM( 199?, m4makmnt__x, m4makmnt, "mamy.p1", 0x0000, 0x020000, CRC(ee18a69d) SHA1(d3cf2c5ed4ec00be4d68c895ca3973da1acccb79), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 25)" )
+
+GAME_CUSTOM( 199?, m4makmnt__k, m4makmnt, "mam04s.p1", 0x0000, 0x020000, CRC(08eac690) SHA1(e35793da266bd9dd8a018ba9773f368e36ce501d), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 12)" )
GAME_CUSTOM( 199?, m4makmnt__a, m4makmnt, "mam04ad.p1", 0x0000, 0x020000, CRC(9b750bc7) SHA1(10a86f0a0d18ce0be502a9d36282f6b5eef0ece5), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 2)" )
GAME_CUSTOM( 199?, m4makmnt__b, m4makmnt, "mam04b.p1", 0x0000, 0x020000, CRC(8f5cefa9) SHA1(fc0dfb67794d090ef15facd0f2b60e1d505b295f), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 3)" )
GAME_CUSTOM( 199?, m4makmnt__c, m4makmnt, "mam04bd.p1", 0x0000, 0x020000, CRC(166fa502) SHA1(345ad131d8757445c549312350507a3a804ca20e), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 4)" )
@@ -1920,21 +1996,9 @@ GAME_CUSTOM( 199?, m4makmnt__g, m4makmnt, "mam04dr.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4makmnt__h, m4makmnt, "mam04dy.p1", 0x0000, 0x020000, CRC(db4b2daa) SHA1(ba2fce6d7b6aa95a11f0054720e577db7415f1d2), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 9)" )
GAME_CUSTOM( 199?, m4makmnt__i, m4makmnt, "mam04k.p1", 0x0000, 0x020000, CRC(c59b47ff) SHA1(8022c6c988532d3f98edf5c59c97403ab2d0fb90), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 10)" )
GAME_CUSTOM( 199?, m4makmnt__j, m4makmnt, "mam04r.p1", 0x0000, 0x020000, CRC(7694fcce) SHA1(a67c76551240129914cc071543db96962f3b198f), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4makmnt__k, m4makmnt, "mam04s.p1", 0x0000, 0x020000, CRC(08eac690) SHA1(e35793da266bd9dd8a018ba9773f368e36ce501d), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 12)" )
GAME_CUSTOM( 199?, m4makmnt__l, m4makmnt, "mam04y.p1", 0x0000, 0x020000, CRC(42786701) SHA1(6efb0cbf630cd1b87715e692f76e368e3fba0856), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 13)" )
-GAME_CUSTOM( 199?, m4makmnt__m, m4makmnt, "mam15g", 0x0000, 0x020000, CRC(d3fd61f9) SHA1(1c738f818ea84f4bfca3c62fd9c34ce5e983b10a), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 14)" )
-GAME_CUSTOM( 199?, m4makmnt__n, m4makmnt, "mam15t", 0x0000, 0x020000, CRC(a5975cbe) SHA1(eb6dd70c79c6b051190055d71ec8421080e5ba39), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 15)" )
-GAME_CUSTOM( 199?, m4makmnt__o, m4makmnt, "mamad.p1", 0x0000, 0x020000, CRC(82f63f55) SHA1(2cbc514a49e826505580a57f17ee696bdf9bf436), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 16)" )
-GAME_CUSTOM( 199?, m4makmnt__p, m4makmnt, "mamb.p1", 0x0000, 0x020000, CRC(233c2e35) SHA1(823fc5736469c7e1d1da72bec8d64aabb277f9ab), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 17)" )
-GAME_CUSTOM( 199?, m4makmnt__q, m4makmnt, "mambd.p1", 0x0000, 0x020000, CRC(0fec9190) SHA1(6cea986853efc042c6325f31f790f80ae2993308), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 18)" )
-GAME_CUSTOM( 199?, m4makmnt__r, m4makmnt, "mamc.p1", 0x0000, 0x020000, CRC(14769327) SHA1(435406a46a60666bbe6ebc9392b21d5b0404cffd), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 19)" )
-GAME_CUSTOM( 199?, m4makmnt__s, m4makmnt, "mamd.p1", 0x0000, 0x020000, CRC(5e272543) SHA1(c974b21ba488568e12d47f51f21d3b94d40255f3), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 20)" )
-GAME_CUSTOM( 199?, m4makmnt__t, m4makmnt, "mamdk.p1", 0x0000, 0x020000, CRC(452b39c6) SHA1(8b065391abd01c7b9d6c5beb95cf17a52c8ebe1a), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 21)" )
-GAME_CUSTOM( 199?, m4makmnt__u, m4makmnt, "mamdy.p1", 0x0000, 0x020000, CRC(c2c81938) SHA1(de95d1e28af33dc96343cc615a945c5dfe3f04a7), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 22)" )
-GAME_CUSTOM( 199?, m4makmnt__v, m4makmnt, "mamk.p1", 0x0000, 0x020000, CRC(69fb8663) SHA1(741b6e7b97d0c9b243e8e318ed169f92f8fbd5e9), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 23)" )
-GAME_CUSTOM( 199?, m4makmnt__w, m4makmnt, "mamr.p1", 0x0000, 0x020000, CRC(daf43d52) SHA1(066cf554178d4e4fdff10c1e93567618f711d196), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 24)" )
-GAME_CUSTOM( 199?, m4makmnt__x, m4makmnt, "mamy.p1", 0x0000, 0x020000, CRC(ee18a69d) SHA1(d3cf2c5ed4ec00be4d68c895ca3973da1acccb79), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 25)" )
-GAME_CUSTOM( 199?, m4makmnt__y, m4makmnt, "mint2010", 0x0000, 0x020000, CRC(e60d10b9) SHA1(3abe7a7f33a73827ed6585d92fe53d4058c87baf), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 26)" )
+
+GAME_CUSTOM( 199?, m4makmnt__9, m4makmnt, "mmg04s.p1", 0x0000, 0x020000, CRC(1c46683e) SHA1(d08589bb32056ea599e6ffbbb795f46f8eff0782), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 37)" )
GAME_CUSTOM( 199?, m4makmnt__z, m4makmnt, "mmg04ad.p1", 0x0000, 0x020000, CRC(9cbf9691) SHA1(a68f2e9e0ec03dc47017c221a3e780e5cc992a15), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 27)" )
GAME_CUSTOM( 199?, m4makmnt__0, m4makmnt, "mmg04b.p1", 0x0000, 0x020000, CRC(2507742d) SHA1(3bdd6f43da4d4c923bedcc1eba5cb1e1b92ee473), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 28)" )
GAME_CUSTOM( 199?, m4makmnt__1, m4makmnt, "mmg04bd.p1", 0x0000, 0x020000, CRC(11a53854) SHA1(e52ee92f39645380864e86c694a345c028cb42cf), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 29)" )
@@ -1945,8 +2009,9 @@ GAME_CUSTOM( 199?, m4makmnt__5, m4makmnt, "mmg04dr.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4makmnt__6, m4makmnt, "mmg04dy.p1", 0x0000, 0x020000, CRC(dc81b0fc) SHA1(3154899d80375413936d2c08edaaf2e97d490c5b), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 34)" )
GAME_CUSTOM( 199?, m4makmnt__7, m4makmnt, "mmg04k.p1", 0x0000, 0x020000, CRC(6fc0dc7b) SHA1(4ad8ef1e666e4796d3a09ba4bda9e48c60266380), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 35)" )
GAME_CUSTOM( 199?, m4makmnt__8, m4makmnt, "mmg04r.p1", 0x0000, 0x020000, CRC(dccf674a) SHA1(a8b2ebeec8587e0655349baca700afc552c3e62d), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 36)" )
-GAME_CUSTOM( 199?, m4makmnt__9, m4makmnt, "mmg04s.p1", 0x0000, 0x020000, CRC(1c46683e) SHA1(d08589bb32056ea599e6ffbbb795f46f8eff0782), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 37)" )
GAME_CUSTOM( 199?, m4makmnt__aa, m4makmnt, "mmg04y.p1", 0x0000, 0x020000, CRC(e823fc85) SHA1(10414bbac8ac3bdbf11bc4092370c499fb9db650), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 38)" )
+
+GAME_CUSTOM( 199?, m4makmnt__al, m4makmnt, "mmg05s.p1", 0x0000, 0x020000, CRC(771c17c8) SHA1(d9e595ae020c48769fcbf3de718b6986b6fd8bc5), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 49)" )
GAME_CUSTOM( 199?, m4makmnt__ab, m4makmnt, "mmg05ad.p1", 0x0000, 0x020000, CRC(d1e70066) SHA1(9635da90808628ae84c6073fef9622a8f37bd069), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 39)" )
GAME_CUSTOM( 199?, m4makmnt__ac, m4makmnt, "mmg05b.p1", 0x0000, 0x020000, CRC(cc0335ff) SHA1(9ca52a49cc48cbfa7c394e0c22cc5075ad1096a1), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 40)" )
GAME_CUSTOM( 199?, m4makmnt__ad, m4makmnt, "mmg05bd.p1", 0x0000, 0x020000, CRC(5cfdaea3) SHA1(f9c5c4b4021ace3e17818c4d4462fe9c87a64d70), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 41)" )
@@ -1957,8 +2022,8 @@ GAME_CUSTOM( 199?, m4makmnt__ah, m4makmnt, "mmg05dr.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4makmnt__ai, m4makmnt, "mmg05dy.p1", 0x0000, 0x020000, CRC(91d9260b) SHA1(4442dea0682b737c0053ec4f1109114cdeb3d422), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 46)" )
GAME_CUSTOM( 199?, m4makmnt__aj, m4makmnt, "mmg05k.p1", 0x0000, 0x020000, CRC(86c49da9) SHA1(bf29075a87574009f9ad8fd36e2d3a84c50e6b26), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 47)" )
GAME_CUSTOM( 199?, m4makmnt__ak, m4makmnt, "mmg05r.p1", 0x0000, 0x020000, CRC(35cb2698) SHA1(6371313a179559240ddb55976546ecc8d511e104), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 48)" )
-GAME_CUSTOM( 199?, m4makmnt__al, m4makmnt, "mmg05s.p1", 0x0000, 0x020000, CRC(771c17c8) SHA1(d9e595ae020c48769fcbf3de718b6986b6fd8bc5), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 49)" )
GAME_CUSTOM( 199?, m4makmnt__am, m4makmnt, "mmg05y.p1", 0x0000, 0x020000, CRC(0127bd57) SHA1(3d1b59fda52f09fd8af59177b3f5c614b453ac25), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 50)" )
+
GAME_CUSTOM( 199?, m4makmnt__an, m4makmnt, "ma_x6__5.3_1", 0x0000, 0x010000, CRC(2fe3c309) SHA1(5dba65b29ea5492a78866863629d89f9a8588959), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 51)" )
GAME_CUSTOM( 199?, m4makmnt__ao, m4makmnt, "ma_x6__c.3_1", 0x0000, 0x010000, CRC(e9259a4d) SHA1(9a8e9590403f507f83197a898af5d543bda81b2b), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 52)" )
GAME_CUSTOM( 199?, m4makmnt__ap, m4makmnt, "ma_x6_d5.3_1", 0x0000, 0x010000, CRC(a93dba0d) SHA1(6fabe994ac6c9ea4ce2bae99df699fa100098926), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 53)" )
@@ -1966,6 +2031,9 @@ GAME_CUSTOM( 199?, m4makmnt__aq, m4makmnt, "ma_x6_dc.3_1", 0x0000, 0x010000,
GAME_CUSTOM( 199?, m4makmnt__ar, m4makmnt, "ma_x6a_5.3_1", 0x0000, 0x010000, CRC(79f673de) SHA1(805ea08f5ed016d25ec23dbc3952aad4873a1cde), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 55)" )
GAME_CUSTOM( 199?, m4makmnt__as, m4makmnt, "ma_x6a_c.3_1", 0x0000, 0x010000, CRC(43ede82a) SHA1(d6ec3dd170c56e90018568480bca72cd8390aa2d), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 56)" )
+GAME_CUSTOM( 199?, m4makmnt__m, m4makmnt, "mam15g", 0x0000, 0x020000, CRC(d3fd61f9) SHA1(1c738f818ea84f4bfca3c62fd9c34ce5e983b10a), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 14)" )
+GAME_CUSTOM( 199?, m4makmnt__n, m4makmnt, "mam15t", 0x0000, 0x020000, CRC(a5975cbe) SHA1(eb6dd70c79c6b051190055d71ec8421080e5ba39), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 15)" )
+GAME_CUSTOM( 199?, m4makmnt__y, m4makmnt, "mint2010", 0x0000, 0x020000, CRC(e60d10b9) SHA1(3abe7a7f33a73827ed6585d92fe53d4058c87baf), "Barcrest","Make A Mint (Barcrest) (MPU4) (set 26)" )
#define M4VIVAES_EXTRA_ROMS \
ROM_REGION( 0x48, "fakechr", 0 ) \
@@ -2069,9 +2137,22 @@ GAME_CUSTOM( 199?, m4vivaes__j, m4vivaes, "5p5vivaespana6-0.bin", 0x0000, 0
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4potblk, 0, "pbg16s.p1", 0x0000, 0x020000, CRC(36a1c679) SHA1(bf2eb5c2a07e61b7a2c0d8402b0e0583adfa22dc), "Barcrest","Pot Black (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4potblk__a, m4potblk, "pb15g", 0x0000, 0x020000, CRC(650a54be) SHA1(80a5bb95857c911c1972f8be5bf794637cb02323), "Barcrest","Pot Black (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4potblk__b, m4potblk, "pb15t", 0x0000, 0x020000, CRC(98628744) SHA1(1a0df7036c36f3b87d5a239e1c9edfd7c74d2ae8), "Barcrest","Pot Black (Barcrest) (MPU4) (set 3)" )
+GAME_CUSTOM( 199?, m4potblk__q, m4potblk, "pbg16ad.p1", 0x0000, 0x020000, CRC(919e90ba) SHA1(b32459b394595a5c3d238c6eec47c7d4d34fcdf8), "Barcrest","Pot Black (Barcrest) (MPU4) (set 18)" )
+GAME_CUSTOM( 199?, m4potblk__r, m4potblk, "pbg16b.p1", 0x0000, 0x020000, CRC(db445653) SHA1(145af560641f9becb6d98c2f157f94b0fdd6459c), "Barcrest","Pot Black (Barcrest) (MPU4) (set 19)" )
+GAME_CUSTOM( 199?, m4potblk__s, m4potblk, "pbg16bd.p1", 0x0000, 0x020000, CRC(db5938ec) SHA1(323f190c62f23b8092274dd17f07198f53abc828), "Barcrest","Pot Black (Barcrest) (MPU4) (set 20)" )
+GAME_CUSTOM( 199?, m4potblk__t, m4potblk, "pbg16d.p1", 0x0000, 0x020000, CRC(f8d7a418) SHA1(81a2d020ec03574b041b9be0b8ed96386804f4af), "Barcrest","Pot Black (Barcrest) (MPU4) (set 21)" )
+GAME_CUSTOM( 199?, m4potblk__u, m4potblk, "pbg16dh.p1", 0x0000, 0x020000, CRC(a642339a) SHA1(104b405923b71d69bc996dced4dc284d41397c5f), "Barcrest","Pot Black (Barcrest) (MPU4) (set 22)" )
+GAME_CUSTOM( 199?, m4potblk__v, m4potblk, "pbg16dk.p1", 0x0000, 0x020000, CRC(22912b8b) SHA1(cdbaaf0509fb6115182c8ac79002e1d983bcc765), "Barcrest","Pot Black (Barcrest) (MPU4) (set 23)" )
+GAME_CUSTOM( 199?, m4potblk__w, m4potblk, "pbg16dr.p1", 0x0000, 0x020000, CRC(b87ff532) SHA1(d64d4733523d4afe5b4e3ca5f2c33ee8d4ab1c2b), "Barcrest","Pot Black (Barcrest) (MPU4) (set 24)" )
+GAME_CUSTOM( 199?, m4potblk__x, m4potblk, "pbg16dy.p1", 0x0000, 0x020000, CRC(167db044) SHA1(291982c6af2486724be32b8f41ee66d699afad22), "Barcrest","Pot Black (Barcrest) (MPU4) (set 25)" )
+GAME_CUSTOM( 199?, m4potblk__y, m4potblk, "pbg16h.p1", 0x0000, 0x020000, CRC(a65f5d25) SHA1(6ea4bc92ecf849653c1abbb5c1e1d97d0e58a373), "Barcrest","Pot Black (Barcrest) (MPU4) (set 26)" )
+GAME_CUSTOM( 199?, m4potblk__z, m4potblk, "pbg16k.p1", 0x0000, 0x020000, CRC(228c4534) SHA1(e4a4e7ec059e4da568c507d8f1f006c04e1c13c4), "Barcrest","Pot Black (Barcrest) (MPU4) (set 27)" )
+GAME_CUSTOM( 199?, m4potblk__0, m4potblk, "pbg16r.p1", 0x0000, 0x020000, CRC(b8629b8d) SHA1(08fc4498b45f2e939c4c465d4d979aa4532b5ce4), "Barcrest","Pot Black (Barcrest) (MPU4) (set 28)" )
+GAME_CUSTOM( 199?, m4potblk__1, m4potblk, "pbg16y.p1", 0x0000, 0x020000, CRC(1660defb) SHA1(9f6112759b029e71056a92137f890910b6afb708), "Barcrest","Pot Black (Barcrest) (MPU4) (set 29)" )
+
GAME_CUSTOM( 199?, m4potblk__c, m4potblk, "pbg14s.p1", 0x0000, 0x020000, CRC(c9316c92) SHA1(d9248069c4702d4ce780ab82bdb783ba5aea034b), "Barcrest","Pot Black (Barcrest) (MPU4) (set 4)" )
+
+GAME_CUSTOM( 199?, m4potblk__o, m4potblk, "pbg15s.p1", 0x0000, 0x020000, CRC(f31c9a6a) SHA1(f2c7dceaabbe0689227f2c59d063ac20403eae1d), "Barcrest","Pot Black (Barcrest) (MPU4) (set 16)" )
GAME_CUSTOM( 199?, m4potblk__d, m4potblk, "pbg15ad.p1", 0x0000, 0x020000, CRC(ded4ba89) SHA1(f8b4727987bef1e74894df4e7549d3c28ba4de98), "Barcrest","Pot Black (Barcrest) (MPU4) (set 5)" )
GAME_CUSTOM( 199?, m4potblk__e, m4potblk, "pbg15b.p1", 0x0000, 0x020000, CRC(5a6570be) SHA1(f44e4511cc0c0f410104f9a36ae51b3972bd4522), "Barcrest","Pot Black (Barcrest) (MPU4) (set 6)" )
GAME_CUSTOM( 199?, m4potblk__f, m4potblk, "pbg15bd.p1", 0x0000, 0x020000, CRC(941312df) SHA1(51ec4052cfaa245873146d0ecb8834be5cc22db2), "Barcrest","Pot Black (Barcrest) (MPU4) (set 7)" )
@@ -2083,20 +2164,9 @@ GAME_CUSTOM( 199?, m4potblk__k, m4potblk, "pbg15dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4potblk__l, m4potblk, "pbg15h.p1", 0x0000, 0x020000, CRC(277e7bc8) SHA1(9f89a048fcf268883002bb0dcb14854949ebec46), "Barcrest","Pot Black (Barcrest) (MPU4) (set 13)" )
GAME_CUSTOM( 199?, m4potblk__m, m4potblk, "pbg15k.p1", 0x0000, 0x020000, CRC(a3ad63d9) SHA1(0e65ff6ae02bd42cb1b3c9249ac85dc13b4eb8ad), "Barcrest","Pot Black (Barcrest) (MPU4) (set 14)" )
GAME_CUSTOM( 199?, m4potblk__n, m4potblk, "pbg15r.p1", 0x0000, 0x020000, CRC(3943bd60) SHA1(cfcd1e2b76f592e3bc5b8ed33af66ad183e829e1), "Barcrest","Pot Black (Barcrest) (MPU4) (set 15)" )
-GAME_CUSTOM( 199?, m4potblk__o, m4potblk, "pbg15s.p1", 0x0000, 0x020000, CRC(f31c9a6a) SHA1(f2c7dceaabbe0689227f2c59d063ac20403eae1d), "Barcrest","Pot Black (Barcrest) (MPU4) (set 16)" )
GAME_CUSTOM( 199?, m4potblk__p, m4potblk, "pbg15y.p1", 0x0000, 0x020000, CRC(9741f816) SHA1(52482fed48574582ed48424666284695fe661880), "Barcrest","Pot Black (Barcrest) (MPU4) (set 17)" )
-GAME_CUSTOM( 199?, m4potblk__q, m4potblk, "pbg16ad.p1", 0x0000, 0x020000, CRC(919e90ba) SHA1(b32459b394595a5c3d238c6eec47c7d4d34fcdf8), "Barcrest","Pot Black (Barcrest) (MPU4) (set 18)" )
-GAME_CUSTOM( 199?, m4potblk__r, m4potblk, "pbg16b.p1", 0x0000, 0x020000, CRC(db445653) SHA1(145af560641f9becb6d98c2f157f94b0fdd6459c), "Barcrest","Pot Black (Barcrest) (MPU4) (set 19)" )
-GAME_CUSTOM( 199?, m4potblk__s, m4potblk, "pbg16bd.p1", 0x0000, 0x020000, CRC(db5938ec) SHA1(323f190c62f23b8092274dd17f07198f53abc828), "Barcrest","Pot Black (Barcrest) (MPU4) (set 20)" )
-GAME_CUSTOM( 199?, m4potblk__t, m4potblk, "pbg16d.p1", 0x0000, 0x020000, CRC(f8d7a418) SHA1(81a2d020ec03574b041b9be0b8ed96386804f4af), "Barcrest","Pot Black (Barcrest) (MPU4) (set 21)" )
-GAME_CUSTOM( 199?, m4potblk__u, m4potblk, "pbg16dh.p1", 0x0000, 0x020000, CRC(a642339a) SHA1(104b405923b71d69bc996dced4dc284d41397c5f), "Barcrest","Pot Black (Barcrest) (MPU4) (set 22)" )
-GAME_CUSTOM( 199?, m4potblk__v, m4potblk, "pbg16dk.p1", 0x0000, 0x020000, CRC(22912b8b) SHA1(cdbaaf0509fb6115182c8ac79002e1d983bcc765), "Barcrest","Pot Black (Barcrest) (MPU4) (set 23)" )
-GAME_CUSTOM( 199?, m4potblk__w, m4potblk, "pbg16dr.p1", 0x0000, 0x020000, CRC(b87ff532) SHA1(d64d4733523d4afe5b4e3ca5f2c33ee8d4ab1c2b), "Barcrest","Pot Black (Barcrest) (MPU4) (set 24)" )
-GAME_CUSTOM( 199?, m4potblk__x, m4potblk, "pbg16dy.p1", 0x0000, 0x020000, CRC(167db044) SHA1(291982c6af2486724be32b8f41ee66d699afad22), "Barcrest","Pot Black (Barcrest) (MPU4) (set 25)" )
-GAME_CUSTOM( 199?, m4potblk__y, m4potblk, "pbg16h.p1", 0x0000, 0x020000, CRC(a65f5d25) SHA1(6ea4bc92ecf849653c1abbb5c1e1d97d0e58a373), "Barcrest","Pot Black (Barcrest) (MPU4) (set 26)" )
-GAME_CUSTOM( 199?, m4potblk__z, m4potblk, "pbg16k.p1", 0x0000, 0x020000, CRC(228c4534) SHA1(e4a4e7ec059e4da568c507d8f1f006c04e1c13c4), "Barcrest","Pot Black (Barcrest) (MPU4) (set 27)" )
-GAME_CUSTOM( 199?, m4potblk__0, m4potblk, "pbg16r.p1", 0x0000, 0x020000, CRC(b8629b8d) SHA1(08fc4498b45f2e939c4c465d4d979aa4532b5ce4), "Barcrest","Pot Black (Barcrest) (MPU4) (set 28)" )
-GAME_CUSTOM( 199?, m4potblk__1, m4potblk, "pbg16y.p1", 0x0000, 0x020000, CRC(1660defb) SHA1(9f6112759b029e71056a92137f890910b6afb708), "Barcrest","Pot Black (Barcrest) (MPU4) (set 29)" )
+
+GAME_CUSTOM( 199?, m4potblk__ad, m4potblk, "pbs04s.p1", 0x0000, 0x020000, CRC(b4a7eaac) SHA1(295b793802a6145758861142133ced98f2258119), "Barcrest","Pot Black (Barcrest) (MPU4) (set 41)" )
GAME_CUSTOM( 199?, m4potblk__2, m4potblk, "pbs04ad.p1", 0x0000, 0x020000, CRC(c4fedb7d) SHA1(1ce1e524bd11e775c0f8498849c1d9ca41fcf912), "Barcrest","Pot Black (Barcrest) (MPU4) (set 30)" )
GAME_CUSTOM( 199?, m4potblk__3, m4potblk, "pbs04b.p1", 0x0000, 0x020000, CRC(f1fcaf2d) SHA1(786513cbfdde2f37c6ab3649781bc7c70bbdfb61), "Barcrest","Pot Black (Barcrest) (MPU4) (set 31)" )
GAME_CUSTOM( 199?, m4potblk__4, m4potblk, "pbs04bd.p1", 0x0000, 0x020000, CRC(49e475b8) SHA1(95548a22c67bd8df6df05503b6318b15bd84bb7a), "Barcrest","Pot Black (Barcrest) (MPU4) (set 32)" )
@@ -2108,8 +2178,9 @@ GAME_CUSTOM( 199?, m4potblk__9, m4potblk, "pbs04dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4potblk__aa, m4potblk, "pbs04h.p1", 0x0000, 0x020000, CRC(8ce7a45b) SHA1(1eab7d504b4a8f6158aa5878dcc62c9531169a85), "Barcrest","Pot Black (Barcrest) (MPU4) (set 38)" )
GAME_CUSTOM( 199?, m4potblk__ab, m4potblk, "pbs04k.p1", 0x0000, 0x020000, CRC(bb3b077b) SHA1(584fd9f1578c61e1a1c30068c42b16716c5d490f), "Barcrest","Pot Black (Barcrest) (MPU4) (set 39)" )
GAME_CUSTOM( 199?, m4potblk__ac, m4potblk, "pbs04r.p1", 0x0000, 0x020000, CRC(0834bc4a) SHA1(0064b1ec9db506c4dd14ed7ffeffa08bebc117b1), "Barcrest","Pot Black (Barcrest) (MPU4) (set 40)" )
-GAME_CUSTOM( 199?, m4potblk__ad, m4potblk, "pbs04s.p1", 0x0000, 0x020000, CRC(b4a7eaac) SHA1(295b793802a6145758861142133ced98f2258119), "Barcrest","Pot Black (Barcrest) (MPU4) (set 41)" )
GAME_CUSTOM( 199?, m4potblk__ae, m4potblk, "pbs04y.p1", 0x0000, 0x020000, CRC(3cd82785) SHA1(fb2cb5acfc60d0896da9c22b7a9370e7c0271cf7), "Barcrest","Pot Black (Barcrest) (MPU4) (set 42)" )
+
+GAME_CUSTOM( 199?, m4potblk__ar, m4potblk, "pbs06s.p1", 0x0000, 0x020000, CRC(d2b42b29) SHA1(a077605b1f9f3082a03882b4f5b360a530a97135), "Barcrest","Pot Black (Barcrest) (MPU4) (set 55)" )
GAME_CUSTOM( 199?, m4potblk__af, m4potblk, "pbs06ad.p1", 0x0000, 0x020000, CRC(6344d6c7) SHA1(7c01149d9f21a15b1067a42d3f8def2868f15181), "Barcrest","Pot Black (Barcrest) (MPU4) (set 43)" )
GAME_CUSTOM( 199?, m4potblk__ag, m4potblk, "pbs06b.p1", 0x0000, 0x020000, CRC(2056d268) SHA1(ac978d59ff3cead2678d56579e404eb7494ab957), "Barcrest","Pot Black (Barcrest) (MPU4) (set 44)" )
GAME_CUSTOM( 199?, m4potblk__ah, m4potblk, "pbs06bd.p1", 0x0000, 0x020000, CRC(ee5e7802) SHA1(568b6b2e6d58ee766a74badb60118dc0899b8b68), "Barcrest","Pot Black (Barcrest) (MPU4) (set 45)" )
@@ -2122,14 +2193,16 @@ GAME_CUSTOM( 199?, m4potblk__an, m4potblk, "pbs06dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4potblk__ao, m4potblk, "pbs06h.p1", 0x0000, 0x020000, CRC(5d4dd91e) SHA1(a715dde45ce7f3c6e62cb08eb5eaacb918803280), "Barcrest","Pot Black (Barcrest) (MPU4) (set 52)" )
GAME_CUSTOM( 199?, m4potblk__ap, m4potblk, "pbs06k.p1", 0x0000, 0x020000, CRC(6a917a3e) SHA1(b8e6fb7ea83c5a363fdd756a5479a51d15cb246d), "Barcrest","Pot Black (Barcrest) (MPU4) (set 53)" )
GAME_CUSTOM( 199?, m4potblk__aq, m4potblk, "pbs06r.p1", 0x0000, 0x020000, CRC(d99ec10f) SHA1(62ffc2772495fd165b2ad9f76a54154f51464394), "Barcrest","Pot Black (Barcrest) (MPU4) (set 54)" )
-GAME_CUSTOM( 199?, m4potblk__ar, m4potblk, "pbs06s.p1", 0x0000, 0x020000, CRC(d2b42b29) SHA1(a077605b1f9f3082a03882b4f5b360a530a97135), "Barcrest","Pot Black (Barcrest) (MPU4) (set 55)" )
GAME_CUSTOM( 199?, m4potblk__as, m4potblk, "pbs06y.p1", 0x0000, 0x020000, CRC(ed725ac0) SHA1(4c2c38e1c2ce7e15c409e06b6f21410f04b70348), "Barcrest","Pot Black (Barcrest) (MPU4) (set 56)" )
+
GAME_CUSTOM( 199?, m4potblk__at, m4potblk, "po_x6__5.1_1", 0x0000, 0x020000, CRC(1fe40fd1) SHA1(5e16ff5b1019d83c1f40d63f89c16030dae0ab11), "Barcrest","Pot Black (Barcrest) (MPU4) (set 57)" )
GAME_CUSTOM( 199?, m4potblk__au, m4potblk, "po_x6__t.1_1", 0x0000, 0x020000, CRC(c9314f6e) SHA1(4f9226883f9e1963c568eea327775688fb966431), "Barcrest","Pot Black (Barcrest) (MPU4) (set 58)" )
GAME_CUSTOM( 199?, m4potblk__av, m4potblk, "po_x6_d5.1_1", 0x0000, 0x020000, CRC(404d5a99) SHA1(7a846df3b7f9f0108d84e4a4c2d199e5971b6375), "Barcrest","Pot Black (Barcrest) (MPU4) (set 59)" )
GAME_CUSTOM( 199?, m4potblk__aw, m4potblk, "po_x6_dt.1_1", 0x0000, 0x020000, CRC(7213fd77) SHA1(07482cb54d4f03aad62c54d66322f7101f6c8dcf), "Barcrest","Pot Black (Barcrest) (MPU4) (set 60)" )
GAME_CUSTOM( 199?, m4potblk__ax, m4potblk, "po_x6a_t.1_1", 0x0000, 0x020000, CRC(1b47a76a) SHA1(3587e4c0b50e359529e132376af3cd239194db31), "Barcrest","Pot Black (Barcrest) (MPU4) (set 61)" )
+GAME_CUSTOM( 199?, m4potblk__a, m4potblk, "pb15g", 0x0000, 0x020000, CRC(650a54be) SHA1(80a5bb95857c911c1972f8be5bf794637cb02323), "Barcrest","Pot Black (Barcrest) (MPU4) (set 2)" )
+GAME_CUSTOM( 199?, m4potblk__b, m4potblk, "pb15t", 0x0000, 0x020000, CRC(98628744) SHA1(1a0df7036c36f3b87d5a239e1c9edfd7c74d2ae8), "Barcrest","Pot Black (Barcrest) (MPU4) (set 3)" )
#define M4PLACBT_EXTRA_ROMS \
@@ -2149,18 +2222,6 @@ GAME_CUSTOM( 199?, m4potblk__ax, m4potblk, "po_x6a_t.1_1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4placbt, 0, "pyb07s.p1", 0x0000, 0x020000, CRC(ad02705a) SHA1(027bcbbd828e4fd23831af9554d582857e6784e1), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4placbt__a, m4placbt, "pyb06ad.p1", 0x0000, 0x020000, CRC(e08b6176) SHA1(ccfb43ee033b4ed36e8656bcb4ba62230dde8466), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4placbt__b, m4placbt, "pyb06b.p1", 0x0000, 0x020000, CRC(b6486055) SHA1(e0926720aba1e9d1327c32db29220d91050ea338), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4placbt__c, m4placbt, "pyb06bd.p1", 0x0000, 0x020000, CRC(6d91cfb3) SHA1(82d6ed6d6b2022d0945ec0fb8012fa4fef7029e0), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4placbt__d, m4placbt, "pyb06c.p1", 0x0000, 0x020000, CRC(8102dd47) SHA1(7b834d896e104b1f42069d6fa0bce75b5c15b899), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4placbt__e, m4placbt, "pyb06d.p1", 0x0000, 0x020000, CRC(cb536b23) SHA1(874eaaa434a0212edefa05a440e7e5f826d1f92e), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 6)" )
-GAME_CUSTOM( 199?, m4placbt__f, m4placbt, "pyb06dk.p1", 0x0000, 0x020000, CRC(275667e5) SHA1(4ac40eaa03462c1a70f0366f589bc2a59972827b), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4placbt__g, m4placbt, "pyb06dr.p1", 0x0000, 0x020000, CRC(9459dcd4) SHA1(ae8b559205c6cb3f2e3b1131cd99ff7ce037c573), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 8)" )
-GAME_CUSTOM( 199?, m4placbt__h, m4placbt, "pyb06dy.p1", 0x0000, 0x020000, CRC(a0b5471b) SHA1(95400779bb1d3fdeada5d8fca4fd66a89d3e13a2), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 9)" )
-GAME_CUSTOM( 199?, m4placbt__i, m4placbt, "pyb06k.p1", 0x0000, 0x020000, CRC(fc8fc803) SHA1(81fa3104075b56f51c35d944fa3652aa8cce988c), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4placbt__j, m4placbt, "pyb06r.p1", 0x0000, 0x020000, CRC(4f807332) SHA1(e3852ac9811d780ac87f375acaf5ec1026071b2e), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4placbt__k, m4placbt, "pyb06s.p1", 0x0000, 0x020000, CRC(acd9d628) SHA1(93d8f0ffa3b9ebdd9fef39b2bc49bb85b2fac00f), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 12)" )
-GAME_CUSTOM( 199?, m4placbt__l, m4placbt, "pyb06y.p1", 0x0000, 0x020000, CRC(7b6ce8fd) SHA1(096fb2e8a4ac5f723810766bc4245d403814a20f), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 13)" )
GAME_CUSTOM( 199?, m4placbt__m, m4placbt, "pyb07ad.p1", 0x0000, 0x020000, CRC(427a7489) SHA1(fb0a24da5ef7a948152e8180968aaaebbd85afa0), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 14)" )
GAME_CUSTOM( 199?, m4placbt__n, m4placbt, "pyb07b.p1", 0x0000, 0x020000, CRC(35cdf803) SHA1(94953da72c2ee8792f53bf677483ffed15d4709c), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 15)" )
GAME_CUSTOM( 199?, m4placbt__o, m4placbt, "pyb07bd.p1", 0x0000, 0x020000, CRC(cf60da4c) SHA1(8667308f750e944894f68f20b70d42244b751e22), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 16)" )
@@ -2172,10 +2233,21 @@ GAME_CUSTOM( 199?, m4placbt__t, m4placbt, "pyb07dy.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4placbt__u, m4placbt, "pyb07k.p1", 0x0000, 0x020000, CRC(7f0a5055) SHA1(5620d8a3333f2f56ea24bcecf1a791e6ee0f43d9), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 22)" )
GAME_CUSTOM( 199?, m4placbt__v, m4placbt, "pyb07r.p1", 0x0000, 0x020000, CRC(cc05eb64) SHA1(1329decc84de231e8c1929f057233b25cc8b5942), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 23)" )
GAME_CUSTOM( 199?, m4placbt__w, m4placbt, "pyb07y.p1", 0x0000, 0x020000, CRC(f8e970ab) SHA1(66a54a9c2750ea1aa4ce562aad74c98775865ed6), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 24)" )
-GAME_CUSTOM( 199?, m4placbt__x, m4placbt, "pyb10h", 0x0000, 0x020000, CRC(69be6185) SHA1(f697350912505cd857acae2733ad8b48e67cab6b), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 25)" )
-GAME_CUSTOM( 199?, m4placbt__y, m4placbt, "pyb15g", 0x0000, 0x020000, CRC(369fd852) SHA1(4c532a59451352aa54a1e47d12f04403d2e9c8cb), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 26)" )
-GAME_CUSTOM( 199?, m4placbt__z, m4placbt, "pyb15t", 0x0000, 0x020000, CRC(c38d7b04) SHA1(5785344084498cab4ce2734b3d8c0dc8f0cbed5a), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 27)" )
-GAME_CUSTOM( 199?, m4placbt__0, m4placbt, "pyh04s", 0x0000, 0x020000, CRC(c824b937) SHA1(9bc0a1e75540520ef3448dc7a3c95c81f93abe78), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 28)" )
+
+GAME_CUSTOM( 199?, m4placbt__k, m4placbt, "pyb06s.p1", 0x0000, 0x020000, CRC(acd9d628) SHA1(93d8f0ffa3b9ebdd9fef39b2bc49bb85b2fac00f), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 12)" )
+GAME_CUSTOM( 199?, m4placbt__a, m4placbt, "pyb06ad.p1", 0x0000, 0x020000, CRC(e08b6176) SHA1(ccfb43ee033b4ed36e8656bcb4ba62230dde8466), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 2)" )
+GAME_CUSTOM( 199?, m4placbt__b, m4placbt, "pyb06b.p1", 0x0000, 0x020000, CRC(b6486055) SHA1(e0926720aba1e9d1327c32db29220d91050ea338), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 3)" )
+GAME_CUSTOM( 199?, m4placbt__c, m4placbt, "pyb06bd.p1", 0x0000, 0x020000, CRC(6d91cfb3) SHA1(82d6ed6d6b2022d0945ec0fb8012fa4fef7029e0), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 4)" )
+GAME_CUSTOM( 199?, m4placbt__d, m4placbt, "pyb06c.p1", 0x0000, 0x020000, CRC(8102dd47) SHA1(7b834d896e104b1f42069d6fa0bce75b5c15b899), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 5)" )
+GAME_CUSTOM( 199?, m4placbt__e, m4placbt, "pyb06d.p1", 0x0000, 0x020000, CRC(cb536b23) SHA1(874eaaa434a0212edefa05a440e7e5f826d1f92e), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 6)" )
+GAME_CUSTOM( 199?, m4placbt__f, m4placbt, "pyb06dk.p1", 0x0000, 0x020000, CRC(275667e5) SHA1(4ac40eaa03462c1a70f0366f589bc2a59972827b), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 7)" )
+GAME_CUSTOM( 199?, m4placbt__g, m4placbt, "pyb06dr.p1", 0x0000, 0x020000, CRC(9459dcd4) SHA1(ae8b559205c6cb3f2e3b1131cd99ff7ce037c573), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 8)" )
+GAME_CUSTOM( 199?, m4placbt__h, m4placbt, "pyb06dy.p1", 0x0000, 0x020000, CRC(a0b5471b) SHA1(95400779bb1d3fdeada5d8fca4fd66a89d3e13a2), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 9)" )
+GAME_CUSTOM( 199?, m4placbt__i, m4placbt, "pyb06k.p1", 0x0000, 0x020000, CRC(fc8fc803) SHA1(81fa3104075b56f51c35d944fa3652aa8cce988c), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 10)" )
+GAME_CUSTOM( 199?, m4placbt__j, m4placbt, "pyb06r.p1", 0x0000, 0x020000, CRC(4f807332) SHA1(e3852ac9811d780ac87f375acaf5ec1026071b2e), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 11)" )
+GAME_CUSTOM( 199?, m4placbt__l, m4placbt, "pyb06y.p1", 0x0000, 0x020000, CRC(7b6ce8fd) SHA1(096fb2e8a4ac5f723810766bc4245d403814a20f), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 13)" )
+
+GAME_CUSTOM( 199?, m4placbt__ab, m4placbt, "pyh05s.p1", 0x0000, 0x020000, CRC(3c544ad9) SHA1(50780424382fd4ccd023a784e43bb60b8f862456), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 39)" )
GAME_CUSTOM( 199?, m4placbt__1, m4placbt, "pyh05ad.p1", 0x0000, 0x020000, CRC(948d1ad6) SHA1(66c580f0ef9035de5f50600db51d63336a8d3fbb), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 29)" )
GAME_CUSTOM( 199?, m4placbt__2, m4placbt, "pyh05b.p1", 0x0000, 0x020000, CRC(26c5fca4) SHA1(8166a195eb1aa7df99cc27e7cd6207a9192d14b9), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 30)" )
GAME_CUSTOM( 199?, m4placbt__3, m4placbt, "pyh05bd.p1", 0x0000, 0x020000, CRC(1997b413) SHA1(cf701534243b302b83908bdf359050b325bd037a), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 31)" )
@@ -2186,8 +2258,9 @@ GAME_CUSTOM( 199?, m4placbt__7, m4placbt, "pyh05dr.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4placbt__8, m4placbt, "pyh05dy.p1", 0x0000, 0x020000, CRC(d4b33cbb) SHA1(e9681c025b3b661a26b89ef1fa6bbcffb6c2e233), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 36)" )
GAME_CUSTOM( 199?, m4placbt__9, m4placbt, "pyh05k.p1", 0x0000, 0x020000, CRC(6c0254f2) SHA1(df14735ec9bc77fc35f52094598bb3fbb015944f), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 37)" )
GAME_CUSTOM( 199?, m4placbt__aa, m4placbt, "pyh05r.p1", 0x0000, 0x020000, CRC(df0defc3) SHA1(d259f6eb770130671d06e221d467df658ba0b29b), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 38)" )
-GAME_CUSTOM( 199?, m4placbt__ab, m4placbt, "pyh05s.p1", 0x0000, 0x020000, CRC(3c544ad9) SHA1(50780424382fd4ccd023a784e43bb60b8f862456), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 39)" )
GAME_CUSTOM( 199?, m4placbt__ac, m4placbt, "pyh05y.p1", 0x0000, 0x020000, CRC(ebe1740c) SHA1(424707d023fd026cf43a687ed02d4ee4398b299f), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 40)" )
+
+GAME_CUSTOM( 199?, m4placbt__an, m4placbt, "pyh06s.p1", 0x0000, 0x020000, CRC(10b75ddf) SHA1(d093ac51c64642400d2cf24a713dc7adb4a6a9d0), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 51)" )
GAME_CUSTOM( 199?, m4placbt__ad, m4placbt, "pyh06ad.p1", 0x0000, 0x020000, CRC(7ae70380) SHA1(c0e2b67ade2275a903359b6df7f55e44ef78828f), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 41)" )
GAME_CUSTOM( 199?, m4placbt__ae, m4placbt, "pyh06b.p1", 0x0000, 0x020000, CRC(dc588857) SHA1(dd2d2ffa87c61b200aa82337beea7d2205f1176c), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 42)" )
GAME_CUSTOM( 199?, m4placbt__af, m4placbt, "pyh06bd.p1", 0x0000, 0x020000, CRC(f7fdad45) SHA1(78334007b0a414fd3d2b8ec1645d1f04e711eb77), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 43)" )
@@ -2198,9 +2271,12 @@ GAME_CUSTOM( 199?, m4placbt__aj, m4placbt, "pyh06dr.p1", 0x0000, 0x020000,
GAME_CUSTOM( 199?, m4placbt__ak, m4placbt, "pyh06dy.p1", 0x0000, 0x020000, CRC(3ad925ed) SHA1(af584333e443127071b874bafea0c8667da33f6c), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 48)" )
GAME_CUSTOM( 199?, m4placbt__al, m4placbt, "pyh06k.p1", 0x0000, 0x020000, CRC(969f2001) SHA1(e934aa7e95e91f155ee82e8eaac5c949b35e024b), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 49)" )
GAME_CUSTOM( 199?, m4placbt__am, m4placbt, "pyh06r.p1", 0x0000, 0x020000, CRC(25909b30) SHA1(8a44e59a46ffec3badb27ee62e7e9bb0adff62a4), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 50)" )
-GAME_CUSTOM( 199?, m4placbt__an, m4placbt, "pyh06s.p1", 0x0000, 0x020000, CRC(10b75ddf) SHA1(d093ac51c64642400d2cf24a713dc7adb4a6a9d0), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 51)" )
GAME_CUSTOM( 199?, m4placbt__ao, m4placbt, "pyh06y.p1", 0x0000, 0x020000, CRC(117c00ff) SHA1(ace5d8c4f4e0647c89608db2c2ad35f241be3672), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 52)" )
+GAME_CUSTOM( 199?, m4placbt__x, m4placbt, "pyb10h", 0x0000, 0x020000, CRC(69be6185) SHA1(f697350912505cd857acae2733ad8b48e67cab6b), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 25)" )
+GAME_CUSTOM( 199?, m4placbt__y, m4placbt, "pyb15g", 0x0000, 0x020000, CRC(369fd852) SHA1(4c532a59451352aa54a1e47d12f04403d2e9c8cb), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 26)" )
+GAME_CUSTOM( 199?, m4placbt__z, m4placbt, "pyb15t", 0x0000, 0x020000, CRC(c38d7b04) SHA1(5785344084498cab4ce2734b3d8c0dc8f0cbed5a), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 27)" )
+GAME_CUSTOM( 199?, m4placbt__0, m4placbt, "pyh04s", 0x0000, 0x020000, CRC(c824b937) SHA1(9bc0a1e75540520ef3448dc7a3c95c81f93abe78), "Barcrest","Place Your Bets (Barcrest) (MPU4) (set 28)" )
#define M4C9_EXTRA_ROMS \
@@ -4842,29 +4918,34 @@ GAME_CUSTOM( 199?, m4przlux__f, m4przlux, "plxy.p1", 0x0000, 0x010000, CRC
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4topdog, 0, "td_20_b4.7_1", 0x0000, 0x010000, CRC(fe864f25) SHA1(b9f97aaf0425b4987b5bfa0b793e9226fdffe58f), "Bwb","Top Dog (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4topdog__a, m4topdog, "td_20_bc.7_1", 0x0000, 0x010000, CRC(3af18a9f) SHA1(0db7427d934363d021265fcac811505867f20d47), "Bwb","Top Dog (Barcrest) (MPU4) (set 2)" )
+// "(C)1997 B.W.B." and "TD 7.1" (Td4 in the 7-segs)
+GAME_CUSTOM( 199?, m4topdog, 0, "td_20_b4.7_1", 0x0000, 0x010000, CRC(fe864f25) SHA1(b9f97aaf0425b4987b5bfa0b793e9226fdffe58f), "Bwb","Top Dog (Barcrest) (MPU4) (Td4 / TD 7.1)" )
GAME_CUSTOM( 199?, m4topdog__b, m4topdog, "td_20_d4.7_1", 0x0000, 0x010000, CRC(35da9e2d) SHA1(a2d1efd7c9cbe4bb5ce7574c6bea2edf55f3e08f), "Bwb","Top Dog (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4topdog__c, m4topdog, "td_20_dc.7_1", 0x0000, 0x010000, CRC(b90dfbce) SHA1(b9eb9393fbd33725d372b3b6648c261cf0ae486f), "Bwb","Top Dog (Barcrest) (MPU4) (set 4)" )
GAME_CUSTOM( 199?, m4topdog__d, m4topdog, "td_20_k4.7_1", 0x0000, 0x010000, CRC(44618034) SHA1(0fce08e279a16d94422155c695b9b5f124b657ea), "Bwb","Top Dog (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4topdog__e, m4topdog, "td_20_kc.7_1", 0x0000, 0x010000, CRC(8ec10cf7) SHA1(cdc479f7f41f2205285a9db6539dce83feef6af4), "Bwb","Top Dog (Barcrest) (MPU4) (set 6)" )
GAME_CUSTOM( 199?, m4topdog__f, m4topdog, "td_20a_4.7_1", 0x0000, 0x010000, CRC(e7bcc879) SHA1(6c963d059867bdd506af1826fe038daa560a3623), "Bwb","Top Dog (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4topdog__g, m4topdog, "td_20a_c.7_1", 0x0000, 0x010000, CRC(ea229917) SHA1(3e42c1eca1a89b2d536498156beddddcba9899b2), "Bwb","Top Dog (Barcrest) (MPU4) (set 8)" )
GAME_CUSTOM( 199?, m4topdog__h, m4topdog, "td_20b_4.7_1", 0x0000, 0x010000, CRC(79468269) SHA1(709f34a0ebea816cb268b5dc36c3d02939cd6224), "Bwb","Top Dog (Barcrest) (MPU4) (set 9)" )
-GAME_CUSTOM( 199?, m4topdog__i, m4topdog, "td_20b_c.7_1", 0x0000, 0x010000, CRC(1301d28b) SHA1(b0fc0c73dedd89bbdb5845ec9f91530959fabeb6), "Bwb","Top Dog (Barcrest) (MPU4) (set 10)" )
GAME_CUSTOM( 199?, m4topdog__j, m4topdog, "td_20bg4.7_1", 0x0000, 0x010000, CRC(4cb61b04) SHA1(6bb56cd06240c1bbb73406fe132e302822dec0df), "Bwb","Top Dog (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4topdog__k, m4topdog, "td_20bgc.7_1", 0x0000, 0x010000, CRC(8ce831d0) SHA1(e58ca3b38e8dc7196c27cf00123a6e7122bd7f58), "Bwb","Top Dog (Barcrest) (MPU4) (set 12)" )
GAME_CUSTOM( 199?, m4topdog__l, m4topdog, "td_20bt4.7_1", 0x0000, 0x010000, CRC(2cdd5be2) SHA1(bc1afe70268eb7e3cb8fe1a43d262201faec0613), "Bwb","Top Dog (Barcrest) (MPU4) (set 13)" )
+// "(C)1997 B.W.B." and "TD 7.1" (Tdt in the 7-segs)
+GAME_CUSTOM( 199?, m4topdog__a, m4topdog, "td_20_bc.7_1", 0x0000, 0x010000, CRC(3af18a9f) SHA1(0db7427d934363d021265fcac811505867f20d47), "Bwb","Top Dog (Barcrest) (MPU4) (TdT / TD 7.1)" )
+GAME_CUSTOM( 199?, m4topdog__c, m4topdog, "td_20_dc.7_1", 0x0000, 0x010000, CRC(b90dfbce) SHA1(b9eb9393fbd33725d372b3b6648c261cf0ae486f), "Bwb","Top Dog (Barcrest) (MPU4) (set 4)" )
+GAME_CUSTOM( 199?, m4topdog__e, m4topdog, "td_20_kc.7_1", 0x0000, 0x010000, CRC(8ec10cf7) SHA1(cdc479f7f41f2205285a9db6539dce83feef6af4), "Bwb","Top Dog (Barcrest) (MPU4) (set 6)" )
+GAME_CUSTOM( 199?, m4topdog__g, m4topdog, "td_20a_c.7_1", 0x0000, 0x010000, CRC(ea229917) SHA1(3e42c1eca1a89b2d536498156beddddcba9899b2), "Bwb","Top Dog (Barcrest) (MPU4) (set 8)" )
+GAME_CUSTOM( 199?, m4topdog__i, m4topdog, "td_20b_c.7_1", 0x0000, 0x010000, CRC(1301d28b) SHA1(b0fc0c73dedd89bbdb5845ec9f91530959fabeb6), "Bwb","Top Dog (Barcrest) (MPU4) (set 10)" )
+GAME_CUSTOM( 199?, m4topdog__k, m4topdog, "td_20bgc.7_1", 0x0000, 0x010000, CRC(8ce831d0) SHA1(e58ca3b38e8dc7196c27cf00123a6e7122bd7f58), "Bwb","Top Dog (Barcrest) (MPU4) (set 12)" )
GAME_CUSTOM( 199?, m4topdog__m, m4topdog, "td_20btc.7_1", 0x0000, 0x010000, CRC(67e96c75) SHA1(da9dd06f5d4773fa8e3945cf89cfdde4c465acb9), "Bwb","Top Dog (Barcrest) (MPU4) (set 14)" )
-GAME_CUSTOM( 199?, m4topdog__n, m4topdog, "td_25_bc.8_1", 0x0000, 0x010000, CRC(ac324184) SHA1(d6743c8cbbe719b12f47792a07ec2e898630591b), "Bwb","Top Dog (Barcrest) (MPU4) (set 15)" )
+// "(C)1997 B.W.B." and "TD 8.3"
+GAME_CUSTOM( 199?, m4topdog__n, m4topdog, "td_25_bc.8_1", 0x0000, 0x010000, CRC(ac324184) SHA1(d6743c8cbbe719b12f47792a07ec2e898630591b), "Bwb","Top Dog (Barcrest) (MPU4) (TdT / TD 8.3)" )
GAME_CUSTOM( 199?, m4topdog__o, m4topdog, "td_25_dc.8_1", 0x0000, 0x010000, CRC(6ea8077c) SHA1(672976af1fad0257be7a15b839ec261653704be8), "Bwb","Top Dog (Barcrest) (MPU4) (set 16)" )
GAME_CUSTOM( 199?, m4topdog__p, m4topdog, "td_25_kc.8_1", 0x0000, 0x010000, CRC(e006de48) SHA1(2c09e04d2dc3ec369c4c01eb1ff1af57156d05c1), "Bwb","Top Dog (Barcrest) (MPU4) (set 17)" )
GAME_CUSTOM( 199?, m4topdog__q, m4topdog, "td_25a_c.8_1", 0x0000, 0x010000, CRC(84e54ba8) SHA1(dd09094854463f4b7033773be77d4a2d7f06b650), "Bwb","Top Dog (Barcrest) (MPU4) (set 18)" )
GAME_CUSTOM( 199?, m4topdog__r, m4topdog, "td_25b_c.8_1", 0x0000, 0x010000, CRC(314f4f03) SHA1(a7c399ddf453305d0dbe2a63e57427b261c48c2c), "Bwb","Top Dog (Barcrest) (MPU4) (set 19)" )
GAME_CUSTOM( 199?, m4topdog__s, m4topdog, "td_25bgc.8_1", 0x0000, 0x010000, CRC(efc0899c) SHA1(0d0e5a006d260a1bfcde7966c06360386c949f29), "Bwb","Top Dog (Barcrest) (MPU4) (set 20)" )
-GAME_CUSTOM( 199?, m4topdog__t, m4topdog, "td_25bgp.2_1", 0x0000, 0x010000, CRC(f0894f48) SHA1(63056dd434d18bb9a052db25cc6ce29d0c3f9f82), "Bwb","Top Dog (Barcrest) (MPU4) (set 21)" )
GAME_CUSTOM( 199?, m4topdog__u, m4topdog, "td_25btc.8_1", 0x0000, 0x010000, CRC(f5dec7d9) SHA1(ffb361745aebb3c7d6bf4925d95904e8ced13a35), "Bwb","Top Dog (Barcrest) (MPU4) (set 22)" )
-GAME_CUSTOM( 199?, m4topdog__v, m4topdog, "td_30a_c.1_1", 0x0000, 0x010000, CRC(f0986895) SHA1(65c24de42a3009959c9bb7f5b42536aa6fd70c2b), "Bwb","Top Dog (Barcrest) (MPU4) (set 23)" )
+// "(C)1998 B.W.B." and "TD 2.0"
+GAME_CUSTOM( 199?, m4topdog__t, m4topdog, "td_25bgp.2_1", 0x0000, 0x010000, CRC(f0894f48) SHA1(63056dd434d18bb9a052db25cc6ce29d0c3f9f82), "Bwb","Top Dog (Barcrest) (MPU4) (TdP / TD 2.0)" )
+// "(C)1998 B.W.B." and "TD 1.4"
+GAME_CUSTOM( 199?, m4topdog__v, m4topdog, "td_30a_c.1_1", 0x0000, 0x010000, CRC(f0986895) SHA1(65c24de42a3009959c9bb7f5b42536aa6fd70c2b), "Bwb","Top Dog (Barcrest) (MPU4) (Td / TD 1.4)" )
GAME_CUSTOM( 199?, m4topdog__w, m4topdog, "td_30b_c.1_1", 0x0000, 0x010000, CRC(7683cf72) SHA1(4319954b833ef6b0d88b8d22c5e700a9df96dc65), "Bwb","Top Dog (Barcrest) (MPU4) (set 24)" )
GAME_CUSTOM( 199?, m4topdog__x, m4topdog, "td_30bdc.1_1", 0x0000, 0x010000, CRC(f5a4481b) SHA1(75b32b0996315b8ce833fd695377716dbeb0b7e4), "Bwb","Top Dog (Barcrest) (MPU4) (set 25)" )
GAME_CUSTOM( 199?, m4topdog__y, m4topdog, "td_30bgc.1_1", 0x0000, 0x010000, CRC(1ffe440f) SHA1(adc1909fbbfe7e63bb89b29878bda5a6df776a6a), "Bwb","Top Dog (Barcrest) (MPU4) (set 26)" )
@@ -4884,17 +4965,16 @@ GAME_CUSTOM( 199?, m4topdog__z, m4topdog, "td_30btc.1_1", 0x0000, 0x010000,
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4kingq, 0, "ee_05a_4.2_1", 0x0000, 0x010000, CRC(8dd842b6) SHA1(1c1bcaae355ceee4d7b1572b0fa1a8b23a8afdbf), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4kingq__a, m4kingq, "ee_05a__.2_1", 0x0000, 0x010000, CRC(36aa5fb9) SHA1(b4aaf647713e33e79be7927e5eeef240d3beedf7), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4kingq__b, m4kingq, "ee_20a__.2_1", 0x0000, 0x010000, CRC(2c61341f) SHA1(76d68ae2a44087414be8be12b3824c62311721dd), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4kingq__c, m4kingq, "ee_20a_c.1_1", 0x0000, 0x010000, CRC(948140ac) SHA1(d43f1f2903ecd809dee191087fa075c638728a5b), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 4)" )
+// "(C)1996 B.W.B." and "EE 2.1" (EE4 in 7-seg)
+GAME_CUSTOM( 199?, m4kingq, 0, "ee_05a_4.2_1", 0x0000, 0x010000, CRC(8dd842b6) SHA1(1c1bcaae355ceee4d7b1572b0fa1a8b23a8afdbf), "Bwb","Kings & Queens (Barcrest) (MPU4) (EE4 / EE 2.1)" )
+// "(C)1996 B.W.B." and "EE 2.2" (EE8 in 7-seg)
+GAME_CUSTOM( 199?, m4kingq__a, m4kingq, "ee_05a__.2_1", 0x0000, 0x010000, CRC(36aa5fb9) SHA1(b4aaf647713e33e79be7927e5eeef240d3beedf7), "Bwb","Kings & Queens (Barcrest) (MPU4) (EE8 / EE 2.2)" )
+// "(C)1995 B.W.B." and "EE_ 2.0" (EE in 7-seg)
+GAME_CUSTOM( 199?, m4kingq__b, m4kingq, "ee_20a__.2_1", 0x0000, 0x010000, CRC(2c61341f) SHA1(76d68ae2a44087414be8be12b3824c62311721dd), "Bwb","Kings & Queens (Barcrest) (MPU4) (EE / EE_ 2.0)" )
GAME_CUSTOM( 199?, m4kingq__d, m4kingq, "ee_20b__.2_1", 0x0000, 0x010000, CRC(2fc7c7c2) SHA1(3b8736a582009d7b1455769374342ff72026d2fa), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4kingq__e, m4kingq, "ee_20b_c.1_1", 0x0000, 0x010000, CRC(70d399ab) SHA1(ca2c593151f4f852c7cb66859a12e832e53cd31f), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 6)" )
GAME_CUSTOM( 199?, m4kingq__f, m4kingq, "ee_20bd_.2_1", 0x0000, 0x010000, CRC(239de2dd) SHA1(c8021ba5bfdc10f59fec27c364035225093328d8), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4kingq__g, m4kingq, "ee_20bdc.1_1", 0x0000, 0x010000, CRC(cbb8c57b) SHA1(ea165199213f95128aec95ae40799faa8c457dd3), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 8)" )
GAME_CUSTOM( 199?, m4kingq__h, m4kingq, "ee_20bg_.2_1", 0x0000, 0x010000, CRC(ddc4d832) SHA1(031f987e9fced1df4acc57eb4b60911d52e1dbf6), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 9)" )
GAME_CUSTOM( 199?, m4kingq__i, m4kingq, "ee_20bt_.2_1", 0x0000, 0x010000, CRC(6f278771) SHA1(4459c9490be14bcbc139eebe6542325c80937ff3), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4kingq__j, m4kingq, "ee_20s_c.1_1", 0x0000, 0x010000, CRC(a0c1e313) SHA1(8a088a33e51a31ff0abdb554aa4d8ce61eaf4b7d), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 11)" )
GAME_CUSTOM( 199?, m4kingq__k, m4kingq, "ee_20sb_.2_1", 0x0000, 0x010000, CRC(307ad157) SHA1(32b6187e907bfbdb87a9ad2d9ca5870b09de5e4a), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 12)" )
GAME_CUSTOM( 199?, m4kingq__l, m4kingq, "ee_25a_c.3_1", 0x0000, 0x010000, CRC(4dc25083) SHA1(b754b4003f73bd74d1670a36a70985ce5e48794d), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 13)" )
GAME_CUSTOM( 199?, m4kingq__m, m4kingq, "ee_25b_c.3_1", 0x0000, 0x010000, CRC(a6fe50ff) SHA1(011602d9624f232ba8484e57f5f33ff06091809f), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 14)" )
@@ -4903,7 +4983,13 @@ GAME_CUSTOM( 199?, m4kingq__o, m4kingq, "ee_25bgc.3_1", 0x0000, 0x010000, CR
GAME_CUSTOM( 199?, m4kingq__p, m4kingq, "ee_25btc.3_1", 0x0000, 0x010000, CRC(8f44347a) SHA1(09815a6e1d3a91cd2e69578bbcfef3203ddb33d6), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 17)" )
GAME_CUSTOM( 199?, m4kingq__r, m4kingq, "ee_25sbc.3_1", 0x0000, 0x010000, CRC(0f4bdd7c) SHA1(5c5cb3a9d6a96afc6e29149d2a8adf19aae0bc41), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 18)" )
GAME_CUSTOM( 199?, m4kingq__s, m4kingq, "eei20___.2_1", 0x0000, 0x010000, CRC(15f4b869) SHA1(5be6f660321cb47900dda986ef44eb5c1c324013), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 19)" )
-GAME_CUSTOM( 199?, m4kingq__t, m4kingq, "knq2pprg.bin", 0x0000, 0x010000, CRC(23b22f79) SHA1(3d8b9cbffb9b427897548981ddacf724215336a4), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 20)" )
+// "(C)1996 B.W.B." and "EE 1.0" (EE in 7-seg)
+GAME_CUSTOM( 199?, m4kingq__c, m4kingq, "ee_20a_c.1_1", 0x0000, 0x010000, CRC(948140ac) SHA1(d43f1f2903ecd809dee191087fa075c638728a5b), "Bwb","Kings & Queens (Barcrest) (MPU4) (EE / EE 1.0)" )
+GAME_CUSTOM( 199?, m4kingq__e, m4kingq, "ee_20b_c.1_1", 0x0000, 0x010000, CRC(70d399ab) SHA1(ca2c593151f4f852c7cb66859a12e832e53cd31f), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 6)" )
+GAME_CUSTOM( 199?, m4kingq__g, m4kingq, "ee_20bdc.1_1", 0x0000, 0x010000, CRC(cbb8c57b) SHA1(ea165199213f95128aec95ae40799faa8c457dd3), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 8)" )
+GAME_CUSTOM( 199?, m4kingq__j, m4kingq, "ee_20s_c.1_1", 0x0000, 0x010000, CRC(a0c1e313) SHA1(8a088a33e51a31ff0abdb554aa4d8ce61eaf4b7d), "Bwb","Kings & Queens (Barcrest) (MPU4) (set 11)" )
+// "(C)1998 B.W.B." and "EE2 1.0" (EE2 in 7-seg)
+GAME_CUSTOM( 199?, m4kingq__t, m4kingq, "knq2pprg.bin", 0x0000, 0x010000, CRC(23b22f79) SHA1(3d8b9cbffb9b427897548981ddacf724215336a4), "Bwb","Kings & Queens (Barcrest) (MPU4) (EE2 / EE2 1.0)" )
#define M4KINGQC_EXTRA_ROMS \
ROM_REGION( 0x200000, "msm6376", 0 ) \
@@ -4919,37 +5005,44 @@ GAME_CUSTOM( 199?, m4kingq__t, m4kingq, "knq2pprg.bin", 0x0000, 0x010000, CR
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4kingqc, 0, "cn_20_b4.6_1", 0x0000, 0x010000, CRC(22d0b20c) SHA1(a7a4f60017cf62247339c9b23420d29845657895), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4kingqc__a, m4kingqc, "cn_20_bc.3_1", 0x0000, 0x010000, CRC(dfb0eb80) SHA1(ad973125681db0aae8ef1cf57b1c280e7f0e5803), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4kingqc__b, m4kingqc, "cn_20_dc.3_1", 0x0000, 0x010000, CRC(56e919ad) SHA1(c3c6f522574b287f7ed4dc4d1d8a32f68369dd5c), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4kingqc__c, m4kingqc, "cn_20a_c.2_1", 0x0000, 0x010000, CRC(0df15fd9) SHA1(e7c5e2277aac1c71d27710ea71d09d1005c5b8f9), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4kingqc__d, m4kingqc, "cn_20a_c.3_1", 0x0000, 0x010000, CRC(68e1dcef) SHA1(a0b15344b900226052633703e935c0ec0f718936), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4kingqc__e, m4kingqc, "cn_20a_c.5_1", 0x0000, 0x010000, CRC(4975d39e) SHA1(243b8af1a12c3538e826bfd5f6feb6927c1467b0), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 6)" )
-GAME_CUSTOM( 199?, m4kingqc__f, m4kingqc, "cn_20b_c.2_1", 0x0000, 0x010000, CRC(66e074f3) SHA1(1f5381a41dd1402ee344e228635b35521e9377c8), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4kingqc__g, m4kingqc, "cn_20b_c.3_1", 0x0000, 0x010000, CRC(bcae86c9) SHA1(f03b136d82fe7b93350f0ca5dc36e78e98aecfa9), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 8)" )
-GAME_CUSTOM( 199?, m4kingqc__h, m4kingqc, "cn_20b_c.5_1", 0x0000, 0x010000, CRC(6a19d734) SHA1(e0d5f5020e7997d3927b42336ab18757bd9f1ed0), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 9)" )
-GAME_CUSTOM( 199?, m4kingqc__i, m4kingqc, "cn_20bg4.6_1", 0x0000, 0x010000, CRC(6d4158fe) SHA1(9c12264a415601d6f28f23c1e1f6a3d97fadddba), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4kingqc__j, m4kingqc, "cn_20bgc.3_1", 0x0000, 0x010000, CRC(3ecc1bf3) SHA1(fb191749f920aa4ac0d9809c6c59b695afdf6594), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4kingqc__k, m4kingqc, "cn_20bgc.5_1", 0x0000, 0x010000, CRC(24743f7e) SHA1(c90d95df2357bc00aba2bb21c0c77082b8c32463), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 12)" )
-GAME_CUSTOM( 199?, m4kingqc__l, m4kingqc, "cn_20btc.2_1", 0x0000, 0x010000, CRC(b8f0ade0) SHA1(5b5344f799b27833f6456ae852eb5085afb3dbe5), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 13)" )
-GAME_CUSTOM( 199?, m4kingqc__m, m4kingqc, "cn_20btc.3_1", 0x0000, 0x010000, CRC(b92f3787) SHA1(7efd815cf1a9a738ffae2c3ce19149f47d465c72), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 14)" )
-GAME_CUSTOM( 199?, m4kingqc__n, m4kingqc, "cn_20btc.5_1", 0x0000, 0x010000, CRC(e2b8baf0) SHA1(23e966a6cc94c26903bfe943160a327529d7e21b), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 15)" )
-GAME_CUSTOM( 199?, m4kingqc__q, m4kingqc, "cn_20sbc.5_1", 0x0000, 0x010000, CRC(8b49bf8c) SHA1(2c6835e343e7cdcc197c0105e13cc4f6ddd3f0d3), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 16)" )
-GAME_CUSTOM( 199?, m4kingqc__r, m4kingqc, "cn_25_bc.2_1", 0x0000, 0x010000, CRC(3e2b2d7b) SHA1(9a68cf4902ca210e8fb52a35b4c507708c7f6d2a), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 17)" )
-GAME_CUSTOM( 199?, m4kingqc__s, m4kingqc, "cn_25_dc.2_1", 0x0000, 0x010000, CRC(eb384ef6) SHA1(489c59d8e1e6296ec2b05fb0aa307c48f3486aa2), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 18)" )
-GAME_CUSTOM( 199?, m4kingqc__t, m4kingqc, "cn_25_kc.2_1", 0x0000, 0x010000, CRC(bd11e742) SHA1(0c3b290e3010bc3f904f9087ee89efe63072b8c3), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 19)" )
-GAME_CUSTOM( 199?, m4kingqc__u, m4kingqc, "cn_25a_c.2_1", 0x0000, 0x010000, CRC(1994efd5) SHA1(d7c3d692737138b30244d2d51eb535b88c87e401), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 20)" )
-GAME_CUSTOM( 199?, m4kingqc__v, m4kingqc, "cn_25b_c.2_1", 0x0000, 0x010000, CRC(24255989) SHA1(017d0dc811b5c82d5b8785022169929c94f3f18a), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 21)" )
-GAME_CUSTOM( 199?, m4kingqc__w, m4kingqc, "cn_25bdc.2_1", 0x0000, 0x010000, CRC(503ccd3c) SHA1(936b77b33373624e6bd80d168bcd48dc2ebcb2fe), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 22)" )
-GAME_CUSTOM( 199?, m4kingqc__x, m4kingqc, "cn_25bgc.2a1", 0x0000, 0x010000, CRC(89e2130d) SHA1(22f97030e6f4cb94f62215a0c653d170ba3e0efd), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 23)" )
-GAME_CUSTOM( 199?, m4kingqc__y, m4kingqc, "cn_25btc.2_1", 0x0000, 0x010000, CRC(876bc126) SHA1(debe36a082493cdeba26a0808f205a19e9e897d5), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 24)" )
-GAME_CUSTOM( 199?, m4kingqc__z, m4kingqc, "cn_25s_c.1_1", 0x0000, 0x010000, CRC(84d1a32b) SHA1(f6e76a2bf1bd7b31eb360dea8b453d235c365e64), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 25)" )
-GAME_CUSTOM( 199?, m4kingqc__0, m4kingqc, "cn_25sbc.1_1", 0x0000, 0x010000, CRC(e53b672c) SHA1(2aea2a243817857df31b6f7b767e380bd003fafa), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 26)" )
-GAME_CUSTOM( 199?, m4kingqc__1, m4kingqc, "cn_30_dc.1_1", 0x0000, 0x010000, CRC(aeb21904) SHA1(32bd505e738b8826c6ab138f30831b7a53b700cf), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 27)" )
-GAME_CUSTOM( 199?, m4kingqc__2, m4kingqc, "cn_30a_c.1_1", 0x0000, 0x010000, CRC(be7aed91) SHA1(7dac1281bbc9da8924657b13ec4aa86aa6ff9de4), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 28)" )
-GAME_CUSTOM( 199?, m4kingqc__3, m4kingqc, "cn_30b_c.1_1", 0x0000, 0x010000, CRC(232c87ec) SHA1(2c2bf1c273ab88c0ab27a672d53cd6184a24a8d1), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 29)" )
-GAME_CUSTOM( 199?, m4kingqc__4, m4kingqc, "cn_30bgc.1_1", 0x0000, 0x010000, CRC(40afaa86) SHA1(edb8f55abf66e3e1cc7e353c520a93fc42073585), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 30)" )
-GAME_CUSTOM( 199?, m4kingqc__5, m4kingqc, "cn_30btc.1_1", 0x0000, 0x010000, CRC(1920cc67) SHA1(55a3ad78d68d635faff98390e2feeea29dd10664), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (set 31)" )
+// "(C)1996 B.W.B." and "CN4 6.0"
+GAME_CUSTOM( 199?, m4kingqc, 0, "cn_20_b4.6_1", 0x0000, 0x010000, CRC(22d0b20c) SHA1(a7a4f60017cf62247339c9b23420d29845657895), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN4 / CN4 6.0 YD)" )
+GAME_CUSTOM( 199?, m4kingqc__i, m4kingqc, "cn_20bg4.6_1", 0x0000, 0x010000, CRC(6d4158fe) SHA1(9c12264a415601d6f28f23c1e1f6a3d97fadddba), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN4 / CN4 6.0 BA)" )
+// "(C)1996 B.W.B." and "CN 3.0"
+GAME_CUSTOM( 199?, m4kingqc__a, m4kingqc, "cn_20_bc.3_1", 0x0000, 0x010000, CRC(dfb0eb80) SHA1(ad973125681db0aae8ef1cf57b1c280e7f0e5803), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN / CN 3.0 YD)" )
+GAME_CUSTOM( 199?, m4kingqc__b, m4kingqc, "cn_20_dc.3_1", 0x0000, 0x010000, CRC(56e919ad) SHA1(c3c6f522574b287f7ed4dc4d1d8a32f68369dd5c), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN / CN 3.0 D)" )
+GAME_CUSTOM( 199?, m4kingqc__d, m4kingqc, "cn_20a_c.3_1", 0x0000, 0x010000, CRC(68e1dcef) SHA1(a0b15344b900226052633703e935c0ec0f718936), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN / CN 3.0 K)" )
+GAME_CUSTOM( 199?, m4kingqc__g, m4kingqc, "cn_20b_c.3_1", 0x0000, 0x010000, CRC(bcae86c9) SHA1(f03b136d82fe7b93350f0ca5dc36e78e98aecfa9), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN / CN 3.0 B)" )
+GAME_CUSTOM( 199?, m4kingqc__j, m4kingqc, "cn_20bgc.3_1", 0x0000, 0x010000, CRC(3ecc1bf3) SHA1(fb191749f920aa4ac0d9809c6c59b695afdf6594), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN / CN 3.0 BA)" )
+GAME_CUSTOM( 199?, m4kingqc__m, m4kingqc, "cn_20btc.3_1", 0x0000, 0x010000, CRC(b92f3787) SHA1(7efd815cf1a9a738ffae2c3ce19149f47d465c72), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN / CN 3.0 BR)" )
+// "(C)1996 B.W.B." and "CN 2.0"
+GAME_CUSTOM( 199?, m4kingqc__c, m4kingqc, "cn_20a_c.2_1", 0x0000, 0x010000, CRC(0df15fd9) SHA1(e7c5e2277aac1c71d27710ea71d09d1005c5b8f9), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN / CN 2.0 K)" )
+GAME_CUSTOM( 199?, m4kingqc__f, m4kingqc, "cn_20b_c.2_1", 0x0000, 0x010000, CRC(66e074f3) SHA1(1f5381a41dd1402ee344e228635b35521e9377c8), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN / CN 2.0 B)" )
+GAME_CUSTOM( 199?, m4kingqc__l, m4kingqc, "cn_20btc.2_1", 0x0000, 0x010000, CRC(b8f0ade0) SHA1(5b5344f799b27833f6456ae852eb5085afb3dbe5), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN / CN 2.0 R)" )
+// "(C)1996 B.W.B." and "CN4 2.0"
+GAME_CUSTOM( 199?, m4kingqc__r, m4kingqc, "cn_25_bc.2_1", 0x0000, 0x010000, CRC(3e2b2d7b) SHA1(9a68cf4902ca210e8fb52a35b4c507708c7f6d2a), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 2.0 YD)" )
+GAME_CUSTOM( 199?, m4kingqc__s, m4kingqc, "cn_25_dc.2_1", 0x0000, 0x010000, CRC(eb384ef6) SHA1(489c59d8e1e6296ec2b05fb0aa307c48f3486aa2), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 2.0 D)" )
+GAME_CUSTOM( 199?, m4kingqc__t, m4kingqc, "cn_25_kc.2_1", 0x0000, 0x010000, CRC(bd11e742) SHA1(0c3b290e3010bc3f904f9087ee89efe63072b8c3), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 2.0 Y)" )
+GAME_CUSTOM( 199?, m4kingqc__u, m4kingqc, "cn_25a_c.2_1", 0x0000, 0x010000, CRC(1994efd5) SHA1(d7c3d692737138b30244d2d51eb535b88c87e401), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 2.0 K)" )
+GAME_CUSTOM( 199?, m4kingqc__v, m4kingqc, "cn_25b_c.2_1", 0x0000, 0x010000, CRC(24255989) SHA1(017d0dc811b5c82d5b8785022169929c94f3f18a), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 2.0 B)" )
+GAME_CUSTOM( 199?, m4kingqc__w, m4kingqc, "cn_25bdc.2_1", 0x0000, 0x010000, CRC(503ccd3c) SHA1(936b77b33373624e6bd80d168bcd48dc2ebcb2fe), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 2.0 BD)" )
+GAME_CUSTOM( 199?, m4kingqc__y, m4kingqc, "cn_25btc.2_1", 0x0000, 0x010000, CRC(876bc126) SHA1(debe36a082493cdeba26a0808f205a19e9e897d5), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 2.0 BR)" )
+GAME_CUSTOM( 199?, m4kingqc__x, m4kingqc, "cn_25bgc.2a1", 0x0000, 0x010000, CRC(89e2130d) SHA1(22f97030e6f4cb94f62215a0c653d170ba3e0efd), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 2.0 AD)" )
+// "(C)1995 B.W.B." and "CN4 5.0"
+GAME_CUSTOM( 199?, m4kingqc__e, m4kingqc, "cn_20a_c.5_1", 0x0000, 0x010000, CRC(4975d39e) SHA1(243b8af1a12c3538e826bfd5f6feb6927c1467b0), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN4 5.0 K)" )
+GAME_CUSTOM( 199?, m4kingqc__h, m4kingqc, "cn_20b_c.5_1", 0x0000, 0x010000, CRC(6a19d734) SHA1(e0d5f5020e7997d3927b42336ab18757bd9f1ed0), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN4 5.0 B)" )
+GAME_CUSTOM( 199?, m4kingqc__k, m4kingqc, "cn_20bgc.5_1", 0x0000, 0x010000, CRC(24743f7e) SHA1(c90d95df2357bc00aba2bb21c0c77082b8c32463), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN4 5.0 BA)" )
+GAME_CUSTOM( 199?, m4kingqc__n, m4kingqc, "cn_20btc.5_1", 0x0000, 0x010000, CRC(e2b8baf0) SHA1(23e966a6cc94c26903bfe943160a327529d7e21b), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN4 5.0 BR)" )
+GAME_CUSTOM( 199?, m4kingqc__q, m4kingqc, "cn_20sbc.5_1", 0x0000, 0x010000, CRC(8b49bf8c) SHA1(2c6835e343e7cdcc197c0105e13cc4f6ddd3f0d3), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN4 5.0 YD)" )
+// "(C)1996 B.W.B." and "CN4 1.0"
+GAME_CUSTOM( 199?, m4kingqc__z, m4kingqc, "cn_25s_c.1_1", 0x0000, 0x010000, CRC(84d1a32b) SHA1(f6e76a2bf1bd7b31eb360dea8b453d235c365e64), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 1.0)" )
+GAME_CUSTOM( 199?, m4kingqc__0, m4kingqc, "cn_25sbc.1_1", 0x0000, 0x010000, CRC(e53b672c) SHA1(2aea2a243817857df31b6f7b767e380bd003fafa), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CNT, CN4 1.0 YD)" )
+// "(C)1998 B.W.B." and "CN 1.4"
+GAME_CUSTOM( 199?, m4kingqc__1, m4kingqc, "cn_30_dc.1_1", 0x0000, 0x010000, CRC(aeb21904) SHA1(32bd505e738b8826c6ab138f30831b7a53b700cf), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN 1.4 D)" )
+GAME_CUSTOM( 199?, m4kingqc__2, m4kingqc, "cn_30a_c.1_1", 0x0000, 0x010000, CRC(be7aed91) SHA1(7dac1281bbc9da8924657b13ec4aa86aa6ff9de4), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN 1.4 K)" )
+GAME_CUSTOM( 199?, m4kingqc__3, m4kingqc, "cn_30b_c.1_1", 0x0000, 0x010000, CRC(232c87ec) SHA1(2c2bf1c273ab88c0ab27a672d53cd6184a24a8d1), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN 1.4 B)" )
+GAME_CUSTOM( 199?, m4kingqc__4, m4kingqc, "cn_30bgc.1_1", 0x0000, 0x010000, CRC(40afaa86) SHA1(edb8f55abf66e3e1cc7e353c520a93fc42073585), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN 1.4 AD)" )
+GAME_CUSTOM( 199?, m4kingqc__5, m4kingqc, "cn_30btc.1_1", 0x0000, 0x010000, CRC(1920cc67) SHA1(55a3ad78d68d635faff98390e2feeea29dd10664), "Bwb","Kings & Queens Classic (Barcrest) (MPU4) (CN 1.4 BR)" )
#define M4TYPCL_EXTRA_ROMS \
ROM_REGION( 0x48, "fakechr", 0 ) \
@@ -5012,32 +5105,39 @@ GAME_CUSTOM( 199?, m4andybt__c, m4andybt, "abt1.5", 0x0000, 0x020000,
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4thestr, 0, "thestreakbin", 0x0000, 0x010000, CRC(cb79f9e5) SHA1(6cbdc5327e81b51f1060fd91efa3d061b9748b49), "Bwb","The Streak (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4thestr__a, m4thestr, "ts_20_b4.3_1", 0x0000, 0x010000, CRC(17726c7c) SHA1(193b572b9f859f1018f1be398b35a5103622faf8), "Bwb","The Streak (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4thestr__b, m4thestr, "ts_20_bc.3_1", 0x0000, 0x010000, CRC(b03b3f11) SHA1(9116ac608ab5574d5912550b988fc319d0a38444), "Bwb","The Streak (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4thestr__c, m4thestr, "ts_20_d4.3_1", 0x0000, 0x010000, CRC(7bfae07a) SHA1(9414ad510ca9a183181a30d98858278c375c185d), "Bwb","The Streak (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4thestr__d, m4thestr, "ts_20_dc.3_1", 0x0000, 0x010000, CRC(7196b317) SHA1(c124ed3d030b77870b7851b3da104f8fc5393a31), "Bwb","The Streak (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4thestr__e, m4thestr, "ts_20a_4.3_1", 0x0000, 0x010000, CRC(921b8cc3) SHA1(74143888de21aba4374d016cb4c08ae59dfa59ef), "Bwb","The Streak (Barcrest) (MPU4) (set 6)" )
-GAME_CUSTOM( 199?, m4thestr__f, m4thestr, "ts_20a_c.3_1", 0x0000, 0x010000, CRC(c8eb1dd9) SHA1(7b7520467cd32295e6324d350d1f2bed829555e0), "Bwb","The Streak (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4thestr__g, m4thestr, "ts_20b_4.3_1", 0x0000, 0x010000, CRC(2221f704) SHA1(8459b658d3ad84bb86250518d0403970f881323d), "Bwb","The Streak (Barcrest) (MPU4) (set 8)" )
-GAME_CUSTOM( 199?, m4thestr__h, m4thestr, "ts_20b_c.3_1", 0x0000, 0x010000, CRC(ecdf59a9) SHA1(7c2141e336ba3f1865bbf422aaa0b78cb1a27a4c), "Bwb","The Streak (Barcrest) (MPU4) (set 9)" )
-GAME_CUSTOM( 199?, m4thestr__i, m4thestr, "ts_20bg4.3_1", 0x0000, 0x010000, CRC(b2a419ea) SHA1(bbc565ce8e79d39e1b1a7cd1685fa8c7ce00d7b9), "Bwb","The Streak (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4thestr__j, m4thestr, "ts_20bgc.3_1", 0x0000, 0x010000, CRC(3b2d7b50) SHA1(a8560b0894783a398aaf0510493583b8cb826947), "Bwb","The Streak (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4thestr__k, m4thestr, "ts_20bt4.3_1", 0x0000, 0x010000, CRC(d10a6c5a) SHA1(07fdf3797c87e35468ef859bb67753f11c5fbded), "Bwb","The Streak (Barcrest) (MPU4) (set 12)" )
-GAME_CUSTOM( 199?, m4thestr__l, m4thestr, "ts_20btc.3_1", 0x0000, 0x010000, CRC(58830ee0) SHA1(b2798e0f8e03870c77892a32654263575e9aaafa), "Bwb","The Streak (Barcrest) (MPU4) (set 13)" )
-GAME_CUSTOM( 199?, m4thestr__m, m4thestr, "ts_25_bc.3_1", 0x0000, 0x010000, CRC(43877de6) SHA1(b006ae97139c9bd66a32884b92fdbdf4f10db58a), "Bwb","The Streak (Barcrest) (MPU4) (set 14)" )
-GAME_CUSTOM( 199?, m4thestr__n, m4thestr, "ts_25_dc.3_1", 0x0000, 0x010000, CRC(60ab675c) SHA1(763b66d7731489abdec84d2f8e3c186ad95c7349), "Bwb","The Streak (Barcrest) (MPU4) (set 15)" )
-GAME_CUSTOM( 199?, m4thestr__o, m4thestr, "ts_25_kc.3_1", 0x0000, 0x010000, CRC(418cbb32) SHA1(e19a0c7fd88a82983ec33b99f3819a2a238c68a5), "Bwb","The Streak (Barcrest) (MPU4) (set 16)" )
-GAME_CUSTOM( 199?, m4thestr__p, m4thestr, "ts_25a_c.3_1", 0x0000, 0x010000, CRC(448a705f) SHA1(35a7cc480c376eaef7439d5c96cec490aec9fc4b), "Bwb","The Streak (Barcrest) (MPU4) (set 17)" )
-GAME_CUSTOM( 199?, m4thestr__q, m4thestr, "ts_25b_c.3_1", 0x0000, 0x010000, CRC(5b390ec2) SHA1(db7719ab8021e0b75e9419d2a05f3139fbab8e61), "Bwb","The Streak (Barcrest) (MPU4) (set 18)" )
-GAME_CUSTOM( 199?, m4thestr__r, m4thestr, "ts_25bgc.3_1", 0x0000, 0x010000, CRC(612463fc) SHA1(085d8faf91c8ef6520ca971d249322f336464856), "Bwb","The Streak (Barcrest) (MPU4) (set 19)" )
-GAME_CUSTOM( 199?, m4thestr__s, m4thestr, "ts_25btc.3_1", 0x0000, 0x010000, CRC(6d658e61) SHA1(619dbacad424e5db82c6ee19d1e3358c18cfe783), "Bwb","The Streak (Barcrest) (MPU4) (set 20)" )
-GAME_CUSTOM( 199?, m4thestr__t, m4thestr, "ts_30a_c.1_1", 0x0000, 0x010000, CRC(8636e700) SHA1(f11c20da6c3bfe1842ea8f9eac8c831d49f42c32), "Bwb","The Streak (Barcrest) (MPU4) (set 21)" )
-GAME_CUSTOM( 199?, m4thestr__u, m4thestr, "ts_30b_c.1_1", 0x0000, 0x010000, CRC(2577c8fc) SHA1(6d22bd1a93f423862f5466f99690eeced9090420), "Bwb","The Streak (Barcrest) (MPU4) (set 22)" )
-GAME_CUSTOM( 199?, m4thestr__v, m4thestr, "ts_30bgc.1_1", 0x0000, 0x010000, CRC(2c582ba6) SHA1(dbcae0ef90105a7f6c720156711f73bb3c237b8a), "Bwb","The Streak (Barcrest) (MPU4) (set 23)" )
-GAME_CUSTOM( 199?, m4thestr__w, m4thestr, "ts_39_dc.1_1", 0x0000, 0x010000, CRC(84d338b8) SHA1(847e6b7808b6d5d361414a4aaa5d5cf6a5863a70), "Bwb","The Streak (Barcrest) (MPU4) (set 24)" )
-GAME_CUSTOM( 199?, m4thestr__x, m4thestr, "ts_39a_c.1_1", 0x0000, 0x010000, CRC(9ee56a3a) SHA1(365ec4c90abbe4b352bdd2d6aed5eec4cdaf35ff), "Bwb","The Streak (Barcrest) (MPU4) (set 25)" )
-GAME_CUSTOM( 199?, m4thestr__y, m4thestr, "ts_39b_c.1_1", 0x0000, 0x010000, CRC(470cd6d1) SHA1(c9c3c9c23c596e79f1b6495d4706b1da6cbd1b2e), "Bwb","The Streak (Barcrest) (MPU4) (set 26)" )
+// versioning here makes no sense, why do the higher revision numbers have earlier years?
+
+// "(C)1996 B.W.B." and "TS 3.0"
+GAME_CUSTOM( 199?, m4thestr, 0, "ts_20a_4.3_1", 0x0000, 0x010000, CRC(921b8cc3) SHA1(74143888de21aba4374d016cb4c08ae59dfa59ef), "Bwb","The Streak (Barcrest) (MPU4) (TS 3.0 K)" )
+GAME_CUSTOM( 199?, m4thestr__a, m4thestr, "ts_20_b4.3_1", 0x0000, 0x010000, CRC(17726c7c) SHA1(193b572b9f859f1018f1be398b35a5103622faf8), "Bwb","The Streak (Barcrest) (MPU4) (TS 3.0 YD)" )
+GAME_CUSTOM( 199?, m4thestr__c, m4thestr, "ts_20_d4.3_1", 0x0000, 0x010000, CRC(7bfae07a) SHA1(9414ad510ca9a183181a30d98858278c375c185d), "Bwb","The Streak (Barcrest) (MPU4) (TS 3.0 D)" )
+GAME_CUSTOM( 199?, m4thestr__g, m4thestr, "ts_20b_4.3_1", 0x0000, 0x010000, CRC(2221f704) SHA1(8459b658d3ad84bb86250518d0403970f881323d), "Bwb","The Streak (Barcrest) (MPU4) (TS 3.0 B)" )
+GAME_CUSTOM( 199?, m4thestr__i, m4thestr, "ts_20bg4.3_1", 0x0000, 0x010000, CRC(b2a419ea) SHA1(bbc565ce8e79d39e1b1a7cd1685fa8c7ce00d7b9), "Bwb","The Streak (Barcrest) (MPU4) (TS 3.0 AD)" )
+GAME_CUSTOM( 199?, m4thestr__k, m4thestr, "ts_20bt4.3_1", 0x0000, 0x010000, CRC(d10a6c5a) SHA1(07fdf3797c87e35468ef859bb67753f11c5fbded), "Bwb","The Streak (Barcrest) (MPU4) (TS 3.0 BR)" )
+// "(C)1996 B.W.B." and "TS 3.0" (TST 3.0 on startup)
+GAME_CUSTOM( 199?, m4thestr__b, m4thestr, "ts_20_bc.3_1", 0x0000, 0x010000, CRC(b03b3f11) SHA1(9116ac608ab5574d5912550b988fc319d0a38444), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 YD / TS 3.0, set 1)" )
+GAME_CUSTOM( 199?, m4thestr__d, m4thestr, "ts_20_dc.3_1", 0x0000, 0x010000, CRC(7196b317) SHA1(c124ed3d030b77870b7851b3da104f8fc5393a31), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 D / TS 3.0, set 1)" )
+GAME_CUSTOM( 199?, m4thestr__f, m4thestr, "ts_20a_c.3_1", 0x0000, 0x010000, CRC(c8eb1dd9) SHA1(7b7520467cd32295e6324d350d1f2bed829555e0), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 K / TS 3.0, set 1)" )
+GAME_CUSTOM( 199?, m4thestr__h, m4thestr, "ts_20b_c.3_1", 0x0000, 0x010000, CRC(ecdf59a9) SHA1(7c2141e336ba3f1865bbf422aaa0b78cb1a27a4c), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 B / TS 3.0, set 1)" )
+GAME_CUSTOM( 199?, m4thestr__j, m4thestr, "ts_20bgc.3_1", 0x0000, 0x010000, CRC(3b2d7b50) SHA1(a8560b0894783a398aaf0510493583b8cb826947), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 AD / TS 3.0, set 1)" )
+GAME_CUSTOM( 199?, m4thestr__l, m4thestr, "ts_20btc.3_1", 0x0000, 0x010000, CRC(58830ee0) SHA1(b2798e0f8e03870c77892a32654263575e9aaafa), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 BR / TS 3.0, set 1)" )
+GAME_CUSTOM( 199?, m4thestr__m, m4thestr, "ts_25_bc.3_1", 0x0000, 0x010000, CRC(43877de6) SHA1(b006ae97139c9bd66a32884b92fdbdf4f10db58a), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 YD / TS 3.0, set 2)" )
+GAME_CUSTOM( 199?, m4thestr__n, m4thestr, "ts_25_dc.3_1", 0x0000, 0x010000, CRC(60ab675c) SHA1(763b66d7731489abdec84d2f8e3c186ad95c7349), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 D / TS 3.0, set 2)" )
+GAME_CUSTOM( 199?, m4thestr__o, m4thestr, "ts_25_kc.3_1", 0x0000, 0x010000, CRC(418cbb32) SHA1(e19a0c7fd88a82983ec33b99f3819a2a238c68a5), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 Y / TS 3.0)" ) // set 1 is missing?
+GAME_CUSTOM( 199?, m4thestr__p, m4thestr, "ts_25a_c.3_1", 0x0000, 0x010000, CRC(448a705f) SHA1(35a7cc480c376eaef7439d5c96cec490aec9fc4b), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 K / TS 3.0, set 2)" )
+GAME_CUSTOM( 199?, m4thestr__q, m4thestr, "ts_25b_c.3_1", 0x0000, 0x010000, CRC(5b390ec2) SHA1(db7719ab8021e0b75e9419d2a05f3139fbab8e61), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 B / TS 3.0, set 2)" )
+GAME_CUSTOM( 199?, m4thestr__r, m4thestr, "ts_25bgc.3_1", 0x0000, 0x010000, CRC(612463fc) SHA1(085d8faf91c8ef6520ca971d249322f336464856), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 AD / TS 3.0, set 2)" )
+GAME_CUSTOM( 199?, m4thestr__s, m4thestr, "ts_25btc.3_1", 0x0000, 0x010000, CRC(6d658e61) SHA1(619dbacad424e5db82c6ee19d1e3358c18cfe783), "Bwb","The Streak (Barcrest) (MPU4) (TST 3.0 BR / TS 3.0, set 2)" )
+// "(C)1996 B.W.B." and "TS 2.0" (TST on startup)
+GAME_CUSTOM( 199?, m4thestr__e, m4thestr, "thestreakbin", 0x0000, 0x010000, CRC(cb79f9e5) SHA1(6cbdc5327e81b51f1060fd91efa3d061b9748b49), "Bwb","The Streak (Barcrest) (MPU4) (TST 2.0 BAD / TS 2.0)" )
+// "(C)1998 B.W.B." and "TS 1.4"
+GAME_CUSTOM( 199?, m4thestr__t, m4thestr, "ts_30a_c.1_1", 0x0000, 0x010000, CRC(8636e700) SHA1(f11c20da6c3bfe1842ea8f9eac8c831d49f42c32), "Bwb","The Streak (Barcrest) (MPU4) (TS 1.4 K)" )
+GAME_CUSTOM( 199?, m4thestr__u, m4thestr, "ts_30b_c.1_1", 0x0000, 0x010000, CRC(2577c8fc) SHA1(6d22bd1a93f423862f5466f99690eeced9090420), "Bwb","The Streak (Barcrest) (MPU4) (TS 1.4 B)" )
+GAME_CUSTOM( 199?, m4thestr__v, m4thestr, "ts_30bgc.1_1", 0x0000, 0x010000, CRC(2c582ba6) SHA1(dbcae0ef90105a7f6c720156711f73bb3c237b8a), "Bwb","The Streak (Barcrest) (MPU4) (TS 1.4 BAD)" )
+// "(C)1999 B.W.B." and "TS 1.3"
+GAME_CUSTOM( 199?, m4thestr__w, m4thestr, "ts_39_dc.1_1", 0x0000, 0x010000, CRC(84d338b8) SHA1(847e6b7808b6d5d361414a4aaa5d5cf6a5863a70), "Bwb","The Streak (Barcrest) (MPU4) (TS 1.3 D)" )
+GAME_CUSTOM( 199?, m4thestr__x, m4thestr, "ts_39a_c.1_1", 0x0000, 0x010000, CRC(9ee56a3a) SHA1(365ec4c90abbe4b352bdd2d6aed5eec4cdaf35ff), "Bwb","The Streak (Barcrest) (MPU4) (TS 1.3 K)" )
+GAME_CUSTOM( 199?, m4thestr__y, m4thestr, "ts_39b_c.1_1", 0x0000, 0x010000, CRC(470cd6d1) SHA1(c9c3c9c23c596e79f1b6495d4706b1da6cbd1b2e), "Bwb","The Streak (Barcrest) (MPU4) (TS 1.3 B)" )
#define M4CPYCAT_EXTRA_ROMS \
@@ -5053,42 +5153,51 @@ GAME_CUSTOM( 199?, m4thestr__y, m4thestr, "ts_39b_c.1_1", 0x0000, 0x010000,
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4cpycat, 0, "co_20_bc.1_1", 0x0000, 0x010000, CRC(c9d3cdc1) SHA1(28265b0f95a8829efc4e346269a7af17a6abe345), "Bwb","Copy Cat (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4cpycat__a, m4cpycat, "co_20_dc.1_1", 0x0000, 0x010000, CRC(c6552f9a) SHA1(ae7ad183d2cd89bc9748dcbb3ea26832bed30009), "Bwb","Copy Cat (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4cpycat__b, m4cpycat, "co_20_kc.1_1", 0x0000, 0x010000, CRC(b5260e35) SHA1(6cbf4ca426fd47b0db49e188a7a7fe72f6c99aef), "Bwb","Copy Cat (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4cpycat__c, m4cpycat, "co_20a_c.1_1", 0x0000, 0x010000, CRC(486d42af) SHA1(327fca9604845ec37c2212413105f48a7b0e2836), "Bwb","Copy Cat (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4cpycat__d, m4cpycat, "co_20b_c.1_1", 0x0000, 0x010000, CRC(90e0e19f) SHA1(c7e73faa4c3e853dbaa6b14303ab454a09eb36d7), "Bwb","Copy Cat (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4cpycat__e, m4cpycat, "co_20bgc.1_1", 0x0000, 0x010000, CRC(f99d6ae2) SHA1(2106412caa7d3dfc262dc2b1d3e258bb33605912), "Bwb","Copy Cat (Barcrest) (MPU4) (set 6)" )
-GAME_CUSTOM( 199?, m4cpycat__f, m4cpycat, "co_20bgp.4_1", 0x0000, 0x010000, CRC(fdc6753a) SHA1(4dd39fa995ee9fa7d153d64dd163d5482aa490d2), "Bwb","Copy Cat (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4cpycat__g, m4cpycat, "co_20btc.1_1", 0x0000, 0x010000, CRC(3780d767) SHA1(4fb4354b02eed754ca1caef2b56eccc76524ae1e), "Bwb","Copy Cat (Barcrest) (MPU4) (set 8)" )
-GAME_CUSTOM( 199?, m4cpycat__h, m4cpycat, "co_25_bc.1_1", 0x0000, 0x010000, CRC(13c82730) SHA1(992a6d04ed357548bb6cea6505316013048a2e57), "Bwb","Copy Cat (Barcrest) (MPU4) (set 9)" )
-GAME_CUSTOM( 199?, m4cpycat__i, m4cpycat, "co_25_bp.2_1", 0x0000, 0x010000, CRC(a5983412) SHA1(7daa3028355fb0e85dce1629477a8efae625f86d), "Bwb","Copy Cat (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4cpycat__j, m4cpycat, "co_25_bp.3_1", 0x0000, 0x010000, CRC(4060da30) SHA1(34a93e0550992e7510d1eaf2d5109da3c3fa2f75), "Bwb","Copy Cat (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4cpycat__k, m4cpycat, "co_25_dc.1_1", 0x0000, 0x010000, CRC(a3f34f3f) SHA1(4c4842cc668b4c3abd9d2896cc50bbc3d9643b75), "Bwb","Copy Cat (Barcrest) (MPU4) (set 12)" )
-GAME_CUSTOM( 199?, m4cpycat__l, m4cpycat, "co_25_dp.2_1", 0x0000, 0x010000, CRC(1f192638) SHA1(16a86242281281ca7b994dee06910d7f107c4743), "Bwb","Copy Cat (Barcrest) (MPU4) (set 13)" )
-GAME_CUSTOM( 199?, m4cpycat__m, m4cpycat, "co_25_kc.1_1", 0x0000, 0x010000, CRC(6b2a7f2b) SHA1(5d558431a6b83214cc0dc33d999eeb72f3c53e85), "Bwb","Copy Cat (Barcrest) (MPU4) (set 14)" )
-GAME_CUSTOM( 199?, m4cpycat__n, m4cpycat, "co_25_kp.2_1", 0x0000, 0x010000, CRC(73d3aaba) SHA1(5ef9118462bfdf93182ec539d3b80a72c09fa032), "Bwb","Copy Cat (Barcrest) (MPU4) (set 15)" )
-GAME_CUSTOM( 199?, m4cpycat__o, m4cpycat, "co_25_kp.3_1", 0x0000, 0x010000, CRC(2e8fa3ee) SHA1(18f4e4eae7d7ac14486ed731bb67cab22d0b287d), "Bwb","Copy Cat (Barcrest) (MPU4) (set 16)" )
-GAME_CUSTOM( 199?, m4cpycat__p, m4cpycat, "co_25a_c.1_1", 0x0000, 0x010000, CRC(e753196a) SHA1(79fc9b567dc946f81d40c3b215035cf2adcf94af), "Bwb","Copy Cat (Barcrest) (MPU4) (set 17)" )
-GAME_CUSTOM( 199?, m4cpycat__q, m4cpycat, "co_25a_p.2_1", 0x0000, 0x010000, CRC(a058d7f7) SHA1(6e9116ce757503ef5b1822473a310513dd2973e3), "Bwb","Copy Cat (Barcrest) (MPU4) (set 18)" )
-GAME_CUSTOM( 199?, m4cpycat__r, m4cpycat, "co_25a_p.3_1", 0x0000, 0x010000, CRC(ba172858) SHA1(d0a025c339f886802b7491448b6b2a4e1f5a3451), "Bwb","Copy Cat (Barcrest) (MPU4) (set 19)" )
-GAME_CUSTOM( 199?, m4cpycat__s, m4cpycat, "co_25b_c.1_1", 0x0000, 0x010000, CRC(d82a9080) SHA1(9b9091f867f0b5d75f2bd5f9d62a4419073da357), "Bwb","Copy Cat (Barcrest) (MPU4) (set 20)" )
-GAME_CUSTOM( 199?, m4cpycat__t, m4cpycat, "co_25b_p.2_1", 0x0000, 0x010000, CRC(48c8f7e6) SHA1(ff651e4c88b81bb816ab92e7f1d1fbd2c2920db1), "Bwb","Copy Cat (Barcrest) (MPU4) (set 21)" )
-GAME_CUSTOM( 199?, m4cpycat__u, m4cpycat, "co_25bgc.1_1", 0x0000, 0x010000, CRC(947a5465) SHA1(c99c0e8ca515fbad8801e07e5936256cca8e7af1), "Bwb","Copy Cat (Barcrest) (MPU4) (set 22)" )
-GAME_CUSTOM( 199?, m4cpycat__v, m4cpycat, "co_25bgp.2_1", 0x0000, 0x010000, CRC(84ab9c9d) SHA1(4c1043fb7ff6cd4e681f18e2dd0ddd29d5ce6d09), "Bwb","Copy Cat (Barcrest) (MPU4) (set 23)" )
-GAME_CUSTOM( 199?, m4cpycat__w, m4cpycat, "co_25bgp.3_1", 0x0000, 0x010000, CRC(7fa4089e) SHA1(f73aff58c7a627f993e65527bb551c23640b22ed), "Bwb","Copy Cat (Barcrest) (MPU4) (set 24)" )
-GAME_CUSTOM( 199?, m4cpycat__x, m4cpycat, "co_25btc.1_1", 0x0000, 0x010000, CRC(dbbae1b6) SHA1(2ee1d53872774d4b80f8c1a4e8a6ceb9e79ed6f5), "Bwb","Copy Cat (Barcrest) (MPU4) (set 25)" )
-GAME_CUSTOM( 199?, m4cpycat__y, m4cpycat, "co_25btp.2_1", 0x0000, 0x010000, CRC(cea10ed8) SHA1(2b10193824afb50d561b2307a3189d14e2f5d47a), "Bwb","Copy Cat (Barcrest) (MPU4) (set 26)" )
-GAME_CUSTOM( 199?, m4cpycat__z, m4cpycat, "co_30_bc.2_1", 0x0000, 0x010000, CRC(2d39f5fa) SHA1(20075621085765150a57233eccd61f16dbbae9b1), "Bwb","Copy Cat (Barcrest) (MPU4) (set 27)" )
-GAME_CUSTOM( 199?, m4cpycat__0, m4cpycat, "co_30_bp.4_1", 0x0000, 0x010000, CRC(0826ffa7) SHA1(05a12d68acf69d8a582fc7fee91a282280380420), "Bwb","Copy Cat (Barcrest) (MPU4) (set 28)" )
-GAME_CUSTOM( 199?, m4cpycat__1, m4cpycat, "co_30_dc.2_1", 0x0000, 0x010000, CRC(b028d639) SHA1(9393b82d41e7f8a7e2dba33545477ae13a8d6804), "Bwb","Copy Cat (Barcrest) (MPU4) (set 29)" )
-GAME_CUSTOM( 199?, m4cpycat__2, m4cpycat, "co_30_dp.4_1", 0x0000, 0x010000, CRC(f40f09ca) SHA1(11f7af5bf78768759c3eba50ab1a906e81ce1100), "Bwb","Copy Cat (Barcrest) (MPU4) (set 30)" )
-GAME_CUSTOM( 199?, m4cpycat__3, m4cpycat, "co_30_kp.4_1", 0x0000, 0x010000, CRC(97ab5c33) SHA1(dc6b9705de4731a5cbc35557ca26c80b20cc6518), "Bwb","Copy Cat (Barcrest) (MPU4) (set 31)" )
-GAME_CUSTOM( 199?, m4cpycat__4, m4cpycat, "co_30a_c.2_1", 0x0000, 0x010000, CRC(eea1522d) SHA1(fdfe797b8cf2fa10f24e89c3047290ac63acebc7), "Bwb","Copy Cat (Barcrest) (MPU4) (set 32)" )
-GAME_CUSTOM( 199?, m4cpycat__5, m4cpycat, "co_30b_c.2_1", 0x0000, 0x010000, CRC(61e873b0) SHA1(00037fde263fe9e9cb227ef2945e8b90feee0d6e), "Bwb","Copy Cat (Barcrest) (MPU4) (set 33)" )
-GAME_CUSTOM( 199?, m4cpycat__6, m4cpycat, "co_30bdc.2_1", 0x0000, 0x010000, CRC(6f261bdc) SHA1(df7ab51c984b20665fdb327d17ca6ec32109ec2d), "Bwb","Copy Cat (Barcrest) (MPU4) (set 34)" )
-GAME_CUSTOM( 199?, m4cpycat__7, m4cpycat, "co_30bgc.2_1", 0x0000, 0x010000, CRC(85cd1c27) SHA1(e0c250bf2848b6991cf33c07b43c2704ae906e47), "Bwb","Copy Cat (Barcrest) (MPU4) (set 35)" )
-GAME_CUSTOM( 199?, m4cpycat__8, m4cpycat, "co_30btc.2_1", 0x0000, 0x010000, CRC(3a940326) SHA1(f1a0eca5ceccbf979ac7a2c51bfdc1de6f0aa40e), "Bwb","Copy Cat (Barcrest) (MPU4) (set 36)" )
+// "(C)1997 B.W.B." and "CO 1.1"
+GAME_CUSTOM( 199?, m4cpycat, 0, "co_20_bc.1_1", 0x0000, 0x010000, CRC(c9d3cdc1) SHA1(28265b0f95a8829efc4e346269a7af17a6abe345), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.1 YD)" )
+GAME_CUSTOM( 199?, m4cpycat__a, m4cpycat, "co_20_dc.1_1", 0x0000, 0x010000, CRC(c6552f9a) SHA1(ae7ad183d2cd89bc9748dcbb3ea26832bed30009), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.1 D)" )
+GAME_CUSTOM( 199?, m4cpycat__b, m4cpycat, "co_20_kc.1_1", 0x0000, 0x010000, CRC(b5260e35) SHA1(6cbf4ca426fd47b0db49e188a7a7fe72f6c99aef), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.1 Y)" )
+GAME_CUSTOM( 199?, m4cpycat__c, m4cpycat, "co_20a_c.1_1", 0x0000, 0x010000, CRC(486d42af) SHA1(327fca9604845ec37c2212413105f48a7b0e2836), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.1 K)" )
+GAME_CUSTOM( 199?, m4cpycat__d, m4cpycat, "co_20b_c.1_1", 0x0000, 0x010000, CRC(90e0e19f) SHA1(c7e73faa4c3e853dbaa6b14303ab454a09eb36d7), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.1 B)" )
+GAME_CUSTOM( 199?, m4cpycat__e, m4cpycat, "co_20bgc.1_1", 0x0000, 0x010000, CRC(f99d6ae2) SHA1(2106412caa7d3dfc262dc2b1d3e258bb33605912), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.1 BAD)" )
+GAME_CUSTOM( 199?, m4cpycat__g, m4cpycat, "co_20btc.1_1", 0x0000, 0x010000, CRC(3780d767) SHA1(4fb4354b02eed754ca1caef2b56eccc76524ae1e), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.1 BR)" )
+// "(C)1998 B.W.B." and "CO 4.1"
+GAME_CUSTOM( 199?, m4cpycat__f, m4cpycat, "co_20bgp.4_1", 0x0000, 0x010000, CRC(fdc6753a) SHA1(4dd39fa995ee9fa7d153d64dd163d5482aa490d2), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 4.1 BAD)" )
+// "(C)1997 B.W.B." and "CO 1.3"
+GAME_CUSTOM( 199?, m4cpycat__h, m4cpycat, "co_25_bc.1_1", 0x0000, 0x010000, CRC(13c82730) SHA1(992a6d04ed357548bb6cea6505316013048a2e57), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.3 YD)" )
+GAME_CUSTOM( 199?, m4cpycat__k, m4cpycat, "co_25_dc.1_1", 0x0000, 0x010000, CRC(a3f34f3f) SHA1(4c4842cc668b4c3abd9d2896cc50bbc3d9643b75), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.3 D)" )
+GAME_CUSTOM( 199?, m4cpycat__m, m4cpycat, "co_25_kc.1_1", 0x0000, 0x010000, CRC(6b2a7f2b) SHA1(5d558431a6b83214cc0dc33d999eeb72f3c53e85), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.3 Y)" )
+GAME_CUSTOM( 199?, m4cpycat__p, m4cpycat, "co_25a_c.1_1", 0x0000, 0x010000, CRC(e753196a) SHA1(79fc9b567dc946f81d40c3b215035cf2adcf94af), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.3 K)" )
+GAME_CUSTOM( 199?, m4cpycat__s, m4cpycat, "co_25b_c.1_1", 0x0000, 0x010000, CRC(d82a9080) SHA1(9b9091f867f0b5d75f2bd5f9d62a4419073da357), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.3 B)" )
+GAME_CUSTOM( 199?, m4cpycat__u, m4cpycat, "co_25bgc.1_1", 0x0000, 0x010000, CRC(947a5465) SHA1(c99c0e8ca515fbad8801e07e5936256cca8e7af1), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.3 BAD)" )
+GAME_CUSTOM( 199?, m4cpycat__x, m4cpycat, "co_25btc.1_1", 0x0000, 0x010000, CRC(dbbae1b6) SHA1(2ee1d53872774d4b80f8c1a4e8a6ceb9e79ed6f5), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 1.3 BR)" )
+// "(C)1998 B.W.B." and "CO 2.0"
+GAME_CUSTOM( 199?, m4cpycat__i, m4cpycat, "co_25_bp.2_1", 0x0000, 0x010000, CRC(a5983412) SHA1(7daa3028355fb0e85dce1629477a8efae625f86d), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.0 YD)" )
+GAME_CUSTOM( 199?, m4cpycat__l, m4cpycat, "co_25_dp.2_1", 0x0000, 0x010000, CRC(1f192638) SHA1(16a86242281281ca7b994dee06910d7f107c4743), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.0 D)" )
+GAME_CUSTOM( 199?, m4cpycat__n, m4cpycat, "co_25_kp.2_1", 0x0000, 0x010000, CRC(73d3aaba) SHA1(5ef9118462bfdf93182ec539d3b80a72c09fa032), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.0 Y)" )
+GAME_CUSTOM( 199?, m4cpycat__q, m4cpycat, "co_25a_p.2_1", 0x0000, 0x010000, CRC(a058d7f7) SHA1(6e9116ce757503ef5b1822473a310513dd2973e3), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.0 K)" )
+GAME_CUSTOM( 199?, m4cpycat__t, m4cpycat, "co_25b_p.2_1", 0x0000, 0x010000, CRC(48c8f7e6) SHA1(ff651e4c88b81bb816ab92e7f1d1fbd2c2920db1), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.0 B)" )
+GAME_CUSTOM( 199?, m4cpycat__v, m4cpycat, "co_25bgp.2_1", 0x0000, 0x010000, CRC(84ab9c9d) SHA1(4c1043fb7ff6cd4e681f18e2dd0ddd29d5ce6d09), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.0 BAD)" )
+GAME_CUSTOM( 199?, m4cpycat__y, m4cpycat, "co_25btp.2_1", 0x0000, 0x010000, CRC(cea10ed8) SHA1(2b10193824afb50d561b2307a3189d14e2f5d47a), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.0 BR)" )
+// "(C)1998 B.W.B." and "CO 3.0"
+GAME_CUSTOM( 199?, m4cpycat__j, m4cpycat, "co_25_bp.3_1", 0x0000, 0x010000, CRC(4060da30) SHA1(34a93e0550992e7510d1eaf2d5109da3c3fa2f75), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 3.0 YD)" )
+GAME_CUSTOM( 199?, m4cpycat__o, m4cpycat, "co_25_kp.3_1", 0x0000, 0x010000, CRC(2e8fa3ee) SHA1(18f4e4eae7d7ac14486ed731bb67cab22d0b287d), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 3.0 Y)" )
+GAME_CUSTOM( 199?, m4cpycat__r, m4cpycat, "co_25a_p.3_1", 0x0000, 0x010000, CRC(ba172858) SHA1(d0a025c339f886802b7491448b6b2a4e1f5a3451), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 3.0 K)" )
+GAME_CUSTOM( 199?, m4cpycat__w, m4cpycat, "co_25bgp.3_1", 0x0000, 0x010000, CRC(7fa4089e) SHA1(f73aff58c7a627f993e65527bb551c23640b22ed), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 3.0 BAD)" )
+// "(C)1998 B.W.B." and "CO 2.4"
+GAME_CUSTOM( 199?, m4cpycat__z, m4cpycat, "co_30_bc.2_1", 0x0000, 0x010000, CRC(2d39f5fa) SHA1(20075621085765150a57233eccd61f16dbbae9b1), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.4 YD)" )
+GAME_CUSTOM( 199?, m4cpycat__1, m4cpycat, "co_30_dc.2_1", 0x0000, 0x010000, CRC(b028d639) SHA1(9393b82d41e7f8a7e2dba33545477ae13a8d6804), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.4 D)" )
+GAME_CUSTOM( 199?, m4cpycat__4, m4cpycat, "co_30a_c.2_1", 0x0000, 0x010000, CRC(eea1522d) SHA1(fdfe797b8cf2fa10f24e89c3047290ac63acebc7), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.4 K)" )
+GAME_CUSTOM( 199?, m4cpycat__5, m4cpycat, "co_30b_c.2_1", 0x0000, 0x010000, CRC(61e873b0) SHA1(00037fde263fe9e9cb227ef2945e8b90feee0d6e), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.4 B)" )
+GAME_CUSTOM( 199?, m4cpycat__6, m4cpycat, "co_30bdc.2_1", 0x0000, 0x010000, CRC(6f261bdc) SHA1(df7ab51c984b20665fdb327d17ca6ec32109ec2d), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.4 BD)" )
+GAME_CUSTOM( 199?, m4cpycat__7, m4cpycat, "co_30bgc.2_1", 0x0000, 0x010000, CRC(85cd1c27) SHA1(e0c250bf2848b6991cf33c07b43c2704ae906e47), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.4 BAD)" )
+GAME_CUSTOM( 199?, m4cpycat__8, m4cpycat, "co_30btc.2_1", 0x0000, 0x010000, CRC(3a940326) SHA1(f1a0eca5ceccbf979ac7a2c51bfdc1de6f0aa40e), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 2.4 BR)" )
+// "(C)1998 B.W.B." and "CO 4.0"
+GAME_CUSTOM( 199?, m4cpycat__0, m4cpycat, "co_30_bp.4_1", 0x0000, 0x010000, CRC(0826ffa7) SHA1(05a12d68acf69d8a582fc7fee91a282280380420), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 4.0 YD)" )
+GAME_CUSTOM( 199?, m4cpycat__2, m4cpycat, "co_30_dp.4_1", 0x0000, 0x010000, CRC(f40f09ca) SHA1(11f7af5bf78768759c3eba50ab1a906e81ce1100), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 4.0 D)" )
+GAME_CUSTOM( 199?, m4cpycat__3, m4cpycat, "co_30_kp.4_1", 0x0000, 0x010000, CRC(97ab5c33) SHA1(dc6b9705de4731a5cbc35557ca26c80b20cc6518), "Bwb","Copy Cat (Barcrest) (MPU4) (CO 4.0 Y)" )
+
+
#undef GAME_CUSTOM
#define GAME_CUSTOM(year, setname,parent,name,offset,length,hash,company,title) \
@@ -5140,26 +5249,28 @@ GAME_CUSTOM( 199?, m4bnkrol__b, m4bnkrol, "br301f.p1", 0x0000, 0x020000, CR
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS )
-
-GAME_CUSTOM( 199?, m4tic, 0, "tt_20a__.2_1", 0x0000, 0x010000, CRC(b923ac0d) SHA1(1237962af43c2c3f4ed0ad5bed21f24decfeae02), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4tic__a, m4tic, "tt_20a_c.1_1", 0x0000, 0x010000, CRC(18a68ea0) SHA1(37783121ff5540e264d89069101d991acb66b982), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4tic__b, m4tic, "tt_20b__.2_1", 0x0000, 0x010000, CRC(b5eb86ab) SHA1(99ddb80941c67bd271e22af17405457d32676484), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4tic__c, m4tic, "tt_20b_c.1_1", 0x0000, 0x010000, CRC(d35079ab) SHA1(d109af8ef6f4d26b505f63df10d5850ddc0c0b65), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4tic__d, m4tic, "tt_20bd_.2_1", 0x0000, 0x010000, CRC(0889a699) SHA1(c96d135b9248e9bab78af438b97e6cb854b2c771), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4tic__e, m4tic, "tt_20bdc.1_1", 0x0000, 0x010000, CRC(2a43efd4) SHA1(9f6e568ca95a5f4e1a4e82eda2d15dfa225e65ea), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 6)" )
-GAME_CUSTOM( 199?, m4tic__f, m4tic, "tt_20bg_.2_1", 0x0000, 0x010000, CRC(128896c1) SHA1(af37645b88116cde57fcc42ed58d69bf9c11ff8a), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4tic__g, m4tic, "tt_20bt_.2_1", 0x0000, 0x010000, CRC(362046f9) SHA1(6cb5a986517158d63e7403891bb749eaccb63acb), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 8)" )
-GAME_CUSTOM( 199?, m4tic__h, m4tic, "tt_20s__.2_1", 0x0000, 0x010000, CRC(53dfefe9) SHA1(0f9fc1d65ebd7e370de6001f594616b79b2aa57e), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 9)" )
-GAME_CUSTOM( 199?, m4tic__i, m4tic, "tt_20s_c.1_1", 0x0000, 0x010000, CRC(65a38960) SHA1(48ffdda1c5c98742124418429c510de9f5b90270), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4tic__j, m4tic, "tt_20sb_.2_1", 0x0000, 0x010000, CRC(c9174384) SHA1(f694a6a7f78b8a062fd26371fa6758ec4252352a), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4tic__k, m4tic, "tt_20sk_.2_1", 0x0000, 0x010000, CRC(dca42636) SHA1(c6e9aaf402c2fc7eec6e9b07aa4c33312bc0af0e), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 12)" )
-GAME_CUSTOM( 199?, m4tic__l, m4tic, "tt_25a_c.3_1", 0x0000, 0x010000, CRC(2e44c6db) SHA1(ffc96dafbcfae719c3971882e066971540fafe78), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 13)" )
-GAME_CUSTOM( 199?, m4tic__m, m4tic, "tt_25b_c.3_1", 0x0000, 0x010000, CRC(d393edf0) SHA1(66f17a88018fee71f3e0c7996371c9b6832ef23a), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 14)" )
-GAME_CUSTOM( 199?, m4tic__n, m4tic, "tt_25bdc.3_1", 0x0000, 0x010000, CRC(2ce71772) SHA1(a2f36d0d11826a7be7f8cc04f21a77facb4ce188), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 15)" )
-GAME_CUSTOM( 199?, m4tic__o, m4tic, "tt_25bgc.3_1", 0x0000, 0x010000, CRC(2dbeb9c3) SHA1(8288a9d17932582c7536563e34e2150a85c7a822), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 16)" )
-GAME_CUSTOM( 199?, m4tic__p, m4tic, "tt_25btc.3_1", 0x0000, 0x010000, CRC(d5702abf) SHA1(6115f39d70dfdf1a00bcfc5f0fe257dd1e0ff968), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 17)" )
-GAME_CUSTOM( 199?, m4tic__r, m4tic, "tt_25sbc.3_1", 0x0000, 0x010000, CRC(11c0152f) SHA1(d46b0a6774da35cf9d3a352b9fe7cb574880b210), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 18)" )
-GAME_CUSTOM( 199?, m4tic__s, m4tic, "tti20___.2_1", 0x0000, 0x010000, CRC(91054bf6) SHA1(68cc6c9b47849149a574e3af97bd0e8255fc5c43), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (set 19)" )
+// "(C)1995 B.W.B." and "TT_ 2.0"
+GAME_CUSTOM( 199?, m4tic, 0, "tt_20s__.2_1", 0x0000, 0x010000, CRC(53dfefe9) SHA1(0f9fc1d65ebd7e370de6001f594616b79b2aa57e), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0)" )
+GAME_CUSTOM( 199?, m4tic__h, m4tic, "tt_20a__.2_1", 0x0000, 0x010000, CRC(b923ac0d) SHA1(1237962af43c2c3f4ed0ad5bed21f24decfeae02), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0 K)" )
+GAME_CUSTOM( 199?, m4tic__b, m4tic, "tt_20b__.2_1", 0x0000, 0x010000, CRC(b5eb86ab) SHA1(99ddb80941c67bd271e22af17405457d32676484), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0 B)" )
+GAME_CUSTOM( 199?, m4tic__d, m4tic, "tt_20bd_.2_1", 0x0000, 0x010000, CRC(0889a699) SHA1(c96d135b9248e9bab78af438b97e6cb854b2c771), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0 BD)" )
+GAME_CUSTOM( 199?, m4tic__f, m4tic, "tt_20bg_.2_1", 0x0000, 0x010000, CRC(128896c1) SHA1(af37645b88116cde57fcc42ed58d69bf9c11ff8a), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0 BA)" )
+GAME_CUSTOM( 199?, m4tic__g, m4tic, "tt_20bt_.2_1", 0x0000, 0x010000, CRC(362046f9) SHA1(6cb5a986517158d63e7403891bb749eaccb63acb), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0 BR)" )
+GAME_CUSTOM( 199?, m4tic__j, m4tic, "tt_20sb_.2_1", 0x0000, 0x010000, CRC(c9174384) SHA1(f694a6a7f78b8a062fd26371fa6758ec4252352a), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0 YD)" )
+GAME_CUSTOM( 199?, m4tic__k, m4tic, "tt_20sk_.2_1", 0x0000, 0x010000, CRC(dca42636) SHA1(c6e9aaf402c2fc7eec6e9b07aa4c33312bc0af0e), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0 Y)" )
+GAME_CUSTOM( 199?, m4tic__s, m4tic, "tti20___.2_1", 0x0000, 0x010000, CRC(91054bf6) SHA1(68cc6c9b47849149a574e3af97bd0e8255fc5c43), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0 C)" )
+// "(C)1996 B.W.B." and "TT 1.0"
+GAME_CUSTOM( 199?, m4tic__a, m4tic, "tt_20a_c.1_1", 0x0000, 0x010000, CRC(18a68ea0) SHA1(37783121ff5540e264d89069101d991acb66b982), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT 1.0 K)" )
+GAME_CUSTOM( 199?, m4tic__c, m4tic, "tt_20b_c.1_1", 0x0000, 0x010000, CRC(d35079ab) SHA1(d109af8ef6f4d26b505f63df10d5850ddc0c0b65), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT 1.0 B)" )
+GAME_CUSTOM( 199?, m4tic__e, m4tic, "tt_20bdc.1_1", 0x0000, 0x010000, CRC(2a43efd4) SHA1(9f6e568ca95a5f4e1a4e82eda2d15dfa225e65ea), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT 1.0 BD)" )
+GAME_CUSTOM( 199?, m4tic__i, m4tic, "tt_20s_c.1_1", 0x0000, 0x010000, CRC(65a38960) SHA1(48ffdda1c5c98742124418429c510de9f5b90270), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT 1.0 CB)" )
+// "(C)1995 B.W.B." and "TT_ 3.0"
+GAME_CUSTOM( 199?, m4tic__l, m4tic, "tt_25a_c.3_1", 0x0000, 0x010000, CRC(2e44c6db) SHA1(ffc96dafbcfae719c3971882e066971540fafe78), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 3.0 K)" )
+GAME_CUSTOM( 199?, m4tic__m, m4tic, "tt_25b_c.3_1", 0x0000, 0x010000, CRC(d393edf0) SHA1(66f17a88018fee71f3e0c7996371c9b6832ef23a), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 3.0 B)" )
+GAME_CUSTOM( 199?, m4tic__n, m4tic, "tt_25bdc.3_1", 0x0000, 0x010000, CRC(2ce71772) SHA1(a2f36d0d11826a7be7f8cc04f21a77facb4ce188), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 3.0 BD)" )
+GAME_CUSTOM( 199?, m4tic__o, m4tic, "tt_25bgc.3_1", 0x0000, 0x010000, CRC(2dbeb9c3) SHA1(8288a9d17932582c7536563e34e2150a85c7a822), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 3.0 AD)" )
+GAME_CUSTOM( 199?, m4tic__p, m4tic, "tt_25btc.3_1", 0x0000, 0x010000, CRC(d5702abf) SHA1(6115f39d70dfdf1a00bcfc5f0fe257dd1e0ff968), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 3.0 BR)" )
+GAME_CUSTOM( 199?, m4tic__r, m4tic, "tt_25sbc.3_1", 0x0000, 0x010000, CRC(11c0152f) SHA1(d46b0a6774da35cf9d3a352b9fe7cb574880b210), "Bwb","Tic Tac Toe (Barcrest) (MPU4) (TT_ 3.0 YD)" )
#define M4RHRCL_EXTRA_ROMS \
ROM_REGION( 0x48, "fakechr", 0 ) \
@@ -5287,11 +5398,11 @@ GAME_CUSTOM( 199?, m4gbust__q, m4gbust, "gb_20_b_.2a3", 0x0000, 0x01
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
// "(C)1997 BWB" and "CA_ 5.0"
-GAME_CUSTOM( 199?, m4cshenc, 0, "ca_sj__c.5_1", 0x0000, 0x020000, CRC(d9131b39) SHA1(4af89a7bc10de1406f401bede41e1bc452dbb159), "Bwb","Cash Encounters (Barcrest) (MPU4) (CA_ 5.0)" )
-GAME_CUSTOM( 199?, m4cshenc__a, m4cshenc, "ca_sj_bc.5_1", 0x0000, 0x020000, CRC(30d1fb6d) SHA1(f845bef4ad7f2f48077eed74840916e87abb24b2), "Bwb","Cash Encounters (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4cshenc__b, m4cshenc, "ca_sj_dc.5_1", 0x0000, 0x020000, CRC(ac3ec716) SHA1(4ff8c26c46ec6e1321249b4d6d0c5194ed917f33), "Bwb","Cash Encounters (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4cshenc__c, m4cshenc, "ca_sja_c.5_1", 0x0000, 0x020000, CRC(c56a9d0b) SHA1(b0298c2e03097ab8ba5f99892e732ff1ab784c9b), "Bwb","Cash Encounters (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4cshenc__d, m4cshenc, "ca_sjb_c.5_1", 0x0000, 0x020000, CRC(8fad355d) SHA1(2ac16ad85ab8239a3e961abb06f9f71d17e5832a), "Bwb","Cash Encounters (Barcrest) (MPU4) (set 5)" )
+GAME_CUSTOM( 199?, m4cshenc, 0, "ca_sj__c.5_1", 0x0000, 0x020000, CRC(d9131b39) SHA1(4af89a7bc10de1406f401bede41e1bc452dbb159), "Bwb","Cash Encounters (Barcrest) (MPU4) (CA_ 5.0 C)" )
+GAME_CUSTOM( 199?, m4cshenc__a, m4cshenc, "ca_sj_bc.5_1", 0x0000, 0x020000, CRC(30d1fb6d) SHA1(f845bef4ad7f2f48077eed74840916e87abb24b2), "Bwb","Cash Encounters (Barcrest) (MPU4) (CA_ 5.0 YCD)" )
+GAME_CUSTOM( 199?, m4cshenc__b, m4cshenc, "ca_sj_dc.5_1", 0x0000, 0x020000, CRC(ac3ec716) SHA1(4ff8c26c46ec6e1321249b4d6d0c5194ed917f33), "Bwb","Cash Encounters (Barcrest) (MPU4) (CA_ 5.0 CD)" )
+GAME_CUSTOM( 199?, m4cshenc__c, m4cshenc, "ca_sja_c.5_1", 0x0000, 0x020000, CRC(c56a9d0b) SHA1(b0298c2e03097ab8ba5f99892e732ff1ab784c9b), "Bwb","Cash Encounters (Barcrest) (MPU4) (CA_ 5.0 CK)" )
+GAME_CUSTOM( 199?, m4cshenc__d, m4cshenc, "ca_sjb_c.5_1", 0x0000, 0x020000, CRC(8fad355d) SHA1(2ac16ad85ab8239a3e961abb06f9f71d17e5832a), "Bwb","Cash Encounters (Barcrest) (MPU4) (CA_ 5.0 BC)" )
@@ -5310,13 +5421,13 @@ GAME_CUSTOM( 199?, m4cshenc__d, m4cshenc, "ca_sjb_c.5_1", 0x0000, 0x020000,
// "(C)1998 BWB" and "LLU 0.1"
GAME_CUSTOM( 199?, m4lvlcl, 0, "ll__x__x.1_1", 0x0000, 0x010000, CRC(1ef1c5b4) SHA1(455c147f158f8a36a9add9b984abc22af78258cf), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (LLU 0.1)" )
-GAME_CUSTOM( 199?, m4lvlcl__e, m4lvlcl, "ll__xgdx.1_1", 0x0000, 0x010000, CRC(65824c4f) SHA1(a514e48ac0f9d4a8d7506bf6932aeee88ca17104), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (set 6)" )
+GAME_CUSTOM( 199?, m4lvlcl__e, m4lvlcl, "ll__xgdx.1_1", 0x0000, 0x010000, CRC(65824c4f) SHA1(a514e48ac0f9d4a8d7506bf6932aeee88ca17104), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (LLU 0.1 AD)" )
// "(C)1998 BWB" and "LLU 3.0"
GAME_CUSTOM( 199?, m4lvlcl__a, m4lvlcl, "ll__x__x.3_1", 0x0000, 0x010000, CRC(42b85ebc) SHA1(a352d8389674fcfd90dc4e8155e6f4a78c9ec70d), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (LLU 3.0)" )
-GAME_CUSTOM( 199?, m4lvlcl__b, m4lvlcl, "ll__x_dx.3_1", 0x0000, 0x010000, CRC(7753c8f0) SHA1(9600fee08529f29716697c4630730f15ef8a457b), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4lvlcl__c, m4lvlcl, "ll__xa_x.3_1", 0x0000, 0x010000, CRC(79468e93) SHA1(4beaa6fe2ad095b4674473ab99a7216513923077), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4lvlcl__d, m4lvlcl, "ll__xb_x.3_1", 0x0000, 0x010000, CRC(73b2fb34) SHA1(c127bc0954f8d01e9d8365a4506dde6f17da33fd), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4lvlcl__f, m4lvlcl, "ll__xgdx.3_1", 0x0000, 0x010000, CRC(ba5b951a) SHA1(9ee36d3d42ce68f5797208633be87ddbbe605cf1), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (set 7)" )
+GAME_CUSTOM( 199?, m4lvlcl__b, m4lvlcl, "ll__x_dx.3_1", 0x0000, 0x010000, CRC(7753c8f0) SHA1(9600fee08529f29716697c4630730f15ef8a457b), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (LLU 3.0 D)" )
+GAME_CUSTOM( 199?, m4lvlcl__c, m4lvlcl, "ll__xa_x.3_1", 0x0000, 0x010000, CRC(79468e93) SHA1(4beaa6fe2ad095b4674473ab99a7216513923077), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (LLU 3.0 K)" )
+GAME_CUSTOM( 199?, m4lvlcl__d, m4lvlcl, "ll__xb_x.3_1", 0x0000, 0x010000, CRC(73b2fb34) SHA1(c127bc0954f8d01e9d8365a4506dde6f17da33fd), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (LLU 3.0 B)" )
+GAME_CUSTOM( 199?, m4lvlcl__f, m4lvlcl, "ll__xgdx.3_1", 0x0000, 0x010000, CRC(ba5b951a) SHA1(9ee36d3d42ce68f5797208633be87ddbbe605cf1), "Bwb","Lucky Las Vegas Classic (Barcrest) (MPU4) (LLU 3.0 AD)" )
#define M4RHS_EXTRA_ROMS \
@@ -5372,11 +5483,11 @@ GAME_CUSTOM( 199?, m4rhs__l, m4rhs, "rocky15t", 0x0000, 0x020000, CRC(3fba
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
// "(C)1999 BWB" and "DR_ 2.0"
-GAME_CUSTOM( 199?, m4oadrac, 0, "dr__x__x.2_0", 0x0000, 0x020000, CRC(4ca65bd9) SHA1(deb0a7d3596647210061b69a10fc6cdfc066538e), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (DR_ 2.0)" )
-GAME_CUSTOM( 199?, m4oadrac__b, m4oadrac, "dr__x_dx.2_0", 0x0000, 0x020000, CRC(47f3ac5a) SHA1(e0413c55b897e96e32c3332dac041bc94da6dea3), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4oadrac__d, m4oadrac, "dr__xa_x.2_0", 0x0000, 0x020000, CRC(702f0f7a) SHA1(8529c3eaa33cb972cc38067d176c7c8af0674147), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4oadrac__f, m4oadrac, "dr__xb_x.2_0", 0x0000, 0x020000, CRC(3ae8a72c) SHA1(a27faba69430b1d16abf62e0ef37182ab302bbbd), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4oadrac__h, m4oadrac, "dri_xa_x.2_0", 0x0000, 0x020000, CRC(849d2a80) SHA1(c9ff0a5a543b62ca5b885f93a35b5f40e88db8c3), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (set 9)" )
+GAME_CUSTOM( 199?, m4oadrac, 0, "dr__x__x.2_0", 0x0000, 0x020000, CRC(4ca65bd9) SHA1(deb0a7d3596647210061b69a10fc6cdfc066538e), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (DR_ 2.0, set 1)" )
+GAME_CUSTOM( 199?, m4oadrac__b, m4oadrac, "dr__x_dx.2_0", 0x0000, 0x020000, CRC(47f3ac5a) SHA1(e0413c55b897e96e32c3332dac041bc94da6dea3), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (DR_ 2.0 D)" )
+GAME_CUSTOM( 199?, m4oadrac__d, m4oadrac, "dr__xa_x.2_0", 0x0000, 0x020000, CRC(702f0f7a) SHA1(8529c3eaa33cb972cc38067d176c7c8af0674147), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (DR_ 2.0 K)" )
+GAME_CUSTOM( 199?, m4oadrac__f, m4oadrac, "dr__xb_x.2_0", 0x0000, 0x020000, CRC(3ae8a72c) SHA1(a27faba69430b1d16abf62e0ef37182ab302bbbd), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (DR_ 2.0 B)" )
+GAME_CUSTOM( 199?, m4oadrac__h, m4oadrac, "dri_xa_x.2_0", 0x0000, 0x020000, CRC(849d2a80) SHA1(c9ff0a5a543b62ca5b885f93a35b5f40e88db8c3), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (DR_ 2.0, set 2)" )
// "(C)1999 BWB" and "DR_ 2.1"
GAME_CUSTOM( 199?, m4oadrac__a, m4oadrac, "dr__x__x.2_1", 0x0000, 0x020000, CRC(d91773af) SHA1(3d8dda0f409f55bce9c4d4e2a8377e43fe2f1f7d), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (DR_ 2.1)" )
GAME_CUSTOM( 199?, m4oadrac__c, m4oadrac, "dr__x_dx.2_1", 0x0000, 0x020000, CRC(f8c36b67) SHA1(c765d7a5eb4d7cd74295da26a7c6f5341a1ca257), "Bwb","Ooh Aah Dracula (Barcrest) (MPU4) (set 4)" )
@@ -5399,12 +5510,11 @@ GAME_CUSTOM( 199?, m4oadrac__g, m4oadrac, "dr__xb_x.2_1", 0x0000, 0x020000,
// "(C)1996 B.W.B." and "CT4 7.0"
-GAME_CUSTOM( 199?, m4ticcla, 0, "ct_20_b4.7_1", 0x0000, 0x010000, CRC(48b9a162) SHA1(2d19a5d6379dc93a56c920b3cd61a0d1a8c6b303), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (set 1)" )
-
-GAME_CUSTOM( 199?, m4ticcla__b, m4ticcla, "ct_20_d4.7_1", 0x0000, 0x010000, CRC(3c7c862c) SHA1(a3577f29950e845a14ca68750d2ab6c56a395dba), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4ticcla__d, m4ticcla, "ct_20a_4.7_1", 0x0000, 0x010000, CRC(35318095) SHA1(888105a674c9ea8ccad33e24c05ef42936f5f4cf), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4ticcla__g, m4ticcla, "ct_20bg4.7_1", 0x0000, 0x010000, CRC(7f200f42) SHA1(0ea6aa0de88982737d818c9dac9f2605cea7bc11), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (set 8)" )
-GAME_CUSTOM( 199?, m4ticcla__i, m4ticcla, "ct_20bt4.7_1", 0x0000, 0x010000, CRC(7c7280a4) SHA1(3dbdc53a3474f4147427ed4fa8a161a3b364d43b), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (set 10)" )
+GAME_CUSTOM( 199?, m4ticcla, 0, "ct_20_b4.7_1", 0x0000, 0x010000, CRC(48b9a162) SHA1(2d19a5d6379dc93a56c920b3cd61a0d1a8c6b303), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (CT4 7.0 YD)" )
+GAME_CUSTOM( 199?, m4ticcla__b, m4ticcla, "ct_20_d4.7_1", 0x0000, 0x010000, CRC(3c7c862c) SHA1(a3577f29950e845a14ca68750d2ab6c56a395dba), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (CT4 7.0 D)" )
+GAME_CUSTOM( 199?, m4ticcla__d, m4ticcla, "ct_20a_4.7_1", 0x0000, 0x010000, CRC(35318095) SHA1(888105a674c9ea8ccad33e24c05ef42936f5f4cf), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (CT4 7.0 K)" )
+GAME_CUSTOM( 199?, m4ticcla__g, m4ticcla, "ct_20bg4.7_1", 0x0000, 0x010000, CRC(7f200f42) SHA1(0ea6aa0de88982737d818c9dac9f2605cea7bc11), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (CT4 7.0 BAD)" )
+GAME_CUSTOM( 199?, m4ticcla__i, m4ticcla, "ct_20bt4.7_1", 0x0000, 0x010000, CRC(7c7280a4) SHA1(3dbdc53a3474f4147427ed4fa8a161a3b364d43b), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (CT4 7.0 BR)" )
// "(C)1996 B.W.B." and "CT 4.0"
GAME_CUSTOM( 199?, m4ticcla__a, m4ticcla, "ct_20_bc.4_1", 0x0000, 0x010000, CRC(fb40b5ff) SHA1(723a07a2b6b08483aa75ecdd4fd9720a66201fc3), "Bwb","Tic Tac Toe Classic (Barcrest) (MPU4) (set 2)" )
@@ -5448,12 +5558,12 @@ GAME_CUSTOM( 199?, m4ticcla__0, m4ticcla, "ct_30btc.2_1", 0x0000, 0x010000,
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS )
// "(C)1998 B.W.B." and "TG 3.3"
-GAME_CUSTOM( 199?, m4ticglc, 0, "tg_25a_c.3_1", 0x0000, 0x010000, CRC(44b2b6b0) SHA1(c2caadd68659bd474df534101e3bc13b15a43694), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (TG 3.3)" )
+GAME_CUSTOM( 199?, m4ticglc, 0, "tg_25a_c.3_1", 0x0000, 0x010000, CRC(44b2b6b0) SHA1(c2caadd68659bd474df534101e3bc13b15a43694), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (TG 3.3 K)" )
// "(C)1998 B.W.B." and "TG 4.4"
-GAME_CUSTOM( 199?, m4ticglc__a, m4ticglc, "tg_30_dc.4_1", 0x0000, 0x010000, CRC(19c0fb1e) SHA1(955da095df56f28ace6839c9b6df5669f576730c), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (TG 4.4)" )
-GAME_CUSTOM( 199?, m4ticglc__b, m4ticglc, "tg_30a_c.4_1", 0x0000, 0x010000, CRC(3e4dcc70) SHA1(c4ad3a8633e19015d4d2b08a653119e9e4c5dcbb), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4ticglc__c, m4ticglc, "tg_30b_c.4_1", 0x0000, 0x010000, CRC(83d1517a) SHA1(38a9269dac53ca701e4b621d5e77696142f429cd), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4ticglc__d, m4ticglc, "tg_30bgc.4_1", 0x0000, 0x010000, CRC(a366c32d) SHA1(8d86778411ef07e06d99c12147a211d7620af9bf), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (set 5)" )
+GAME_CUSTOM( 199?, m4ticglc__a, m4ticglc, "tg_30_dc.4_1", 0x0000, 0x010000, CRC(19c0fb1e) SHA1(955da095df56f28ace6839c9b6df5669f576730c), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (TG 4.4 D)" )
+GAME_CUSTOM( 199?, m4ticglc__b, m4ticglc, "tg_30a_c.4_1", 0x0000, 0x010000, CRC(3e4dcc70) SHA1(c4ad3a8633e19015d4d2b08a653119e9e4c5dcbb), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (TG 4.4 K)" )
+GAME_CUSTOM( 199?, m4ticglc__c, m4ticglc, "tg_30b_c.4_1", 0x0000, 0x010000, CRC(83d1517a) SHA1(38a9269dac53ca701e4b621d5e77696142f429cd), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (TG 4.4 B)" )
+GAME_CUSTOM( 199?, m4ticglc__d, m4ticglc, "tg_30bgc.4_1", 0x0000, 0x010000, CRC(a366c32d) SHA1(8d86778411ef07e06d99c12147a211d7620af9bf), "Bwb","Tic Tac Toe Gold (Barcrest) (MPU4) (TG 4.4 BAD)" )
#define M4SSCLAS_EXTRA_ROMS \
ROM_REGION( 0x48, "fakechr", 0 ) \
@@ -5471,15 +5581,15 @@ GAME_CUSTOM( 199?, m4ticglc__d, m4ticglc, "tg_30bgc.4_1", 0x0000, 0x010000,
// "(C)2000 BWB" and "CSS 6.0"
GAME_CUSTOM( 199?, m4ssclas, 0, "cs__x__x.6_0", 0x0000, 0x010000, CRC(3230284d) SHA1(bca3b4c43859ed424956c4119fa6a91a2e7d6eec), "Bwb","Super Streak Classic (Barcrest) (MPU4) (CSS 6.0)" )
-GAME_CUSTOM( 199?, m4ssclas__b, m4ssclas, "cs__x_dx.6_0", 0x0000, 0x010000, CRC(6dd2d11f) SHA1(8c7e60d3e5a0d4fccb024b5c0aa21fd2b9a5ada9), "Bwb","Super Streak Classic (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4ssclas__c, m4ssclas, "cs__xa_x.6_0", 0x0000, 0x010000, CRC(6657e810) SHA1(0860076cf01c732f419483876991fb42a838622a), "Bwb","Super Streak Classic (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4ssclas__e, m4ssclas, "cs__xb_x.6_0", 0x0000, 0x010000, CRC(801d543c) SHA1(f0905947312fb2a526765d17cde01af5095ef923), "Bwb","Super Streak Classic (Barcrest) (MPU4) (set 6)" )
+GAME_CUSTOM( 199?, m4ssclas__b, m4ssclas, "cs__x_dx.6_0", 0x0000, 0x010000, CRC(6dd2d11f) SHA1(8c7e60d3e5a0d4fccb024b5c0aa21fd2b9a5ada9), "Bwb","Super Streak Classic (Barcrest) (MPU4) (CSS 6.0 D)" )
+GAME_CUSTOM( 199?, m4ssclas__c, m4ssclas, "cs__xa_x.6_0", 0x0000, 0x010000, CRC(6657e810) SHA1(0860076cf01c732f419483876991fb42a838622a), "Bwb","Super Streak Classic (Barcrest) (MPU4) (CSS 6.0 K)" )
+GAME_CUSTOM( 199?, m4ssclas__e, m4ssclas, "cs__xb_x.6_0", 0x0000, 0x010000, CRC(801d543c) SHA1(f0905947312fb2a526765d17cde01af5095ef923), "Bwb","Super Streak Classic (Barcrest) (MPU4) (CSS 6.0 B)" )
// "(C)1998 BWB" and "CSS 5.0"
-GAME_CUSTOM( 199?, m4ssclas__d, m4ssclas, "cs__xb_x.5_0", 0x0000, 0x010000, CRC(a5f46ff5) SHA1(a068029f774bc6ed2e76acc2eb509bc6e2490945), "Bwb","Super Streak Classic (Barcrest) (MPU4) (CSS 5.0)" )
+GAME_CUSTOM( 199?, m4ssclas__d, m4ssclas, "cs__xb_x.5_0", 0x0000, 0x010000, CRC(a5f46ff5) SHA1(a068029f774bc6ed2e76acc2eb509bc6e2490945), "Bwb","Super Streak Classic (Barcrest) (MPU4) (CSS 5.0 B)" )
// "(C)1998 BWB" and "CSS 2.0"
-GAME_CUSTOM( 199?, m4ssclas__a, m4ssclas, "cs__x_dx.2_0", 0x0000, 0x010000, CRC(ea004a13) SHA1(db9a187b0672c69a6a149ec6d1025bd6da9beccd), "Bwb","Super Streak Classic (Barcrest) (MPU4) (CSS 2.0)" )
+GAME_CUSTOM( 199?, m4ssclas__a, m4ssclas, "cs__x_dx.2_0", 0x0000, 0x010000, CRC(ea004a13) SHA1(db9a187b0672c69a6a149ec6d1025bd6da9beccd), "Bwb","Super Streak Classic (Barcrest) (MPU4) (CSS 2.0 D)" )
// was in SC2 Super Star set, but seems to fit here, ident hacked to "BILL BIXBY" and "V1 0.1"
-GAME_CUSTOM( 199?, m4ssclas__f, m4ssclas, "supst20.15", 0x0000, 0x010000, CRC(c3446ec4) SHA1(3c1ad27385547a33993a839b53873d8b92214ade), "hack","Super Streak Classic (Barcrest) (MPU4) (hack)" )
+GAME_CUSTOM( 199?, m4ssclas__f, m4ssclas, "supst20.15", 0x0000, 0x010000, CRC(c3446ec4) SHA1(3c1ad27385547a33993a839b53873d8b92214ade), "hack","Super Streak Classic (Barcrest) (MPU4) (hack C)" )
@@ -5499,10 +5609,10 @@ GAME_CUSTOM( 199?, m4ssclas__f, m4ssclas, "supst20.15", 0x0000, 0x010000,
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
// "(C)1999 BWB" and "SQ_ 2.0"
-GAME_CUSTOM( 199?, m4squid, 0, "squidsin.bin", 0x0000, 0x020000, CRC(be369b43) SHA1(e5c7b7a858b264db2f8f726396ddeb42004d7cb9), "Bwb","Squids In (Barcrest) (MPU4) (SQ_ 2.0, set 1)" )
-GAME_CUSTOM( 199?, m4squid__a, m4squid, "sq__x_dx.2_0", 0x0000, 0x020000, CRC(2eb6c814) SHA1(070ad5cb36220daf98043f175cf67d4d584c3d01), "Bwb","Squids In (Barcrest) (MPU4) (SQ_ 2.0, set 2)" )
-GAME_CUSTOM( 199?, m4squid__b, m4squid, "sq__xa_x.2_0", 0x0000, 0x020000, CRC(196a6b34) SHA1(a044ba73b4cf04657ddfcf787dedcb151507ef15), "Bwb","Squids In (Barcrest) (MPU4) (SQ_ 2.0, set 3)" )
-GAME_CUSTOM( 199?, m4squid__c, m4squid, "sq__xb_x.2_0", 0x0000, 0x020000, CRC(53adc362) SHA1(3920f08299bf284ee9f102ce1505d9e9cdc1d1f0), "Bwb","Squids In (Barcrest) (MPU4) (SQ_ 2.0, set 4)" )
+GAME_CUSTOM( 199?, m4squid, 0, "squidsin.bin", 0x0000, 0x020000, CRC(be369b43) SHA1(e5c7b7a858b264db2f8f726396ddeb42004d7cb9), "Bwb","Squids In (Barcrest) (MPU4) (SQ_ 2.0 C" )
+GAME_CUSTOM( 199?, m4squid__a, m4squid, "sq__x_dx.2_0", 0x0000, 0x020000, CRC(2eb6c814) SHA1(070ad5cb36220daf98043f175cf67d4d584c3d01), "Bwb","Squids In (Barcrest) (MPU4) (SQ_ 2.0 CD)" )
+GAME_CUSTOM( 199?, m4squid__b, m4squid, "sq__xa_x.2_0", 0x0000, 0x020000, CRC(196a6b34) SHA1(a044ba73b4cf04657ddfcf787dedcb151507ef15), "Bwb","Squids In (Barcrest) (MPU4) (SQ_ 2.0 CK)" )
+GAME_CUSTOM( 199?, m4squid__c, m4squid, "sq__xb_x.2_0", 0x0000, 0x020000, CRC(53adc362) SHA1(3920f08299bf284ee9f102ce1505d9e9cdc1d1f0), "Bwb","Squids In (Barcrest) (MPU4) (SQ_ 2.0 BC)" )
#define M4CALAMA_EXTRA_ROMS \
ROM_REGION( 0x48, "fakechr", 0 ) \
@@ -5521,16 +5631,16 @@ GAME_CUSTOM( 199?, m4squid__c, m4squid, "sq__xb_x.2_0", 0x0000, 0x020000, CR
// "(C)1996 BARCREST" and "CAC 0.3"
GAME_CUSTOM( 199?, m4calama, 0, "cac03s.p1", 0x0000, 0x020000, CRC(edc97795) SHA1(58fb91809c7f475fbceacfc1c3bda41b86dff54b), "Barcrest","Calamari Club (Barcrest) (MPU4) (CAC 0.3)" )
-GAME_CUSTOM( 199?, m4calama__d, m4calama, "cac03d.p1", 0x0000, 0x020000, CRC(14436ec7) SHA1(eb654ef5cef94e24296512acb6134440a5f8d17e), "Barcrest","Calamari Club (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4calama__e, m4calama, "cac03f.p1", 0x0000, 0x020000, CRC(69ce7b83) SHA1(c1f2dea6fe7983f5cefbf58ad63bce5ae8d7f7a5), "Barcrest","Calamari Club (Barcrest) (MPU4) (set 6)" )
+GAME_CUSTOM( 199?, m4calama__d, m4calama, "cac03d.p1", 0x0000, 0x020000, CRC(14436ec7) SHA1(eb654ef5cef94e24296512acb6134440a5f8d17e), "Barcrest","Calamari Club (Barcrest) (MPU4) (CAC 0.3 D)" )
+GAME_CUSTOM( 199?, m4calama__e, m4calama, "cac03f.p1", 0x0000, 0x020000, CRC(69ce7b83) SHA1(c1f2dea6fe7983f5cefbf58ad63bce5ae8d7f7a5), "Barcrest","Calamari Club (Barcrest) (MPU4) (CAC 0.3 F)" )
// "(C)1996 BARCREST" and "CA3 0.1"
GAME_CUSTOM( 199?, m4calama__c, m4calama, "ca301s.p1", 0x0000, 0x020000, CRC(95beecf1) SHA1(70f72abc0d4280618033b61f9dbe5b90b455c2b1), "Barcrest","Calamari Club (Barcrest) (MPU4) (CA3 0.1)" )
-GAME_CUSTOM( 199?, m4calama__a, m4calama, "ca301d.p1", 0x0000, 0x020000, CRC(9a220126) SHA1(d5b12955bb336f8233ed3f892e23a14ba755a511), "Barcrest","Calamari Club (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4calama__b, m4calama, "ca301f.p1", 0x0000, 0x020000, CRC(e7af1462) SHA1(72659ef85c3b7916e10b4dbc09ad62638e7ab7e1), "Barcrest","Calamari Club (Barcrest) (MPU4) (set 3)" )
+GAME_CUSTOM( 199?, m4calama__a, m4calama, "ca301d.p1", 0x0000, 0x020000, CRC(9a220126) SHA1(d5b12955bb336f8233ed3f892e23a14ba755a511), "Barcrest","Calamari Club (Barcrest) (MPU4) (CA3 0.1 D)" )
+GAME_CUSTOM( 199?, m4calama__b, m4calama, "ca301f.p1", 0x0000, 0x020000, CRC(e7af1462) SHA1(72659ef85c3b7916e10b4dbc09ad62638e7ab7e1), "Barcrest","Calamari Club (Barcrest) (MPU4) (CA3 0.1 F)" )
// "(C)1996 BARCREST" and "BC3 0.2"
GAME_CUSTOM( 199?, m4calama__g, m4calama, "bc302s.p1", 0x0000, 0x020000, CRC(b349bd2d) SHA1(9b026bece40584c4f53c30f3dacc91942c871a9f), "Barcrest","Calamari Club (Barcrest) (MPU4) (BC3 0.2)" )
-GAME_CUSTOM( 199?, m4calama__f, m4calama, "bc302f.p1", 0x0000, 0x020000, CRC(4b356aca) SHA1(81ce1585f529f1717ec56ace0a4902ae901593ae), "Barcrest","Calamari Club (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4calama__i, m4calama, "bc302d.p1", 0x0000, 0x020000, CRC(36b87f8e) SHA1(6e3cbfa52d9ec52fe009d3331dda3781f7f7783a), "Barcrest","Calamari Club (Barcrest) (MPU4) (set 10)" )
+GAME_CUSTOM( 199?, m4calama__f, m4calama, "bc302f.p1", 0x0000, 0x020000, CRC(4b356aca) SHA1(81ce1585f529f1717ec56ace0a4902ae901593ae), "Barcrest","Calamari Club (Barcrest) (MPU4) (BC3 0.2 F)" )
+GAME_CUSTOM( 199?, m4calama__i, m4calama, "bc302d.p1", 0x0000, 0x020000, CRC(36b87f8e) SHA1(6e3cbfa52d9ec52fe009d3331dda3781f7f7783a), "Barcrest","Calamari Club (Barcrest) (MPU4) (BC3 0.2 D)" )
// "(C)1996 BARCREST" and "BCA 0.4"
GAME_CUSTOM( 199?, m4calama__j, m4calama, "bca04.p1", 0x0000, 0x020000, CRC(3f97fe65) SHA1(6bc2c7e60658f39701974426ab652e8dd96b1913), "Barcrest","Calamari Club (Barcrest) (MPU4) (BCA 0.4)" )
// "(C)1996 BARCREST" and "BCA 0.2"
@@ -5594,7 +5704,7 @@ GAME_CUSTOM( 199?, m4coscas__a, m4coscas, "cosm15g", 0x0000, 0
// "(C)1996 BARCREST" and "CDD 0.5"
GAME_CUSTOM( 199?, m4dbldm, 0, "cdd05s.p1", 0x0000, 0x020000, CRC(fc14771f) SHA1(f418af9fed331560195a694f20ef2fea27ed04b0), "Barcrest","Double Diamond Club (Barcrest) (MPU4) (CDD 0.5)" )
-GAME_CUSTOM( 199?, m4dbldm__a, m4dbldm, "cdd05d.p1", 0x0000, 0x020000, CRC(fc1c5e90) SHA1(c756d2ac725168af5396c8ef7550db9087a50937), "Barcrest","Double Diamond Club (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4dbldm__b, m4dbldm, "cdd05f.p1", 0x0000, 0x020000, CRC(81914bd4) SHA1(cf286810ad6732ca1d706e70f4c2958d28cc979c), "Barcrest","Double Diamond Club (Barcrest) (MPU4) (set 3)" )
+GAME_CUSTOM( 199?, m4dbldm__a, m4dbldm, "cdd05d.p1", 0x0000, 0x020000, CRC(fc1c5e90) SHA1(c756d2ac725168af5396c8ef7550db9087a50937), "Barcrest","Double Diamond Club (Barcrest) (MPU4) (CDD 0.5 D)" )
+GAME_CUSTOM( 199?, m4dbldm__b, m4dbldm, "cdd05f.p1", 0x0000, 0x020000, CRC(81914bd4) SHA1(cf286810ad6732ca1d706e70f4c2958d28cc979c), "Barcrest","Double Diamond Club (Barcrest) (MPU4) (CDD 0.5 F)" )
// "(C)1996 BARCREST" and "CDD 0.1"
-GAME_CUSTOM( 199?, m4dbldm__c, m4dbldm, "cdd01.p1", 0x0000, 0x020000, CRC(e35dffde) SHA1(0bfc977f25f25785f20b510c44d2d3d79e23af8b), "Barcrest","Double Diamond Club (Barcrest) (MPU4) (CDD 0.1)" )
+GAME_CUSTOM( 199?, m4dbldm__c, m4dbldm, "cdd01.p1", 0x0000, 0x020000, CRC(e35dffde) SHA1(0bfc977f25f25785f20b510c44d2d3d79e23af8b), "Barcrest","Double Diamond Club (Barcrest) (MPU4) (CDD 0.1 TD)" )
diff --git a/src/mame/drivers/mpu5.cpp b/src/mame/drivers/mpu5.cpp
index 068b54fe23d..c2a5dce88cc 100644
--- a/src/mame/drivers/mpu5.cpp
+++ b/src/mame/drivers/mpu5.cpp
@@ -121,10 +121,10 @@ READ8_MEMBER(mpu5_state::asic_r8)
READ32_MEMBER(mpu5_state::asic_r32)
{
UINT32 retdata = 0;
- if (mem_mask&0xff000000) retdata |= asic_r8(space,(offset*4)+0) <<24;
- if (mem_mask&0x00ff0000) retdata |= asic_r8(space,(offset*4)+1) <<16;
- if (mem_mask&0x0000ff00) retdata |= asic_r8(space,(offset*4)+2) <<8;
- if (mem_mask&0x000000ff) retdata |= asic_r8(space,(offset*4)+3) <<0;
+ if (ACCESSING_BITS_24_31) retdata |= asic_r8(space,(offset*4)+0) <<24;
+ if (ACCESSING_BITS_16_23) retdata |= asic_r8(space,(offset*4)+1) <<16;
+ if (ACCESSING_BITS_8_15) retdata |= asic_r8(space,(offset*4)+2) <<8;
+ if (ACCESSING_BITS_0_7) retdata |= asic_r8(space,(offset*4)+3) <<0;
return retdata;
}
@@ -255,10 +255,10 @@ WRITE8_MEMBER(mpu5_state::asic_w8)
WRITE32_MEMBER(mpu5_state::asic_w32)
{
- if (mem_mask&0xff000000) asic_w8(space,(offset*4)+0, (data>>24)&0xff);
- if (mem_mask&0x00ff0000) asic_w8(space,(offset*4)+1, (data>>16)&0xff);
- if (mem_mask&0x0000ff00) asic_w8(space,(offset*4)+2, (data>>8) &0xff);
- if (mem_mask&0x000000ff) asic_w8(space,(offset*4)+3, (data>>0) &0xff);
+ if (ACCESSING_BITS_24_31) asic_w8(space,(offset*4)+0, (data>>24)&0xff);
+ if (ACCESSING_BITS_16_23) asic_w8(space,(offset*4)+1, (data>>16)&0xff);
+ if (ACCESSING_BITS_8_15) asic_w8(space,(offset*4)+2, (data>>8) &0xff);
+ if (ACCESSING_BITS_0_7) asic_w8(space,(offset*4)+3, (data>>0) &0xff);
}
diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp
index a552f78e3b4..3d2ec6f3c07 100644
--- a/src/mame/drivers/mystwarr.cpp
+++ b/src/mame/drivers/mystwarr.cpp
@@ -1684,7 +1684,7 @@ ROM_START( metamrph )
ROM_LOAD( "metamrph.nv", 0x0000, 0x080, CRC(2c51229a) SHA1(7f056792cc44ec3d4aacc33c825ab796a913488e) )
ROM_END
-ROM_START( metamrpha ) /* alternate set - possibly a bugfix version. Only 2 adjusted bytes causing a swap in commands */
+ROM_START( metamrphe ) /* alternate set - possibly a bugfix version. Only 2 adjusted bytes causing a swap in commands */
/* main program */
ROM_REGION( 0x200000, "maincpu", 0 )
ROM_LOAD16_BYTE( "3.15h", 0x000001, 0x40000, CRC(8b9f1ba3) SHA1(cccbaf117800a030c8218a91740dc98182a27901) )
@@ -1721,6 +1721,43 @@ ROM_START( metamrpha ) /* alternate set - possibly a bugfix version. Only 2 adju
ROM_LOAD( "metamrph.nv", 0x0000, 0x080, CRC(2c51229a) SHA1(7f056792cc44ec3d4aacc33c825ab796a913488e) )
ROM_END
+ROM_START( metamrpha )
+ /* main program */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "224aaa01.15h", 0x000001, 0x40000, CRC(12515518) SHA1(7c47ce7ee9817b5f3f516dda021028a0b0a2941f) )
+ ROM_LOAD16_BYTE( "224aaa02.15f", 0x000000, 0x40000, CRC(04ed41df) SHA1(a966aa887f286b528d122aceee957ca2d9fdedb6) )
+ ROM_LOAD16_BYTE( "224a03", 0x100001, 0x80000, CRC(a5bedb01) SHA1(5e7a0b93af654ba6a87be8d449c7080a0f0e2a43) )
+ ROM_LOAD16_BYTE( "224a04", 0x100000, 0x80000, CRC(ada53ba4) SHA1(f77bf854dff1f8f718579fe6d3730066708396e2) )
+
+ /* sound program */
+ ROM_REGION( 0x40000, "soundcpu", 0 )
+ ROM_LOAD("224a05", 0x000000, 0x40000, CRC(4b4c985c) SHA1(c83cce05355023be9cd55b4aa595c61f8236269c) )
+
+ /* tiles */
+ ROM_REGION( 0x500000, "gfx1", ROMREGION_ERASE00 )
+ ROM_LOADTILE_WORD( "224a09", 0x000000, 1*1024*1024, CRC(1931afce) SHA1(78838c0fd2a9c80f130db1fcf6c88b14f7363639) )
+ ROM_LOADTILE_WORD( "224a08", 0x000002, 1*1024*1024, CRC(dc94d53a) SHA1(91e16371a335f078a81c06a1045759653080aba0) )
+
+ /* sprites */
+ ROM_REGION( 0x800000, "gfx2", ROMREGION_ERASE00 )
+ ROM_LOAD64_WORD( "224a10", 0x000000, 2*1024*1024, CRC(161287f0) SHA1(a13b197a98fa1cebb11fb87b54e277c72852c4ee) )
+ ROM_LOAD64_WORD( "224a11", 0x000002, 2*1024*1024, CRC(df5960e1) SHA1(ee7794dd119f5f2c52e7ba589d78067a89ff3cab) )
+ ROM_LOAD64_WORD( "224a12", 0x000004, 2*1024*1024, CRC(ca72a4b3) SHA1(a09deb6d7cb8be4edaeb78e0e676ea2d6055e9e0) )
+ ROM_LOAD64_WORD( "224a13", 0x000006, 2*1024*1024, CRC(86b58feb) SHA1(5a43746e2cd3c7aca21496c092aef83e64b3ab2c) )
+
+ /* K053250 linescroll/zoom thingy */
+ ROM_REGION( 0x40000, "k053250_1", 0 )
+ ROM_LOAD( "224a14", 0x000000, 0x40000, CRC(3c79b404) SHA1(7c6bb4cbf050f314ea0cd3e8bc6e1947d0573084) )
+
+ /* sound data */
+ ROM_REGION( 0x400000, "shared", 0 )
+ ROM_LOAD( "224a06", 0x000000, 2*1024*1024, CRC(972f6abe) SHA1(30907495fc49fe3424c092b074c1dc137aa14306) )
+ ROM_LOAD( "224a07", 0x200000, 1*1024*1024, CRC(61b2f97a) SHA1(34bf835d6361c7809d40fa20fd238c9e2a84b101) )
+
+ ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
+ ROM_LOAD( "metamrpha.nv", 0x0000, 0x080, CRC(6d34a4f2) SHA1(6ec2645ee4375d4924c3cfed2285224af6d19f4c) )
+ROM_END
+
ROM_START( metamrphu )
/* main program */
ROM_REGION( 0x200000, "maincpu", 0 )
@@ -2271,9 +2308,10 @@ GAME( 1993, viostorma, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "
GAME( 1993, viostormab, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver AAB)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1993, metamrph, 0, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1993, metamrpha, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver EAA - alternate)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, metamrphe, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver EAA - alternate)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1993, metamrphu, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver UAA)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1993, metamrphj, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, metamrpha, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1993, mtlchamp, 0, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver EAB)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1993, mtlchamp1, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp
index fd360c13f00..33e43c44051 100644
--- a/src/mame/drivers/namcos22.cpp
+++ b/src/mame/drivers/namcos22.cpp
@@ -1582,7 +1582,7 @@ READ32_MEMBER(namcos22_state::namcos22_dspram_r)
WRITE32_MEMBER(namcos22_state::namcos22_dspram_w)
{
- if (mem_mask & 0x00ff0000)
+ if (ACCESSING_BITS_16_23)
{
// only d0-23 are connected
mem_mask |= 0xff000000;
diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp
index 63778115301..0d2dbac5add 100644
--- a/src/mame/drivers/ngen.cpp
+++ b/src/mame/drivers/ngen.cpp
@@ -283,32 +283,32 @@ WRITE16_MEMBER(ngen_state::peripheral_w)
case 0x0d:
case 0x0e:
case 0x0f:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_dmac->write(space,offset,data & 0xff);
break;
case 0x80: // DMA page offset?
case 0x81:
case 0x82:
case 0x83:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_dma_offset[offset-0x80] = data & 0xff;
break;
case 0xc0: // X-Bus modules reset
m_xbus_current = 0;
break;
case 0x10c:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_pic->write(space,0,data & 0xff);
break;
case 0x10d:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_pic->write(space,1,data & 0xff);
break;
case 0x110:
case 0x111:
case 0x112:
case 0x113:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_pit->write(space,offset-0x110,data & 0xff);
break;
case 0x141:
@@ -316,19 +316,19 @@ WRITE16_MEMBER(ngen_state::peripheral_w)
COMBINE_DATA(&m_periph141);
break;
case 0x144:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_crtc->address_w(space,0,data & 0xff);
break;
case 0x145:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_crtc->register_w(space,0,data & 0xff);
break;
case 0x146:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_viduart->data_w(space,0,data & 0xff);
break;
case 0x147:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_viduart->control_w(space,0,data & 0xff);
break;
case 0x1a0: // serial?
@@ -360,7 +360,7 @@ READ16_MEMBER(ngen_state::peripheral_r)
case 0x0d:
case 0x0e:
case 0x0f:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_dmac->read(space,offset);
logerror("DMA read offset %04x mask %04x returning %04x\n",offset,mem_mask,ret);
break;
@@ -368,42 +368,42 @@ READ16_MEMBER(ngen_state::peripheral_r)
case 0x81:
case 0x82:
case 0x83:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_dma_offset[offset-0x80] & 0xff;
break;
case 0x10c:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_pic->read(space,0);
break;
case 0x10d:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_pic->read(space,1);
break;
case 0x110:
case 0x111:
case 0x112:
case 0x113:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_pit->read(space,offset-0x110);
break;
case 0x141:
ret = m_periph141;
break;
case 0x144:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_crtc->status_r(space,0);
break;
case 0x145:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_crtc->register_r(space,0);
break;
case 0x146:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_viduart->data_r(space,0);
break;
case 0x147: // keyboard UART
// expects bit 0 to be set (UART transmit ready)
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_viduart->status_r(space,0);
break;
case 0x1a0: // I/O control register?
@@ -478,11 +478,11 @@ WRITE16_MEMBER(ngen_state::hfd_w)
case 0x00:
case 0x01:
case 0x02:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_fdc->write(space,offset,data & 0xff);
break;
case 0x03:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
{
m_fdc->write(space,offset,data & 0xff);
m_fdc_timer->write_clk0(1);
@@ -490,22 +490,22 @@ WRITE16_MEMBER(ngen_state::hfd_w)
}
break;
case 0x04:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
fdc_control_w(space,0,data & 0xff);
break;
case 0x05:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
hdc_control_w(space,0,data & 0xff);
break;
case 0x07:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
disk_addr_ext(space,0,data & 0xff);
break;
case 0x08:
case 0x09:
case 0x0a:
case 0x0b:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_fdc_timer->write(space,offset-0x08,data & 0xff);
break;
case 0x10:
@@ -516,7 +516,7 @@ WRITE16_MEMBER(ngen_state::hfd_w)
case 0x15:
case 0x16:
case 0x17:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_hdc->write(space,offset-0x10,data & 0xff);
logerror("WD1010 register %i write %02x mask %04x\n",offset-0x10,data & 0xff,mem_mask);
break;
@@ -524,7 +524,7 @@ WRITE16_MEMBER(ngen_state::hfd_w)
case 0x19:
case 0x1a:
case 0x1b:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_hdc_timer->write(space,offset-0x18,data & 0xff);
break;
}
@@ -539,11 +539,11 @@ READ16_MEMBER(ngen_state::hfd_r)
case 0x00:
case 0x01:
case 0x02:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_fdc->read(space,offset);
break;
case 0x03:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
{
ret = m_fdc->read(space,offset);
m_fdc_timer->write_clk0(1);
@@ -554,7 +554,7 @@ READ16_MEMBER(ngen_state::hfd_r)
case 0x09:
case 0x0a:
case 0x0b:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_fdc_timer->read(space,offset-0x08);
break;
case 0x10:
@@ -565,7 +565,7 @@ READ16_MEMBER(ngen_state::hfd_r)
case 0x15:
case 0x16:
case 0x17:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_hdc->read(space,offset-0x10);
logerror("WD1010 register %i read, mask %04x\n",offset-0x10,mem_mask);
break;
@@ -573,7 +573,7 @@ READ16_MEMBER(ngen_state::hfd_r)
case 0x19:
case 0x1a:
case 0x1b:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_hdc_timer->read(space,offset-0x18);
break;
}
@@ -769,12 +769,12 @@ READ16_MEMBER( ngen_state::b38_keyboard_r )
switch(offset)
{
case 0:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_viduart->data_r(space,0);
break;
case 1: // keyboard UART
// expects bit 0 to be set (UART transmit ready)
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_viduart->status_r(space,0);
break;
}
@@ -786,11 +786,11 @@ WRITE16_MEMBER( ngen_state::b38_keyboard_w )
switch(offset)
{
case 0:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_viduart->data_w(space,0,data & 0xff);
break;
case 1:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_viduart->control_w(space,0,data & 0xff);
break;
}
@@ -802,11 +802,11 @@ READ16_MEMBER( ngen_state::b38_crtc_r )
switch(offset)
{
case 0:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_crtc->register_r(space,0);
break;
case 1:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
ret = m_viduart->data_r(space,0);
break;
}
@@ -818,11 +818,11 @@ WRITE16_MEMBER( ngen_state::b38_crtc_w )
switch(offset)
{
case 0:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_crtc->address_w(space,0,data & 0xff);
break;
case 1:
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
m_crtc->register_w(space,0,data & 0xff);
break;
}
diff --git a/src/mame/drivers/plygonet.cpp b/src/mame/drivers/plygonet.cpp
index 4feea095396..2082fbb9811 100644
--- a/src/mame/drivers/plygonet.cpp
+++ b/src/mame/drivers/plygonet.cpp
@@ -236,13 +236,13 @@ WRITE32_MEMBER(polygonet_state::shared_ram_write)
}
/* write to the current dsp56k word */
- if (mem_mask & 0xffff0000)
+ if (ACCESSING_BITS_16_31)
{
m_dsp56k_shared_ram_16[(offset<<1)] = (m_shared_ram[offset] & 0xffff0000) >> 16 ;
}
/* write to the next dsp56k word */
- if (mem_mask & 0x0000ffff)
+ if (ACCESSING_BITS_0_15)
{
m_dsp56k_shared_ram_16[(offset<<1)+1] = (m_shared_ram[offset] & 0x0000ffff) ;
}
diff --git a/src/mame/drivers/segapico.cpp b/src/mame/drivers/segapico.cpp
index 1df769c0363..fa953d8a9cf 100644
--- a/src/mame/drivers/segapico.cpp
+++ b/src/mame/drivers/segapico.cpp
@@ -330,8 +330,8 @@ WRITE16_MEMBER(pico_base_state::pico_68k_io_write )
m_sega_315_5641_pcm->reset_w(1);
m_sega_315_5641_pcm->start_w(1);
- if (mem_mask&0x00ff) m_sega_315_5641_pcm->port_w(space,0,data&0xff);
- if (mem_mask&0xff00) m_sega_315_5641_pcm->port_w(space,0,(data>>8)&0xff);*/
+ if (ACCESSING_BITS_0_7) m_sega_315_5641_pcm->port_w(space,0,data&0xff);
+ if (ACCESSING_BITS_8_15) m_sega_315_5641_pcm->port_w(space,0,(data>>8)&0xff);*/
break;
}
diff --git a/src/mame/drivers/segasp.cpp b/src/mame/drivers/segasp.cpp
index ed1d4a91a2f..6f51857d51b 100644
--- a/src/mame/drivers/segasp.cpp
+++ b/src/mame/drivers/segasp.cpp
@@ -79,14 +79,14 @@ G 171-8278G 315-6416 2x 512Mbit RMI
READ64_MEMBER(segasp_state::sp_bank_r)
{
- if (mem_mask & U64(0xffffffff00000000))
+ if (ACCESSING_BITS_32_63)
return -1;
return m_sp_bank;
}
WRITE64_MEMBER(segasp_state::sp_bank_w)
{
- if (mem_mask & U64(0xffffffff00000000))
+ if (ACCESSING_BITS_32_63)
return;
UINT16 bank = data & 0xffff;
if (bank != m_sp_bank)
@@ -116,14 +116,14 @@ WRITE64_MEMBER(segasp_state::sn_93c46a_w)
READ64_MEMBER(segasp_state::sp_eeprom_r)
{
- if (mem_mask & U64(0xffffffff00000000))
+ if (ACCESSING_BITS_32_63)
return -1;
return m_sp_eeprom->do_read() << 4;
}
WRITE64_MEMBER(segasp_state::sp_eeprom_w)
{
- if (mem_mask & U64(0xffffffff00000000))
+ if (ACCESSING_BITS_32_63)
return;
m_sp_eeprom->di_write(data & 1);
m_sp_eeprom->cs_write((data & 2) ? ASSERT_LINE : CLEAR_LINE);
@@ -144,7 +144,7 @@ READ64_MEMBER(segasp_state::sp_io_r)
int reg = offset * 2;
int shift = 0;
- if (mem_mask & U64(0xffffffff00000000))
+ if (ACCESSING_BITS_32_63)
{
reg++;
shift = 32;
diff --git a/src/mame/drivers/supracan.cpp b/src/mame/drivers/supracan.cpp
index 3e4c00d964f..1679a167351 100644
--- a/src/mame/drivers/supracan.cpp
+++ b/src/mame/drivers/supracan.cpp
@@ -1368,13 +1368,13 @@ WRITE16_MEMBER( supracan_state::_68k_soundram_w )
if(offset*2 < 0x500 && offset*2 >= 0x300)
{
- if(mem_mask & 0xff00)
+ if(ACCESSING_BITS_8_15)
{
m_hack_68k_to_6502_access = true;
_6502_soundmem_w(mem, offset*2, data >> 8);
m_hack_68k_to_6502_access = false;
}
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
{
m_hack_68k_to_6502_access = true;
_6502_soundmem_w(mem, offset*2 + 1, data & 0xff);
@@ -1392,13 +1392,13 @@ READ16_MEMBER( supracan_state::_68k_soundram_r )
if(offset*2 >= 0x300 && offset*2 < 0x500)
{
val = 0;
- if(mem_mask & 0xff00)
+ if(ACCESSING_BITS_8_15)
{
m_hack_68k_to_6502_access = true;
val |= _6502_soundmem_r(mem, offset*2) << 8;
m_hack_68k_to_6502_access = false;
}
- if(mem_mask & 0x00ff)
+ if(ACCESSING_BITS_0_7)
{
m_hack_68k_to_6502_access = true;
val |= _6502_soundmem_r(mem, offset*2 + 1);
diff --git a/src/mame/drivers/tek440x.cpp b/src/mame/drivers/tek440x.cpp
index 8072e4f2cf9..8072e4f2cf9 100755..100644
--- a/src/mame/drivers/tek440x.cpp
+++ b/src/mame/drivers/tek440x.cpp
diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp
index afcee286591..d8d04c146d3 100644
--- a/src/mame/drivers/toaplan2.cpp
+++ b/src/mame/drivers/toaplan2.cpp
@@ -347,7 +347,15 @@ To Do / Unknowns:
- Need to sort out the video status register.
- Find out how exactly how sound CPU communication really works in bgaregga/batrider/bbakraid
current emulation seems to work (plays all sounds), but there are still some unknown reads/writes
- - Write a RTC core for uPD4992, needed by Othello Derby and Power Kick
+
+Notes on Power Kick coin inputs:
+- The 10 yen input is "Key In" according to the bookkeeping screen, but is
+ an otherwise normal coin input with a counter and a lockout (sharing the
+ latter with the "medal" coin).
+- The 100 yen input never adds any credits except in "Coin Function Check,"
+ instead dispensing its value into the hopper immediately.
+
+To reset the NVRAM in Othello Derby, hold P1 Button 1 down while booting.
*****************************************************************************/
@@ -356,12 +364,16 @@ To Do / Unknowns:
#include "cpu/nec/v25.h"
#include "cpu/z80/z80.h"
#include "cpu/z180/z180.h"
+#include "machine/nvram.h"
#include "sound/ym2151.h"
#include "sound/3812intf.h"
#include "sound/ymz280b.h"
#include "includes/toaplan2.h"
#include "includes/toaplipt.h"
+#define UNICODE_YEN "\xC2\xA5"
+#define PWRKICK_HOPPER_PULSE 50 // time between hopper pulses in milliseconds (probably wrong)
+
/***************************************************************************
Initialisation handlers
@@ -556,9 +568,17 @@ WRITE8_MEMBER(toaplan2_state::toaplan2_coin_w)
WRITE8_MEMBER(toaplan2_state::pwrkick_coin_w)
{
- machine().bookkeeping().coin_counter_w(0, (data & 2) >> 1 );
- machine().bookkeeping().coin_counter_w(1, (data & 8) >> 3 );
- m_pwrkick_hopper = (data & 0x80) >> 7;
+ machine().bookkeeping().coin_counter_w(0, (data & 2) >> 1 ); // medal
+ machine().bookkeeping().coin_counter_w(1, (data & 8) >> 3 ); // 10 yen
+ machine().bookkeeping().coin_counter_w(2, (data & 1) ); // 100 yen
+ m_hopper->write(space, 0, data & 0x80);
+}
+
+WRITE8_MEMBER(toaplan2_state::pwrkick_coin_lockout_w)
+{
+ machine().bookkeeping().coin_lockout_w(0, (data & 4) ? 0 : 1);
+ machine().bookkeeping().coin_lockout_w(1, (data & 4) ? 0 : 1);
+ machine().bookkeeping().coin_lockout_w(2, (data & 2) ? 0 : 1);
}
@@ -1182,7 +1202,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pwrkick_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x10ffff) AM_RAM
+ AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("nvram") // Only 10022C-10037B is actually saved as NVRAM
+ AM_RANGE(0x104000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("rtc", upd4992_device, read, write, 0x00ff )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
@@ -1197,13 +1218,14 @@ static ADDRESS_MAP_START( pwrkick_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x700018, 0x700019) AM_READ_PORT("DSWC")
AM_RANGE(0x70001c, 0x70001d) AM_READ_PORT("SYS")
AM_RANGE(0x700030, 0x700031) AM_WRITE(oki_bankswitch_w)
- AM_RANGE(0x700034, 0x700035) AM_WRITE8(pwrkick_coin_w,0x00ff)
- AM_RANGE(0x700038, 0x700039) AM_WRITENOP // lamps?
+ AM_RANGE(0x700034, 0x700035) AM_WRITE8(pwrkick_coin_w, 0x00ff)
+ AM_RANGE(0x700038, 0x700039) AM_WRITE8(pwrkick_coin_lockout_w, 0x00ff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( othldrby_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x10ffff) AM_RAM
+ AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("nvram") // Only 10331E-103401 is actually saved as NVRAM
+ AM_RANGE(0x104000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("rtc", upd4992_device, read, write, 0x00ff )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
@@ -2304,139 +2326,90 @@ static INPUT_PORTS_START( batsugun )
INPUT_PORTS_END
-CUSTOM_INPUT_MEMBER(toaplan2_state::pwrkick_hopper_status_r)
-{
- /* TODO: hopper mechanism */
- return machine().rand() & 1;
- //return m_pwrkick_hopper & (machine().rand() & 1);
-}
-
static INPUT_PORTS_START( pwrkick )
PORT_START("DSWA")
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:!1,!2")
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x01, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x03, DEF_STR( Very_Hard ) )
- PORT_DIPNAME( 0x1c, 0x00, "Payout" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x04, "2" )
- PORT_DIPSETTING( 0x08, "3" )
- PORT_DIPSETTING( 0x0c, "4" )
- PORT_DIPSETTING( 0x10, "5" )
- PORT_DIPSETTING( 0x14, "6" )
- PORT_DIPSETTING( 0x18, "7" )
- PORT_DIPSETTING( 0x1c, "8" )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPNAME( 0x5c, 0x00, "Payout" ) PORT_DIPLOCATION("SW1:!3,!4,!5,!7")
+ PORT_DIPSETTING( 0x00, "110" ) // Service mode displays values as 1-8, ignoring SW1:7
+ PORT_DIPSETTING( 0x04, "105" )
+ PORT_DIPSETTING( 0x08, "100" )
+ PORT_DIPSETTING( 0x0c, "95" )
+ PORT_DIPSETTING( 0x10, "90" )
+ PORT_DIPSETTING( 0x14, "85" )
+ PORT_DIPSETTING( 0x18, "80" )
+ PORT_DIPSETTING( 0x1c, "75" )
+ PORT_DIPSETTING( 0x40, "70" )
+ PORT_DIPSETTING( 0x44, "65" )
+ PORT_DIPSETTING( 0x48, "60" )
+ PORT_DIPSETTING( 0x4c, "55" )
+ PORT_DIPSETTING( 0x50, "50" )
+ PORT_DIPSETTING( 0x54, "45" )
+ PORT_DIPSETTING( 0x58, "40" )
+ PORT_DIPSETTING( 0x5c, "35" )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:!6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "Diagnostic" )
+ PORT_DIPNAME( 0x80, 0x00, "Diagnostic" ) PORT_DIPLOCATION("SW1:!8")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("DSWB")
- PORT_DIPNAME( 0x03, 0x00, "Play Credit" )
- PORT_DIPSETTING( 0x00, "10 \xC2\xA5" )
- PORT_DIPSETTING( 0x01, "20 \xC2\xA5" )
- PORT_DIPSETTING( 0x02, "30 \xC2\xA5" )
- PORT_DIPSETTING( 0x03, "40 \xC2\xA5" )
- PORT_DIPNAME( 0x0c, 0x00, "Coin Exchange" )
+ PORT_DIPNAME( 0x03, 0x00, "Play Credit" ) PORT_DIPLOCATION("SW2:!1,!2")
+ PORT_DIPSETTING( 0x00, UNICODE_YEN "10" )
+ PORT_DIPSETTING( 0x01, UNICODE_YEN "20" )
+ PORT_DIPSETTING( 0x02, UNICODE_YEN "30" )
+ PORT_DIPSETTING( 0x03, UNICODE_YEN "40" )
+ PORT_DIPNAME( 0x0c, 0x00, "Coin Exchange" ) PORT_DIPLOCATION("SW2:!3,!4")
PORT_DIPSETTING( 0x00, "12" )
PORT_DIPSETTING( 0x04, "10" )
PORT_DIPSETTING( 0x08, "6" )
PORT_DIPSETTING( 0x0c, "5" )
- PORT_DIPNAME( 0x30, 0x00, "Game Mode" )
+ PORT_DIPNAME( 0x30, 0x00, "Game Mode" ) PORT_DIPLOCATION("SW2:!5,!6")
PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x10, "Shot" )
PORT_DIPSETTING( 0x20, "Auto" )
PORT_DIPSETTING( 0x30, "S-Manual" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x00, "SW2:!7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x00, "SW2:!8" )
PORT_START("DSWC")
- PORT_DIPNAME( 0x01, 0x00, "DSWC" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x00, "SW3:!1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x00, "SW3:!2" )
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x00, "SW3:!3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x00, "SW3:!4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x00, "SW3:!5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x00, "SW3:!6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x00, "SW3:!7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x00, "SW3:!8" )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Left Button")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Center Button")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Right Button")
- PORT_DIPNAME( 0x10, 0x00, "IN1" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_GAMBLE_KEYIN ) // 10 Yen
- PORT_SERVICE( 0x02, IP_ACTIVE_HIGH )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_NAME("Coin 2 (" UNICODE_YEN "10)")
+ PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_HIGH )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Down Button")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, toaplan2_state, pwrkick_hopper_status_r, nullptr)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_MEMORY_RESET )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+ PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("SYS")
- PORT_DIPNAME( 0x01, 0x00, "SYS" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) // 100 Yen
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_NAME("Bookkeeping")
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE4 ) PORT_NAME("Attendant Key")
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_NAME("Coin Exchange (" UNICODE_YEN "100)")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_GAMBLE_BOOK )
+ PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_GAMBLE_SERVICE ) PORT_NAME("Attendant Key")
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_NAME("Coin 1 (Medal)")
+
+ // The specific "Payout" button shown on the test screen and diagnostic menu does not exist.
INPUT_PORTS_END
static INPUT_PORTS_START( othldrby )
@@ -3658,6 +3631,10 @@ static MACHINE_CONFIG_START( pwrkick, toaplan2_state )
MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
MCFG_UPD4992_ADD("rtc")
+ MCFG_NVRAM_ADD_0FILL("nvram")
+
+ MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(PWRKICK_HOPPER_PULSE), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
+
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -3690,6 +3667,8 @@ static MACHINE_CONFIG_START( othldrby, toaplan2_state )
MCFG_MACHINE_START_OVERRIDE(toaplan2_state,toaplan2)
MCFG_UPD4992_ADD("rtc")
+ MCFG_NVRAM_ADD_0FILL("nvram")
+
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/triforce.cpp b/src/mame/drivers/triforce.cpp
index 07fb15011b8..3cf4d22941f 100644
--- a/src/mame/drivers/triforce.cpp
+++ b/src/mame/drivers/triforce.cpp
@@ -30,35 +30,35 @@ Games on this system include....
|*| 2003 | F-Zero AX (Rev C) | Sega / Amusement Vision / Nintendo | GDROM | GDT-0004C | 317-0362-COM | 253-5508-0362 |
|*| 2003 | F-Zero AX (Rev D) | Sega / Amusement Vision / Nintendo | GDROM | GDT-0004D | 317-0362-COM | 253-5508-0362 |
|*| 2003 | F-Zero AX (Rev E) | Sega / Amusement Vision / Nintendo | GDROM | GDT-0004E | 317-0362-COM | 253-5508-0362 |
-| | 2003 | The Key Of Avalon: The Wizard Master (server) | Sega / Hitmaker | GDROM | GDT-0005 | | |
-| | 2003 | The Key Of Avalon: The Wizard Master (server) (Rev A) | Sega / Hitmaker | GDROM | GDT-0005A | | |
-| | 2003 | The Key Of Avalon: The Wizard Master (server) (Rev B) | Sega / Hitmaker | GDROM | GDT-0005B | | |
-|*| 2003 | The Key Of Avalon: The Wizard Master (server) (Rev C) | Sega / Hitmaker | GDROM | GDT-0005C | | |
-| | 2003 | The Key Of Avalon: The Wizard Master (server) (Rev D) | Sega / Hitmaker | GDROM | GDT-0005D | | |
-|*| 2003 | The Key Of Avalon: The Wizard Master (server) (Rev E) | Sega / Hitmaker | GDROM | GDT-0005E | | |
-|*| 2003 | The Key Of Avalon: The Wizard Master (server) (Rev F) | Sega / Hitmaker | GDROM | GDT-0005F | | |
-|*| 2003 | The Key Of Avalon: The Wizard Master (server) (Rev G) | Sega / Hitmaker | GDROM | GDT-0005G | | |
-| | 2003 | The Key Of Avalon: The Wizard Master (client) | Sega / Hitmaker | GDROM | GDT-0006 | | |
-| | 2003 | The Key Of Avalon: The Wizard Master (client) (Rev A) | Sega / Hitmaker | GDROM | GDT-0006A | | |
-| | 2003 | The Key Of Avalon: The Wizard Master (client) (Rev B) | Sega / Hitmaker | GDROM | GDT-0006B | | |
-| | 2003 | The Key Of Avalon: The Wizard Master (client) (Rev C) | Sega / Hitmaker | GDROM | GDT-0006C | | |
-| | 2003 | The Key Of Avalon: The Wizard Master (client) (Rev D) | Sega / Hitmaker | GDROM | GDT-0006D | | |
-|*| 2003 | The Key Of Avalon: The Wizard Master (client) (Rev E) | Sega / Hitmaker | GDROM | GDT-0006E | | |
-|*| 2003 | The Key Of Avalon: The Wizard Master (client) (Rev F) | Sega / Hitmaker | GDROM | GDT-0006F | | |
-|*| 2003 | The Key Of Avalon: The Wizard Master (client) (Rev G) | Sega / Hitmaker | GDROM | GDT-0006G | | |
+| | 2003 | The Key Of Avalon: The Wizard Master (server) | Sega / Hitmaker | GDROM | GDT-0005 | 317-0355-JPN | 253-5508-0355J|
+| | 2003 | The Key Of Avalon: The Wizard Master (server) (Rev A) | Sega / Hitmaker | GDROM | GDT-0005A | 317-0355-JPN | 253-5508-0355J|
+| | 2003 | The Key Of Avalon: The Wizard Master (server) (Rev B) | Sega / Hitmaker | GDROM | GDT-0005B | 317-0355-JPN | 253-5508-0355J|
+|*| 2003 | The Key Of Avalon: The Wizard Master (server) (Rev C) | Sega / Hitmaker | GDROM | GDT-0005C | 317-0355-JPN | 253-5508-0355J|
+| | 2003 | The Key Of Avalon: The Wizard Master (server) (Rev D) | Sega / Hitmaker | GDROM | GDT-0005D | 317-0355-JPN | 253-5508-0355J|
+|*| 2003 | The Key Of Avalon: The Wizard Master (server) (Rev E) | Sega / Hitmaker | GDROM | GDT-0005E | 317-0355-JPN | 253-5508-0355J|
+|*| 2003 | The Key Of Avalon: The Wizard Master (server) (Rev F) | Sega / Hitmaker | GDROM | GDT-0005F | 317-0355-JPN | 253-5508-0355J|
+|*| 2003 | The Key Of Avalon: The Wizard Master (server) (Rev G) | Sega / Hitmaker | GDROM | GDT-0005G | 317-0355-JPN | 253-5508-0355J|
+| | 2003 | The Key Of Avalon: The Wizard Master (client) | Sega / Hitmaker | GDROM | GDT-0006 | 317-0355-JPN | 253-5508-0355J|
+| | 2003 | The Key Of Avalon: The Wizard Master (client) (Rev A) | Sega / Hitmaker | GDROM | GDT-0006A | 317-0355-JPN | 253-5508-0355J|
+| | 2003 | The Key Of Avalon: The Wizard Master (client) (Rev B) | Sega / Hitmaker | GDROM | GDT-0006B | 317-0355-JPN | 253-5508-0355J|
+| | 2003 | The Key Of Avalon: The Wizard Master (client) (Rev C) | Sega / Hitmaker | GDROM | GDT-0006C | 317-0355-JPN | 253-5508-0355J|
+| | 2003 | The Key Of Avalon: The Wizard Master (client) (Rev D) | Sega / Hitmaker | GDROM | GDT-0006D | 317-0355-JPN | 253-5508-0355J|
+|*| 2003 | The Key Of Avalon: The Wizard Master (client) (Rev E) | Sega / Hitmaker | GDROM | GDT-0006E | 317-0355-JPN | 253-5508-0355J|
+|*| 2003 | The Key Of Avalon: The Wizard Master (client) (Rev F) | Sega / Hitmaker | GDROM | GDT-0006F | 317-0355-JPN | 253-5508-0355J|
+|*| 2003 | The Key Of Avalon: The Wizard Master (client) (Rev G) | Sega / Hitmaker | GDROM | GDT-0006G | 317-0355-JPN | 253-5508-0355J|
| | 2003 | Gekitou Pro Yakyuu Mizushima Shinji All Stars | Sega / Wow Entertainment | GDROM | GDT-0008 | 317-0371-JPN | |
| | 2003 | Gekitou Pro Yakyuu Mizushima Shinji All Stars (Rev A) | Sega / Wow Entertainment | GDROM | GDT-0008A | 317-0371-JPN | |
|*| 2003 | Gekitou Pro Yakyuu Mizushima Shinji All Stars (Rev B) | Sega / Wow Entertainment | GDROM | GDT-0008B | 317-0371-JPN | |
|*| 2003 | Gekitou Pro Yakyuu Mizushima Shinji All Stars (Rev C) | Sega / Wow Entertainment | GDROM | GDT-0008C | 317-0371-JPN | |
-| | 2003 | The Key Of Avalon 1.10 | Sega / Hitmaker | GDROM | | | |
-| | 2004 | The Key Of Avalon 1.??: ??? (server) | Sega / Hitmaker | GDROM | GDT-0009 | | |
-|*| 2004 | The Key Of Avalon 1.20: Summon The New Monster (server) (Rev A) | Sega / Hitmaker | GDROM | GDT-0009A | | |
-| | 2004 | The Key Of Avalon 1.??: ??? (server) (Rev B) | Sega / Hitmaker | GDROM | GDT-0009B | | |
-|*| 2004 | The Key Of Avalon 1.30: Chaotic Sabbat (server) (Rev C) | Sega / Hitmaker | GDROM | GDT-0009C | | |
-| | 2004 | The Key Of Avalon 1.??: ??? (client) | Sega / Hitmaker | GDROM | GDT-0010 | | |
-|*| 2004 | The Key Of Avalon 1.20: Summon The New Monster (client) (Rev A) | Sega / Hitmaker | GDROM | GDT-0010A | | |
-| | 2004 | The Key Of Avalon 1.??: ??? (client) (Rev B) | Sega / Hitmaker | GDROM | GDT-0010B | | |
-|*| 2004 | The Key Of Avalon 1.30: Chaotic Sabbat (client) (Rev C) | Sega / Hitmaker | GDROM | GDT-0010C | | |
+| | 2003 | The Key Of Avalon 1.10 | Sega / Hitmaker | GDROM | | 317-0355-JPN | 253-5508-0355J|
+| | 2004 | The Key Of Avalon 1.??: ??? (server) | Sega / Hitmaker | GDROM | GDT-0009 | 317-0355-JPN | 253-5508-0355J|
+|*| 2004 | The Key Of Avalon 1.20: Summon The New Monster (server) (Rev A) | Sega / Hitmaker | GDROM | GDT-0009A | 317-0355-JPN | 253-5508-0355J|
+| | 2004 | The Key Of Avalon 1.??: ??? (server) (Rev B) | Sega / Hitmaker | GDROM | GDT-0009B | 317-0355-JPN | 253-5508-0355J|
+|*| 2004 | The Key Of Avalon 1.30: Chaotic Sabbat (server) (Rev C) | Sega / Hitmaker | GDROM | GDT-0009C | 317-0355-JPN | 253-5508-0355J|
+| | 2004 | The Key Of Avalon 1.??: ??? (client) | Sega / Hitmaker | GDROM | GDT-0010 | 317-0355-JPN | 253-5508-0355J|
+|*| 2004 | The Key Of Avalon 1.20: Summon The New Monster (client) (Rev A) | Sega / Hitmaker | GDROM | GDT-0010A | 317-0355-JPN | 253-5508-0355J|
+| | 2004 | The Key Of Avalon 1.??: ??? (client) (Rev B) | Sega / Hitmaker | GDROM | GDT-0010B | 317-0355-JPN | 253-5508-0355J|
+|*| 2004 | The Key Of Avalon 1.30: Chaotic Sabbat (client) (Rev C) | Sega / Hitmaker | GDROM | GDT-0010C | 317-0355-JPN | 253-5508-0355J|
|*| 2004 | Firmware Update | Sega | GDROM | GDT-0011 | 317-0371-JPN | |
| | 2004 | Virtua Striker 2002 (Export) | Sega | GDROM | GDT-0012 | | |
| | 2004 | Virtua Striker 4 (Japan) | Sega | GDROM | GDT-0013 | 317-0391-JPN | |
@@ -75,13 +75,13 @@ Games on this system include....
|*| 2004 | The Key Of Avalon 2: Eutaxy Commandment (client) (Rev B) | Sega / Hitmaker | GDROM | GDT-0017B | | |
| | 2004 | F-Zero AX - Monster Ride Cycraft Edition | Sega / Amusement Vision / Nintendo | GDROM | | | |
| | 2005 | Donkey Kong Jungle Fever | Namco / Nintendo | Cart | | | |
-|*| 2005 | Mario Kart Arcade GP (Japan, MKA1 Ver.A1) | Namco / Nintendo | Cart | 837-14343-4T1 | 317-5109-COM | 253-5509-5109 |
-| | 2005 | The Key Of Avalon 2.5: War of the Key (client) | Sega / Hitmaker | GDROM | GDT-0018 | | |
-| | 2005 | The Key Of Avalon 2.5: War of the Key (client) (Rev A) | Sega / Hitmaker | GDROM | GDT-0018A | | |
-| | 2005 | The Key Of Avalon 2.5: War of the Key (client) (Rev B) | Sega / Hitmaker | GDROM | GDT-0018B | | |
-| | 2005 | The Key Of Avalon 2.5: War of the Key (server) | Sega / Hitmaker | GDROM | GDT-0019 | | |
-| | 2005 | The Key Of Avalon 2.5: War of the Key (server) (Rev A) | Sega / Hitmaker | GDROM | GDT-0019A | | |
-| | 2005 | The Key Of Avalon 2.5: War of the Key (server) (Rev B) | Sega / Hitmaker | GDROM | GDT-0019B | | |
+|*| 2005 | Mario Kart Arcade GP (Japan, MKA1 Ver.A1) | Namco / Nintendo | Cart | 837-14343-4T1 |!317-5109-COM | 253-5509-5109 |
+| | 2005 | The Key Of Avalon 2.5: War of the Key (server) | Sega / Hitmaker | GDROM | GDT-0018 | | |
+| | 2005 | The Key Of Avalon 2.5: War of the Key (server) (Rev A) | Sega / Hitmaker | GDROM | GDT-0018A | | |
+|*| 2005 | The Key Of Avalon 2.5: War of the Key (server) (Rev B) | Sega / Hitmaker | GDROM | GDT-0018B | | |
+| | 2005 | The Key Of Avalon 2.5: War of the Key (client) | Sega / Hitmaker | GDROM | GDT-0019 | | |
+| | 2005 | The Key Of Avalon 2.5: War of the Key (client) (Rev A) | Sega / Hitmaker | GDROM | GDT-0019A | | |
+|*| 2005 | The Key Of Avalon 2.5: War of the Key (client) (Rev B) | Sega / Hitmaker | GDROM | GDT-0019B | | |
| | 2006 | Virtua Striker 4 Ver.2006 (Japan) | Sega | GDROM | GDT-0020 | | |
| | 2006 | Virtua Striker 4 Ver.2006 (Japan) (Rev A) | Sega | GDROM | GDT-0020A | | |
| | 2006 | Virtua Striker 4 Ver.2006 (Japan) (Rev B) | Sega | GDROM | GDT-0020B | | |
@@ -91,11 +91,11 @@ Games on this system include....
| | 2006 | Triforce Firmware Update for Compact Flash Box | Sega | GDROM | GDT-0022 | 317-0567-COM | |
|*| 2006 | Triforce Firmware Update for Compact Flash Box (Rev A) | Sega | GDROM | GDT-0022A | 317-0567-COM | |
| | 2006 | Donkey Kong : Banana Kingdom | Namco / Nintendo | Cart? | | | |
-|*| 2007 | Mario Kart Arcade GP 2 (Japan, MK21 Ver.A) | Namco / Nintendo | Cart | 837-14343-R4S0 | 317-5128-??? | 253-5509-5128 |
-|*| 2007 | Mario Kart Arcade GP 2 (Japan, MK21 Ver.A, alt dump) | Namco / Nintendo | Cart | 837-14343-R4S0 | 317-5128-??? | 253-5509-5128 |
+|*| 2007 | Mario Kart Arcade GP 2 (Japan, MK21 Ver.A) | Namco / Nintendo | Cart | 837-14343-R4S0 |!317-5128-??? | 253-5509-5128 |
+|*| 2007 | Mario Kart Arcade GP 2 (Japan, MK21 Ver.A, alt dump) | Namco / Nintendo | Cart | 837-14343-R4S0 |!317-5128-??? | 253-5509-5128 |
+-+------+-----------------------------------------------------------------+-------------------------------------+-------|----------------+--------------+---------------|
* denotes these games are archived.
-
+! security PIC is not dumped
PCB Layouts
===========
@@ -685,7 +685,7 @@ ROM_START( avalonsc )
DISK_IMAGE_READONLY( "gdt-0005c", 0, SHA1(37b848ed131e8357ba57474f7c2aa6ab51b01781) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( avalonse )
@@ -695,7 +695,7 @@ ROM_START( avalonse )
DISK_IMAGE_READONLY( "gdt-0005e", 0, SHA1(a888a045c323f374b53295404262a3bb80a533c0) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( avalonsf )
@@ -705,7 +705,7 @@ ROM_START( avalonsf )
DISK_IMAGE_READONLY( "gdt-0005f", 0, SHA1(3752e406a5542a912f8b1ef48096ed30e7d28279) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( avalons )
@@ -715,7 +715,7 @@ ROM_START( avalons )
DISK_IMAGE_READONLY( "gdt-0005g", 0, SHA1(f2dca7ecd6c07ff098ac91e353ffc3fd843054e3) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( avalonce )
@@ -725,7 +725,7 @@ ROM_START( avalonce )
DISK_IMAGE_READONLY( "gdt-0006e", 0, SHA1(59aeb7d767d390b3ee7f079d3d1a31df3e92773b) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( avaloncf )
@@ -735,7 +735,7 @@ ROM_START( avaloncf )
DISK_IMAGE_READONLY( "gdt-0006f", 0, SHA1(35c98e41095273326ac0c6fe633c3f6e8b328f63) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( avalonc )
@@ -745,7 +745,7 @@ ROM_START( avalonc )
DISK_IMAGE_READONLY( "gdt-0006g", 0, SHA1(96e1db3f395152a62d0b344c350f38306ab1e0ae) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( gekpuryb )
@@ -775,7 +775,7 @@ ROM_START( avalns12 )
DISK_IMAGE_READONLY( "gdt-0009a", 0, SHA1(abeb242cb7f55d003eb7ca6d42dccdb5d8080bf1) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( avalns13 )
@@ -785,7 +785,7 @@ ROM_START( avalns13 )
DISK_IMAGE_READONLY( "gdt-0009c", 0, SHA1(b960815d85e255521fc26bd4a9e4b7e5c4469487) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( avalnc12 )
@@ -795,7 +795,7 @@ ROM_START( avalnc12 )
DISK_IMAGE_READONLY( "gdt-0010a", 0, SHA1(a82f803a2097890c29e44ef30d97ad1fcf550435) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
/*
@@ -822,7 +822,7 @@ ROM_START( avalnc13 )
DISK_IMAGE_READONLY( "gdt-0010c", 0, SHA1(c7a3fdb467ccd03b5b9b9e8e290faabcbbc77546) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("avalon.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
+ ROM_LOAD("317-0355-jpn.data", 0x00, 0x50, CRC(9b9db9d8) SHA1(60aab36fcfd7a2850b2947effea70e44a06d1f78) )
ROM_END
ROM_START( tfupdate )
@@ -913,7 +913,27 @@ ROM_START( avalon20 )
DISK_IMAGE_READONLY( "gdt-0017b", 0, BAD_DUMP SHA1(e2dd32c322ffcaf38b82275d2721b71bb3dfc1f2) )
ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
- ROM_LOAD("gdt-0017b.data", 0x00, 0x50, CRC(32cb46d4) SHA1(a58b9e03d57b317133d9b6c29e42852af8e77559) )
+ ROM_LOAD("avalon2x.data", 0x00, 0x50, CRC(c5071ada) SHA1(70018180b917beec1b2c272f9125fa43fd1a7b00) )
+ROM_END
+
+ROM_START( avalns25 )
+ TRIFORCE_BIOS
+
+ DISK_REGION( "gdrom" )
+ DISK_IMAGE_READONLY( "gdt-0018b", 0, SHA1(4cd10813e66b72021ca344886638025f979d40c0) )
+
+ ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
+ ROM_LOAD("avalon2x.data", 0x00, 0x50, CRC(c5071ada) SHA1(70018180b917beec1b2c272f9125fa43fd1a7b00) )
+ROM_END
+
+ROM_START( avalnc25 )
+ TRIFORCE_BIOS
+
+ DISK_REGION( "gdrom" )
+ DISK_IMAGE_READONLY( "gdt-0019b", 0, SHA1(7f978ec998a86ed9c36a495bfa72073c6d2bbe31) )
+
+ ROM_REGION( 0x50, "pic", ROMREGION_ERASE)
+ ROM_LOAD("avalon2x.data", 0x00, 0x50, CRC(c5071ada) SHA1(70018180b917beec1b2c272f9125fa43fd1a7b00) )
ROM_END
ROM_START( vs42006 )
@@ -1079,12 +1099,12 @@ ROM_END
// 0017 GAME( 2004, avalc20o, avalon20, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (GDT-0017)", MACHINE_IS_SKELETON )
// 0017A GAME( 2004, avalc20a, avalon20, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (Rev A) (GDT-0017A)", MACHINE_IS_SKELETON )
/* 0017B */ GAME( 2004, avalon20, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (Rev B) (GDT-0017B)", MACHINE_IS_SKELETON )
-// 0018 GAME( 2005, aval25co, aval25c, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (GDT-0018)", MACHINE_IS_SKELETON )
-// 0018A GAME( 2005, aval25ca, aval25c, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (Rev A) (GDT-0018A)", MACHINE_IS_SKELETON )
-// 0018B GAME( 2005, aval25c, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (Rev B) (GDT-0018B)", MACHINE_IS_SKELETON )
-// 0019 GAME( 2005, aval25so, aval25s, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (GDT-0019)", MACHINE_IS_SKELETON )
-// 0019A GAME( 2005, aval25sa, aval25s, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (Rev A) (GDT-0019A)", MACHINE_IS_SKELETON )
-// 0019B GAME( 2005, aval25s, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (Rev B) (GDT-0019B)", MACHINE_IS_SKELETON )
+// 0018 GAME( 2005, aval25co, aval25c, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (GDT-0018)", MACHINE_IS_SKELETON )
+// 0018A GAME( 2005, aval25ca, aval25c, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (Rev A) (GDT-0018A)", MACHINE_IS_SKELETON )
+/* 0018B */ GAME( 2005, avalns25, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (Rev B) (GDT-0018B)", MACHINE_IS_SKELETON )
+// 0019 GAME( 2005, aval25so, aval25s, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (GDT-0019)", MACHINE_IS_SKELETON )
+// 0019A GAME( 2005, aval25sa, aval25s, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (Rev A) (GDT-0019A)", MACHINE_IS_SKELETON )
+/* 0019B */ GAME( 2005, avalnc25, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (Rev B) (GDT-0019B)", MACHINE_IS_SKELETON )
// 0020 GAME( 2006, vs42k6o, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (GDT-0020)", MACHINE_IS_SKELETON )
// 0020A GAME( 2006, vs42k6a, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev A) (GDT-0020A)", MACHINE_IS_SKELETON )
// 0020B GAME( 2006, vs42k6b, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev B) (GDT-0020B)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/uapce.cpp b/src/mame/drivers/uapce.cpp
index 1868e615c02..14358a66aa1 100644
--- a/src/mame/drivers/uapce.cpp
+++ b/src/mame/drivers/uapce.cpp
@@ -276,7 +276,7 @@ static INPUT_PORTS_START( uapce )
PORT_DIPSETTING( 0x30, "12 minute Timed Play" )
PORT_DIPSETTING( 0x38, "20 minute Timed Play" )
PORT_DIPNAME( 0x40, 0x40, "Buy-In Feature" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
diff --git a/src/mame/drivers/vegas.cpp b/src/mame/drivers/vegas.cpp
index 269dafacfd3..6dde2254705 100644
--- a/src/mame/drivers/vegas.cpp
+++ b/src/mame/drivers/vegas.cpp
@@ -666,13 +666,13 @@ WRITE32_MEMBER( vegas_state::timekeeper_w )
{
if (m_cmos_unlocked)
{
- if ((mem_mask & 0x000000ff) != 0)
+ if (ACCESSING_BITS_0_7)
m_timekeeper->write(space, offset * 4 + 0, data >> 0, 0xff);
- if ((mem_mask & 0x0000ff00) != 0)
+ if (ACCESSING_BITS_8_15)
m_timekeeper->write(space, offset * 4 + 1, data >> 8, 0xff);
- if ((mem_mask & 0x00ff0000) != 0)
+ if (ACCESSING_BITS_16_23)
m_timekeeper->write(space, offset * 4 + 2, data >> 16, 0xff);
- if ((mem_mask & 0xff000000) != 0)
+ if (ACCESSING_BITS_24_31)
m_timekeeper->write(space, offset * 4 + 3, data >> 24, 0xff);
if (offset*4 >= 0x7ff0)
if (LOG_TIMEKEEPER) logerror("timekeeper_w(%04X & %08X) = %08X\n", offset*4, mem_mask, data);
@@ -686,13 +686,13 @@ WRITE32_MEMBER( vegas_state::timekeeper_w )
READ32_MEMBER( vegas_state::timekeeper_r )
{
UINT32 result = 0xffffffff;
- if ((mem_mask & 0x000000ff) != 0)
+ if (ACCESSING_BITS_0_7)
result = (result & ~0x000000ff) | (m_timekeeper->read(space, offset * 4 + 0, 0xff) << 0);
- if ((mem_mask & 0x0000ff00) != 0)
+ if (ACCESSING_BITS_8_15)
result = (result & ~0x0000ff00) | (m_timekeeper->read(space, offset * 4 + 1, 0xff) << 8);
- if ((mem_mask & 0x00ff0000) != 0)
+ if (ACCESSING_BITS_16_23)
result = (result & ~0x00ff0000) | (m_timekeeper->read(space, offset * 4 + 2, 0xff) << 16);
- if ((mem_mask & 0xff000000) != 0)
+ if (ACCESSING_BITS_24_31)
result = (result & ~0xff000000) | (m_timekeeper->read(space, offset * 4 + 3, 0xff) << 24);
if (offset*4 >= 0x7ff0)
if (LOG_TIMEKEEPER) logerror("timekeeper_r(%04X & %08X) = %08X\n", offset*4, mem_mask, result);
diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp
index 59b7adf40f1..2b43d59b194 100644
--- a/src/mame/drivers/wangpc.cpp
+++ b/src/mame/drivers/wangpc.cpp
@@ -1109,8 +1109,8 @@ static MACHINE_CONFIG_START( wangpc, wangpc_state )
MCFG_PIT8253_CLK2(500000)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(wangpc_state, pit2_w))
- MCFG_IM6402_ADD(IM6402_TAG, 0, 62500*16) // HACK for wangpckb in IM6402 derives clocks from data line
- MCFG_IM6402_TRO_CALLBACK(DEVWRITELINE(WANGPC_KEYBOARD_TAG, wangpc_keyboard_device, write_rxd))
+ MCFG_IM6402_ADD(IM6402_TAG, 62500*16, 62500*16)
+ MCFG_IM6402_TRO_CALLBACK(DEVWRITELINE(WANGPC_KEYBOARD_TAG, wangpc_keyboard_t, write_rxd))
MCFG_IM6402_DR_CALLBACK(WRITELINE(wangpc_state, uart_dr_w))
MCFG_IM6402_TBRE_CALLBACK(WRITELINE(wangpc_state, uart_tbre_w))
diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h
index 1a7eb44e195..a4fbde58e80 100644
--- a/src/mame/includes/toaplan2.h
+++ b/src/mame/includes/toaplan2.h
@@ -12,6 +12,7 @@
#include "machine/eepromser.h"
#include "machine/gen_latch.h"
#include "machine/nmk112.h"
+#include "machine/ticket.h"
#include "machine/upd4992.h"
#include "video/gp9001.h"
#include "sound/okim6295.h"
@@ -47,7 +48,8 @@ public:
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_soundlatch(*this, "soundlatch"),
- m_soundlatch2(*this, "soundlatch2") { }
+ m_soundlatch2(*this, "soundlatch2"),
+ m_hopper(*this, "hopper") { }
optional_shared_ptr<UINT8> m_shared_ram; // 8 bit RAM shared between 68K and sound CPU
optional_shared_ptr<UINT16> m_shared_ram16; // Really 8 bit RAM connected to Z180
@@ -72,6 +74,7 @@ public:
required_device<palette_device> m_palette;
optional_device<generic_latch_8_device> m_soundlatch; // batrider and bgaregga and batsugun
optional_device<generic_latch_8_device> m_soundlatch2;
+ optional_device<ticket_dispenser_device> m_hopper;
UINT16 m_mcu_data;
INT8 m_old_p1_paddle_h; /* For Ghox */
@@ -158,9 +161,8 @@ public:
void create_tx_tilemap(int dx = 0, int dx_flipped = 0);
void toaplan2_vblank_irq(int irq_line);
- UINT8 m_pwrkick_hopper;
- DECLARE_CUSTOM_INPUT_MEMBER(pwrkick_hopper_status_r);
DECLARE_WRITE8_MEMBER(pwrkick_coin_w);
+ DECLARE_WRITE8_MEMBER(pwrkick_coin_lockout_w);
DECLARE_WRITE_LINE_MEMBER(toaplan2_reset);
protected:
diff --git a/src/mame/machine/abc1600mac.cpp b/src/mame/machine/abc1600mac.cpp
index 10e64e179c5..7b1dafec391 100644
--- a/src/mame/machine/abc1600mac.cpp
+++ b/src/mame/machine/abc1600mac.cpp
@@ -6,16 +6,6 @@
**********************************************************************/
-/*
-
- TODO:
-
- - segment/page RAM addresses are not correctly decoded, "sas/format/format" can't find the SASI interface because of this
- forcetask0 1 t0 0 t1 0 t2 0 t3 0
- sega19 0 task 0
- sega 000 segd 00 pga 008 pgd 4058 virtual 02c730 (should be 004730)
-*/
-
#include "abc1600mac.h"
@@ -25,6 +15,8 @@
//**************************************************************************
#define LOG 0
+#define LOG_MAC 0
+#define LOG_DMA 0
#define A0 BIT(offset, 0)
@@ -116,15 +108,15 @@ const tiny_rom_entry *abc1600_mac_device::device_rom_region() const
// abc1600_mac_device - constructor
//-------------------------------------------------
-abc1600_mac_device::abc1600_mac_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : device_t(mconfig, ABC1600_MAC, "ABC 1600 MAC", tag, owner, clock, "abc1600mac", __FILE__),
- device_memory_interface(mconfig, *this),
- m_space_config("program", ENDIANNESS_LITTLE, 8, 22, 0, *ADDRESS_MAP_NAME(program_map)),
- m_rom(*this, "boot"),
- m_segment_ram(*this, "segment_ram"),
- m_page_ram(*this, "page_ram"),
- m_watchdog(*this, "watchdog"),
- m_task(0)
+abc1600_mac_device::abc1600_mac_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, ABC1600_MAC, "ABC 1600 MAC", tag, owner, clock, "abc1600mac", __FILE__),
+ device_memory_interface(mconfig, *this),
+ m_space_config("program", ENDIANNESS_LITTLE, 8, 22, 0, *ADDRESS_MAP_NAME(program_map)),
+ m_rom(*this, "boot"),
+ m_segment_ram(*this, "segment_ram"),
+ m_page_ram(*this, "page_ram"),
+ m_watchdog(*this, "watchdog"),
+ m_task(0)
{
}
@@ -145,6 +137,7 @@ void abc1600_mac_device::device_start()
// HACK fill segment RAM or abcenix won't boot
memset(m_segment_ram, 0xcd, 0x400);
+ memset(m_page_ram, 0xcd, 0x400);
// state saving
save_item(NAME(m_ifc2));
@@ -241,6 +234,8 @@ offs_t abc1600_mac_device::translate_address(offs_t offset, int *nonx, int *wp)
*nonx = PAGE_NONX;
*wp = PAGE_WP;
+ if (LOG_MAC) logerror("%s MAC %05x:%06x (SEGA %03x SEGD %02x PGA %03x PGD %04x NONX %u WP %u)\n", machine().describe_context(), offset, virtual_offset, sega, segd, pga, m_page_ram[pga], *nonx, *wp);
+
return virtual_offset;
}
@@ -441,7 +436,7 @@ WRITE8_MEMBER( abc1600_mac_device::task_w )
m_task = data ^ 0xff;
- if (LOG) logerror("%s: %06x Task %u BOOTE %u MAGIC %u\n", machine().describe_context(), offset, get_current_task(offset), BOOTE, MAGIC);
+ if (LOG) logerror("%s TASK %05x:%02x (TASK %u BOOTE %u MAGIC %u)\n", machine().describe_context(), offset, data, get_current_task(offset), BOOTE, MAGIC);
}
@@ -498,7 +493,7 @@ WRITE8_MEMBER( abc1600_mac_device::segment_w )
m_segment_ram[sega] = data & 0x7f;
- if (LOG) logerror("%s: %06x Task %u Segment %03x : %02x\n", machine().describe_context(), offset, get_current_task(offset), sega, data);
+ if (LOG) logerror("%s SEGMENT %05x:%02x (SEGA %03x SEGD %02x)\n", machine().describe_context(), offset, data, sega, m_segment_ram[sega]);
}
@@ -603,7 +598,7 @@ WRITE8_MEMBER( abc1600_mac_device::page_w )
m_page_ram[pga] = ((data & 0xc3) << 8) | (m_page_ram[pga] & 0xff);
}
- if (LOG) logerror("%s: %06x Task %u Segment %03x Page %03x : %02x -> %04x\n", machine().describe_context(), offset, get_current_task(offset), sega, pga, data, m_page_ram[pga]);
+ if (LOG) logerror("%s PAGE %05x:%02x (SEGA %03x SEGD %02x PGA %03x PGD %04x)\n", machine().describe_context(), offset, data, sega, segd, pga, m_page_ram[pga]);
}
@@ -631,6 +626,8 @@ UINT8 abc1600_mac_device::dma_mreq_r(int index, UINT16 offset)
{
offs_t virtual_offset = get_dma_address(index, offset);
+ if (LOG_DMA)logerror("%s DMA R %04x:%06x\n", machine().describe_context(), offset, virtual_offset);
+
return space().read_byte(virtual_offset);
}
@@ -643,6 +640,8 @@ void abc1600_mac_device::dma_mreq_w(int index, UINT16 offset, UINT8 data)
{
offs_t virtual_offset = get_dma_address(index, offset);
+ if (LOG_DMA)logerror("%s DMA W %04x:%06x\n", machine().describe_context(), offset, virtual_offset);
+
space().write_byte(virtual_offset, data);
}
@@ -655,6 +654,8 @@ UINT8 abc1600_mac_device::dma_iorq_r(int index, UINT16 offset)
{
offs_t virtual_offset = 0x1fe000 | get_dma_address(index, offset);
+ if (LOG_DMA)logerror("%s DMA R %04x:%06x\n", machine().describe_context(), offset, virtual_offset);
+
return space().read_byte(virtual_offset);
}
@@ -667,6 +668,8 @@ void abc1600_mac_device::dma_iorq_w(int index, UINT16 offset, UINT8 data)
{
offs_t virtual_offset = 0x1fe000 | get_dma_address(index, offset);
+ if (LOG_DMA)logerror("%s DMA W %04x:%06x\n", machine().describe_context(), offset, virtual_offset);
+
space().write_byte(virtual_offset, data);
}
@@ -692,7 +695,7 @@ WRITE8_MEMBER( abc1600_mac_device::dmamap_w )
*/
- if (LOG) logerror("DMAMAP %u %02x\n", offset & 7, data);
+ if (LOG_DMA) logerror("%s DMAMAP %u:%02x\n", machine().describe_context(), offset & 7, data);
m_dmamap[offset & 7] = data;
}
diff --git a/src/mame/machine/apollo.cpp b/src/mame/machine/apollo.cpp
index abd6f7c7622..8adf11a98c5 100644
--- a/src/mame/machine/apollo.cpp
+++ b/src/mame/machine/apollo.cpp
@@ -276,7 +276,7 @@ WRITE16_MEMBER(apollo_state::apollo_csr_control_register_w)
}
}
- cpu_control_register = (cpu_control_register & ~mem_mask) | (data & mem_mask);
+ COMBINE_DATA(&cpu_control_register);
output().set_value("internal_led_1", (cpu_control_register >> 15) & 1);
output().set_value("internal_led_2", (cpu_control_register >> 14) & 1);
diff --git a/src/mame/machine/bebox.cpp b/src/mame/machine/bebox.cpp
index d5f99d9d0a7..c13fa303c8b 100644
--- a/src/mame/machine/bebox.cpp
+++ b/src/mame/machine/bebox.cpp
@@ -622,28 +622,28 @@ READ64_MEMBER(bebox_state::scsi53c810_r )
{
int reg = offset*8;
UINT64 r = 0;
- if (!(mem_mask & U64(0xff00000000000000))) {
+ if (!ACCESSING_BITS_56_63) {
r |= (UINT64)m_lsi53c810->lsi53c810_reg_r(reg+0) << 56;
}
- if (!(mem_mask & U64(0x00ff000000000000))) {
+ if (!ACCESSING_BITS_48_55) {
r |= (UINT64)m_lsi53c810->lsi53c810_reg_r(reg+1) << 48;
}
- if (!(mem_mask & U64(0x0000ff0000000000))) {
+ if (!ACCESSING_BITS_40_47) {
r |= (UINT64)m_lsi53c810->lsi53c810_reg_r(reg+2) << 40;
}
- if (!(mem_mask & U64(0x000000ff00000000))) {
+ if (!ACCESSING_BITS_32_39) {
r |= (UINT64)m_lsi53c810->lsi53c810_reg_r(reg+3) << 32;
}
- if (!(mem_mask & U64(0x00000000ff000000))) {
+ if (!ACCESSING_BITS_24_31) {
r |= (UINT64)m_lsi53c810->lsi53c810_reg_r(reg+4) << 24;
}
- if (!(mem_mask & U64(0x0000000000ff0000))) {
+ if (!ACCESSING_BITS_16_23) {
r |= (UINT64)m_lsi53c810->lsi53c810_reg_r(reg+5) << 16;
}
- if (!(mem_mask & U64(0x000000000000ff00))) {
+ if (!ACCESSING_BITS_8_15) {
r |= (UINT64)m_lsi53c810->lsi53c810_reg_r(reg+6) << 8;
}
- if (!(mem_mask & U64(0x00000000000000ff))) {
+ if (!ACCESSING_BITS_0_7) {
r |= (UINT64)m_lsi53c810->lsi53c810_reg_r(reg+7) << 0;
}
@@ -654,28 +654,28 @@ READ64_MEMBER(bebox_state::scsi53c810_r )
WRITE64_MEMBER(bebox_state::scsi53c810_w )
{
int reg = offset*8;
- if (!(mem_mask & U64(0xff00000000000000))) {
+ if (!ACCESSING_BITS_56_63) {
m_lsi53c810->lsi53c810_reg_w(reg+0, data >> 56);
}
- if (!(mem_mask & U64(0x00ff000000000000))) {
+ if (!ACCESSING_BITS_48_55) {
m_lsi53c810->lsi53c810_reg_w(reg+1, data >> 48);
}
- if (!(mem_mask & U64(0x0000ff0000000000))) {
+ if (!ACCESSING_BITS_40_47) {
m_lsi53c810->lsi53c810_reg_w(reg+2, data >> 40);
}
- if (!(mem_mask & U64(0x000000ff00000000))) {
+ if (!ACCESSING_BITS_32_39) {
m_lsi53c810->lsi53c810_reg_w(reg+3, data >> 32);
}
- if (!(mem_mask & U64(0x00000000ff000000))) {
+ if (!ACCESSING_BITS_24_31) {
m_lsi53c810->lsi53c810_reg_w(reg+4, data >> 24);
}
- if (!(mem_mask & U64(0x0000000000ff0000))) {
+ if (!ACCESSING_BITS_16_23) {
m_lsi53c810->lsi53c810_reg_w(reg+5, data >> 16);
}
- if (!(mem_mask & U64(0x000000000000ff00))) {
+ if (!ACCESSING_BITS_8_15) {
m_lsi53c810->lsi53c810_reg_w(reg+6, data >> 8);
}
- if (!(mem_mask & U64(0x00000000000000ff))) {
+ if (!ACCESSING_BITS_0_7) {
m_lsi53c810->lsi53c810_reg_w(reg+7, data >> 0);
}
}
diff --git a/src/mame/machine/dc.cpp b/src/mame/machine/dc.cpp
index 913567116b7..e74d9757967 100644
--- a/src/mame/machine/dc.cpp
+++ b/src/mame/machine/dc.cpp
@@ -271,7 +271,7 @@ int dc_state::decode_reg3216_64(UINT32 offset, UINT64 mem_mask, UINT64 *shift)
//machine().debug_break();
}
- if (mem_mask & U64(0x0000ffff00000000))
+ if (ACCESSING_BITS_32_47)
{
reg++;
*shift = 32;
diff --git a/src/mame/machine/m3comm.cpp b/src/mame/machine/m3comm.cpp
index 4671375eea9..bcacd9e2b04 100644
--- a/src/mame/machine/m3comm.cpp
+++ b/src/mame/machine/m3comm.cpp
@@ -318,10 +318,10 @@ WRITE16_MEMBER(m3comm_device::ioregs_w)
send_size = (send_size >> 8) | (data << 8);
break;
case 0x88 / 2:
- m_status0 = (m_status0 & ~mem_mask) | (data & mem_mask);
+ COMBINE_DATA(&m_status0);
break;
case 0x8A / 2:
- m_status1 = (m_status1 & ~mem_mask) | (data & mem_mask);
+ COMBINE_DATA(&m_status1);
break;
case 0xC0 / 2:
m_commcpu->set_input_line(INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
diff --git a/src/mame/machine/n64.cpp b/src/mame/machine/n64.cpp
index df66c953d9b..3feebf44431 100644
--- a/src/mame/machine/n64.cpp
+++ b/src/mame/machine/n64.cpp
@@ -2682,19 +2682,19 @@ READ32_MEMBER( n64_periphs::pif_ram_r )
WRITE32_MEMBER( n64_periphs::pif_ram_w )
{
- if( mem_mask & 0xff000000 )
+ if( ACCESSING_BITS_24_31 )
{
pif_ram[offset*4+0] = ( data >> 24 ) & 0x000000ff;
}
- if( mem_mask & 0x00ff0000 )
+ if( ACCESSING_BITS_16_23 )
{
pif_ram[offset*4+1] = ( data >> 16 ) & 0x000000ff;
}
- if( mem_mask & 0x0000ff00 )
+ if( ACCESSING_BITS_8_15 )
{
pif_ram[offset*4+2] = ( data >> 8 ) & 0x000000ff;
}
- if( mem_mask & 0x000000ff )
+ if( ACCESSING_BITS_0_7 )
{
pif_ram[offset*4+3] = ( data >> 0 ) & 0x000000ff;
}
diff --git a/src/mame/machine/segas32.cpp b/src/mame/machine/segas32.cpp
index da3efbbafb6..f2124c8c996 100644
--- a/src/mame/machine/segas32.cpp
+++ b/src/mame/machine/segas32.cpp
@@ -104,7 +104,7 @@ WRITE16_MEMBER(segas32_state::sonic_level_load_protection)
{
UINT16 level;
//Perform write
- m_system32_workram[CLEARED_LEVELS / 2] = (data & mem_mask) | (m_system32_workram[CLEARED_LEVELS / 2] & ~mem_mask);
+ COMBINE_DATA(&m_system32_workram[CLEARED_LEVELS / 2]);
//Refresh current level
if (m_system32_workram[CLEARED_LEVELS / 2] == 0)
diff --git a/src/mame/machine/stvprot.cpp b/src/mame/machine/stvprot.cpp
index d71f6219a04..26d48e8dfd8 100644
--- a/src/mame/machine/stvprot.cpp
+++ b/src/mame/machine/stvprot.cpp
@@ -70,8 +70,8 @@ WRITE32_MEMBER ( stv_state::common_prot_w )
}
else if(offset == 2)
{
- if (mem_mask&0xffff0000) m_cryptdevice->set_addr_low(data >> 16);
- if (mem_mask&0x0000ffff) m_cryptdevice->set_addr_high(data&0xffff);
+ if (ACCESSING_BITS_16_31) m_cryptdevice->set_addr_low(data >> 16);
+ if (ACCESSING_BITS_0_15) m_cryptdevice->set_addr_high(data&0xffff);
}
else if(offset == 3)
diff --git a/src/mame/machine/victor9k_fdc.cpp b/src/mame/machine/victor9k_fdc.cpp
index 157df8edc7c..0f5184b64f6 100644
--- a/src/mame/machine/victor9k_fdc.cpp
+++ b/src/mame/machine/victor9k_fdc.cpp
@@ -565,6 +565,8 @@ void victor_9000_fdc_t::update_stepper_motor(floppy_image_device *floppy, int st
floppy->stp_w(1);
floppy->stp_w(0);
}
+
+ floppy->set_rpm(victor9k_format::get_rpm(m_side, floppy->get_cyl()));
}
void victor_9000_fdc_t::update_spindle_motor(floppy_image_device *floppy, emu_timer *t_tach, bool start, bool stop, bool sel, UINT8 &da)
diff --git a/src/mame/machine/wangpckb.cpp b/src/mame/machine/wangpckb.cpp
index 76f59922cff..bd636b2eadd 100644
--- a/src/mame/machine/wangpckb.cpp
+++ b/src/mame/machine/wangpckb.cpp
@@ -68,7 +68,7 @@ Notes:
// DEVICE DEFINITIONS
//**************************************************************************
-const device_type WANGPC_KEYBOARD = &device_creator<wangpc_keyboard_device>;
+const device_type WANGPC_KEYBOARD = &device_creator<wangpc_keyboard_t>;
@@ -86,7 +86,7 @@ ROM_END
// rom_region - device-specific ROM region
//-------------------------------------------------
-const tiny_rom_entry *wangpc_keyboard_device::device_rom_region() const
+const tiny_rom_entry *wangpc_keyboard_t::device_rom_region() const
{
return ROM_NAME( wangpc_keyboard );
}
@@ -96,7 +96,7 @@ const tiny_rom_entry *wangpc_keyboard_device::device_rom_region() const
// ADDRESS_MAP( wangpc_keyboard_io )
//-------------------------------------------------
-static ADDRESS_MAP_START( wangpc_keyboard_io, AS_IO, 8, wangpc_keyboard_device )
+static ADDRESS_MAP_START( wangpc_keyboard_io, AS_IO, 8, wangpc_keyboard_t )
//AM_RANGE(0x0000, 0xfeff) AM_READNOP
AM_RANGE(0x47, 0x58) AM_MIRROR(0xff00) AM_READNOP
AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_DEVWRITE(SN76496_TAG, sn76496_device, write)
@@ -113,8 +113,8 @@ ADDRESS_MAP_END
static MACHINE_CONFIG_FRAGMENT( wangpc_keyboard )
MCFG_CPU_ADD(I8051_TAG, I8051, XTAL_4MHz)
MCFG_CPU_IO_MAP(wangpc_keyboard_io)
- MCFG_MCS51_SERIAL_TX_CB(WRITE8(wangpc_keyboard_device, mcs51_tx_callback))
- MCFG_MCS51_SERIAL_RX_CB(READ8(wangpc_keyboard_device, mcs51_rx_callback))
+ MCFG_MCS51_SERIAL_TX_CB(WRITE8(wangpc_keyboard_t, mcs51_tx_callback))
+ MCFG_MCS51_SERIAL_RX_CB(READ8(wangpc_keyboard_t, mcs51_rx_callback))
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -128,7 +128,7 @@ MACHINE_CONFIG_END
// machine configurations
//-------------------------------------------------
-machine_config_constructor wangpc_keyboard_device::device_mconfig_additions() const
+machine_config_constructor wangpc_keyboard_t::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( wangpc_keyboard );
}
@@ -357,7 +357,7 @@ INPUT_PORTS_END
// input_ports - device-specific input ports
//-------------------------------------------------
-ioport_constructor wangpc_keyboard_device::device_input_ports() const
+ioport_constructor wangpc_keyboard_t::device_input_ports() const
{
return INPUT_PORTS_NAME( wangpc_keyboard );
}
@@ -369,30 +369,30 @@ ioport_constructor wangpc_keyboard_device::device_input_ports() const
//**************************************************************************
//-------------------------------------------------
-// wangpc_keyboard_device - constructor
-//-------------------------------------------------
-
-wangpc_keyboard_device::wangpc_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : device_t(mconfig, WANGPC_KEYBOARD, "Wang PC Keyboard", tag, owner, clock, "wangpckb", __FILE__),
- device_serial_interface(mconfig, *this),
- m_maincpu(*this, I8051_TAG),
- m_y0(*this, "Y0"),
- m_y1(*this, "Y1"),
- m_y2(*this, "Y2"),
- m_y3(*this, "Y3"),
- m_y4(*this, "Y4"),
- m_y5(*this, "Y5"),
- m_y6(*this, "Y6"),
- m_y7(*this, "Y7"),
- m_y8(*this, "Y8"),
- m_y9(*this, "Y9"),
- m_ya(*this, "YA"),
- m_yb(*this, "YB"),
- m_yc(*this, "YC"),
- m_yd(*this, "YD"),
- m_ye(*this, "YE"),
- m_yf(*this, "YF"),
- m_txd_handler(*this)
+// wangpc_keyboard_t - constructor
+//-------------------------------------------------
+
+wangpc_keyboard_t::wangpc_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, WANGPC_KEYBOARD, "Wang PC Keyboard", tag, owner, clock, "wangpckb", __FILE__),
+ device_serial_interface(mconfig, *this),
+ m_maincpu(*this, I8051_TAG),
+ m_y0(*this, "Y0"),
+ m_y1(*this, "Y1"),
+ m_y2(*this, "Y2"),
+ m_y3(*this, "Y3"),
+ m_y4(*this, "Y4"),
+ m_y5(*this, "Y5"),
+ m_y6(*this, "Y6"),
+ m_y7(*this, "Y7"),
+ m_y8(*this, "Y8"),
+ m_y9(*this, "Y9"),
+ m_ya(*this, "YA"),
+ m_yb(*this, "YB"),
+ m_yc(*this, "YC"),
+ m_yd(*this, "YD"),
+ m_ye(*this, "YE"),
+ m_yf(*this, "YF"),
+ m_txd_handler(*this)
{
}
@@ -401,11 +401,14 @@ wangpc_keyboard_device::wangpc_keyboard_device(const machine_config &mconfig, co
// device_start - device-specific startup
//-------------------------------------------------
-void wangpc_keyboard_device::device_start()
+void wangpc_keyboard_t::device_start()
{
m_txd_handler.resolve_safe();
set_data_frame(1, 8, PARITY_NONE, STOP_BITS_2);
+
+ set_rcv_rate(62500);
+ //set_tra_rate(62500);
}
@@ -413,30 +416,84 @@ void wangpc_keyboard_device::device_start()
// device_reset - device-specific reset
//-------------------------------------------------
-void wangpc_keyboard_device::device_reset()
+void wangpc_keyboard_t::device_reset()
{
- transmit_register_reset();
receive_register_reset();
+ transmit_register_reset();
m_txd_handler(1);
}
//-------------------------------------------------
-// write_rxd -
+// device_timer - handler timer events
//-------------------------------------------------
-WRITE_LINE_MEMBER(wangpc_keyboard_device::write_rxd)
+void wangpc_keyboard_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
- receive_register_update_bit(state);
+ device_serial_interface::device_timer(timer, id, param, ptr);
+}
- if (is_receive_register_full())
- {
- m_maincpu->set_input_line(MCS51_RX_LINE, ASSERT_LINE);
- receive_register_extract();
- if (LOG) logerror("Wang PC keyboard receive data %02x\n", get_received_char());
- }
+//-------------------------------------------------
+// tra_callback -
+//-------------------------------------------------
+
+void wangpc_keyboard_t::tra_callback()
+{
+ int bit = transmit_register_get_data_bit();
+
+ if (LOG) logerror("KB '%s' Transmit Bit %u\n", tag(), bit);
+
+ m_txd_handler(transmit_register_get_data_bit());
+}
+
+
+//-------------------------------------------------
+// tra_complete -
+//-------------------------------------------------
+
+void wangpc_keyboard_t::tra_complete()
+{
+}
+
+
+//-------------------------------------------------
+// rcv_callback -
+//-------------------------------------------------
+
+void wangpc_keyboard_t::rcv_callback()
+{
+ if (LOG) logerror("KB '%s' Receive Bit %u\n", tag(), m_rxd);
+
+ receive_register_update_bit(m_rxd);
+}
+
+
+//-------------------------------------------------
+// rcv_complete -
+//-------------------------------------------------
+
+void wangpc_keyboard_t::rcv_complete()
+{
+ receive_register_extract();
+
+ if (LOG) logerror("KB '%s' Receive Data %02x\n", tag(), get_received_char());
+
+ m_maincpu->set_input_line(MCS51_RX_LINE, ASSERT_LINE);
+ m_maincpu->set_input_line(MCS51_RX_LINE, CLEAR_LINE);
+}
+
+
+//-------------------------------------------------
+// write_rxd -
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER(wangpc_keyboard_t::write_rxd)
+{
+ m_rxd = state;
+
+ device_serial_interface::rx_w(state);
}
@@ -444,8 +501,10 @@ WRITE_LINE_MEMBER(wangpc_keyboard_device::write_rxd)
// mcs51_rx_callback -
//-------------------------------------------------
-READ8_MEMBER(wangpc_keyboard_device::mcs51_rx_callback)
+READ8_MEMBER(wangpc_keyboard_t::mcs51_rx_callback)
{
+ if (LOG) logerror("KB '%s' CPU Receive Data %02x\n", tag(), get_received_char());
+
return get_received_char();
}
@@ -454,9 +513,9 @@ READ8_MEMBER(wangpc_keyboard_device::mcs51_rx_callback)
// mcs51_tx_callback -
//-------------------------------------------------
-WRITE8_MEMBER(wangpc_keyboard_device::mcs51_tx_callback)
+WRITE8_MEMBER(wangpc_keyboard_t::mcs51_tx_callback)
{
- if (LOG) logerror("Wang PC keyboard transmit data %02x\n", data);
+ if (LOG) logerror("KB '%s' CPU Transmit Data %02x\n", tag(), data);
transmit_register_setup(data);
@@ -472,7 +531,7 @@ WRITE8_MEMBER(wangpc_keyboard_device::mcs51_tx_callback)
// kb_p1_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_keyboard_device::kb_p1_r )
+READ8_MEMBER( wangpc_keyboard_t::kb_p1_r )
{
UINT8 data = 0xff;
@@ -504,7 +563,7 @@ READ8_MEMBER( wangpc_keyboard_device::kb_p1_r )
// kb_p1_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_keyboard_device::kb_p1_w )
+WRITE8_MEMBER( wangpc_keyboard_t::kb_p1_w )
{
/*
@@ -526,7 +585,7 @@ WRITE8_MEMBER( wangpc_keyboard_device::kb_p1_w )
machine().output().set_led_value(i, !BIT(data, i));
}
- if (LOG) logerror("P1 %02x\n", data);
+ //if (LOG) logerror("P1 %02x\n", data);
}
@@ -534,7 +593,7 @@ WRITE8_MEMBER( wangpc_keyboard_device::kb_p1_w )
// kb_p2_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_keyboard_device::kb_p2_w )
+WRITE8_MEMBER( wangpc_keyboard_t::kb_p2_w )
{
/*
@@ -553,7 +612,7 @@ WRITE8_MEMBER( wangpc_keyboard_device::kb_p2_w )
m_y = data & 0x0f;
- if (LOG) logerror("P2 %02x\n", data);
+ //if (LOG) logerror("P2 %02x\n", data);
}
@@ -561,7 +620,7 @@ WRITE8_MEMBER( wangpc_keyboard_device::kb_p2_w )
// kb_p3_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_keyboard_device::kb_p3_w )
+WRITE8_MEMBER( wangpc_keyboard_t::kb_p3_w )
{
/*
@@ -578,5 +637,5 @@ WRITE8_MEMBER( wangpc_keyboard_device::kb_p3_w )
*/
- if (LOG) logerror("P3 %02x\n", data);
+ //if (LOG) logerror("P3 %02x\n", data);
}
diff --git a/src/mame/machine/wangpckb.h b/src/mame/machine/wangpckb.h
index 3344c6217ea..0ae9065abe5 100644
--- a/src/mame/machine/wangpckb.h
+++ b/src/mame/machine/wangpckb.h
@@ -34,23 +34,23 @@
MCFG_DEVICE_ADD(WANGPC_KEYBOARD_TAG, WANGPC_KEYBOARD, 0)
#define MCFG_WANGPCKB_TXD_HANDLER(_devcb) \
- devcb = &wangpc_keyboard_device::set_txd_handler(*device, DEVCB_##_devcb);
+ devcb = &wangpc_keyboard_t::set_txd_handler(*device, DEVCB_##_devcb);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
-// ======================> wangpc_keyboard_device
+// ======================> wangpc_keyboard_t
-class wangpc_keyboard_device : public device_t,
- public device_serial_interface
+class wangpc_keyboard_t : public device_t,
+ public device_serial_interface
{
public:
// construction/destruction
- wangpc_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ wangpc_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- template<class _Object> static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast<wangpc_keyboard_device &>(device).m_txd_handler.set_callback(object); }
+ template<class _Object> static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast<wangpc_keyboard_t &>(device).m_txd_handler.set_callback(object); }
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
@@ -65,15 +65,20 @@ public:
DECLARE_WRITE8_MEMBER( kb_p2_w );
DECLARE_WRITE8_MEMBER( kb_p3_w );
- DECLARE_READ8_MEMBER(mcs51_rx_callback);
- DECLARE_WRITE8_MEMBER(mcs51_tx_callback);
+ DECLARE_READ8_MEMBER( mcs51_rx_callback );
+ DECLARE_WRITE8_MEMBER( mcs51_tx_callback );
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
// device_serial_interface overrides
+ virtual void tra_callback() override;
+ virtual void tra_complete() override;
+ virtual void rcv_callback() override;
+ virtual void rcv_complete() override;
private:
required_device<i8051_device> m_maincpu;
@@ -96,6 +101,7 @@ private:
devcb_write_line m_txd_handler;
UINT8 m_y;
+ int m_rxd;
};
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index cd75e4baa0d..07582df5d80 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -9363,7 +9363,8 @@ ollie // 2004.03 Ollie King
outr2 // 2003.12 Outrun 2 (Rev A)
outr2st // 2004.12 Outrun 2 Special Tours (Rev A)
scg06nt // 2005.12 Sega Golf Club 2006: Next Tours (Rev A)
-vcop3 // 2003.02.26 Virtua Cop 3 (Rev A)
+vcop3a // 2003.02.26 Virtua Cop 3 (Rev A)
+vcop3 // 2003.05.21 Virtua Cop 3 (Rev B)
wangmid // 2004.07 Wangan Midnight Maximum Tune (export) (Rev B)
wangmid2 // 2005.10 Wangan Midnight Maximum Tune 2 (Export) (Rev A)
wangmid2j // 2005.04 Wangan Midnight Maximum Tune 2 (Japan)
@@ -27470,7 +27471,8 @@ gaiapols // GX123 (c) 1993 (Europe)
gaiapolsj // GX123 (c) 1993 (Japan)
gaiapolsu // GX123 (c) 1993 (US)
metamrph // GX224 (c) 1993 (Europe)
-metamrpha // GX224 (c) 1993 (Europe) - Alternate
+metamrpha // GX224 (c) 1993 (Asia)
+metamrphe // GX224 (c) 1993 (Europe) - Alternate
metamrphj // GX224 (c) 1993 (Japan)
metamrphu // GX224 (c) 1993 (US)
mmaulers // GX170 (c) 1993 (Europe)
@@ -35576,7 +35578,7 @@ avalnc12 // 2004.03 The Key Of Avalon 1.20 - Summon The N
avalnc13 // 2004.06.08 The Key Of Avalon 1.30 - Chaotic Sabbat (client) (Rev C)
avalns12 // 2004.03 The Key Of Avalon 1.20 - Summon The New Monsters (server) (Rev A)
avalns13 // 2004.06.08 The Key Of Avalon 1.30 - Chaotic Sabbat (server) (Rev C)
-avalon20 // 2004.11.02 The Key Of Avalon 2 - Eutaxy Commandment (client) (Rev B)
+avalon20 // 2004.11.02 The Key Of Avalon 2.0 - Eutaxy Commandment (client) (Rev B)
avalonc // 2003.11 The Key Of Avalon: The Wizard Master (client) (Rev G)
avalonce // 2003.08 The Key Of Avalon: The Wizard Master (client) (Rev E)
avaloncf // 2003.09 The Key Of Avalon: The Wizard Master (client) (Rev F)
@@ -35584,6 +35586,8 @@ avalons // 2003.11 The Key Of Avalon: The Wizard Master
avalonsc // 2003.07 The Key Of Avalon: The Wizard Master (server) (Rev C)
avalonse // 2003.08 The Key Of Avalon: The Wizard Master (server) (Rev E)
avalonsf // 2003.09 The Key Of Avalon: The Wizard Master (server) (Rev F)
+avalns25 // 2005.08 The Key Of Avalon 2.5 - War of the Key (server) (Rev B)
+avalnc25 // 2005.08 The Key Of Avalon 2.5 - War of the Key (client) (Rev B)
fzeroax // 2003.12 F-Zero AX (Rev E)
fzeroaxc // 2003.06.11 F-Zero AX (Rev C)
gekpurya // 2003.10 Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev C)
diff --git a/src/mame/video/abc1600.cpp b/src/mame/video/abc1600.cpp
index e7d6e8356f3..8450c153fd7 100644
--- a/src/mame/video/abc1600.cpp
+++ b/src/mame/video/abc1600.cpp
@@ -55,27 +55,33 @@ DEVICE_ADDRESS_MAP_START( crtc_map, 8, abc1600_mover_device )
AM_RANGE(0x01, 0x01) AM_MIRROR(0xfe) AM_DEVREADWRITE(SY6845E_TAG, mc6845_device, register_r, register_w)
ADDRESS_MAP_END
-DEVICE_ADDRESS_MAP_START( io_map, 8, abc1600_mover_device )
- AM_RANGE(0x000, 0x000) AM_MIRROR(0xff) AM_READ(iord0_r)
- AM_RANGE(0x000, 0x000) AM_MIRROR(0xf8) AM_WRITE(ldsx_hb_w)
- AM_RANGE(0x001, 0x001) AM_MIRROR(0xf8) AM_WRITE(ldsx_lb_w)
- AM_RANGE(0x002, 0x002) AM_MIRROR(0xf8) AM_WRITE(ldsy_hb_w)
- AM_RANGE(0x003, 0x003) AM_MIRROR(0xf8) AM_WRITE(ldsy_lb_w)
- AM_RANGE(0x004, 0x004) AM_MIRROR(0xf8) AM_WRITE(ldtx_hb_w)
- AM_RANGE(0x005, 0x005) AM_MIRROR(0xf8) AM_WRITE(ldtx_lb_w)
- AM_RANGE(0x006, 0x006) AM_MIRROR(0xf8) AM_WRITE(ldty_hb_w)
- AM_RANGE(0x007, 0x007) AM_MIRROR(0xf8) AM_WRITE(ldty_lb_w)
- AM_RANGE(0x100, 0x100) AM_MIRROR(0xf8) AM_WRITE(ldfx_hb_w)
- AM_RANGE(0x101, 0x101) AM_MIRROR(0xf8) AM_WRITE(ldfx_lb_w)
- AM_RANGE(0x102, 0x102) AM_MIRROR(0xf8) AM_WRITE(ldfy_hb_w)
- AM_RANGE(0x103, 0x103) AM_MIRROR(0xf8) AM_WRITE(ldfy_lb_w)
- AM_RANGE(0x105, 0x105) AM_MIRROR(0xf8) AM_WRITE(wrml_w)
- AM_RANGE(0x107, 0x107) AM_MIRROR(0xf8) AM_WRITE(wrdl_w)
- AM_RANGE(0x200, 0x200) AM_MIRROR(0xf8) AM_WRITE(wrmask_strobe_hb_w)
- AM_RANGE(0x201, 0x201) AM_MIRROR(0xf8) AM_WRITE(wrmask_strobe_lb_w)
- AM_RANGE(0x202, 0x202) AM_MIRROR(0xf8) AM_WRITE(enable_clocks_w)
- AM_RANGE(0x203, 0x203) AM_MIRROR(0xf8) AM_WRITE(flag_strobe_w)
- AM_RANGE(0x204, 0x204) AM_MIRROR(0xf8) AM_WRITE(endisp_w)
+DEVICE_ADDRESS_MAP_START( iowr0_map, 8, abc1600_mover_device )
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_READ(iord0_r)
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xf8) AM_WRITE(ldsx_hb_w)
+ AM_RANGE(0x01, 0x01) AM_MIRROR(0xf8) AM_WRITE(ldsx_lb_w)
+ AM_RANGE(0x02, 0x02) AM_MIRROR(0xf8) AM_WRITE(ldsy_hb_w)
+ AM_RANGE(0x03, 0x03) AM_MIRROR(0xf8) AM_WRITE(ldsy_lb_w)
+ AM_RANGE(0x04, 0x04) AM_MIRROR(0xf8) AM_WRITE(ldtx_hb_w)
+ AM_RANGE(0x05, 0x05) AM_MIRROR(0xf8) AM_WRITE(ldtx_lb_w)
+ AM_RANGE(0x06, 0x06) AM_MIRROR(0xf8) AM_WRITE(ldty_hb_w)
+ AM_RANGE(0x07, 0x07) AM_MIRROR(0xf8) AM_WRITE(ldty_lb_w)
+ADDRESS_MAP_END
+
+DEVICE_ADDRESS_MAP_START( iowr1_map, 8, abc1600_mover_device )
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xf8) AM_WRITE(ldfx_hb_w)
+ AM_RANGE(0x01, 0x01) AM_MIRROR(0xf8) AM_WRITE(ldfx_lb_w)
+ AM_RANGE(0x02, 0x02) AM_MIRROR(0xf8) AM_WRITE(ldfy_hb_w)
+ AM_RANGE(0x03, 0x03) AM_MIRROR(0xf8) AM_WRITE(ldfy_lb_w)
+ AM_RANGE(0x05, 0x05) AM_MIRROR(0xf8) AM_WRITE(wrml_w)
+ AM_RANGE(0x07, 0x07) AM_MIRROR(0xf8) AM_WRITE(wrdl_w)
+ADDRESS_MAP_END
+
+DEVICE_ADDRESS_MAP_START( iowr2_map, 8, abc1600_mover_device )
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xf8) AM_WRITE(wrmask_strobe_hb_w)
+ AM_RANGE(0x01, 0x01) AM_MIRROR(0xf8) AM_WRITE(wrmask_strobe_lb_w)
+ AM_RANGE(0x02, 0x02) AM_MIRROR(0xf8) AM_WRITE(enable_clocks_w)
+ AM_RANGE(0x03, 0x03) AM_MIRROR(0xf8) AM_WRITE(flag_strobe_w)
+ AM_RANGE(0x04, 0x04) AM_MIRROR(0xf8) AM_WRITE(endisp_w)
ADDRESS_MAP_END
diff --git a/src/mame/video/abc1600.h b/src/mame/video/abc1600.h
index 253f2733f5b..497ec12c890 100644
--- a/src/mame/video/abc1600.h
+++ b/src/mame/video/abc1600.h
@@ -47,7 +47,9 @@ public:
virtual DECLARE_ADDRESS_MAP(vram_map, 8);
virtual DECLARE_ADDRESS_MAP(crtc_map, 8);
- virtual DECLARE_ADDRESS_MAP(io_map, 8);
+ virtual DECLARE_ADDRESS_MAP(iowr0_map, 8);
+ virtual DECLARE_ADDRESS_MAP(iowr1_map, 8);
+ virtual DECLARE_ADDRESS_MAP(iowr2_map, 8);
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/video/jaguar.cpp b/src/mame/video/jaguar.cpp
index 15a016389bb..29c5ce1b50c 100644
--- a/src/mame/video/jaguar.cpp
+++ b/src/mame/video/jaguar.cpp
@@ -543,7 +543,7 @@ READ32_MEMBER( jaguar_state::blitter_r )
WRITE32_MEMBER( jaguar_state::blitter_w )
{
COMBINE_DATA(&m_blitter_regs[offset]);
- if ((offset == B_CMD) && (mem_mask & 0x0000ffff))
+ if ((offset == B_CMD) && ACCESSING_BITS_0_15)
{
m_blitter_status = 0;
int inner_count = m_blitter_regs[B_COUNT] & 0xffff;
diff --git a/src/mame/video/kaneko_tmap.cpp b/src/mame/video/kaneko_tmap.cpp
index 634753975c0..6a7e0fd5000 100644
--- a/src/mame/video/kaneko_tmap.cpp
+++ b/src/mame/video/kaneko_tmap.cpp
@@ -315,7 +315,7 @@ WRITE16_MEMBER( kaneko_view2_tilemap_device::kaneko_tmap_regs_w )
/* some weird logic needed for Gals Panic on the EXPRO02 board */
WRITE16_MEMBER(kaneko_view2_tilemap_device::galsnew_vram_0_tilebank_w)
{
- if (mem_mask & 0x00ff)
+ if (ACCESSING_BITS_0_7)
{
int val = (data & 0x00ff)<<8;
@@ -329,7 +329,7 @@ WRITE16_MEMBER(kaneko_view2_tilemap_device::galsnew_vram_0_tilebank_w)
WRITE16_MEMBER(kaneko_view2_tilemap_device::galsnew_vram_1_tilebank_w)
{
- if (mem_mask & 0x00ff)
+ if (ACCESSING_BITS_0_7)
{
int val = (data & 0x00ff)<<8;
diff --git a/src/osd/modules/sound/xaudio2_sound.cpp b/src/osd/modules/sound/xaudio2_sound.cpp
index dc14acff64d..1da4794501b 100644
--- a/src/osd/modules/sound/xaudio2_sound.cpp
+++ b/src/osd/modules/sound/xaudio2_sound.cpp
@@ -45,6 +45,7 @@
#define INITIAL_BUFFER_COUNT 4
#define SUBMIT_FREQUENCY_TARGET_MS 20
+#define RESAMPLE_TOLERANCE 1.20f
//============================================================
// Macros
@@ -494,7 +495,7 @@ void sound_xaudio2::create_buffers(const WAVEFORMATEX &format)
// buffer size is equal to the bytes we need to hold in memory per X tenths of a second where X is audio_latency
float audio_latency_in_seconds = m_audio_latency / 10.0f;
UINT32 format_bytes_per_second = format.nSamplesPerSec * format.nBlockAlign;
- UINT32 total_buffer_size = format_bytes_per_second * audio_latency_in_seconds;
+ UINT32 total_buffer_size = format_bytes_per_second * audio_latency_in_seconds * RESAMPLE_TOLERANCE;
// We want to be able to submit buffers every X milliseconds
// I want to divide these up into "packets" so figure out how many buffers we need
@@ -595,10 +596,6 @@ void sound_xaudio2::submit_needed()
XAUDIO2_VOICE_STATE state;
m_sourceVoice->GetState(&state, XAUDIO2_VOICE_NOSAMPLESPLAYED);
- // If we have a buffer on the queue, no reason to submit
- if (state.BuffersQueued >= 1)
- return;
-
std::lock_guard<std::mutex> lock(m_buffer_lock);
// Roll the buffer