summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <cuavas@users.noreply.github.com>2022-09-27 10:16:11 +1000
committer GitHub <noreply@github.com>2022-09-27 10:16:11 +1000
commit7d086ad184da23b98a730e4faa74662c278a1241 (patch)
treea221d5baa2e1a86ff967e3de5bbe0cdc39214ffa
parent5e34011808d9dad0a1734330e9319c0c3b6e998e (diff)
barcrest: Refactored MPU4 machine configuration. [O. Galibert, James Wallace, AJR, Vas Crabb] (#10345)
* Added hopper support and DUART-based hoppers. * Set YM crystal to match PCB. * Fixed some Dutch reel/input setups so that sets boot * Moved a some more sets to appropriate source files. * Disable coin lock logic for now - it probably needs per-machine code. * Removed an identical clone set - game clearly boots as 'Atlantis', not Triple Dice'. * Fixed a few more reel setups. * Allow m4madhse to boot based on AJR's research. * Changed m4matdr to a 6-reel setup, allowing it to pass the reel check before encountering another error. * Turned the reel templates into simple methods, and moved the config templates to where they're used. * mpu4mod4yam.cpp: Split out YM2413 configuration from parent class, and hooked up the YM2413 using address maps. * Confirmed that m4nnww2__hx5 is a bad dump. * mpu4.cpp: Removed palette device from base class. * Cleaned up some more, removing m_mod_number parameter, unnecessary headers and some unused configurations. * mpu4.cpp: Continued moving methods down into derived classes. * Set up reels/lamps/hoppers/LEDs as traits. * Got m4luckwb to boot and moved it out of the "unsorted" file. * machine/roc10937.cpp: Ignore transitions on SCLK while POC is active, and don't reset input line states on POC. * Identified m4cbing sound chip, move it to new configuration, and made it boot. * mpu4redpoint.cpp: Actually renamed the stuff in this driver. * Improved m4blkgda ROM loading.
-rw-r--r--src/devices/machine/roc10937.cpp10
-rw-r--r--src/devices/machine/roc10937.h1
-rw-r--r--src/mame/arcade.flt1
-rw-r--r--src/mame/barcrest/mpu4.cpp832
-rw-r--r--src/mame/barcrest/mpu4.h553
-rw-r--r--src/mame/barcrest/mpu4avan.cpp35
-rw-r--r--src/mame/barcrest/mpu4bwb.cpp347
-rw-r--r--src/mame/barcrest/mpu4concept.cpp10
-rw-r--r--src/mame/barcrest/mpu4crystal.cpp277
-rw-r--r--src/mame/barcrest/mpu4dealem.cpp10
-rw-r--r--src/mame/barcrest/mpu4empire.cpp265
-rw-r--r--src/mame/barcrest/mpu4mdm.cpp92
-rw-r--r--src/mame/barcrest/mpu4misc.cpp56
-rw-r--r--src/mame/barcrest/mpu4mod2sw.cpp957
-rw-r--r--src/mame/barcrest/mpu4mod4oki.cpp2388
-rw-r--r--src/mame/barcrest/mpu4mod4yam.cpp1066
-rw-r--r--src/mame/barcrest/mpu4plasma.cpp35
-rw-r--r--src/mame/barcrest/mpu4redpoint.cpp146
-rw-r--r--src/mame/barcrest/mpu4union.cpp65
-rw-r--r--src/mame/barcrest/mpu4unsorted.cpp324
-rw-r--r--src/mame/barcrest/mpu4vid.cpp11
-rw-r--r--src/mame/layout/connect4.lay4
-rw-r--r--src/mame/mame.lst22
23 files changed, 3657 insertions, 3850 deletions
diff --git a/src/devices/machine/roc10937.cpp b/src/devices/machine/roc10937.cpp
index cba09589c3c..e9c44ab822b 100644
--- a/src/devices/machine/roc10937.cpp
+++ b/src/devices/machine/roc10937.cpp
@@ -146,6 +146,10 @@ void rocvfd_device::device_start()
m_brightness = std::make_unique<output_finder<1> >(*this, "vfdduty%u", unsigned(m_port_val));
m_brightness->resolve();
+ m_sclk = 0;
+ m_data = 0;
+ m_por = 1;
+
save_item(NAME(m_cursor_pos));
save_item(NAME(m_window_size));
save_item(NAME(m_shift_count));
@@ -155,6 +159,7 @@ void rocvfd_device::device_start()
save_item(NAME(m_count));
save_item(NAME(m_sclk));
save_item(NAME(m_data));
+ save_item(NAME(m_por));
save_item(NAME(m_duty));
save_item(NAME(m_disp));
}
@@ -169,8 +174,6 @@ void rocvfd_device::device_reset()
m_count=0;
m_duty=31;
m_disp = 0;
- m_sclk = 0;
- m_data = 0;
std::fill(std::begin(m_chars), std::end(m_chars), 0);
std::fill(std::begin(*m_outputs), std::end(*m_outputs), 0);
@@ -214,6 +217,7 @@ WRITE_LINE_MEMBER( rocvfd_device::por )
{
reset();
}
+ m_por = state;
}
@@ -222,7 +226,7 @@ void rocvfd_device::shift_clock(int state)
if (m_sclk != state)
{
//Clock data on FALLING edge
- if (!m_sclk)
+ if (!m_sclk && m_por)
{
m_shift_data <<= 1;
diff --git a/src/devices/machine/roc10937.h b/src/devices/machine/roc10937.h
index 3e5426d8794..da0f21eb808 100644
--- a/src/devices/machine/roc10937.h
+++ b/src/devices/machine/roc10937.h
@@ -42,6 +42,7 @@ protected:
int m_duty;
int m_disp;
int m_sclk;
+ int m_por;
uint8_t m_cursor;
uint32_t m_chars[16];
diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt
index b1e38a6a136..58914f3cb64 100644
--- a/src/mame/arcade.flt
+++ b/src/mame/arcade.flt
@@ -138,6 +138,7 @@ barcrest/mpu4mod2sw.cpp
barcrest/mpu4mod4oki.cpp
barcrest/mpu4mod4yam.cpp
barcrest/mpu4plasma.cpp
+barcrest/mpu4redpoint.cpp
barcrest/mpu4union.cpp
barcrest/mpu4unsorted.cpp
barcrest/mpu4vid.cpp
diff --git a/src/mame/barcrest/mpu4.cpp b/src/mame/barcrest/mpu4.cpp
index 7c86bd62749..c20a3e1563b 100644
--- a/src/mame/barcrest/mpu4.cpp
+++ b/src/mame/barcrest/mpu4.cpp
@@ -333,7 +333,10 @@ void mpu4_state::update_meters()
switch (m_reel_mux)
{
case STANDARD_REEL:
- // Change nothing
+ if (m_hopper_type != TUBES)
+ {
+ data = (data & 0x0F); //Strip reel data from meter drives, leaving active elements
+ }
break;
case FIVE_REEL_5TO8:
@@ -709,39 +712,21 @@ uint8_t mpu4_state::pia_ic4_portb_r()
{
m_ic4_input_b |= 0x80;
}
- else
- {
- m_ic4_input_b &= ~0x80;
- }
if (!m_reel_mux)
{
if ( m_optic_pattern & 0x01 ) m_ic4_input_b |= 0x40; /* reel A tab */
- else m_ic4_input_b &= ~0x40;
if ( m_optic_pattern & 0x02 ) m_ic4_input_b |= 0x20; /* reel B tab */
- else m_ic4_input_b &= ~0x20;
if ( m_optic_pattern & 0x04 ) m_ic4_input_b |= 0x10; /* reel C tab */
- else m_ic4_input_b &= ~0x10;
if ( m_optic_pattern & 0x08 ) m_ic4_input_b |= 0x08; /* reel D tab */
- else m_ic4_input_b &= ~0x08;
-
}
else
{
- if (m_optic_pattern & (1<<m_active_reel))
- {
- m_ic4_input_b |= 0x08;
- }
- else
- {
- m_ic4_input_b &= ~0x08;
- }
+ if (m_optic_pattern & (1<<m_active_reel)) m_ic4_input_b |= 0x08;
}
- if ( m_signal_50hz ) m_ic4_input_b |= 0x04; /* 50 Hz */
- else m_ic4_input_b &= ~0x04;
if ( m_overcurrent )
{
@@ -789,17 +774,38 @@ uint8_t mpu4_state::pia_ic5_porta_r()
}
}
}
- if (m_hopper == HOPPER_NONDUART_A)
+ if (m_hopper_type == HOPPER_NONDUART_A)
{
-/* if (hopper1_active)
- {
- m_aux1_input |= 0x04;
- }
- else
- {
- m_aux1_input &= ~0x04;
- }*/
+ if (m_hopper1->line_r() && m_hopper1_opto)
+ {
+ m_aux1_input |= 0x04;
+ }
+ else
+ {
+ m_aux1_input &= ~0x04;
+ }
+ }
+ else if (m_hopper_type == HOPPER_TWIN_HOPPER)
+ {
+ if (m_hopper1->line_r())
+ {
+ m_aux1_input |= 0x08;
+ }
+ else
+ {
+ m_aux1_input &= ~0x08;
+ }
+
+ if (m_hopper2->line_r())
+ {
+ m_aux1_input |= 0x04;
+ }
+ else
+ {
+ m_aux1_input &= ~0x04;
+ }
}
+
LOG(("%s: IC5 PIA Read of Port A (AUX1)\n",machine().describe_context()));
@@ -811,10 +817,9 @@ uint8_t mpu4_state::pia_ic5_porta_r()
void mpu4_state::pia_ic5_porta_w(uint8_t data)
{
int i;
- if (m_hopper == HOPPER_NONDUART_A)
+ if (m_hopper_type == HOPPER_NONDUART_A)
{
- //opto line
- //hopper1_drive_sensor(data&0x10);
+ m_hopper1_opto = (data & 0x10);
}
switch (m_lamp_extender)
@@ -884,10 +889,10 @@ void mpu4_state::pia_ic5_porta_w(uint8_t data)
void mpu4_state::pia_ic5_portb_w(uint8_t data)
{
- if (m_hopper == HOPPER_NONDUART_B)
+ if (m_hopper_type == HOPPER_NONDUART_B)
{
- //hopper1_drive_motor(data &0x01) motor
- //hopper1_drive_sensor(data &0x08) opto
+ m_hopper1->motor_w(data & 0x01);
+ m_hopper1_opto = (data & 0x08);
}
if (m_led_extender == CARD_A)
{
@@ -910,16 +915,16 @@ void mpu4_state::pia_ic5_portb_w(uint8_t data)
uint8_t mpu4_state::pia_ic5_portb_r()
{
- if (m_hopper == HOPPER_NONDUART_B)
- {/*
- if (hopper1_active)
- {
- m_aux2_input |= 0x08;
- }
- else
- {
- m_aux2_input &= ~0x08;
- }*/
+ if (m_hopper_type == HOPPER_NONDUART_B)
+ {
+ if (m_hopper1->line_r() && m_hopper1_opto)
+ {
+ m_aux2_input |= 0x08;
+ }
+ else
+ {
+ m_aux2_input &= ~0x08;
+ }
}
LOG(("%s: IC5 PIA Read of Port B (coin input AUX2)\n",machine().describe_context()));
@@ -1031,7 +1036,7 @@ void mpu4_state::pia_ic6_portb_w(uint8_t data)
void mpu4_state::pia_ic6_porta_w(uint8_t data)
{
LOG(("%s: IC6 PIA Write A %2x\n", machine().describe_context(),data));
- if (m_mod_number <4)
+ if (m_ay8913.found())
{
m_ay_data = data;
update_ay(m_pia6);
@@ -1042,7 +1047,7 @@ void mpu4_state::pia_ic6_porta_w(uint8_t data)
WRITE_LINE_MEMBER(mpu4_state::pia_ic6_ca2_w)
{
LOG(("%s: IC6 PIA write CA2 %2x (AY8913 BC1)\n", machine().describe_context(),state));
- if (m_mod_number <4)
+ if (m_ay8913.found())
{
if ( state ) m_ay8913_address |= 0x01;
else m_ay8913_address &= ~0x01;
@@ -1054,7 +1059,7 @@ WRITE_LINE_MEMBER(mpu4_state::pia_ic6_ca2_w)
WRITE_LINE_MEMBER(mpu4_state::pia_ic6_cb2_w)
{
LOG(("%s: IC6 PIA write CB2 %2x (AY8913 BCDIR)\n", machine().describe_context(),state));
- if (m_mod_number <4)
+ if (m_ay8913.found())
{
if ( state ) m_ay8913_address |= 0x02;
else m_ay8913_address &= ~0x02;
@@ -1085,13 +1090,19 @@ void mpu4_state::pia_ic7_porta_w(uint8_t data)
void mpu4_state::pia_ic7_portb_w(uint8_t data)
{
- if (m_hopper == HOPPER_DUART_A)
+ if (m_hopper_type == HOPPER_DUART_A)
{
- //duart write data
+ m_hopper1->motor_w(data & 0x10);
+ //opto line is DUART op BIT 4 (MR, channel B)
}
- else if (m_hopper == HOPPER_NONDUART_A)
+ else if (m_hopper_type == HOPPER_NONDUART_A)
{
- //hoppr1_drive_motor(data & 0x10);
+ m_hopper1->motor_w(data & 0x20);
+ }
+ else if (m_hopper_type == HOPPER_TWIN_HOPPER)
+ {
+ m_hopper1->motor_w(data & 0x20);
+ m_hopper2->motor_w(data & 0x40);
}
m_mmtr_data = data;
@@ -1156,13 +1167,20 @@ uint8_t mpu4_state::pia_ic8_porta_r()
void mpu4_state::pia_ic8_portb_w(uint8_t data)
{
- if (m_hopper == HOPPER_DUART_B)
+ if (m_hopper_type == HOPPER_DUART_B)
{
-// duart.drive_sensor(data & 0x04, data & 0x01, 0, 0);
+ m_hopper1->motor_w(data & 0x01);
+ m_hopper1_opto = (data & 0x04);
+ data &= ~0x05; //remove Triacs from use
}
- else if (m_hopper == HOPPER_DUART_C)
+ else if (m_hopper_type == HOPPER_DUART_C)
{
-// duart.drive_sensor(data & 0x04, data & 0x01, data & 0x04, data & 0x02);
+ // Dual DUART hoppers share an opto line for some reason
+ m_hopper1->motor_w(data & 0x01);
+ m_hopper1_opto = (data & 0x04);
+ m_hopper2->motor_w(data & 0x02);
+ m_hopper2_opto = (data & 0x04);
+ data &= ~0x07; //remove Triacs from use
}
LOG_IC8(("%s: IC8 PIA Port B Set to %2x (OUTPUT PORT, TRIACS)\n", machine().describe_context(),data));
for (int i = 0; i < 8; i++)
@@ -1960,24 +1978,6 @@ INPUT_PORTS_END
/* Common configurations */
-void mpu4_state::mpu4_ym2413_w(offs_t offset, uint8_t data)
-{
- if (m_ym2413) m_ym2413->write(offset,data);
-}
-
-uint8_t mpu4_state::mpu4_ym2413_r(offs_t offset)
-{
-// if (m_ym2413) return m_ym2413->read(offset);
- return 0xff;
-}
-
-
-void mpu4_state::mpu4_install_mod4yam_space(address_space &space)
-{
- space.install_read_handler(0x0880, 0x0882, read8sm_delegate(*this, FUNC(mpu4_state::mpu4_ym2413_r)));
- space.install_write_handler(0x0880, 0x0881, write8sm_delegate(*this, FUNC(mpu4_state::mpu4_ym2413_w)));
-}
-
void mpu4_state::mpu4_install_mod4oki_space(address_space &space)
{
pia6821_device *const pia_ic4ss = subdevice<pia6821_device>("pia_ic4ss");
@@ -2005,17 +2005,6 @@ MACHINE_START_MEMBER(mpu4_state,mod2)
mpu4_config_common();
m_link7a_connected=false;
- m_mod_number=2;
-}
-
-MACHINE_START_MEMBER(mpu4_state,mpu4yam)
-{
- address_space &space = m_maincpu->space(AS_PROGRAM);
- mpu4_config_common();
-
- m_link7a_connected=false;
- m_mod_number=4;
- mpu4_install_mod4yam_space(space);
}
MACHINE_START_MEMBER(mpu4_state,mpu4oki)
@@ -2024,375 +2013,274 @@ MACHINE_START_MEMBER(mpu4_state,mpu4oki)
mpu4_config_common();
m_link7a_connected=false;
- m_mod_number=4;
mpu4_install_mod4oki_space(space);
}
-//TODO: Replace with standard six reels once sets are sorted out - is really six_reel_std
-void mpu4_state::init_m4altreels()
+void mpu4_state::init_m4()
{
- m_reel_mux = SIX_REEL_1TO8;
- m_reels = 6;
+ m_bwb_bank = 0;
setup_rom_banks();
}
-void mpu4_state::init_m4altreels_big()
+void mpu4_state::init_m4big()
{
- init_m4default_big();
- m_reel_mux = SIX_REEL_1TO8;
- m_reels = 6;
-}
-
-
-void mpu4_state::init_m4default_sextender()
-{
- init_m4default();
- use_m4_small_extender();
-}
-
-void mpu4_state::init_m4default_big_five_std()
-{
- init_m4default_big();
- use_m4_five_reel_std();
-}
-
-void mpu4_state::init_m4default_big_five_rev()
-{
- init_m4default_big();
- use_m4_five_reel_rev();
-}
-
-void mpu4_state::init_m4default_big_five_rev_lextender()
-{
- init_m4default_big_five_rev();
- use_m4_large_extender_b();
-}
-
-void mpu4_state::init_m4default_big_six()
-{
- init_m4default_big();
- use_m4_six_reel_std();
-}
-
-void mpu4_state::init_m4default_big_six_lextender()
-{
- init_m4default_big_six();
- use_m4_large_extender_b();
-}
-
-void mpu4_state::init_m4default_big_six_alt()
-{
- init_m4default_big();
- use_m4_six_reel_alt();
-}
-
-
-void mpu4_state::init_m4default_five_std()
-{
- init_m4default();
- use_m4_five_reel_std();
-}
-
-void mpu4_state::init_m4default_five_std_sextender()
-{
- init_m4default_five_std();
- use_m4_small_extender();
-}
-
-void mpu4_state::init_m4default_five_rev()
-{
- init_m4default();
- use_m4_five_reel_rev();
-}
-
-void mpu4_state::init_m4default_five_rev_lextender()
-{
- init_m4default_five_rev();
- use_m4_large_extender_b();
-}
+ int size = memregion("maincpu")->bytes();
+ if (size <= 0x10000)
+ {
+ fatalerror("Error: Extended banking selected on set <=0x10000 in size\n");
+ }
-void mpu4_state::init_m4default_five_rev_sextender()
-{
- init_m4default_five_rev();
- use_m4_small_extender();
-}
+ address_space &space = m_maincpu->space(AS_PROGRAM);
-void mpu4_state::init_m4default_five_alt()
-{
- init_m4default();
- use_m4_five_reel_alt();
-}
+ m_bwb_bank = 1;
+ space.install_write_handler(0x0858, 0x0858, write8smo_delegate(*this, FUNC(mpu4_state::bankswitch_w)));
+ space.install_write_handler(0x0878, 0x0878, write8smo_delegate(*this, FUNC(mpu4_state::bankset_w)));
+ uint8_t *rom = memregion("maincpu")->base();
+ m_numbanks = size / 0x10000;
+ m_bank1->configure_entries(0, m_numbanks, &rom[0x01000], 0x10000);
+ m_numbanks--;
-void mpu4_state::init_m4default_six()
-{
- init_m4default();
- use_m4_six_reel_std();
+ // some Bwb games must default to the last bank, does anything not like this
+ // behavior?
+ // some Bwb games don't work anyway tho, they seem to dislike something else
+ // about the way the regular banking behaves, not related to the CB2 stuff
+ m_bank1->set_entry(m_numbanks);
}
-void mpu4_state::init_m4default_six_sextender()
+void mpu4_state::init_m4big_low()
{
- init_m4default_six();
- use_m4_small_extender();
+ init_m4big();
+ m_default_to_low_bank = true;
}
-void mpu4_state::init_m4default_six_alt()
+void mpu4_state::setup_rom_banks()
{
- init_m4default();
- use_m4_six_reel_alt();
+ //Initialise paging for non-extended ROM space
+ uint8_t *rom = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 4, &rom[0x01000], 0x10000);
+ membank("bank1")->set_entry(0);
}
-
-void mpu4_state::init_m4default_seven()
+/* generate a 50 Hz signal (based on an RC time) */
+TIMER_DEVICE_CALLBACK_MEMBER(mpu4_state::gen_50hz)
{
- init_m4default();
- use_m4_seven_reel();
+ if (m_low_volt_detect)
+ {
+ /* Although reported as a '50Hz' signal, the fact that both rising and
+ falling edges of the pulse are used means the timer actually gives a 100Hz
+ oscillating signal.*/
+ m_signal_50hz = m_signal_50hz?0:1;
+ m_pia4->ca1_w(m_signal_50hz); /* signal is connected to IC4 CA1 */
+ }
+ update_meters();//run at 100Hz to sync with PIAs
}
-void mpu4_state::init_big_extenda()
-{
- init_m4default_big();
- m_lamp_extender = LARGE_CARD_A;
-}
-
-void mpu4_state::init_m4default_big_low()
+void mpu4_state::mpu4_memmap(address_map &map)
{
- init_m4default_big();
- m_default_to_low_bank = true;
+ map(0x0000, 0x07ff).ram().share("nvram");
+// map(0x0800, 0x081f) // optional protection device lives here, see other maps
+ map(0x0850, 0x0850).rw(FUNC(mpu4_state::bankswitch_r), FUNC(mpu4_state::bankswitch_w)); /* write bank (rom page select) */
+ map(0x08e0, 0x08ef).rw(m_duart68681, FUNC(mc68681_device::read), FUNC(mc68681_device::write)); //Runs hoppers
+ map(0x08ed, 0x08ed).r(FUNC(mpu4_state::hack_duart_r)); // hack until the hopper is hooked up to the duart in games wanting that setup (eg m4ready)
+ map(0x0900, 0x0907).rw(m_6840ptm, FUNC(ptm6840_device::read), FUNC(ptm6840_device::write));/* PTM6840 IC2 */
+ map(0x0a00, 0x0a03).rw(m_pia3, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC3 */
+ map(0x0b00, 0x0b03).rw(m_pia4, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC4 */
+ map(0x0c00, 0x0c03).rw(m_pia5, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC5 */
+ map(0x0d00, 0x0d03).rw(m_pia6, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC6 */
+ map(0x0e00, 0x0e03).rw(m_pia7, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC7 */
+ map(0x0f00, 0x0f03).rw(m_pia8, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC8 */
+ map(0x1000, 0xffff).bankr("bank1"); /* 64k paged ROM (4 pages) */
}
-void mpu4_state::init_m4default_alt()
+void mpu4_state::mpu4_memmap_characteriser(address_map &map)
{
- m_reel_mux = STANDARD_REEL;
- m_reels = 8;
- setup_rom_banks();
-
- m_bwb_bank=0;
+ mpu4_memmap(map);
+ map(0x0800, 0x0810).rw(m_characteriser, FUNC(mpu4_characteriser_pal::read), FUNC(mpu4_characteriser_pal::write));
}
-void mpu4_state::init_m4default()
+void mpu4_state::mpu4_memmap_bootleg_characteriser(address_map &map)
{
- use_m4_standard_reels();
- m_bwb_bank = 0;
- setup_rom_banks();
+ mpu4_memmap(map);
+ // a few sets use 0x840 for protection, 0x850 is where banking maps, so map up to that point
+ map(0x0800, 0x084f).rw(m_characteriser_bl, FUNC(mpu4_characteriser_bl::read), FUNC(mpu4_characteriser_bl::write));
}
-void mpu4_state::init_m4default_lextender()
+void mpu4_state::mpu4_memmap_bl_characteriser_blastbank(address_map &map)
{
- init_m4default();
- use_m4_large_extender_b();
+ mpu4_memmap(map);
+ map(0x0800, 0x081f).rw(m_characteriser_blastbank, FUNC(mpu4_characteriser_bl_blastbank::read), FUNC(mpu4_characteriser_bl_blastbank::write));
}
-
-void mpu4_state::init_m4default_big()
+void mpu4_state::mpu4_reels(machine_config &config, uint8_t NumberOfReels, int16_t start_index, int16_t end_index)
{
- use_m4_standard_reels();
-
- int size = memregion("maincpu")->bytes();
- if (size <= 0x10000)
+ for(uint8_t i=0; i != NumberOfReels; i++)
{
- fatalerror("Error: Extended banking selected on set <=0x10000 in size\n");
+ REEL(config, m_reel[i], BARCREST_48STEP_REEL, start_index, end_index, 0x00, 2);
+ m_reel[i]->optic_handler().set([this, i](int state) {
+ if (state)
+ m_optic_pattern |= (1 << i);
+ else
+ m_optic_pattern &= ~(1 << i);
+ });
}
-
- address_space &space = m_maincpu->space(AS_PROGRAM);
-
- m_bwb_bank = 1;
- space.install_write_handler(0x0858, 0x0858, write8smo_delegate(*this, FUNC(mpu4_state::bankswitch_w)));
- space.install_write_handler(0x0878, 0x0878, write8smo_delegate(*this, FUNC(mpu4_state::bankset_w)));
- uint8_t *rom = memregion("maincpu")->base();
-
- m_numbanks = size / 0x10000;
- m_bank1->configure_entries(0, m_numbanks, &rom[0x01000], 0x10000);
- m_numbanks--;
-
- // some Bwb games must default to the last bank, does anything not like this
- // behavior?
- // some Bwb games don't work anyway tho, they seem to dislike something else
- // about the way the regular banking behaves, not related to the CB2 stuff
- m_bank1->set_entry(m_numbanks);
-}
-
-void mpu4_state::init_m4default_big_lextender()
-{
- init_m4default_big();
- use_m4_large_extender_b();
}
-
-// these are not 'init' functions in their own right, they can be called from init functions
-void mpu4_state::use_m4_standard_reels()
+void mpu4_state::tr_r4(machine_config &config)
{
m_reel_mux = STANDARD_REEL;
m_reels = 4;
}
-void mpu4_state::use_m4_five_reel_std()
+void mpu4_state::tr_r5(machine_config &config)
{
m_reel_mux = FIVE_REEL_5TO8;
m_reels = 5;
}
-void mpu4_state::use_m4_five_reel_rev()
+void mpu4_state::tr_r5r(machine_config &config)
{
m_reel_mux = FIVE_REEL_8TO5;
m_reels = 5;
}
-void mpu4_state::use_m4_five_reel_alt()
+void mpu4_state::tr_r5a(machine_config &config)
{
m_reel_mux = FIVE_REEL_3TO6;
m_reels = 5;
}
-void mpu4_state::use_m4_six_reel_std()
+void mpu4_state::tr_r6(machine_config &config)
{
m_reel_mux = SIX_REEL_1TO8;
m_reels = 6;
}
-void mpu4_state::use_m4_six_reel_alt()
+void mpu4_state::tr_r6a(machine_config &config)
{
m_reel_mux = SIX_REEL_5TO8;
m_reels = 6;
}
-void mpu4_state::use_m4_seven_reel()
+void mpu4_state::tr_r7(machine_config &config)
{
m_reel_mux = SEVEN_REEL;
m_reels = 7;
}
-void mpu4_state::use_m4_low_volt_alt()
+void mpu4_state::tr_r8(machine_config &config)
{
- //Some games can't use the 50Hz circuit to check voltage issues, handle it here
- m_low_volt_detect = false;
-}
-
-void mpu4_state::use_m4_small_extender()
-{
- m_lamp_extender = SMALL_CARD;
+ m_reel_mux = STANDARD_REEL;
+ m_reels = 8;
}
-void mpu4_state::use_m4_large_extender_b()
+void mpu4_state::tr_rt1(machine_config &config)
{
- m_lamp_extender = LARGE_CARD_B;
+ mpu4_reels(config, m_reels, 1, 3);
}
-void mpu4_state::use_m4_large_extender_c()
+void mpu4_state::tr_rt2(machine_config &config)
{
- m_lamp_extender = LARGE_CARD_C;
+ mpu4_reels(config, m_reels, 4, 12);
}
-void mpu4_state::use_m4_hopper_tubes()
+void mpu4_state::tr_rt3(machine_config &config)
{
- m_hopper = TUBES;
+ mpu4_reels(config, m_reels, 96, 3);
}
-void mpu4_state::use_m4_hopper_duart_a()
+void mpu4_state::tr_lps(machine_config &config)
{
- m_hopper = HOPPER_DUART_A;
+ m_lamp_extender = SMALL_CARD;
}
-void mpu4_state::use_m4_hopper_duart_b()
+void mpu4_state::tr_lpla(machine_config &config)
{
- m_hopper = HOPPER_DUART_B;
+ m_lamp_extender = LARGE_CARD_A;
}
-void mpu4_state::use_m4_hopper_duart_c()
+void mpu4_state::tr_lplb(machine_config &config)
{
- m_hopper = HOPPER_DUART_C;
+ m_lamp_extender = LARGE_CARD_B;
}
-void mpu4_state::use_m4_hopper_nonduart_a()
+void mpu4_state::tr_lplc(machine_config &config)
{
- m_hopper = HOPPER_NONDUART_A;
+ m_lamp_extender = LARGE_CARD_C;
}
-void mpu4_state::use_m4_hopper_nonduart_b()
+void mpu4_state::tr_lds(machine_config &config)
{
- m_hopper = HOPPER_NONDUART_B;
+ m_led_extender = SIMPLE_CARD;
}
-void mpu4_state::use_m4_led_a()
+void mpu4_state::tr_lda(machine_config &config)
{
m_led_extender = CARD_A;
}
-void mpu4_state::use_m4_led_b()
+void mpu4_state::tr_ldb(machine_config &config)
{
m_led_extender = CARD_B;
}
-void mpu4_state::use_m4_led_c()
+void mpu4_state::tr_ldc(machine_config &config)
{
m_led_extender = CARD_C;
}
-void mpu4_state::use_m4_led_simple()
+void mpu4_state::tr_ht(machine_config &config)
{
- m_led_extender = SIMPLE_CARD;
+ m_hopper_type = TUBES;
}
-void mpu4_state::setup_rom_banks()
+void mpu4_state::tr_hda(machine_config &config)
{
- //Initialise paging for non-extended ROM space
- uint8_t *rom = memregion("maincpu")->base();
- membank("bank1")->configure_entries(0, 4, &rom[0x01000], 0x10000);
- membank("bank1")->set_entry(0);
+ m_hopper_type = HOPPER_DUART_A;
}
-/* generate a 50 Hz signal (based on an RC time) */
-TIMER_DEVICE_CALLBACK_MEMBER(mpu4_state::gen_50hz)
+void mpu4_state::tr_hdb(machine_config &config)
{
- if (m_low_volt_detect)
- {
- /* Although reported as a '50Hz' signal, the fact that both rising and
- falling edges of the pulse are used means the timer actually gives a 100Hz
- oscillating signal.*/
- m_signal_50hz = m_signal_50hz?0:1;
- m_pia4->ca1_w(m_signal_50hz); /* signal is connected to IC4 CA1 */
- }
- update_meters();//run at 100Hz to sync with PIAs
+ m_hopper_type = HOPPER_DUART_B;
}
+void mpu4_state::tr_hdc(machine_config &config)
+{
+ m_hopper_type = HOPPER_DUART_C;
+}
-void mpu4_state::mpu4_memmap(address_map &map)
+void mpu4_state::tr_hna(machine_config &config)
{
- map(0x0000, 0x07ff).ram().share("nvram");
-// map(0x0800, 0x081f) // optional protection device lives here, see other maps
- map(0x0850, 0x0850).rw(FUNC(mpu4_state::bankswitch_r), FUNC(mpu4_state::bankswitch_w)); /* write bank (rom page select) */
- map(0x08e0, 0x08ef).rw(m_duart68681, FUNC(mc68681_device::read), FUNC(mc68681_device::write)); //Runs hoppers
- map(0x08ed, 0x08ed).r(FUNC(mpu4_state::hack_duart_r)); // hack until the hopper is hooked up to the duart in games wanting that setup (eg m4ready)
- map(0x0900, 0x0907).rw(m_6840ptm, FUNC(ptm6840_device::read), FUNC(ptm6840_device::write));/* PTM6840 IC2 */
- map(0x0a00, 0x0a03).rw(m_pia3, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC3 */
- map(0x0b00, 0x0b03).rw(m_pia4, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC4 */
- map(0x0c00, 0x0c03).rw(m_pia5, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC5 */
- map(0x0d00, 0x0d03).rw(m_pia6, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC6 */
- map(0x0e00, 0x0e03).rw(m_pia7, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC7 */
- map(0x0f00, 0x0f03).rw(m_pia8, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); /* PIA6821 IC8 */
- map(0x1000, 0xffff).bankr("bank1"); /* 64k paged ROM (4 pages) */
+ m_hopper_type = HOPPER_NONDUART_A;
}
-void mpu4_state::mpu4_memmap_characteriser(address_map &map)
+void mpu4_state::tr_hnb(machine_config &config)
{
- mpu4_memmap(map);
- map(0x0800, 0x0810).rw(m_characteriser, FUNC(mpu4_characteriser_pal::read), FUNC(mpu4_characteriser_pal::write));
+ m_hopper_type = HOPPER_NONDUART_B;
}
-void mpu4_state::mpu4_memmap_bootleg_characteriser(address_map &map)
+void mpu4_state::tr_htw(machine_config &config)
{
- mpu4_memmap(map);
- // a few sets use 0x840 for protection, 0x850 is where banking maps, so map up to that point
- map(0x0800, 0x084f).rw(m_characteriser_bl, FUNC(mpu4_characteriser_bl::read), FUNC(mpu4_characteriser_bl::write));
+ m_hopper_type = HOPPER_TWIN_HOPPER;
}
-void mpu4_state::mpu4_memmap_bl_characteriser_blastbank(address_map &map)
+void mpu4_state::tr_over(machine_config &config)
{
- mpu4_memmap(map);
- map(0x0800, 0x081f).rw(m_characteriser_blastbank, FUNC(mpu4_characteriser_bl_blastbank::read), FUNC(mpu4_characteriser_bl_blastbank::write));
+ m_overcurrent_detect = true;
+}
+
+void mpu4_state::tr_p4l(machine_config &config)
+{
+ m_use_pia4_porta_leds = true;
+}
+
+void mpu4_state::tr_scardl(machine_config &config)
+{
+ m_use_simplecard_leds = true;
}
+
void mpu4_state::mpu4_common(machine_config &config)
{
TIMER(config, "50hz").configure_periodic(FUNC(mpu4_state::gen_50hz), attotime::from_hz(100));
@@ -2463,6 +2351,8 @@ void mpu4_state::mpu4_common(machine_config &config)
BACTA_DATALOGGER(config, m_dataport, 0);
m_dataport->rxd_handler().set(FUNC(mpu4_state::dataport_rxd));
+
+ HOPPER(config, m_hopper1, attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH);
}
void mpu4_state::mpu4_common2(machine_config &config)
@@ -2514,7 +2404,7 @@ void mpu4_state::mpu4base(machine_config &config)
***********************************************************************************************/
-void mpu4_state::mod2(machine_config &config)
+void mpu4_state::mod2_f(machine_config &config)
{
mpu4base(config);
AY8913(config, m_ay8913, MPU4_MASTER_CLOCK/4);
@@ -2522,181 +2412,25 @@ void mpu4_state::mod2(machine_config &config)
m_ay8913->set_resistors_load(820, 0, 0);
m_ay8913->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
m_ay8913->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- mpu4_reels<0, 6>(config);
}
-void mpu4_state::mod2_no_bacta(machine_config &config)
+void mpu4_state::mod2_no_bacta_f(machine_config &config)
{
- mod2(config);
+ mod2_f(config);
config.device_remove("dataport");
m_pia5->ca2_handler().set(m_pia4, FUNC(pia6821_device::cb1_w));
}
-void mpu4_state::mod2_7reel(machine_config &config)
-{
- mpu4base(config);
- AY8913(config, m_ay8913, MPU4_MASTER_CLOCK/4);
- m_ay8913->set_flags(AY8910_SINGLE_OUTPUT);
- m_ay8913->set_resistors_load(820, 0, 0);
- m_ay8913->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- m_ay8913->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- mpu4_reels<0, 7>(config);
-}
-
-void mpu4_state::mod2_cheatchr_table(machine_config &config, const uint8_t* table)
-{
- mod2(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(table);
-}
-
-void mpu4_state::mod2_chr(machine_config &config)
-{
- mod2(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
-}
-
-void mpu4_state::mod2_cheatchr(machine_config &config)
-{
- mod2_cheatchr_table(config, nullptr);
-}
-
-
-void mpu4_state::mod2_chr_blastbnk(machine_config &config)
-{
- mod2(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_bl_characteriser_blastbank);
-
- MPU4_CHARACTERISER_BL_BLASTBANK(config, m_characteriser_blastbank, 0);
-}
-
-void mpu4_state::mod2_chr_copcash(machine_config &config)
+void mpu4_state::mod2_cheatchr_f(machine_config &config)
{
- mod2(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_bl_characteriser_blastbank);
-
- MPU4_CHARACTERISER_BL_BLASTBANK(config, m_characteriser_blastbank, 0);
- m_characteriser_blastbank->set_retxor(0x03);
-
-}
-
-
-// alt reel setup
-
-void mpu4_state::mod2_alt(machine_config &config)
-{
- mpu4base(config);
- AY8913(config, m_ay8913, MPU4_MASTER_CLOCK/4);
- m_ay8913->set_flags(AY8910_SINGLE_OUTPUT);
- m_ay8913->set_resistors_load(820, 0, 0);
- m_ay8913->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- m_ay8913->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- mpu4_reels<1, 6>(config);
-}
-
-void mpu4_state::mod2_alt_cheatchr_table(machine_config &config, const uint8_t* table)
-{
- mod2_alt(config);
+ mod2_f(config);
m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
m_characteriser->set_cpu_tag("maincpu");
m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(table);
-}
-
-void mpu4_state::mod2_alt_cheatchr(machine_config &config)
-{
- mod2_alt_cheatchr_table(config, nullptr);
-}
-
-/***********************************************************************************************
-
- Configs for Mod4 with YM
-
- TODO: mod4yam should eventually become a subclass
-
-***********************************************************************************************/
-
-void mpu4_state::add_ym2413(machine_config &config)
-{
- YM2413(config, m_ym2413, XTAL(3'579'545)); // XTAL on sound board
- m_ym2413->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- m_ym2413->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-}
-
-void mpu4_state::mod4yam(machine_config &config)
-{
- mpu4base(config);
- MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4yam)
-
- mpu4_reels<0, 6>(config);
-
- add_ym2413(config);
-}
-
-void mpu4_state::mod4yam_no_bacta(machine_config &config)
-{
- mod4yam(config);
- config.device_remove("dataport");
- m_pia5->ca2_handler().set(m_pia4, FUNC(pia6821_device::cb1_w));
-}
-
-void mpu4_state::mod4yam_chr(machine_config &config)
-{
- mod4yam(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
-}
-
-void mpu4_state::mod4yam_cheatchr_table(machine_config& config, const uint8_t* table)
-{
- mod4yam(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(table);
-}
-
-void mpu4_state::mod4yam_cheatchr(machine_config &config)
-{
- mod4yam_cheatchr_table(config, nullptr);
-}
-
-void mpu4_state::mod4yam_alt(machine_config &config)
-{
- mpu4base(config);
- MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4yam)
-
- mpu4_reels<1, 6>(config);
-
- add_ym2413(config);
-}
-
-void mpu4_state::mod4yam_7reel(machine_config &config)
-{
- mpu4base(config);
- MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4yam)
-
- mpu4_reels<0, 7>(config);
-
- add_ym2413(config);
+ m_characteriser->set_lamp_table(nullptr);
}
/***********************************************************************************************
@@ -2709,161 +2443,33 @@ void mpu4_state::mod4yam_7reel(machine_config &config)
// standard reel setup
-void mpu4_state::mod4oki(machine_config &config)
+void mpu4_state::mod4oki_f(machine_config &config)
{
mpu4base(config);
MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki)
mpu4_common2(config);
- mpu4_reels<0, 6>(config);
OKIM6376(config, m_msm6376, 128000); //Adjusted by IC3, default to 16KHz sample. Can also be 85430 at 10.5KHz and 64000 at 8KHz
m_msm6376->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
m_msm6376->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
}
-void mpu4_state::mod4oki_no_bacta(machine_config &config)
+void mpu4_state::mod4oki_no_bacta_f(machine_config &config)
{
- mod4oki(config);
+ mod4oki_f(config);
config.device_remove("dataport");
m_pia5->ca2_handler().set(m_pia4, FUNC(pia6821_device::cb1_w));
}
-void mpu4_state::mod4oki_7reel(machine_config &config)
-{
- mpu4base(config);
- MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki)
-
- mpu4_common2(config);
- mpu4_reels<0, 7>(config);
-
- OKIM6376(config, m_msm6376, 128000); //Adjusted by IC3, default to 16KHz sample. Can also be 85430 at 10.5KHz and 64000 at 8KHz
- m_msm6376->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- m_msm6376->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-}
-
-void mpu4_state::mod4oki_chr(machine_config &config)
+void mpu4_state::mod4oki_cheatchr_f(machine_config &config)
{
- mod4oki(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
-}
-
-
-void mpu4_state::mod4oki_cheatchr_table(machine_config &config, const uint8_t* table)
-{
- mod4oki(config);
+ mod4oki_f(config);
m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
m_characteriser->set_cpu_tag("maincpu");
m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(table);
-}
-
-void mpu4_state::mod4oki_cheatchr(machine_config &config)
-{
- mod4oki_cheatchr_table(config, nullptr);
-}
-
-
-
-
-// alt reel setup
-
-void mpu4_state::mod4oki_alt(machine_config &config)
-{
- mpu4base(config);
- MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki)
-
- mpu4_common2(config);
- mpu4_reels<1, 6>(config);
-
- OKIM6376(config, m_msm6376, 128000); //Adjusted by IC3, default to 16KHz sample. Can also be 85430 at 10.5KHz and 64000 at 8KHz
- m_msm6376->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- m_msm6376->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-}
-
-
-
-void mpu4_state::mod4oki_alt_cheatchr_table(machine_config& config, const uint8_t* table)
-{
- mod4oki_alt(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(table);
-}
-
-void mpu4_state::mod4oki_alt_cheatchr(machine_config &config)
-{
- mod4oki_alt_cheatchr_table(config, nullptr);
-}
-
-
-// 5 reel setup
-
-void mpu4_state::mod4oki_5r(machine_config &config)
-{
- mpu4base(config);
- MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki)
-
- mpu4_common2(config);
- mpu4_reels<0, 5>(config);
-
- OKIM6376(config, m_msm6376, 128000); //Adjusted by IC3, default to 16KHz sample. Can also be 85430 at 10.5KHz and 64000 at 8KHz
- m_msm6376->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- m_msm6376->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-}
-
-void mpu4_state::mod4oki_5r_chr(machine_config &config)
-{
- mod4oki_5r(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
-}
-
-void mpu4_state::mod4oki_5r_cheatchr_table(machine_config &config, const uint8_t* table)
-{
- mod4oki_5r(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(table);
-}
-
-void mpu4_state::mod4oki_5r_cheatchr(machine_config &config)
-{
- mod4oki_5r_cheatchr_table(config, nullptr);
-}
-
-
-/***********************************************************************************************
-
- Inits
-
-***********************************************************************************************/
-
-// TODO: move this to mpu4_characteriser_bootleg.cpp, it's for a single game that requires
-// a different 'fixed' value depending on the address
-uint8_t mpu4_state::bootleg806_r(address_space &space, offs_t offset)
-{
- return 0x6a;
-}
-
-void mpu4_state::init_m4default_806prot()
-{
- init_m4default_sextender();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0806, 0x0806, read8m_delegate(*this, FUNC(mpu4_state::bootleg806_r)));
+ m_characteriser->set_lamp_table(nullptr);
}
diff --git a/src/mame/barcrest/mpu4.h b/src/mame/barcrest/mpu4.h
index 2528cdabd4e..e37ee4794c7 100644
--- a/src/mame/barcrest/mpu4.h
+++ b/src/mame/barcrest/mpu4.h
@@ -14,25 +14,13 @@
#include "machine/nvram.h"
#include "machine/roc10937.h"
#include "machine/steppers.h"
-#include "machine/timer.h"
+#include "machine/ticket.h"
+#include "machine/timer.h" //hoppers
#include "sound/ay8910.h"
#include "sound/okim6376.h"
-#include "sound/upd7759.h"
-#include "sound/ymopl.h"
-
-#include "emupal.h"
#define MPU4_MASTER_CLOCK XTAL(6'880'000)
-#define VIDEO_MASTER_CLOCK XTAL(10'000'000)
-
-#ifdef MAME_DEBUG
-#define MPU4VIDVERBOSE 1
-#else
-#define MPU4VIDVERBOSE 0
-#endif
-
-#define LOGSTUFF(x) do { if (MPU4VIDVERBOSE) logerror x; } while (0)
@@ -75,12 +63,13 @@
//Hopper info
-#define TUBES 0
-#define HOPPER_DUART_A 1
-#define HOPPER_DUART_B 2
-#define HOPPER_DUART_C 3
-#define HOPPER_NONDUART_A 4
-#define HOPPER_NONDUART_B 5
+#define TUBES 0
+#define HOPPER_DUART_A 1
+#define HOPPER_DUART_B 2
+#define HOPPER_DUART_C 3
+#define HOPPER_NONDUART_A 4
+#define HOPPER_NONDUART_B 5
+#define HOPPER_TWIN_HOPPER 6
INPUT_PORTS_EXTERN( mpu4 );
INPUT_PORTS_EXTERN( mpu4_dutch );
@@ -101,6 +90,52 @@ INPUT_PORTS_EXTERN( mpu4_70pc );
// currently in mpu4.cpp this may get moved into the driver, or renamed to something more generic based on the setup
INPUT_PORTS_EXTERN( grtecp );
+namespace mpu4_traits {
+ enum {
+ // Reels configurations
+ R4,
+ R5,
+ R5R, // reversed
+ R5A, // alternative
+ R6,
+ R6A, // alternative
+ R7,
+ R8,
+
+ // Reel types (must be set after reel count)
+ RT1, // 1-3
+ RT2, // 4-12
+ RT3, // 96-3
+
+ // Lamp extenders
+ LPS, // small
+ LPLA, // large A
+ LPLB, // large B
+ LPLC, // large C
+
+ // Led extenders
+ LDS, // simple
+ LDA, // card A
+ LDB, // card B
+ LDC, // card C
+
+ // Hopper
+ HT, // tubes
+ HDA, // duart type A
+ HDB, // duart type B
+ HDC, // duart type C
+ HNA, // non-duart type A
+ HNB, // non-duart type B
+ HTW, // twin
+
+ // Features
+ OVER, // overcurrent detection
+ P4L, // use pia4 port a leds
+ SCARDL, // use simple card leds
+ };
+}
+
+
class mpu4_state : public driver_device
{
public:
@@ -123,9 +158,7 @@ public:
, m_bank1(*this, "bank1")
, m_msm6376(*this, "msm6376")
, m_reel(*this, "reel%u", 0U)
- , m_palette(*this, "palette")
, m_meters(*this, "meters")
- , m_ym2413(*this, "ym2413")
, m_ay8913(*this, "ay8913")
, m_dataport(*this, "dataport")
, m_characteriser(*this, "characteriser")
@@ -133,309 +166,183 @@ public:
, m_characteriser_blastbank(*this, "characteriser_blastbank")
, m_characteriser_bwb(*this, "characteriser_bwb")
, m_duart68681(*this, "duart68681")
+ , m_hopper1(*this, "hopper")
+ , m_hopper2(*this, "hopper2")
, m_lamps(*this, "lamp%u", 0U)
, m_mpu4leds(*this, "mpu4led%u", 0U)
, m_digits(*this, "digit%u", 0U)
, m_triacs(*this, "triac%u", 0U)
- { }
-
- void init_m4default_alt();
-
- void init_m4default();
- void init_m4default_lextender();
- void init_m4default_sextender();
-
- void init_m4default_big();
- void init_m4default_big_lextender();
-
- void init_m4default_big_low();
- void init_m4default_big_aux2inv();
- void init_m4default_806prot();
- void init_m4tst2();
-
- void init_m4default_big_five_std();
- void init_m4default_big_five_rev();
- void init_m4default_big_five_rev_lextender();
-
- void init_m4default_big_six();
- void init_m4default_big_six_lextender();
-
- void init_m4default_big_six_alt();
-
- void init_m4tst();
- void init_big_extenda();
- void init_m4altreels();
- void init_m4altreels_big();
- void init_m4default_five_std();
- void init_m4default_five_std_sextender();
-
- void init_m4default_five_rev();
- void init_m4default_five_rev_lextender();
- void init_m4default_five_rev_sextender();
-
- void init_m4default_five_alt();
- void init_m4default_six();
- void init_m4default_six_sextender();
+ { }
- void init_m4default_six_alt();
- void init_m4default_seven();
+ void init_m4();
+ void init_m4big();
+ void init_m4big_low();
+
+ void mpu4_reels(machine_config &config, uint8_t NumberOfReels, int16_t start_index, int16_t end_index);
+
+ void tr_r4(machine_config &config);
+ void tr_r5(machine_config &config);
+ void tr_r5r(machine_config &config);
+ void tr_r5a(machine_config &config);
+ void tr_r6(machine_config &config);
+ void tr_r6a(machine_config &config);
+ void tr_r7(machine_config &config);
+ void tr_r8(machine_config &config);
+ void tr_rt1(machine_config &config);
+ void tr_rt2(machine_config &config);
+ void tr_rt3(machine_config &config);
+ void tr_lps(machine_config &config);
+ void tr_lpla(machine_config &config);
+ void tr_lplb(machine_config &config);
+ void tr_lplc(machine_config &config);
+ void tr_lds(machine_config &config);
+ void tr_lda(machine_config &config);
+ void tr_ldb(machine_config &config);
+ void tr_ldc(machine_config &config);
+ void tr_ht(machine_config &config);
+ void tr_hda(machine_config &config);
+ void tr_hdb(machine_config &config);
+ void tr_hdc(machine_config &config);
+ void tr_hna(machine_config &config);
+ void tr_hnb(machine_config &config);
+ void tr_htw(machine_config &config);
+ void tr_over(machine_config &config);
+ void tr_p4l(machine_config &config);
+ void tr_scardl(machine_config &config);
+
+ template <typename Class, unsigned Count>
+ struct trait_wrapper_impl
+ {
+ public:
+ using config_func = void (Class::*)(machine_config &);
- void mod2(machine_config &config);
- void mod2_no_bacta(machine_config &config);
- void mod2_7reel(machine_config &config);
+ template <typename... T>
+ trait_wrapper_impl(Class *_state, T... traits)
+ : state(_state)
+ , fragments{ apply(traits)... }
+ {
+ }
- void mod2_cheatchr(machine_config &config);
- void mod2_chr(machine_config &config);
+ void operator()(machine_config &config)
+ {
+ for (auto &t : fragments)
+ (state->*t)(config);
+ }
- template<const uint8_t ReelNo, uint8_t Type>
- void mpu4_add_reel(machine_config &config)
- {
- switch (Type)
+ private:
+ config_func apply(int trait)
{
- default:
- case 0x00: REEL(config, m_reel[ReelNo], BARCREST_48STEP_REEL, 1, 3, 0x00, 2); break;
- case 0x01: REEL(config, m_reel[ReelNo], BARCREST_48STEP_REEL, 4, 12, 0x00, 2); break;
- case 0x02: REEL(config, m_reel[ReelNo], BARCREST_48STEP_REEL, 92, 3, 0x00, 2); break;
- case 0x03: REEL(config, m_reel[ReelNo], BARCREST_48STEP_REEL, 93, 2, 0x00, 2); break;
- case 0x04: REEL(config, m_reel[ReelNo], BARCREST_48STEP_REEL, 96, 3, 0x00, 2); break; // BWB
+ switch (trait)
+ {
+ case mpu4_traits::R4: return &mpu4_state::tr_r4;
+ case mpu4_traits::R5: return &mpu4_state::tr_r5;
+ case mpu4_traits::R5R: return &mpu4_state::tr_r5r;
+ case mpu4_traits::R5A: return &mpu4_state::tr_r5a;
+ case mpu4_traits::R6: return &mpu4_state::tr_r6;
+ case mpu4_traits::R6A: return &mpu4_state::tr_r6a;
+ case mpu4_traits::R7: return &mpu4_state::tr_r7;
+ case mpu4_traits::R8: return &mpu4_state::tr_r8;
+ case mpu4_traits::RT1: return &mpu4_state::tr_rt1;
+ case mpu4_traits::RT2: return &mpu4_state::tr_rt2;
+ case mpu4_traits::RT3: return &mpu4_state::tr_rt3;
+ case mpu4_traits::LPS: return &mpu4_state::tr_lps;
+ case mpu4_traits::LPLA: return &mpu4_state::tr_lpla;
+ case mpu4_traits::LPLB: return &mpu4_state::tr_lplb;
+ case mpu4_traits::LPLC: return &mpu4_state::tr_lplc;
+ case mpu4_traits::LDS: return &mpu4_state::tr_lds;
+ case mpu4_traits::LDA: return &mpu4_state::tr_lda;
+ case mpu4_traits::LDB: return &mpu4_state::tr_ldb;
+ case mpu4_traits::LDC: return &mpu4_state::tr_ldc;
+ case mpu4_traits::HT: return &mpu4_state::tr_ht;
+ case mpu4_traits::HDA: return &mpu4_state::tr_hda;
+ case mpu4_traits::HDB: return &mpu4_state::tr_hdb;
+ case mpu4_traits::HDC: return &mpu4_state::tr_hdc;
+ case mpu4_traits::HNA: return &mpu4_state::tr_hna;
+ case mpu4_traits::HNB: return &mpu4_state::tr_hnb;
+ case mpu4_traits::HTW: return &mpu4_state::tr_htw;
+ case mpu4_traits::OVER: return &mpu4_state::tr_over;
+ case mpu4_traits::P4L: return &mpu4_state::tr_p4l;
+ case mpu4_traits::SCARDL: return &mpu4_state::tr_scardl;
+ default: return nullptr; // crash later on invalid arguments
+ }
}
- if (m_reel[ReelNo])
- m_reel[ReelNo]->optic_handler().set(FUNC(mpu4_state::reel_optic_cb<ReelNo>));
- }
+ config_func apply(config_func f)
+ {
+ return f;
+ }
- template<uint8_t Type, uint8_t NumberOfReels>
- void mpu4_reels(machine_config &config)
- {
- if (NumberOfReels>0) mpu4_add_reel<0, Type>(config);
- if (NumberOfReels>1) mpu4_add_reel<1, Type>(config);
- if (NumberOfReels>2) mpu4_add_reel<2, Type>(config);
- if (NumberOfReels>3) mpu4_add_reel<3, Type>(config);
- if (NumberOfReels>4) mpu4_add_reel<4, Type>(config);
- if (NumberOfReels>5) mpu4_add_reel<5, Type>(config);
- if (NumberOfReels>6) mpu4_add_reel<6, Type>(config);
- if (NumberOfReels>7) mpu4_add_reel<7, Type>(config);
- }
+ Class *state;
+ config_func fragments[Count];
+ };
- template<const uint8_t* Table> void mod2_cheatchr_pal(machine_config &config)
+ template <typename T, typename... U>
+ auto trait_wrapper(T *state, U... traits)
{
- mod2(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
+ return trait_wrapper_impl<T, sizeof...(U)>(state, traits...);
}
- template<const uint8_t* Table> void mod2_7reel_cheatchr_pal(machine_config &config)
- {
- mod2_7reel(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
- }
+ void mod2_f(machine_config &config);
+ void mod2_no_bacta_f(machine_config &config);
+ void mod2_cheatchr_f(machine_config &config);
- template<const uint8_t* Table> void mod2_alt_cheatchr_pal(machine_config &config)
+ template<typename... T>
+ auto mod2(T... traits)
{
- mod2_alt(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
+ return trait_wrapper(this, &mpu4_state::mod2_f, traits...);
}
- template<const uint8_t* Table> void mod4oki_cheatchr_pal(machine_config &config)
+ template<typename... T>
+ auto mod2_no_bacta(T... traits)
{
- mod4oki(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
+ return trait_wrapper(this, &mpu4_state::mod2_no_bacta_f, traits...);
}
- template<const uint8_t* Table> void mod4oki_7reel_cheatchr_pal(machine_config &config)
+ template<typename... T>
+ auto mod2_cheatchr(T... traits)
{
- mod4oki_7reel(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
+ return trait_wrapper(this, &mpu4_state::mod2_cheatchr_f, traits...);
}
- template<const uint8_t* Table> void mod4oki_alt_cheatchr_pal(machine_config &config)
- {
- mod4oki_alt(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
- }
+ void mod4oki_f(machine_config &config);
+ void mod4oki_no_bacta_f(machine_config &config);
+ void mod4oki_cheatchr_f(machine_config &config);
+ template<const uint8_t* Table> void mod4oki_cheatchr_pal_f(machine_config &config);
+ template<uint8_t Fixed> void mod4oki_bootleg_fixedret_f(machine_config &config);
- template<const uint8_t* Table> void mod4yam_cheatchr_pal(machine_config &config)
+ template<typename... T>
+ auto mod4oki(T... traits)
{
- mod4yam(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
+ return trait_wrapper(this, &mpu4_state::mod4oki_f, traits...);
}
- template<const uint8_t* Table> void mod4yam_alt_cheatchr_pal(machine_config &config)
+ template<typename... T>
+ auto mod4oki_no_bacta(T... traits)
{
- mod4yam_alt(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
+ return trait_wrapper(this, &mpu4_state::mod4oki_no_bacta_f, traits...);
}
- template<const uint8_t* Table> void mod4yam_7reel_cheatchr_pal(machine_config &config)
+ template<typename... T>
+ auto mod4oki_cheatchr(T... traits)
{
- mod4yam_7reel(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
+ return trait_wrapper(this, &mpu4_state::mod4oki_cheatchr_f, traits...);
}
-
- template<const uint8_t* Table> void mod4oki_5r_cheatchr_pal(machine_config &config)
+ template<const uint8_t* Table, typename... T>
+ auto mod4oki_cheatchr_pal(T... traits)
{
- mod4oki_5r(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
-
- MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
- m_characteriser->set_cpu_tag("maincpu");
- m_characteriser->set_allow_6809_cheat(true);
- m_characteriser->set_lamp_table(Table);
+ return trait_wrapper(this, &mpu4_state::mod4oki_cheatchr_pal_f<Table>, traits...);
}
- template<uint8_t Fixed> void mod4oki_5r_bootleg_fixedret(machine_config &config)
+ template<uint8_t Fixed, typename... T>
+ auto mod4oki_bootleg_fixedret(T... traits)
{
- mod4oki_5r(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_bootleg_characteriser);
-
- MPU4_CHARACTERISER_BL(config, m_characteriser_bl, 0);
- m_characteriser_bl->set_bl_fixed_return(Fixed);
+ return trait_wrapper(this, &mpu4_state::mod4oki_bootleg_fixedret_f<Fixed>, traits...);
}
- void mod2_cheatchr_table(machine_config &config, const uint8_t* table);
-
- // bootleg mod2
- template<uint8_t Fixed> void mod2_bootleg_fixedret(machine_config &config)
- {
- mod2(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_bootleg_characteriser);
-
- MPU4_CHARACTERISER_BL(config, m_characteriser_bl, 0);
- m_characteriser_bl->set_bl_fixed_return(Fixed);
- }
-
- template<uint8_t Fixed> void mod2_alt_bootleg_fixedret(machine_config &config)
- {
- mod2_alt(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_bootleg_characteriser);
-
- MPU4_CHARACTERISER_BL(config, m_characteriser_bl, 0);
- m_characteriser_bl->set_bl_fixed_return(Fixed);
- }
-
- template<uint8_t Fixed> void mod4yam_bootleg_fixedret(machine_config &config)
- {
- mod4yam(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_bootleg_characteriser);
-
- MPU4_CHARACTERISER_BL(config, m_characteriser_bl, 0);
- m_characteriser_bl->set_bl_fixed_return(Fixed);
- }
-
- template<uint8_t Fixed> void mod4oki_bootleg_fixedret(machine_config &config)
- {
- mod4oki(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_bootleg_characteriser);
-
- MPU4_CHARACTERISER_BL(config, m_characteriser_bl, 0);
- m_characteriser_bl->set_bl_fixed_return(Fixed);
- }
-
- template<uint8_t Fixed> void mod4oki_alt_bootleg_fixedret(machine_config &config)
- {
- mod4oki_alt(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_bootleg_characteriser);
-
- MPU4_CHARACTERISER_BL(config, m_characteriser_bl, 0);
- m_characteriser_bl->set_bl_fixed_return(Fixed);
- }
-
-
- void mod2_chr_blastbnk(machine_config &config);
- void mod2_chr_copcash(machine_config &config);
-
- void mod2_alt(machine_config &config);
- void mod2_alt_cheatchr(machine_config &config);
- void mod2_alt_cheatchr_table(machine_config &config, const uint8_t* table);
-
- void mod4oki_5r(machine_config &config);
- void mod4oki_5r_chr(machine_config &config);
- void mod4oki_5r_cheatchr(machine_config &config);
- void mod4oki_5r_cheatchr_table(machine_config &config, const uint8_t* table);
-
- void mod4oki_alt(machine_config &config);
- void mod4oki_alt_cheatchr(machine_config &config);
- void mod4oki_alt_cheatchr_table(machine_config& config, const uint8_t* table);
-
- void mod4oki(machine_config &config);
- void mod4oki_no_bacta(machine_config &config);
- void mod4oki_7reel(machine_config &config);
- void mod4oki_cheatchr(machine_config &config);
- void mod4oki_cheatchr_table(machine_config &config, const uint8_t* table);
- void mod4oki_chr(machine_config &config);
-
- void mod4yam(machine_config &config);
- void mod4yam_no_bacta(machine_config &config);
- void mod4yam_7reel(machine_config &config);
- void mod4yam_cheatchr(machine_config &config);
- void mod4yam_cheatchr_table(machine_config& config, const uint8_t* table);
- void mod4yam_chr(machine_config &config);
-
- void mod4yam_alt(machine_config &config);
-
-
void mpu4_common(machine_config &config);
void mpu4_common2(machine_config &config);
@@ -443,29 +350,6 @@ public:
void mpu4_bacta(machine_config &config);
protected:
-
- void use_m4_standard_reels();
- void use_m4_low_volt_alt();
- void use_m4_five_reel_std();
- void use_m4_five_reel_rev();
- void use_m4_five_reel_alt();
- void use_m4_six_reel_std();
- void use_m4_six_reel_alt();
- void use_m4_seven_reel();
- void use_m4_small_extender();
- void use_m4_large_extender_b();
- void use_m4_large_extender_c();
- void use_m4_hopper_tubes();
- void use_m4_hopper_duart_a();
- void use_m4_hopper_duart_b();
- void use_m4_hopper_duart_c();
- void use_m4_hopper_nonduart_a();
- void use_m4_hopper_nonduart_b();
- void use_m4_led_a();
- void use_m4_led_b();
- void use_m4_led_c();
- void use_m4_led_simple();
-
void setup_rom_banks();
TIMER_CALLBACK_MEMBER(update_ic24);
@@ -483,27 +367,19 @@ protected:
void ic24_output(int data);
void ic24_setup();
void update_ay(device_t *device);
- void mpu4_install_mod4yam_space(address_space &space);
void mpu4_install_mod4oki_space(address_space &space);
void mpu4_config_common();
- void add_ym2413(machine_config& config);
DECLARE_MACHINE_START(mod2);
DECLARE_MACHINE_RESET(mpu4);
- DECLARE_MACHINE_START(mpu4yam);
DECLARE_MACHINE_START(mpu4oki);
TIMER_DEVICE_CALLBACK_MEMBER(gen_50hz);
- template <unsigned N> DECLARE_WRITE_LINE_MEMBER(reel_optic_cb) { if (state) m_optic_pattern |= (1 << N); else m_optic_pattern &= ~(1 << N); }
-
void bankswitch_w(uint8_t data);
uint8_t bankswitch_r();
void bankset_w(uint8_t data);
- void mpu4_ym2413_w(offs_t offset, uint8_t data);
- uint8_t mpu4_ym2413_r(offs_t offset);
-
void ic3ss_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(cpu0_irq);
DECLARE_WRITE_LINE_MEMBER(ic2_o1_callback);
@@ -544,14 +420,30 @@ protected:
DECLARE_WRITE_LINE_MEMBER(dataport_rxd);
+
+ //The DUART hoppers connect via the standard IP
+ //Hopper 1 opto connects to IP5, hopper 2 to IP6
+ //TODO: Configure this correctly via lines
uint8_t hack_duart_r()
{
if (m_hack_duart_fixed_low)
+ {
return 0x00;
+ }
else
- return machine().rand() & 0x10;
+ {
+ int duart_data = 0;
+ if (m_hopper1->line_r() && m_hopper1_opto)
+ {
+ duart_data |= 0x10;
+ }
+ if (m_hopper2->line_r() && m_hopper2_opto)
+ {
+ duart_data |= 0x20;
+ }
+ return duart_data;
+ }
}
-
uint8_t bootleg806_r(address_space &space, offs_t offset);
required_device<cpu_device> m_maincpu;
@@ -571,10 +463,8 @@ protected:
optional_memory_bank m_bank1;
optional_device<okim6376_device> m_msm6376;
optional_device_array<stepper_device, 8> m_reel;
- optional_device<palette_device> m_palette;
required_device<meters_device> m_meters;
- optional_device<ym2413_device> m_ym2413;
- optional_device<ay8913_device> m_ay8913;
+ optional_device<ay8910_device> m_ay8913;
optional_device<bacta_datalogger_device> m_dataport;
optional_device<mpu4_characteriser_pal> m_characteriser;
optional_device<mpu4_characteriser_bl> m_characteriser_bl;
@@ -583,6 +473,9 @@ protected:
optional_device<mc68681_device> m_duart68681;
+ optional_device<hopper_device> m_hopper1;
+ optional_device<hopper_device> m_hopper2;
+
// not all systems have this many lamps/LEDs/digits but the driver is too much of a mess to split up now
// 0-63 are on PIA IC3 port A (always present)
@@ -606,7 +499,6 @@ protected:
output_finder<8> m_triacs;
- int m_mod_number = 0;
int m_mmtr_data = 0;
int m_ay8913_address = 0;
int m_signal_50hz = 0;
@@ -656,7 +548,7 @@ protected:
int m_pageval = 0;
int m_pageset = 0;
- int m_hopper = 0;
+ int m_hopper_type = 0;
int m_reels = 0;
int m_chrdata = 0;
int m_t1 = 0;
@@ -678,7 +570,32 @@ protected:
bool m_hack_duart_fixed_low = false;
+ bool m_hopper1_opto = false;
+ bool m_hopper2_opto = false;
+
static constexpr uint8_t reel_mux_table[8]= {0,4,2,6,1,5,3,7};//include 7, although I don't think it's used, this is basically a wire swap
static constexpr uint8_t reel_mux_table7[8]= {3,1,5,6,4,2,0,7};
};
+
+template<const uint8_t* Table> void mpu4_state::mod4oki_cheatchr_pal_f(machine_config &config)
+{
+ mod4oki_f(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_characteriser);
+
+ MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
+ m_characteriser->set_cpu_tag("maincpu");
+ m_characteriser->set_allow_6809_cheat(true);
+ m_characteriser->set_lamp_table(Table);
+}
+
+template<uint8_t Fixed> void mpu4_state::mod4oki_bootleg_fixedret_f(machine_config &config)
+{
+ mod4oki_f(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap_bootleg_characteriser);
+
+ MPU4_CHARACTERISER_BL(config, m_characteriser_bl, 0);
+ m_characteriser_bl->set_bl_fixed_return(Fixed);
+}
diff --git a/src/mame/barcrest/mpu4avan.cpp b/src/mame/barcrest/mpu4avan.cpp
index 162d322171f..aee2f80fe73 100644
--- a/src/mame/barcrest/mpu4avan.cpp
+++ b/src/mame/barcrest/mpu4avan.cpp
@@ -26,6 +26,7 @@ public:
} // anonymous namespace
+using namespace mpu4_traits;
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
@@ -35,7 +36,7 @@ public:
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod2, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod2(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// robotica - latvia
@@ -114,7 +115,7 @@ GAME_CUSTOM( 199?, m4robo__0, m4robo, "rou2b317.bin", 0x0000, 0x010000, CRC(8
ROM_LOAD( name, offset, length, hash ) \
M4ABEAUT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// ab
GAME_CUSTOM( 199?, m4abeaut, 0, "aba305.bin", 0x0000, 0x010000, CRC(ab70802c) SHA1(0cb59947b0bc177b10c55e02a0c8016620e0c346), "Avantime?","American Beauty (Avantime?) (MPU4) (AB, set 1)" )
@@ -322,7 +323,7 @@ GAME_CUSTOM( 199?, m4abeaut_k2, m4abeaut, "a2k0b618.bin", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4TRG_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// roms of different sizes again, might also be main / sub setups
@@ -372,7 +373,7 @@ GAME_CUSTOM( 199?, m4trg__4, m4trg, "rmtp4cz", 0x0000, 0x010000, CRC(1c5f
ROM_LOAD( name, offset, length, hash ) \
M4RMTP_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4rmtp, 0, "r4iha202.bin", 0x0000, 0x010000, CRC(b1588632) SHA1(ad21bbc5e99fd6b511e6881e8b20dcad177b937f), "Avantime?","Reel Magic Turbo Play (Avantime?) (MPU4) (set 1)" )
@@ -398,7 +399,7 @@ GAME_CUSTOM( 199?, m4rmtp__g, m4rmtp, "r4iua205.bin", 0x0000, 0x010000, CRC(4
ROM_LOAD( name, offset, length, hash ) \
M4RMTPD_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
@@ -465,7 +466,7 @@ GAME_CUSTOM( 199?, m4rmtpd__am, m4rmtpd, "rduhb511.bin", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4MBEL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4mbel, 0, "mb1.1k", 0x0000, 0x020000, CRC(00763b37) SHA1(2314ea5e8541e2be2492135785317f4fdd998692), "Avantime?","Millennium Bells (Avantime?) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4mbel__a, m4mbel, "mb1.1kw", 0x0000, 0x010000, CRC(d1ccefe4) SHA1(dba63d0a75fe614e77ac24ae23bfd0d924dd3e9a), "Avantime?","Millennium Bells (Avantime?) (MPU4) (set 2)" )
@@ -546,7 +547,7 @@ GAME_CUSTOM( 199?, m4mbel__a0, m4mbel, "mbpl3.3c", 0x0000, 0x020000, C
ROM_LOAD( name, offset, length, hash ) \
M4CMONT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// cmc
GAME_CUSTOM( 199?, m4cmont, 0, "cmc1.7", 0x0000, 0x020000, CRC(aaebab34) SHA1(36145b7d062ad5a740bcf326933f78274b99495c), "Avantime?","Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 1)" )
@@ -634,7 +635,7 @@ GAME_CUSTOM( 199?, m4cmont_gt3, m4cmont, "gtr58gaa", 0x0000, 0x020000, CR
ROM_LOAD( name, offset, length, hash ) \
M4BLKMGC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// new - latvia
@@ -661,7 +662,7 @@ GAME_CUSTOM( 199?, m4blkmgc_u6, m4blkmgc, "bau1b307.bin", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4AMALAD_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4amalad, 0, "aag1.4", 0x0000, 0x020000, CRC(0da943a1) SHA1(50915ce67687f15a36b5c38b1c1c6773bd3ecf9f), "Avantime?","American Aladdin (Avantime?) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4amalad__a, m4amalad, "aag1.3", 0x0000, 0x020000, CRC(3a9552a9) SHA1(7695899b6ed52d0c7530b5ed0829cfdbb3892fa2), "Avantime?","American Aladdin (Avantime?) (MPU4) (set 2)" )
@@ -692,7 +693,7 @@ GAME_CUSTOM( 199?, m4amalad__n, m4amalad, "jpaltst2.dat", 0x0000, 0x020
ROM_LOAD( name, offset, length, hash ) \
M4BBEN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4bben, 0, "bbc1a102.bin", 0x0000, 0x010000, CRC(c5010bb6) SHA1(f39ab219eafaa391b5b777c2918f059ba67b4504), "Avantime?","Big Ben (Avantime?) (MPU4) (set 1)" )
@@ -719,7 +720,7 @@ GAME_CUSTOM( 199?, m4bben__i, m4bben, "bbc2b106.bin", 0x0000, 0x010000, CRC(d
ROM_LOAD( name, offset, length, hash ) \
M4BBOX_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4bbox, 0, "bbb1.bin", 0x0000, 0x010000, CRC(b668e08e) SHA1(f401405419689ea5ad06dfd815aaef9e1b7ed4e1), "Avantime?","Brain Box (Avantime?) (MPU4) (set 1)" )
@@ -745,7 +746,7 @@ GAME_CUSTOM( 199?, m4bbox__i, m4bbox, "bbb9.bin", 0x0000, 0x010000, CRC(1
ROM_LOAD( name, offset, length, hash ) \
M4FRNUDG_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4frnudg, 0, "fanhc11.bin", 0x0000, 0x010000, CRC(d2fe9df9) SHA1(7b519e4ed447f8c59fda972fc398f6ff423a8f92), "Avantime?","Fruit & Nudge (Avantime?) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4frnudg__a, m4frnudg, "fanhc12.bin", 0x0000, 0x010000, CRC(2b2176e0) SHA1(9acffc05c02e76a6cbe4cfd708ff2d94ecb6c308), "Avantime?","Fruit & Nudge (Avantime?) (MPU4) (set 2)" )
@@ -765,7 +766,7 @@ GAME_CUSTOM( 199?, m4frnudg__c, m4frnudg, "fanhc9.bin", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4FRMTX_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4frmtx, 0, "fm1.bin", 0x0000, 0x010000, CRC(0d11ffee) SHA1(50a3f97cf76855ba503a833e4198c154a57b6847), "Avantime?","Fruit Matrix (Avantime?) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4frmtx__a, m4frmtx, "fm2.bin", 0x0000, 0x010000, CRC(ab143a49) SHA1(c4ba0671b154707fd69d58fd3bf65f5ba4d2bf53), "Avantime?","Fruit Matrix (Avantime?) (MPU4) (set 2)" )
GAME_CUSTOM( 199?, m4frmtx__b, m4frmtx, "fm4.bin", 0x0000, 0x010000, CRC(cbe09e1d) SHA1(00d17c6a189ac1a60ec9acbe2babb5a69dec3711), "Avantime?","Fruit Matrix (Avantime?) (MPU4) (set 3)" )
@@ -786,7 +787,7 @@ GAME_CUSTOM( 199?, m4frmtx__f, m4frmtx, "frmatx3", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4JOK2K_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// latvia
GAME_CUSTOM( 199?, m4jok2k, 0, "j300 1.512", 0x0000, 0x010000, CRC(3a52da14) SHA1(b2b7f32093938f8b793fa4c425cd5beaeaa83286), "Avantime?","Joker 2000 (Avantime?) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4jok2k__a, m4jok2k, "j300 2.512", 0x0000, 0x010000, CRC(6d3c6b99) SHA1(b5f34043e3cc93908b7ff969ae2546862a3a79ce), "Avantime?","Joker 2000 (Avantime?) (MPU4) (set 2)" )
@@ -806,7 +807,7 @@ GAME_CUSTOM( 199?, m4jok2k__b, m4jok2k, "joker2000.dat", 0x0000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4MJP_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4mjp, 0, "code.bin", 0x0000, 0x020000, CRC(c57d0148) SHA1(4d21a501ea64eb4fcf22ae9fba81b8982a55730e), "Avantime?","Mega Jackpot (Avantime?) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4mjp__a, m4mjp, "mjl02.bin", 0x0000, 0x010000, CRC(014d1765) SHA1(5cc4039e574b3a68be6d639453b217ce9a0841f0), "Avantime?","Mega Jackpot (Avantime?) (MPU4) (set 2)" )
@@ -828,7 +829,7 @@ GAME_CUSTOM( 199?, m4mjp__g, m4mjp, "tl01.bin", 0x0000, 0x010000, CRC(a36a
ROM_LOAD( name, offset, length, hash ) \
M4MILROU_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4milrou, 0, "nonp1.dat", 0x0000, 0x020000, CRC(b7503d57) SHA1(dc0ba6073ae278b8406cc7e30e4b4fed21df61c8), "Avantime?","Millennium Roulette (Avantime?) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4milrou__a, m4milrou, "p1.dat", 0x0000, 0x020000, CRC(b3f4a2b0) SHA1(01ee5ef5eea0f83791d68b2d9bdb5be6c6495a28), "Avantime?","Millennium Roulette (Avantime?) (MPU4) (set 2)" )
@@ -845,7 +846,7 @@ GAME_CUSTOM( 199?, m4milrou__a, m4milrou, "p1.dat", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4KINGG_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4avan_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4avan_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4kingg, 0, "kgiha101.bin", 0x0000, 0x010000, CRC(4da8bea1) SHA1(63fbad82877f772f3f559026eaddb69e09d6556b), "Avantime?","King George (Avantime?) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4kingg__a, m4kingg, "kgiha102.bin", 0x0000, 0x010000, CRC(573687b0) SHA1(eafc90120297201fc1ba40029b592ec25d972690), "Avantime?","King George (Avantime?) (MPU4) (set 2)" )
diff --git a/src/mame/barcrest/mpu4bwb.cpp b/src/mame/barcrest/mpu4bwb.cpp
index 467e7b35574..2eb735ff55f 100644
--- a/src/mame/barcrest/mpu4bwb.cpp
+++ b/src/mame/barcrest/mpu4bwb.cpp
@@ -89,17 +89,15 @@ public:
m_hack_duart_fixed_low = true;
}
- void bwboki(machine_config &config);
-
- template<const uint32_t* Key> void bwboki_chr_cheat(machine_config &config)
+ void bwboki_f(machine_config &config);
+ template<const uint32_t* Key> void bwboki_chr_cheat_f(machine_config &config);
+ template<const uint32_t* Key, typename... T>
+ auto bwboki_chr_cheat(T... traits)
{
- bwboki(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4bwb_machines_state::mpu4_memmap_characteriser_bwb);
- MPU4_CHARACTERISER_PAL_BWB(config, m_characteriser_bwb, 0);
- m_characteriser_bwb->set_common_key(Key[0] & 0xff);
- m_characteriser_bwb->set_other_key(Key[1]);
+ return trait_wrapper(this, &mpu4bwb_machines_state::bwboki_chr_cheat_f<Key>, traits...);
}
+
protected:
void mpu4_memmap_characteriser_bwb(address_map &map);
@@ -122,22 +120,29 @@ MACHINE_START_MEMBER(mpu4bwb_machines_state,mpu4bwb)
mpu4_config_common();
m_link7a_connected=false;
- m_mod_number=4;
mpu4_install_mod4bwb_space(space);
}
-void mpu4bwb_machines_state::bwboki(machine_config &config)
+void mpu4bwb_machines_state::bwboki_f(machine_config &config)
{
mpu4base(config);
MCFG_MACHINE_START_OVERRIDE(mpu4bwb_machines_state,mpu4bwb)
mpu4_common2(config);
- mpu4_reels<4, 5>(config);
OKIM6376(config, m_msm6376, 128000); //Adjusted by IC3, default to 16KHz sample. Can also be 85430 at 10.5KHz and 64000 at 8KHz
m_msm6376->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
m_msm6376->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
}
+template<const uint32_t* Key> void mpu4bwb_machines_state::bwboki_chr_cheat_f(machine_config &config)
+{
+ bwboki_f(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4bwb_machines_state::mpu4_memmap_characteriser_bwb);
+ MPU4_CHARACTERISER_PAL_BWB(config, m_characteriser_bwb, 0);
+ m_characteriser_bwb->set_common_key(Key[0] & 0xff);
+ m_characteriser_bwb->set_other_key(Key[1]);
+}
+
void mpu4bwb_machines_state::mpu4_memmap_characteriser_bwb(address_map &map)
{
mpu4_memmap(map);
@@ -243,6 +248,8 @@ INPUT_PORTS_END
} // anonymous namespace
+using namespace mpu4_traits;
+
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
@@ -268,10 +275,10 @@ static const uint32_t m4abra_keys[2] = { 0x11, 0x192703 };
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4abra, 0, bwboki_chr_cheat<m4abra_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "nn_sj___.4_0", 0x0000, 0x040000, CRC(48437d29) SHA1(72a2e9337fc0a004c382931f3af856253c44ed61), "BWB",u8"Abracadabra (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4abra__a, m4abra, bwboki_chr_cheat<m4abra_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "nn_sja__.4_0", 0x0000, 0x040000, CRC(766cd4ae) SHA1(4d630b967ede615d325f524c2e4c92c7e7a60886), "BWB",u8"Abracadabra (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 2)" )
-GAME_CUSTOM( 199?, m4abra__b, m4abra, bwboki_chr_cheat<m4abra_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "nn_sjb__.4_0", 0x0000, 0x040000, CRC(ca77a68a) SHA1(e753c065d299038bae4c451e647b9bcda36421d9), "BWB",u8"Abracadabra (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 3)" ) // Datapak
-GAME_CUSTOM( 199?, m4abra__c, m4abra, bwboki_chr_cheat<m4abra_keys>, mpu4impcoin_jackpot15_20p_90pc, init_m4default_big, "nn_sjk__.4_0", 0x0000, 0x040000, CRC(19018556) SHA1(6df993939e70a24621d4e732d0670d64fac1cf56), "BWB",u8"Abracadabra (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 4)" ) // % key
+GAME_CUSTOM( 199?, m4abra, 0, bwboki_chr_cheat<m4abra_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "nn_sj___.4_0", 0x0000, 0x040000, CRC(48437d29) SHA1(72a2e9337fc0a004c382931f3af856253c44ed61), "BWB",u8"Abracadabra (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4abra__a, m4abra, bwboki_chr_cheat<m4abra_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "nn_sja__.4_0", 0x0000, 0x040000, CRC(766cd4ae) SHA1(4d630b967ede615d325f524c2e4c92c7e7a60886), "BWB",u8"Abracadabra (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 2)" )
+GAME_CUSTOM( 199?, m4abra__b, m4abra, bwboki_chr_cheat<m4abra_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "nn_sjb__.4_0", 0x0000, 0x040000, CRC(ca77a68a) SHA1(e753c065d299038bae4c451e647b9bcda36421d9), "BWB",u8"Abracadabra (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 3)" ) // Datapak
+GAME_CUSTOM( 199?, m4abra__c, m4abra, bwboki_chr_cheat<m4abra_keys>(R5, RT3), mpu4impcoin_jackpot15_20p_90pc, init_m4big, "nn_sjk__.4_0", 0x0000, 0x040000, CRC(19018556) SHA1(6df993939e70a24621d4e732d0670d64fac1cf56), "BWB",u8"Abracadabra (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 4)" ) // % key
/*****************************************************************************************************************************************************************************
@@ -296,7 +303,7 @@ static const uint32_t m4bigmt_keys[2] = { 0x10, 0x241215 };
ROM_LOAD( name, offset, length, hash ) \
M4BIGMT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4bigmt_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4bigmt_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4bigmt, 0, "bigm1320", 0x0000, 0x010000, CRC(a5085347) SHA1(93a7f7656e53461270e04190ff538959d6c917c1), "BWB","The Big Match (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4bigmt__a, m4bigmt, "tb_20___.7_1", 0x0000, 0x010000, CRC(22fae0f0) SHA1(a875adccf96fbbff69f5fe76720514767cdcae66), "BWB","The Big Match (BWB) (MPU4) (set 2)" )
@@ -325,7 +332,7 @@ static const uint32_t m4bingbl_keys[2] = { 0x10, 0x322214 };
ROM_LOAD( name, offset, length, hash ) \
M4BINGBL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4bingbl_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4bingbl_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4bingbl, 0, "bb_20a__.8_1", 0x0000, 0x010000, CRC(10f29ba3) SHA1(739b413f35676834ebafeb121c6059759586ec72), "BWB","Bingo Belle (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4bingbl__a, m4bingbl, "bb_20bg_.8_1", 0x0000, 0x010000, CRC(9969c9ce) SHA1(8c754335e7ff75bc46f02095c2c7d57df046db47), "BWB","Bingo Belle (BWB) (MPU4) (set 2)" )
@@ -356,7 +363,7 @@ static const uint32_t m4bingbs_keys[2] = { 0x10, 0x322214 };
ROM_LOAD( name, offset, length, hash ) \
M4BINGBS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4bingbs_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4bingbs_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4bingbs, 0, "bp_20a__.2_1", 0x0000, 0x010000, CRC(ca005003) SHA1(271ff0dbee529ca15c79c9aa1047efa8993ea073), "BWB","Bingo Belle Showcase (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4bingbs__a, m4bingbs, "bp_20bg_.2_1", 0x0000, 0x010000, CRC(1b59c32f) SHA1(0c7df33f921639bfedbddd969dcbcd62e38ff912), "BWB","Bingo Belle Showcase (BWB) (MPU4) (set 2)" )
@@ -387,7 +394,7 @@ static const uint32_t m4bingcl_keys[2] = { 0x03, 0x072114 };
ROM_LOAD( name, offset, length, hash ) \
M4BINGCL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4bingcl_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4bingcl_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4bingcl, 0, "bc_xe___.2_1", 0x0000, 0x010000, CRC(3abbc215) SHA1(b5e59b30c07c4ffef69c5729f1a28d7ee55636bd), "BWB","Bingo Club (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4bingcl__a, m4bingcl, "bc_xe_b_.2_1", 0x0000, 0x010000, CRC(3e11c5c0) SHA1(2d9bc987fed040664f211bb9d13984b6cba5e25f), "BWB","Bingo Club (BWB) (MPU4) (set 2)" )
@@ -416,7 +423,7 @@ static const uint32_t m4blsbys_g_keys[2] = { 0x36, 0x010e20 };
ROM_LOAD( name, offset, length, hash ) \
M4BLSBYS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4blsbys_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big_five_std, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4blsbys_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4blsbys, 0, "bbprog.bin", 0x0000, 0x020000, CRC(c262cfda) SHA1(f004895e0dd3f8420683927915554e19e41bd20b), "BWB","Blues Boys (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4blsbys__a, m4blsbys, "bf_20a__.3_1", 0x0000, 0x020000, CRC(fca7764f) SHA1(a88378247b6710d6122c515c31c39c5cd9678ce2), "BWB","Blues Boys (BWB) (MPU4) (set 2)" )
@@ -451,7 +458,7 @@ GAME_CUSTOM( 199?, m4blsbys__8, m4blsbys, "bs_25a_c.2_1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4BLSBYS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4blsbys_g_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big_five_std, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4blsbys_g_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4blsbys__g, m4blsbys, "bs_05___.3v1", 0x0000, 0x020000, CRC(26e8eb95) SHA1(7d8dbca127e1867714cbeb9d699b2173de724eb2), "BWB","Blues Boys (BWB) (MPU4) (set 26)" )
GAME_CUSTOM( 199?, m4blsbys__h, m4blsbys, "bs_05__c.3v1", 0x0000, 0x020000, CRC(12e51237) SHA1(68235cf5f36862a26d5d44464041dabb01b9f95c), "BWB","Blues Boys (BWB) (MPU4) (set 27)" )
@@ -495,21 +502,21 @@ static const uint32_t m4csoc_keys[2] = { 0x11, 0x101230 };
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4csoc, 0, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big ,"sg_sj___.1_0", 0x0000, 0x040000, CRC(f21cd1aa) SHA1(dc010a315a8d738ad9e5e384197499e08a8d5ef6), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £10/£15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4csoc__a, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big ,"sg_sj___.2_0", 0x0000, 0x040000, CRC(5513f2a3) SHA1(e9e59461a007be02beae6cd1610b8582d367c15e), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £10/£15 jackpot) (set 2)" )
-GAME_CUSTOM( 199?, m4csoc__b, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big ,"sg_sj_d_.2_0", 0x0000, 0x040000, CRC(b0058d0f) SHA1(635c4f729c27c5cb4356f62dcc13127043ea0e5c), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £10/£15 jackpot) (set 3)" ) // Datapak
+GAME_CUSTOM( 199?, m4csoc, 0, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big ,"sg_sj___.1_0", 0x0000, 0x040000, CRC(f21cd1aa) SHA1(dc010a315a8d738ad9e5e384197499e08a8d5ef6), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £10/£15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4csoc__a, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big ,"sg_sj___.2_0", 0x0000, 0x040000, CRC(5513f2a3) SHA1(e9e59461a007be02beae6cd1610b8582d367c15e), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £10/£15 jackpot) (set 2)" )
+GAME_CUSTOM( 199?, m4csoc__b, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big ,"sg_sj_d_.2_0", 0x0000, 0x040000, CRC(b0058d0f) SHA1(635c4f729c27c5cb4356f62dcc13127043ea0e5c), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £10/£15 jackpot) (set 3)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4csoc__c, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big ,"so_sj___.b_0", 0x0000, 0x040000, CRC(65d5bb2d) SHA1(61c6896d97ed79e2f31b37b9d8998980ceac4fc5), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4csoc__d, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big ,"so_sj_d_.b_0", 0x0000, 0x040000, CRC(5e79ba34) SHA1(cb8c689319b5f94ce0385b3b7846a49589358ccc), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4csoc__e, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big ,"so_sjs__.b_0", 0x0000, 0x040000, CRC(2f50675e) SHA1(baed8e3a455ec5bfa810e64dc4c66996d6746bbc), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 3)" ) // Datapak
-GAME_CUSTOM( 199?, m4csoc__f, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big ,"ch_socc.5", 0x0000, 0x040000, CRC(1b2ea78d) SHA1(209534ccd537c0ca9d02301830a52ebc29b93cb7), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 4)" )
+GAME_CUSTOM( 199?, m4csoc__c, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big ,"so_sj___.b_0", 0x0000, 0x040000, CRC(65d5bb2d) SHA1(61c6896d97ed79e2f31b37b9d8998980ceac4fc5), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4csoc__d, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big ,"so_sj_d_.b_0", 0x0000, 0x040000, CRC(5e79ba34) SHA1(cb8c689319b5f94ce0385b3b7846a49589358ccc), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4csoc__e, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big ,"so_sjs__.b_0", 0x0000, 0x040000, CRC(2f50675e) SHA1(baed8e3a455ec5bfa810e64dc4c66996d6746bbc), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 3)" ) // Datapak
+GAME_CUSTOM( 199?, m4csoc__f, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big ,"ch_socc.5", 0x0000, 0x040000, CRC(1b2ea78d) SHA1(209534ccd537c0ca9d02301830a52ebc29b93cb7), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 4)" )
//
-GAME_CUSTOM( 199?, m4csoc__g, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big ,"so_vc___.c_0", 0x0000, 0x040000, CRC(d683b202) SHA1(95803008a50229bc85ed177b587fdf05cb152df3), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10p stake / £5 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4csoc__h, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big ,"so_vc_d_.c_0", 0x0000, 0x040000, CRC(ed2fb31b) SHA1(de72d8abbb4a22125ed312e6ccfcab6b3e591ec2), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10p stake / £5 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4csoc__g, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big ,"so_vc___.c_0", 0x0000, 0x040000, CRC(d683b202) SHA1(95803008a50229bc85ed177b587fdf05cb152df3), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10p stake / £5 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4csoc__h, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big ,"so_vc_d_.c_0", 0x0000, 0x040000, CRC(ed2fb31b) SHA1(de72d8abbb4a22125ed312e6ccfcab6b3e591ec2), "BWB",u8"Championship Soccer (BWB) (MPU4) (5/10p stake / £5 jackpot) (set 2)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4csoc__i, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big ,"ch_socc", 0x0000, 0x040000, CRC(ea9af5bd) SHA1(99319995ee886196ddd540bf37960a4e5b9d4f34), "BWB",u8"Championship Soccer (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot)" )
+GAME_CUSTOM( 199?, m4csoc__i, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big ,"ch_socc", 0x0000, 0x040000, CRC(ea9af5bd) SHA1(99319995ee886196ddd540bf37960a4e5b9d4f34), "BWB",u8"Championship Soccer (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot)" )
//
-GAME_CUSTOM( 199?, m4csoc__j, m4csoc, bwboki_chr_cheat<m4csoc_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big ,"chsoc8ac", 0x0000, 0x040000, CRC(8e0471ba) SHA1(3b7e6edbb3490e99af148c0cfe8d39c13c282880), "hack",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £8 jackpot, 20/25/30p stake / £15 jackpot) (hack)" ) // BWB string at the start of the demo has been blanked out
+GAME_CUSTOM( 199?, m4csoc__j, m4csoc, bwboki_chr_cheat<m4csoc_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big ,"chsoc8ac", 0x0000, 0x040000, CRC(8e0471ba) SHA1(3b7e6edbb3490e99af148c0cfe8d39c13c282880), "hack",u8"Championship Soccer (BWB) (MPU4) (5/10/20/25/30p stake / £8 jackpot, 20/25/30p stake / £15 jackpot) (hack)" ) // BWB string at the start of the demo has been blanked out
/*****************************************************************************************************************************************************************************
@@ -533,7 +540,7 @@ static const uint32_t m4cpfinl_keys[2] = { 0x10, 0x241215 };
ROM_LOAD( name, offset, length, hash ) \
M4CPFINL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4cpfinl_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4cpfinl_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4cpfinl, 0, "cu_10___.5_1", 0x0000, 0x010000, CRC(47a85443) SHA1(d308b9a6dcb0200f72d5c5b380907d2d55f3e40d), "BWB","Cup Final (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4cpfinl__a, m4cpfinl, "cu_10_b_.5_1", 0x0000, 0x010000, CRC(2583f410) SHA1(447a2316e3c3da6f835699602834f7ca5bafbdf9), "BWB","Cup Final (BWB) (MPU4) (set 2)" )
@@ -569,7 +576,7 @@ static const uint32_t m4danced_keys[2] = { 0x10, 0x3b240d };
ROM_LOAD( name, offset, length, hash ) \
M4DANCED_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4danced_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4danced_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4danced, 0, "dd_22bg_.2_1", 0x0000, 0x020000, CRC(f79525a1) SHA1(babfbf8beae423626057235bcad5eae18531160e), "BWB","Dancing Diamonds (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4danced__a, m4danced, "dd_22bg_.4_1", 0x0000, 0x020000, CRC(e50ffa46) SHA1(b42d806422f85573bcbe284b4192f393e3e57306), "BWB","Dancing Diamonds (BWB) (MPU4) (set 2)" )
@@ -617,7 +624,7 @@ static const uint32_t m4daytn_keys[2] = { 0x13, 0x1f1e23 };
ROM_LOAD( name, offset, length, hash ) \
M4DAYTN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4daytn_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4daytn_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4daytn, 0, "da_78___.1_0", 0x0000, 0x040000, CRC(50beafdd) SHA1(0ef6dd4fc9c8cda596fd383e47b9c7976b5d15f0), "BWB","Daytona (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4daytn__a, m4daytn, "da_78_d_.1_0", 0x0000, 0x040000, CRC(d55d3f9a) SHA1(a145379237947601f2ecb84138c113b71842cd34), "BWB","Daytona (BWB) (MPU4) (set 2)" )
@@ -658,7 +665,7 @@ static const uint32_t m4excal_keys[2] = { 0xff, 0xffffffff };
ROM_LOAD( name, offset, length, hash ) \
M4EXCAL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4excal_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4excal_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4excal, 0, "ex_05a__.6_1", 0x0000, 0x020000, CRC(317fa289) SHA1(8a0e83a764e2a04285367e0f7ebb814fedc81400), "BWB","Excalibur (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4excal__a, m4excal, "ex_20a_6.6_1", 0x0000, 0x020000, CRC(284937c8) SHA1(3be8bf21ab0ff97f67ce170cee48cd08ea325571), "BWB","Excalibur (BWB) (MPU4) (set 2)" )
@@ -695,13 +702,13 @@ static const uint32_t m4exotic_keys[2] = { 0x34, 0x3f0e26 };
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
// don't require stake/jp set
-GAME_CUSTOM( 199?, m4exotic, 0, bwboki_chr_cheat<m4exotic_keys>, mpu4_impcoin, init_m4default_big, "eo_49bm_.2_0", 0x0000, 0x020000, CRC(c748c4ca) SHA1(7d0d498f9edd792ed861c8bf9cf1bb03698d144d), "BWB",u8"Exotic Fruits (BWB) (MPU4) (30p stake / £15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4exotic__a, m4exotic, bwboki_chr_cheat<m4exotic_keys>, mpu4_impcoin, init_m4default_big, "eo_49bmd.2_0", 0x0000, 0x020000, CRC(98436c04) SHA1(1db7c95f7a0297aa3da7f1ce27c790ffa1fa4ebe), "BWB",u8"Exotic Fruits (BWB) (MPU4) (30p stake / £15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4exotic__b, m4exotic, bwboki_chr_cheat<m4exotic_keys>, mpu4_impcoin, init_m4default_big, "eo_49bmd.2g0", 0x0000, 0x020000, CRC(425a0152) SHA1(6a235c613f52c4b8985a589f89542eebd3574fde), "BWB",u8"Exotic Fruits (BWB) (MPU4) (30p stake / £15 jackpot) (set 3)" ) // Datapak
-GAME_CUSTOM( 199?, m4exotic__c, m4exotic, bwboki_chr_cheat<m4exotic_keys>, mpu4_impcoin, init_m4default_big, "eo_49bg_.2_0", 0x0000, 0x020000, CRC(c3bf2286) SHA1(74090fd0a103a6c311d426f4aae8e7af8b1d3bc0), "BWB",u8"Exotic Fruits (BWB) (MPU4) (30p stake / £15 jackpot) (set 4)" ) // Datapak
+GAME_CUSTOM( 199?, m4exotic, 0, bwboki_chr_cheat<m4exotic_keys>(R5, RT3), mpu4_impcoin, init_m4big, "eo_49bm_.2_0", 0x0000, 0x020000, CRC(c748c4ca) SHA1(7d0d498f9edd792ed861c8bf9cf1bb03698d144d), "BWB",u8"Exotic Fruits (BWB) (MPU4) (30p stake / £15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4exotic__a, m4exotic, bwboki_chr_cheat<m4exotic_keys>(R5, RT3), mpu4_impcoin, init_m4big, "eo_49bmd.2_0", 0x0000, 0x020000, CRC(98436c04) SHA1(1db7c95f7a0297aa3da7f1ce27c790ffa1fa4ebe), "BWB",u8"Exotic Fruits (BWB) (MPU4) (30p stake / £15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4exotic__b, m4exotic, bwboki_chr_cheat<m4exotic_keys>(R5, RT3), mpu4_impcoin, init_m4big, "eo_49bmd.2g0", 0x0000, 0x020000, CRC(425a0152) SHA1(6a235c613f52c4b8985a589f89542eebd3574fde), "BWB",u8"Exotic Fruits (BWB) (MPU4) (30p stake / £15 jackpot) (set 3)" ) // Datapak
+GAME_CUSTOM( 199?, m4exotic__c, m4exotic, bwboki_chr_cheat<m4exotic_keys>(R5, RT3), mpu4_impcoin, init_m4big, "eo_49bg_.2_0", 0x0000, 0x020000, CRC(c3bf2286) SHA1(74090fd0a103a6c311d426f4aae8e7af8b1d3bc0), "BWB",u8"Exotic Fruits (BWB) (MPU4) (30p stake / £15 jackpot) (set 4)" ) // Datapak
// require stake/jp set
-GAME_CUSTOM( 199?, m4exotic__d, m4exotic, bwboki_chr_cheat<m4exotic_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "eo_s9bt_.2g0", 0x0000, 0x020000, CRC(c527d333) SHA1(083d7be95d73d259fe8ec1d87a3a41089a4c44df), "BWB",u8"Exotic Fruits (BWB) (MPU4) (20/25/30p stake / £15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4exotic__e, m4exotic, bwboki_chr_cheat<m4exotic_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "eo_sja__.2_0", 0x0000, 0x020000, CRC(5ca9557f) SHA1(5fa42c56c67b505272d358a54ebe911fdb0b905e), "BWB",u8"Exotic Fruits (BWB) (MPU4) (20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4exotic__d, m4exotic, bwboki_chr_cheat<m4exotic_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "eo_s9bt_.2g0", 0x0000, 0x020000, CRC(c527d333) SHA1(083d7be95d73d259fe8ec1d87a3a41089a4c44df), "BWB",u8"Exotic Fruits (BWB) (MPU4) (20/25/30p stake / £15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4exotic__e, m4exotic, bwboki_chr_cheat<m4exotic_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "eo_sja__.2_0", 0x0000, 0x020000, CRC(5ca9557f) SHA1(5fa42c56c67b505272d358a54ebe911fdb0b905e), "BWB",u8"Exotic Fruits (BWB) (MPU4) (20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
/*****************************************************************************************************************************************************************************
@@ -728,18 +735,18 @@ static const uint32_t m4firice_keys[2] = { 0x11, 0x162413 };
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
// allows you to boot with 50p stake, but still shows '20p'
-GAME_CUSTOM( 199?, m4firice, 0, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "fi_20__d.5_0", 0x0000, 0x040000, CRC(ab46574c) SHA1(d233b137f8f42b9b644b34a627fbcc5b662e8ae1), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4firice__a, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "fi_20_bd.5_0", 0x0000, 0x040000, CRC(9b2bc052) SHA1(34b970659218fde097238b852dadedcb928f69fd), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4firice__b, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "fi_20_dd.5_0", 0x0000, 0x040000, CRC(2bbc9855) SHA1(84d51eeadc01ac74d630a05b933343f01f04b2af), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 3)" ) // Datapak
-GAME_CUSTOM( 199?, m4firice__c, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "fi_20_kd.5_0", 0x0000, 0x040000, CRC(529b43b1) SHA1(80d4d928918fdc869b1693e21a5c25045e5c9449), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 4)" ) // % key
-GAME_CUSTOM( 199?, m4firice__d, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "fi_20a_d.5_0", 0x0000, 0x040000, CRC(8d6ce79d) SHA1(05954ed4b34af73c065b6203a50da9af7d8373fe), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 5)" )
-GAME_CUSTOM( 199?, m4firice__e, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "fi_20s_d.5_0", 0x0000, 0x040000, CRC(d0aa53af) SHA1(f71801344c17a759ec4eb8958377bbcf4b4cae65), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 6)" ) // Datapak
+GAME_CUSTOM( 199?, m4firice, 0, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "fi_20__d.5_0", 0x0000, 0x040000, CRC(ab46574c) SHA1(d233b137f8f42b9b644b34a627fbcc5b662e8ae1), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4firice__a, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "fi_20_bd.5_0", 0x0000, 0x040000, CRC(9b2bc052) SHA1(34b970659218fde097238b852dadedcb928f69fd), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4firice__b, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "fi_20_dd.5_0", 0x0000, 0x040000, CRC(2bbc9855) SHA1(84d51eeadc01ac74d630a05b933343f01f04b2af), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 3)" ) // Datapak
+GAME_CUSTOM( 199?, m4firice__c, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "fi_20_kd.5_0", 0x0000, 0x040000, CRC(529b43b1) SHA1(80d4d928918fdc869b1693e21a5c25045e5c9449), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 4)" ) // % key
+GAME_CUSTOM( 199?, m4firice__d, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "fi_20a_d.5_0", 0x0000, 0x040000, CRC(8d6ce79d) SHA1(05954ed4b34af73c065b6203a50da9af7d8373fe), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 5)" )
+GAME_CUSTOM( 199?, m4firice__e, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "fi_20s_d.5_0", 0x0000, 0x040000, CRC(d0aa53af) SHA1(f71801344c17a759ec4eb8958377bbcf4b4cae65), "BWB",u8"Fire & Ice (BWB) (MPU4) (20p stake / £8 token jackpot) (set 6)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4firice__f, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot10_20p, init_m4default_big, "fi_sj___.e_0", 0x0000, 0x040000, CRC(7f12e37a) SHA1(fb09ff782f66972b8bdeff105c5f3d1f9f676809), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4firice__g, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot10_20p, init_m4default_big, "fi_sj_b_.e_0", 0x0000, 0x040000, CRC(5aef48d2) SHA1(73f410951a737f75f3e7c14e704eca9c26cfa750), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4firice__h, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot10_20p, init_m4default_big, "fi_sj_d_.e_0", 0x0000, 0x040000, CRC(61822af2) SHA1(8c721229a5ce9f491cbc638b8c5fa5c0c3032700), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 3)" ) // Datapak
-GAME_CUSTOM( 199?, m4firice__i, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot10_20p, init_m4default_big, "fi_sj_k_.e_0", 0x0000, 0x040000, CRC(2b57036b) SHA1(60cec130770ff643af1148f16a3afe3b102e94e2), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 4)" ) // % key
-GAME_CUSTOM( 199?, m4firice__j, m4firice, bwboki_chr_cheat<m4firice_keys>, mpu4impcoin_jackpot10_20p, init_m4default_big, "fi_sja__.e_0", 0x0000, 0x040000, CRC(da5e0eff) SHA1(9f5ddce366786bdf898c9410be417c8028cebeb4), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 5)" )
+GAME_CUSTOM( 199?, m4firice__f, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot10_20p, init_m4big, "fi_sj___.e_0", 0x0000, 0x040000, CRC(7f12e37a) SHA1(fb09ff782f66972b8bdeff105c5f3d1f9f676809), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4firice__g, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot10_20p, init_m4big, "fi_sj_b_.e_0", 0x0000, 0x040000, CRC(5aef48d2) SHA1(73f410951a737f75f3e7c14e704eca9c26cfa750), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4firice__h, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot10_20p, init_m4big, "fi_sj_d_.e_0", 0x0000, 0x040000, CRC(61822af2) SHA1(8c721229a5ce9f491cbc638b8c5fa5c0c3032700), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 3)" ) // Datapak
+GAME_CUSTOM( 199?, m4firice__i, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot10_20p, init_m4big, "fi_sj_k_.e_0", 0x0000, 0x040000, CRC(2b57036b) SHA1(60cec130770ff643af1148f16a3afe3b102e94e2), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 4)" ) // % key
+GAME_CUSTOM( 199?, m4firice__j, m4firice, bwboki_chr_cheat<m4firice_keys>(R5, RT3), mpu4impcoin_jackpot10_20p, init_m4big, "fi_sja__.e_0", 0x0000, 0x040000, CRC(da5e0eff) SHA1(9f5ddce366786bdf898c9410be417c8028cebeb4), "BWB",u8"Fire & Ice (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 5)" )
/*****************************************************************************************************************************************************************************
*
@@ -762,7 +769,7 @@ static const uint32_t m4harle_keys[2] = { 0x10, 0x220525 };
ROM_LOAD( name, offset, length, hash ) \
M4HARLE_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4harle_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4harle_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4harle, 0, "hq_20a__.1_1", 0x0000, 0x010000, CRC(b8ae3025) SHA1(94a449eff103bf6ba1fc6e85b03061b9ce658ae0), "BWB","Harlequin (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4harle__a, m4harle, "hq_20bg_.1_1", 0x0000, 0x010000, CRC(31356248) SHA1(d8791b1c861ed4388660bbe78f2589db7f1e779e), "BWB","Harlequin (BWB) (MPU4) (set 2)" )
@@ -815,18 +822,18 @@ static const uint32_t m4hvhel_keys[2] = { 0x11, 0x3f0b26 };
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4hvhel, 0, bwboki_chr_cheat<m4hvhel_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "hh_20__d.2_0", 0x0000, 0x040000, CRC(801de788) SHA1(417b985714d8f0ebed93b65a3f865e03474ce9e5), "BWB", u8"Heaven & Hell (BWB) (MPU4) (20p stake / £8 token jackpot, set 1)" )
-GAME_CUSTOM( 199?, m4hvhel__a, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "hh_20a_d.2_0", 0x0000, 0x040000, CRC(ea4e7876) SHA1(5bf711c2bdff50fe745edefa0eebf719824d9e5b), "BWB", u8"Heaven & Hell (BWB) (MPU4) (20p stake / £8 token jackpot, set 2)" )
-GAME_CUSTOM( 199?, m4hvhel__b, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "hh_20s_d.2_0", 0x0000, 0x040000, CRC(a519a441) SHA1(f3c19d316c82d1ebbcfdabb6d4eaa6cfa369d287), "BWB", u8"Heaven & Hell (BWB) (MPU4) (20p stake / £8 token jackpot, set 3)" ) // Datapak
+GAME_CUSTOM( 199?, m4hvhel, 0, bwboki_chr_cheat<m4hvhel_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "hh_20__d.2_0", 0x0000, 0x040000, CRC(801de788) SHA1(417b985714d8f0ebed93b65a3f865e03474ce9e5), "BWB", u8"Heaven & Hell (BWB) (MPU4) (20p stake / £8 token jackpot, set 1)" )
+GAME_CUSTOM( 199?, m4hvhel__a, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "hh_20a_d.2_0", 0x0000, 0x040000, CRC(ea4e7876) SHA1(5bf711c2bdff50fe745edefa0eebf719824d9e5b), "BWB", u8"Heaven & Hell (BWB) (MPU4) (20p stake / £8 token jackpot, set 2)" )
+GAME_CUSTOM( 199?, m4hvhel__b, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "hh_20s_d.2_0", 0x0000, 0x040000, CRC(a519a441) SHA1(f3c19d316c82d1ebbcfdabb6d4eaa6cfa369d287), "BWB", u8"Heaven & Hell (BWB) (MPU4) (20p stake / £8 token jackpot, set 3)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4hvhel__c, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>, mpu4impcoin_jackpot10_20p, init_m4default_big, "hh_sj___", 0x0000, 0x040000, CRC(04577b99) SHA1(48689c3a96bc42ad64dc4d363dad38c967f0cdcc), "BWB", u8"Heaven & Hell (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot)" )
+GAME_CUSTOM( 199?, m4hvhel__c, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>(R5, RT3), mpu4impcoin_jackpot10_20p, init_m4big, "hh_sj___", 0x0000, 0x040000, CRC(04577b99) SHA1(48689c3a96bc42ad64dc4d363dad38c967f0cdcc), "BWB", u8"Heaven & Hell (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot)" )
//
-GAME_CUSTOM( 199?, m4hvhel__d, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "hh_sj___.f_0", 0x0000, 0x040000, CRC(8ab33720) SHA1(0c9283a20c3f008baa8ce027d1266e4ef49ca56b), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4hvhel__e, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "hh_sjs__.f_0", 0x0000, 0x040000, CRC(8854763d) SHA1(323bd76a014e52e3b12427998b0e2851463246c8), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4hvhel__f, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "h_hell._pound5", 0x0000, 0x040000, CRC(cd59c0d0) SHA1(8caad9043a277fa39a3ad2d5ec3388c121e7f697), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 3)" )
+GAME_CUSTOM( 199?, m4hvhel__d, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "hh_sj___.f_0", 0x0000, 0x040000, CRC(8ab33720) SHA1(0c9283a20c3f008baa8ce027d1266e4ef49ca56b), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4hvhel__e, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "hh_sjs__.f_0", 0x0000, 0x040000, CRC(8854763d) SHA1(323bd76a014e52e3b12427998b0e2851463246c8), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4hvhel__f, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "h_hell._pound5", 0x0000, 0x040000, CRC(cd59c0d0) SHA1(8caad9043a277fa39a3ad2d5ec3388c121e7f697), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 3)" )
//
-GAME_CUSTOM( 199?, m4hvhel__g, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "hh_vc___.g_0", 0x0000, 0x040000, CRC(db338fb7) SHA1(e7e92293374721e7360493e9ef189991dad0a1ee), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10p stake / £5 jackpot, set 1)" )
-GAME_CUSTOM( 199?, m4hvhel__h, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "hh_vc_d_.g_0", 0x0000, 0x040000, CRC(292468bd) SHA1(f9b19f57a49c1afd670c68b7acd85d4141adfce1), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10p stake / £5 jackpot, set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4hvhel__g, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "hh_vc___.g_0", 0x0000, 0x040000, CRC(db338fb7) SHA1(e7e92293374721e7360493e9ef189991dad0a1ee), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10p stake / £5 jackpot, set 1)" )
+GAME_CUSTOM( 199?, m4hvhel__h, m4hvhel, bwboki_chr_cheat<m4hvhel_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "hh_vc_d_.g_0", 0x0000, 0x040000, CRC(292468bd) SHA1(f9b19f57a49c1afd670c68b7acd85d4141adfce1), "BWB", u8"Heaven & Hell (BWB) (MPU4) (5/10p stake / £5 jackpot, set 2)" ) // Datapak
/*****************************************************************************************************************************************************************************
@@ -858,14 +865,14 @@ static const uint32_t m4indycr_keys[2] = { 0x13, 0x102233 };
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4indycr, 0, bwboki_chr_cheat<m4indycr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "ic_sj___.1_0", 0x0000, 0x040000, CRC(4dea0d17) SHA1(4fa19896dbb5e8f21ac7e74efc56de5cadd5bf54), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4indycr__a, m4indycr, bwboki_chr_cheat<m4indycr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "ic_sj_b_.1_0", 0x0000, 0x040000, CRC(4bc0cb73) SHA1(d4c048ba9578add0104f0c529f20356c3502ea71), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4indycr__b, m4indycr, bwboki_chr_cheat<m4indycr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "ic_sj_d_.1_0", 0x0000, 0x040000, CRC(165ad977) SHA1(daa444e0d128859832094d3b07026483cd3466ce), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 3)" ) // Datapak
-GAME_CUSTOM( 199?, m4indycr__c, m4indycr, bwboki_chr_cheat<m4indycr_keys>, mpu4impcoin_jackpot15_20p_90pc, init_m4default_big, "ic_sj_k_.1_0", 0x0000, 0x040000, CRC(857fda64) SHA1(3eb230ea1adf9acb4cf83422c4bb1cde40756310), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 4)" ) // % key
-GAME_CUSTOM( 199?, m4indycr__d, m4indycr, bwboki_chr_cheat<m4indycr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "ic_sjs__.1_0", 0x0000, 0x040000, CRC(6310b904) SHA1(0f2cd7ed83f77423bcfb2a71144fab2047dfea13), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 5)" ) // Datapak
+GAME_CUSTOM( 199?, m4indycr, 0, bwboki_chr_cheat<m4indycr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "ic_sj___.1_0", 0x0000, 0x040000, CRC(4dea0d17) SHA1(4fa19896dbb5e8f21ac7e74efc56de5cadd5bf54), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4indycr__a, m4indycr, bwboki_chr_cheat<m4indycr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "ic_sj_b_.1_0", 0x0000, 0x040000, CRC(4bc0cb73) SHA1(d4c048ba9578add0104f0c529f20356c3502ea71), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4indycr__b, m4indycr, bwboki_chr_cheat<m4indycr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "ic_sj_d_.1_0", 0x0000, 0x040000, CRC(165ad977) SHA1(daa444e0d128859832094d3b07026483cd3466ce), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 3)" ) // Datapak
+GAME_CUSTOM( 199?, m4indycr__c, m4indycr, bwboki_chr_cheat<m4indycr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p_90pc, init_m4big, "ic_sj_k_.1_0", 0x0000, 0x040000, CRC(857fda64) SHA1(3eb230ea1adf9acb4cf83422c4bb1cde40756310), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 4)" ) // % key
+GAME_CUSTOM( 199?, m4indycr__d, m4indycr, bwboki_chr_cheat<m4indycr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "ic_sjs__.1_0", 0x0000, 0x040000, CRC(6310b904) SHA1(0f2cd7ed83f77423bcfb2a71144fab2047dfea13), u8"BWB","Indy Cars (BWB) (MPU4) (20/25/30p stake / £5/£15 jackpot) (set 5)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4indycr__e, m4indycr, bwboki_chr_cheat<m4indycr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "ic_sj___.2_0", 0x0000, 0x040000, CRC(6d0ddf54) SHA1(0985aa9fddb71a499d266c12893aabbab8755319), u8"BWB","Indy Cars (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4indycr__f, m4indycr, bwboki_chr_cheat<m4indycr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "ic_sj_d_.2_0", 0x0000, 0x040000, CRC(36bd0b34) SHA1(306d6e6536a4137353f9b895e64c7e9a5c79561a), u8"BWB","Indy Cars (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4indycr__e, m4indycr, bwboki_chr_cheat<m4indycr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "ic_sj___.2_0", 0x0000, 0x040000, CRC(6d0ddf54) SHA1(0985aa9fddb71a499d266c12893aabbab8755319), u8"BWB","Indy Cars (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4indycr__f, m4indycr, bwboki_chr_cheat<m4indycr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "ic_sj_d_.2_0", 0x0000, 0x040000, CRC(36bd0b34) SHA1(306d6e6536a4137353f9b895e64c7e9a5c79561a), u8"BWB","Indy Cars (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
/*****************************************************************************************************************************************************************************
*
@@ -890,12 +897,12 @@ static const uint32_t m4jakjok_keys[2] = { 0x11, 0x103218 };
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 2000, m4jakjok, 0, bwboki_chr_cheat<m4jakjok_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "jj_sj___.6_0", 0x0000, 0x040000, CRC(7bc45b0e) SHA1(f30fef8fccdac04859f1ff93198a497eff723020), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 6) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot)" )
+GAME_CUSTOM( 2000, m4jakjok, 0, bwboki_chr_cheat<m4jakjok_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "jj_sj___.6_0", 0x0000, 0x040000, CRC(7bc45b0e) SHA1(f30fef8fccdac04859f1ff93198a497eff723020), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 6) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot)" )
//
-GAME_CUSTOM( 1998, m4jakjok__a, m4jakjok, bwboki_chr_cheat<m4jakjok_keys>, mpu4impcoin_jackpot15_20p_90pc, init_m4default_big, "jj_sj_k_.3_0", 0x0000, 0x040000, CRC(c33dd82f) SHA1(c1f3f6ca1c45503b7f71e897e5c27368f5efb439), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 3) (20/25/30p stake / £5/£15 jackpot)" ) // % key
-GAME_CUSTOM( 2000, m4jakjok__b, m4jakjok, bwboki_chr_cheat<m4jakjok_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "jj_sjs__.6_0", 0x0000, 0x040000, CRC(4bcac6f5) SHA1(7dc07a7a61a6ba044020d6c2496143168c103a70), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 6) (20/25/30p stake / £5/£15 jackpot)" ) // Datapak
+GAME_CUSTOM( 1998, m4jakjok__a, m4jakjok, bwboki_chr_cheat<m4jakjok_keys>(R5, RT3), mpu4impcoin_jackpot15_20p_90pc, init_m4big, "jj_sj_k_.3_0", 0x0000, 0x040000, CRC(c33dd82f) SHA1(c1f3f6ca1c45503b7f71e897e5c27368f5efb439), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 3) (20/25/30p stake / £5/£15 jackpot)" ) // % key
+GAME_CUSTOM( 2000, m4jakjok__b, m4jakjok, bwboki_chr_cheat<m4jakjok_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "jj_sjs__.6_0", 0x0000, 0x040000, CRC(4bcac6f5) SHA1(7dc07a7a61a6ba044020d6c2496143168c103a70), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 6) (20/25/30p stake / £5/£15 jackpot)" ) // Datapak
//
-GAME_CUSTOM( 2000, m4jakjok__c, m4jakjok, bwboki_chr_cheat<m4jakjok_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "jj_vc___.7_0", 0x0000, 0x040000, CRC(4cdca8da) SHA1(ee7448b12380416a3bea2713ed5feca7473be8aa), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 7) (5/10p stake / £5 jackpot)" )
+GAME_CUSTOM( 2000, m4jakjok__c, m4jakjok, bwboki_chr_cheat<m4jakjok_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "jj_vc___.7_0", 0x0000, 0x040000, CRC(4cdca8da) SHA1(ee7448b12380416a3bea2713ed5feca7473be8aa), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 7) (5/10p stake / £5 jackpot)" )
#define M4JAKJOKA_EXTRA_ROMS \
ROM_REGION( 0x200000, "msm6376", 0 ) \
@@ -912,7 +919,7 @@ GAME_CUSTOM( 2000, m4jakjok__c, m4jakjok, bwboki_chr_cheat<m4jakjok_keys>, mp
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 1998, m4jakjoka, m4jakjok, bwboki_chr_cheat<m4jakjok_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "j_joker", 0x0000, 0x040000, CRC(4f0c7ab8) SHA1(af962863ee55f6c2752bbe8a997e3b2102e42431), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 2) (20/25/30p stake / £5/£15 jackpot)" )
+GAME_CUSTOM( 1998, m4jakjoka, m4jakjok, bwboki_chr_cheat<m4jakjok_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "j_joker", 0x0000, 0x040000, CRC(4f0c7ab8) SHA1(af962863ee55f6c2752bbe8a997e3b2102e42431), "BWB",u8"Jackpot Jokers (BWB) (MPU4) (ver. 2) (20/25/30p stake / £5/£15 jackpot)" )
/*****************************************************************************************************************************************************************************
@@ -935,7 +942,7 @@ static const uint32_t m4jflash_keys[2] = { 0x10, 0x3c3801 };
ROM_LOAD( name, offset, length, hash ) \
M4JFLASH_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4jflash_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4jflash_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4jflash, 0, "jf_25__c.2_1", 0x0000, 0x020000, CRC(4d5f1a12) SHA1(c25b6d899b74231da505bde7b671be001bdcea5d), "BWB","Jumping Jack Flash (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4jflash__a, m4jflash, "jf_25a_c.2_1", 0x0000, 0x020000, CRC(76722e15) SHA1(4bd107049ad98b848cdaba3a1318373bbd06ab9f), "BWB","Jumping Jack Flash (BWB) (MPU4) (set 2)" )
@@ -969,7 +976,7 @@ static const uint32_t m4ln7_keys[2] = { 0x10, 0x050107 };
ROM_LOAD( name, offset, length, hash ) \
M4LN7_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4ln7_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4ln7_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4ln7, 0, "l7_20a__.1_1", 0x0000, 0x010000, CRC(bfe82d2a) SHA1(4477d737a2326602a355758d8fc06220312fc085), "BWB","Lucky Number 7 (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4ln7__a, m4ln7, "l7_20s__.1_1", 0x0000, 0x010000, CRC(0037cd57) SHA1(b5882027269cf71878a73009bc3e40d9fcfac60d), "BWB","Lucky Number 7 (BWB) (MPU4) (set 2)" )
@@ -998,7 +1005,7 @@ static const uint32_t m4madmon_keys[2] = { 0x10, 0x351f3a };
ROM_LOAD( name, offset, length, hash ) \
M4MADMON_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4madmon_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4madmon_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4madmon, 0, "mm_20a__.7_1", 0x0000, 0x020000, CRC(7df66388) SHA1(4e5bcbcb2fb08b23989c83f11751400f666bbdc2), "BWB","Mad Money (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4madmon__a, m4madmon, "mm_20b__.7_1", 0x0000, 0x020000, CRC(7f592e44) SHA1(05e78347cd09d1e58f0a50a724e0563490ec5185), "BWB","Mad Money (BWB) (MPU4) (set 2)" )
@@ -1034,7 +1041,7 @@ static const uint32_t m4madmnc_keys[2] = { 0x10, 0x351f3a };
ROM_LOAD( name, offset, length, hash ) \
M4MADMNC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4madmnc_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4madmnc_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4madmnc, 0, "cm_25__c.3_1", 0x0000, 0x020000, CRC(3d9ff5fe) SHA1(b918bb15251514f50a669216c7d00ecf23e64d1b), "BWB","Mad Money Classic (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4madmnc__a, m4madmnc, "cm_25_bc.3_1", 0x0000, 0x020000, CRC(65a7b870) SHA1(58b910d7e002164cbbe1aa32c5e17dfe7cfb507d), "BWB","Mad Money Classic (BWB) (MPU4) (set 2)" )
@@ -1086,13 +1093,13 @@ static const uint32_t m4mmm_keys[2] = { 0x11, 0x320926 };
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4mmm, 0, bwboki_chr_cheat<m4mmm_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "mu_sj___.3_0", 0x0000, 0x040000, CRC(abdf9d1c) SHA1(e8c6a056025b44e4ec995b42b2720e6366a97283), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4mmm__a, m4mmm, bwboki_chr_cheat<m4mmm_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "mu_sja__.3_0", 0x0000, 0x040000, CRC(3d2a9ea4) SHA1(f2ec904c8cef84affaad603edf26a864bd34be29), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 2)" )
-GAME_CUSTOM( 199?, m4mmm__b, m4mmm, bwboki_chr_cheat<m4mmm_keys>, mpu4impcoin_jackpot15_20p_90pc, init_m4default_big, "mu_sjk__.3_0", 0x0000, 0x040000, CRC(34e4f8ba) SHA1(606d607faeb43190f5167aa3d10c55d9986b7e58), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 3)" ) // % key
-GAME_CUSTOM( 199?, m4mmm__c, m4mmm, bwboki_chr_cheat<m4mmm_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "mu_sjs__.3_0", 0x0000, 0x040000, CRC(26fb12b3) SHA1(d341181be75c87b44e4066653225911ce3460ed8), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 4)" ) // Datapak
-GAME_CUSTOM( 199?, m4mmm__d, m4mmm, bwboki_chr_cheat<m4mmm_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "mu_ssj__.2_0", 0x0000, 0x040000, CRC(935b6602) SHA1(d5fa5688895fe3c2ae3ad7dbbc35d9b12574c93d), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 5)" )
-GAME_CUSTOM( 199?, m4mmm__e, m4mmm, bwboki_chr_cheat<m4mmm_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "mu_ssja_.2_0", 0x0000, 0x040000, CRC(ff97814c) SHA1(8d9d74e6b0096cdc3226cfa91d7b653855600d5a), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 6)" )
-GAME_CUSTOM( 199?, m4mmm__f, m4mmm, bwboki_chr_cheat<m4mmm_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "mu_ssjb_.2_0", 0x0000, 0x040000, CRC(5728973a) SHA1(2cd9c866fcc33150fb8d456f741ac809e0bd2b15), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 7)" ) // Datapak
+GAME_CUSTOM( 199?, m4mmm, 0, bwboki_chr_cheat<m4mmm_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "mu_sj___.3_0", 0x0000, 0x040000, CRC(abdf9d1c) SHA1(e8c6a056025b44e4ec995b42b2720e6366a97283), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4mmm__a, m4mmm, bwboki_chr_cheat<m4mmm_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "mu_sja__.3_0", 0x0000, 0x040000, CRC(3d2a9ea4) SHA1(f2ec904c8cef84affaad603edf26a864bd34be29), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 2)" )
+GAME_CUSTOM( 199?, m4mmm__b, m4mmm, bwboki_chr_cheat<m4mmm_keys>(R5, RT3), mpu4impcoin_jackpot15_20p_90pc, init_m4big, "mu_sjk__.3_0", 0x0000, 0x040000, CRC(34e4f8ba) SHA1(606d607faeb43190f5167aa3d10c55d9986b7e58), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 3)" ) // % key
+GAME_CUSTOM( 199?, m4mmm__c, m4mmm, bwboki_chr_cheat<m4mmm_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "mu_sjs__.3_0", 0x0000, 0x040000, CRC(26fb12b3) SHA1(d341181be75c87b44e4066653225911ce3460ed8), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 4)" ) // Datapak
+GAME_CUSTOM( 199?, m4mmm__d, m4mmm, bwboki_chr_cheat<m4mmm_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "mu_ssj__.2_0", 0x0000, 0x040000, CRC(935b6602) SHA1(d5fa5688895fe3c2ae3ad7dbbc35d9b12574c93d), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 5)" )
+GAME_CUSTOM( 199?, m4mmm__e, m4mmm, bwboki_chr_cheat<m4mmm_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "mu_ssja_.2_0", 0x0000, 0x040000, CRC(ff97814c) SHA1(8d9d74e6b0096cdc3226cfa91d7b653855600d5a), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 6)" )
+GAME_CUSTOM( 199?, m4mmm__f, m4mmm, bwboki_chr_cheat<m4mmm_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "mu_ssjb_.2_0", 0x0000, 0x040000, CRC(5728973a) SHA1(2cd9c866fcc33150fb8d456f741ac809e0bd2b15), "BWB",u8"Money Mummy Money (BWB) (MPU4) (20/25/30p stake / £10/£15 jackpot) (set 7)" ) // Datapak
/*****************************************************************************************************************************************************************************
@@ -1116,7 +1123,7 @@ static const uint32_t m4orland_keys[2] = { 0x10, 0x2c081f };
ROM_LOAD( name, offset, length, hash ) \
M4ORLAND_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4orland_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big_low ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4orland_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big_low ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4orland, 0, "or 05a v2-1,27c010", 0x0000, 0x020000, CRC(a33c22ee) SHA1(3598a2940f05622405fdef16426f3f5f30dfef29), "BWB","Orlando Magic (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4orland__a, m4orland, "or_05a__.1_1", 0x0000, 0x020000, CRC(3e7fe3ac) SHA1(9f4c0d5b7ba10726376b0654c8ddbc62b62c9eed), "BWB","Orlando Magic (BWB) (MPU4) (set 2)" )
@@ -1149,7 +1156,7 @@ static const uint32_t m4pzbing_keys[2] = { 0x10, 0x141531 };
ROM_LOAD( name, offset, length, hash ) \
M4PZBING_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4pzbing_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4pzbing_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4pzbing, 0, "pb_20a__.4_1", 0x0000, 0x010000, CRC(52aa92e5) SHA1(3dc20e521677e829967e1d689c9905fb96aee639), "BWB","Prize Bingo (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4pzbing__a, m4pzbing, "pb_20ad_.4_1", 0x0000, 0x010000, CRC(f6bd6ad0) SHA1(092cb895c576ed2e995b62aba21851af6fb90959), "BWB","Prize Bingo (BWB) (MPU4) (set 2)" )
@@ -1180,7 +1187,7 @@ static const uint32_t m4quidin_keys[2] = { 0x10, 0x050107 };
ROM_LOAD( name, offset, length, hash ) \
M4QUIDIN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4quidin_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4quidin_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4quidin, 0, "qi_20a__.3_1", 0x0000, 0x010000, CRC(88873c45) SHA1(70fa65402dbbe716a089497a8ccb06e0ba2aac6d), "BWB","Quids In (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4quidin__a, m4quidin, "qi_20s__.3_1", 0x0000, 0x010000, CRC(3758dc38) SHA1(d22a379975e948d465e13233a796e0fb07e3c04f), "BWB","Quids In (BWB) (MPU4) (set 2)" )
@@ -1207,7 +1214,7 @@ static const uint32_t m4quidis_keys[2] = { 0x10, 0x050107 };
ROM_LOAD( name, offset, length, hash ) \
M4QUIDIS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4quidis_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4quidis_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4quidis, 0, "pq_20a__.3_1", 0x0000, 0x010000, CRC(7eb762a1) SHA1(4546a7bf43f8ab6eb9713348e3f919de7532eed2), "BWB","Quids In Showcase (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4quidis__a, m4quidis, "pq_20s__.3_1", 0x0000, 0x010000, CRC(71360992) SHA1(0b64f27f0edfdebca41552181ff0f2b5491ec308), "BWB","Quids In Showcase (BWB) (MPU4) (set 2)" )
@@ -1237,7 +1244,7 @@ static const uint32_t m4rackem_keys[2] = { 0x11, 0x13222f };
ROM_LOAD( name, offset, length, hash ) \
M4RACKEM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4rackem_keys>, mpu4impcoin_jackpot15_20p, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4rackem_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 1999, m4rackem, 0, "re_sj___.3_0", 0x0000, 0x040000, CRC(2f463d2f) SHA1(3410cc8a6d097a4edfcb4c57c237d1d514b507ba), "BWB",u8"Rack Em Up (BWB) (MPU4) (ver. 3) (20/25/30p stake / £5/£15 jackpot)" )
GAME_CUSTOM( 1999, m4rackem__a, m4rackem, "re_sj___.2_0", 0x0000, 0x040000, CRC(e36d3f86) SHA1(a5f522c86482517b8dc735b1012f8f7668c2f18d), "BWB",u8"Rack Em Up (BWB) (MPU4) (ver. 2) (20/25/30p stake / £5/£15 jackpot) (set 1)" )
@@ -1266,7 +1273,7 @@ static const uint32_t m4rbgold_keys[2] = { 0x10, 0x2d371b };
ROM_LOAD( name, offset, length, hash ) \
M4RBGOLD_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4rbgold_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4rbgold_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4rbgold, 0, "rb_20a_p.2a1", 0x0000, 0x010000, CRC(d7e6e514) SHA1(25645b69e86335622df43113908ed88a21f27e30), "BWB","Rainbow Gold (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4rbgold__a, m4rbgold, "rb_20a_p.2f1", 0x0000, 0x010000, CRC(62af6db6) SHA1(0dcb679c05f090f8dab7228009a700c31f0179d8), "BWB","Rainbow Gold (BWB) (MPU4) (set 2)" )
@@ -1313,12 +1320,12 @@ static const uint32_t m4rhfev_keys[2] = { 0x11, 0x3f0e27 };
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 1999, m4rhfev, 0, bwboki_chr_cheat<m4rhfev_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "rt_sj___.7_0", 0x0000, 0x040000, CRC(3dd895ef) SHA1(433ecc268956c94c51dbccefd006b72e0ad8567b), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 7) (20/25/30p stake / £5/£10/£15 jackpot) (set 1)" )
-GAME_CUSTOM( 1999, m4rhfev__a, m4rhfev, bwboki_chr_cheat<m4rhfev_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "rt_sja__.7_0", 0x0000, 0x040000, CRC(0ab59402) SHA1(485b4d2efd8f99085ed6ce5b7e07ede001c982c4), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 7) (20/25/30p stake / £5/£10/£15 jackpot) (set 2)" )
-GAME_CUSTOM( 1999, m4rhfev__b, m4rhfev, bwboki_chr_cheat<m4rhfev_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "rt_sjs__.7_0", 0x0000, 0x040000, CRC(1a8feafb) SHA1(83151f63b7ebe1c538f9334e9c3d6889d0730144), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 7) (20/25/30p stake / £5/£10/£15 jackpot) (set 3)" ) // Datapak
+GAME_CUSTOM( 1999, m4rhfev, 0, bwboki_chr_cheat<m4rhfev_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "rt_sj___.7_0", 0x0000, 0x040000, CRC(3dd895ef) SHA1(433ecc268956c94c51dbccefd006b72e0ad8567b), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 7) (20/25/30p stake / £5/£10/£15 jackpot) (set 1)" )
+GAME_CUSTOM( 1999, m4rhfev__a, m4rhfev, bwboki_chr_cheat<m4rhfev_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "rt_sja__.7_0", 0x0000, 0x040000, CRC(0ab59402) SHA1(485b4d2efd8f99085ed6ce5b7e07ede001c982c4), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 7) (20/25/30p stake / £5/£10/£15 jackpot) (set 2)" )
+GAME_CUSTOM( 1999, m4rhfev__b, m4rhfev, bwboki_chr_cheat<m4rhfev_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "rt_sjs__.7_0", 0x0000, 0x040000, CRC(1a8feafb) SHA1(83151f63b7ebe1c538f9334e9c3d6889d0730144), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 7) (20/25/30p stake / £5/£10/£15 jackpot) (set 3)" ) // Datapak
//
-GAME_CUSTOM( 1999, m4rhfev__c, m4rhfev, bwboki_chr_cheat<m4rhfev_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "rt_vc___.1_0", 0x0000, 0x040000, CRC(2a8df147) SHA1(df0e7021e9d169575a1297f9851b5a64e20d1a40), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 1) (5/10p stake / £5/£8 jackpot) (set 1)" )
-GAME_CUSTOM( 1999, m4rhfev__d, m4rhfev, bwboki_chr_cheat<m4rhfev_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "rt_vc_d_.1_0", 0x0000, 0x040000, CRC(7adef22b) SHA1(d6a584581745c0ce64f646ef0b49cb68343990d0), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 1) (5/10p stake / £5/£8 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 1999, m4rhfev__c, m4rhfev, bwboki_chr_cheat<m4rhfev_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "rt_vc___.1_0", 0x0000, 0x040000, CRC(2a8df147) SHA1(df0e7021e9d169575a1297f9851b5a64e20d1a40), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 1) (5/10p stake / £5/£8 jackpot) (set 1)" )
+GAME_CUSTOM( 1999, m4rhfev__d, m4rhfev, bwboki_chr_cheat<m4rhfev_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "rt_vc_d_.1_0", 0x0000, 0x040000, CRC(7adef22b) SHA1(d6a584581745c0ce64f646ef0b49cb68343990d0), "BWB",u8"Red Hot Fever (BWB) (MPU4) (ver. 1) (5/10p stake / £5/£8 jackpot) (set 2)" ) // Datapak
/*****************************************************************************************************************************************************************************
@@ -1343,7 +1350,7 @@ static const uint32_t m4sinbd_keys[2] = { 0x10, 0x0c253d };
ROM_LOAD( name, offset, length, hash ) \
M4SINBD_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4sinbd_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4sinbd_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4sinbd, 0, "sd_20__c.1_1", 0x0000, 0x020000, CRC(28cd336e) SHA1(45bdf5403c04b7d3a3645b6b44ac3d12e6463a55), "BWB","Sinbad (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4sinbd__a, m4sinbd, "sd_20a__.4_1", 0x0000, 0x020000, CRC(12b8f629) SHA1(c8540ecb217cf0615d7a8d080136926646ca8497), "BWB","Sinbad (BWB) (MPU4) (set 2)" )
@@ -1393,12 +1400,12 @@ static const uint32_t m4sky_keys[2] = { 0x11, 0x1f2d3b };
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4sky, 0, bwboki_chr_cheat<m4sky_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sk_s____.3_1", 0x0000, 0x040000, CRC(749af008) SHA1(036514f2bcb84193cfa84313f0617f3196aea73e), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake / £8 token/£10/£15 jackpot)" )
+GAME_CUSTOM( 199?, m4sky, 0, bwboki_chr_cheat<m4sky_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sk_s____.3_1", 0x0000, 0x040000, CRC(749af008) SHA1(036514f2bcb84193cfa84313f0617f3196aea73e), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake / £8 token/£10/£15 jackpot)" )
// unusual 1.8 hopper error on sets below
-GAME_CUSTOM( 199?, m4sky__a, m4sky, bwboki_chr_cheat<m4sky_keys>, mpu4impcoin_jackpot15_20p_90pc, init_m4default_big, "sk_sj___.5_0", 0x0000, 0x040000, CRC(45ae0423) SHA1(94d5b3d4aacb69a18ff3f45681eb5f7fba7657e8), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 1)" ) // % key
-GAME_CUSTOM( 199?, m4sky__b, m4sky, bwboki_chr_cheat<m4sky_keys>, mpu4impcoin_jackpot15_20p_90pc, init_m4default_big, "sk_sj_k_.5_0", 0x0000, 0x040000, CRC(e1bab980) SHA1(1c8b127809422ab0baf1875ca907f18269a0cc17), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 2)" ) // % key
-GAME_CUSTOM( 199?, m4sky__c, m4sky, bwboki_chr_cheat<m4sky_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sk_sja__.5_0", 0x0000, 0x040000, CRC(b2a16ef7) SHA1(9012dcc320e8af8fef53e0dc91d3bcd6cbafa5ee), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 3)" )
-GAME_CUSTOM( 199?, m4sky__d, m4sky, bwboki_chr_cheat<m4sky_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sk_sjs__.5_0", 0x0000, 0x040000, CRC(d176431f) SHA1(8ca90ef61486fc5a5b6527f913cd05b42ceabe3e), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 4)" ) // Datapak
+GAME_CUSTOM( 199?, m4sky__a, m4sky, bwboki_chr_cheat<m4sky_keys>(R5, RT3), mpu4impcoin_jackpot15_20p_90pc, init_m4big, "sk_sj___.5_0", 0x0000, 0x040000, CRC(45ae0423) SHA1(94d5b3d4aacb69a18ff3f45681eb5f7fba7657e8), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 1)" ) // % key
+GAME_CUSTOM( 199?, m4sky__b, m4sky, bwboki_chr_cheat<m4sky_keys>(R5, RT3), mpu4impcoin_jackpot15_20p_90pc, init_m4big, "sk_sj_k_.5_0", 0x0000, 0x040000, CRC(e1bab980) SHA1(1c8b127809422ab0baf1875ca907f18269a0cc17), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 2)" ) // % key
+GAME_CUSTOM( 199?, m4sky__c, m4sky, bwboki_chr_cheat<m4sky_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sk_sja__.5_0", 0x0000, 0x040000, CRC(b2a16ef7) SHA1(9012dcc320e8af8fef53e0dc91d3bcd6cbafa5ee), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 3)" )
+GAME_CUSTOM( 199?, m4sky__d, m4sky, bwboki_chr_cheat<m4sky_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sk_sjs__.5_0", 0x0000, 0x040000, CRC(d176431f) SHA1(8ca90ef61486fc5a5b6527f913cd05b42ceabe3e), "BWB",u8"Sky Sports Super Soccer (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 4)" ) // Datapak
/*****************************************************************************************************************************************************************************
@@ -1423,7 +1430,7 @@ static const uint32_t m4souls_keys[2] = { 0x10, 0x3e2f0b };
ROM_LOAD( name, offset, length, hash ) \
M4SOULS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4souls_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4souls_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4souls, 0, "ss_06a__.4_1", 0x0000, 0x020000, CRC(00390a21) SHA1(d31d1307301fa4e8cf0ce3677e68a4c1723e4404), "BWB","Soul Sister (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4souls__a, m4souls, "ss_16a__.4_1", 0x0000, 0x020000, CRC(b9ab9612) SHA1(ad30916a0f2cc745741c99d23c23192ae4088daf), "BWB","Soul Sister (BWB) (MPU4) (set 2)" )
@@ -1454,7 +1461,7 @@ static const uint32_t m4spinbt_keys[2] = { 0x45, 0x250603 };
ROM_LOAD( name, offset, length, hash ) \
M4SPINBT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4spinbt_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4spinbt_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4spinbt, 0, "sn_37ad_.5_0", 0x0000, 0x040000, CRC(42d6faaa) SHA1(3789e85981b33ffae7c50ccca3278ae62974972d), "BWB","Spin The Bottle (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4spinbt__a, m4spinbt, "sn_37b__.5_0", 0x0000, 0x040000, CRC(3a259a6f) SHA1(1acabb9e725ae1374b87808c4b3d06a329c824d0), "BWB","Spin The Bottle (BWB) (MPU4) (set 2)" )
@@ -1487,18 +1494,18 @@ static const uint32_t m4starst_keys[2] = { 0x11, 0x3f0a26 };
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4starst, 0, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "sr_20__d.3_0", 0x0000, 0x040000, CRC(98f6619b) SHA1(fc0a568e6695c9ad0fda7bc6703c752af26a7777), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4starst__a, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "sr_20_bd.3_0", 0x0000, 0x040000, CRC(ff8209de) SHA1(41a4c20c89b3a04612ad6298276472b888915c89), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4starst__b, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot8tkn_20p_90pc, init_m4default_big, "sr_20_kd.3_0", 0x0000, 0x040000, CRC(4c9a53d5) SHA1(43ebf6c06db58de9c3934e2dbba0d8126f3e2dda), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 3)" ) // % key
-GAME_CUSTOM( 199?, m4starst__c, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "sr_20a_d.3_0", 0x0000, 0x040000, CRC(e9eebb4c) SHA1(60d8010140d9debe8f12d7f810de223d9abd02a4), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 4)" )
-GAME_CUSTOM( 199?, m4starst__d, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot8tkn_20p, init_m4default_big, "sr_20s_d.3_0", 0x0000, 0x040000, CRC(725b50e6) SHA1(3efde346022e37b09df08b8188ac76dcdfac8a4e), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 5)" ) // Datapak
+GAME_CUSTOM( 199?, m4starst, 0, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "sr_20__d.3_0", 0x0000, 0x040000, CRC(98f6619b) SHA1(fc0a568e6695c9ad0fda7bc6703c752af26a7777), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4starst__a, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "sr_20_bd.3_0", 0x0000, 0x040000, CRC(ff8209de) SHA1(41a4c20c89b3a04612ad6298276472b888915c89), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4starst__b, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p_90pc, init_m4big, "sr_20_kd.3_0", 0x0000, 0x040000, CRC(4c9a53d5) SHA1(43ebf6c06db58de9c3934e2dbba0d8126f3e2dda), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 3)" ) // % key
+GAME_CUSTOM( 199?, m4starst__c, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "sr_20a_d.3_0", 0x0000, 0x040000, CRC(e9eebb4c) SHA1(60d8010140d9debe8f12d7f810de223d9abd02a4), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 4)" )
+GAME_CUSTOM( 199?, m4starst__d, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot8tkn_20p, init_m4big, "sr_20s_d.3_0", 0x0000, 0x040000, CRC(725b50e6) SHA1(3efde346022e37b09df08b8188ac76dcdfac8a4e), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20p stake / £8 token jackpot) (set 5)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4starst__e, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sr_sj___.5_0", 0x0000, 0x040000, CRC(7964bd86) SHA1(7078de5a61b52dedb776993643f7edd8a2c863c3), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4starst__f, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sr_sj_b_.5_0", 0x0000, 0x040000, CRC(4ee1f95b) SHA1(1e3d52afd19a9489608d5446ef2118561c6411b0), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4starst__g, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sr_sj_d_.5_0", 0x0000, 0x040000, CRC(b4d78711) SHA1(c864c944b3fa74aa1fed22afe656a37413b024ce), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 3)" ) // Datapak
-GAME_CUSTOM( 199?, m4starst__h, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot15_20p_90pc, init_m4default_big, "sr_sj_k_.5_0", 0x0000, 0x040000, CRC(c7681e28) SHA1(a8c1c75df33c85301257147c97d6af8808dad0d2), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 4)" ) // % key
-GAME_CUSTOM( 199?, m4starst__i, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sr_sja__.5_0", 0x0000, 0x040000, CRC(aa86c4f2) SHA1(e90fd91f1d14b89714e3fb8236ac9e8a641e4c71), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 5)" )
-GAME_CUSTOM( 199?, m4starst__j, m4starst, bwboki_chr_cheat<m4starst_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sr_sjs__.5_0", 0x0000, 0x040000, CRC(89e405e4) SHA1(5aa9053e08c27570731f65502c7fb31f0ea0a678), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 6)" ) // Datapak
+GAME_CUSTOM( 199?, m4starst__e, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sr_sj___.5_0", 0x0000, 0x040000, CRC(7964bd86) SHA1(7078de5a61b52dedb776993643f7edd8a2c863c3), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4starst__f, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sr_sj_b_.5_0", 0x0000, 0x040000, CRC(4ee1f95b) SHA1(1e3d52afd19a9489608d5446ef2118561c6411b0), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4starst__g, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sr_sj_d_.5_0", 0x0000, 0x040000, CRC(b4d78711) SHA1(c864c944b3fa74aa1fed22afe656a37413b024ce), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 3)" ) // Datapak
+GAME_CUSTOM( 199?, m4starst__h, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot15_20p_90pc, init_m4big, "sr_sj_k_.5_0", 0x0000, 0x040000, CRC(c7681e28) SHA1(a8c1c75df33c85301257147c97d6af8808dad0d2), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 4)" ) // % key
+GAME_CUSTOM( 199?, m4starst__i, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sr_sja__.5_0", 0x0000, 0x040000, CRC(aa86c4f2) SHA1(e90fd91f1d14b89714e3fb8236ac9e8a641e4c71), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 5)" )
+GAME_CUSTOM( 199?, m4starst__j, m4starst, bwboki_chr_cheat<m4starst_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sr_sjs__.5_0", 0x0000, 0x040000, CRC(89e405e4) SHA1(5aa9053e08c27570731f65502c7fb31f0ea0a678), "BWB",u8"Stars & Stripes (BWB) (MPU4) (20/25/30p stake £10/£15 jackpot) (set 6)" ) // Datapak
/*****************************************************************************************************************************************************************************
@@ -1524,13 +1531,13 @@ static const uint32_t m4supleg_keys[2] = { 0x11, 0x310926 };
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4supleg, 0, bwboki_chr_cheat<m4supleg_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sl_sj.hex", 0x0000, 0x040000, CRC(254835f7) SHA1(2fafaa3da747edd27d393ad106008e898e465283), "BWB",u8"Super League (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4supleg__a, m4supleg, bwboki_chr_cheat<m4supleg_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sl_sjs.hex", 0x0000, 0x040000, CRC(98942cd3) SHA1(858fde0a350159d089c6a0e0cc2e2eed6ab2092c), "BWB",u8"Super League (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4supleg, 0, bwboki_chr_cheat<m4supleg_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sl_sj.hex", 0x0000, 0x040000, CRC(254835f7) SHA1(2fafaa3da747edd27d393ad106008e898e465283), "BWB",u8"Super League (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4supleg__a, m4supleg, bwboki_chr_cheat<m4supleg_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sl_sjs.hex", 0x0000, 0x040000, CRC(98942cd3) SHA1(858fde0a350159d089c6a0e0cc2e2eed6ab2092c), "BWB",u8"Super League (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4supleg__b, m4supleg, bwboki_chr_cheat<m4supleg_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "sl_vc.hex", 0x0000, 0x040000, CRC(1940d117) SHA1(ae7338483ac39e9e1973dde5eb837443512630dd), "BWB",u8"Super League (BWB) (MPU4) (5/10p stake / £5 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4supleg__c, m4supleg, bwboki_chr_cheat<m4supleg_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "sl_vcd.hex", 0x0000, 0x040000, CRC(7aab16d1) SHA1(6da4e0d9883a48937d00bfc5929b3557de51f60e), "BWB",u8"Super League (BWB) (MPU4) (5/10p stake / £5 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4supleg__b, m4supleg, bwboki_chr_cheat<m4supleg_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "sl_vc.hex", 0x0000, 0x040000, CRC(1940d117) SHA1(ae7338483ac39e9e1973dde5eb837443512630dd), "BWB",u8"Super League (BWB) (MPU4) (5/10p stake / £5 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4supleg__c, m4supleg, bwboki_chr_cheat<m4supleg_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "sl_vcd.hex", 0x0000, 0x040000, CRC(7aab16d1) SHA1(6da4e0d9883a48937d00bfc5929b3557de51f60e), "BWB",u8"Super League (BWB) (MPU4) (5/10p stake / £5 jackpot) (set 2)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4supleg__d, m4supleg, bwboki_chr_cheat<m4supleg_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "sls.hex", 0x0000, 0x040000, CRC(5ad6dbb9) SHA1(ff6f9dcf14df22c7bb2b949fcd5c70f31d4c1928), "BWB",u8"Super League (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot)" )
+GAME_CUSTOM( 199?, m4supleg__d, m4supleg, bwboki_chr_cheat<m4supleg_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "sls.hex", 0x0000, 0x040000, CRC(5ad6dbb9) SHA1(ff6f9dcf14df22c7bb2b949fcd5c70f31d4c1928), "BWB",u8"Super League (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot)" )
#define M4SUPLEGW_EXTRA_ROMS \
ROM_REGION( 0x200000, "msm6376", 0 ) \
@@ -1547,7 +1554,7 @@ GAME_CUSTOM( 199?, m4supleg__d, m4supleg, bwboki_chr_cheat<m4supleg_keys>, mp
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4suplegw, m4supleg, bwboki_chr_cheat<m4supleg_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "s_leag._pound5", 0x0000, 0x040000, CRC(4c6bd78e) SHA1(f67793a2a16adacc8d92b57050f02cffa50a1283), "BWB",u8"Super League (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 3)" ) // maybe a Whitbread set, but not shown in attract
+GAME_CUSTOM( 199?, m4suplegw, m4supleg, bwboki_chr_cheat<m4supleg_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "s_leag._pound5", 0x0000, 0x040000, CRC(4c6bd78e) SHA1(f67793a2a16adacc8d92b57050f02cffa50a1283), "BWB",u8"Super League (BWB) (MPU4) (5/10/20/25/30p stake / £5 jackpot, 20/25/30p stake / £15 jackpot) (set 3)" ) // maybe a Whitbread set, but not shown in attract
/*****************************************************************************************************************************************************************************
@@ -1570,7 +1577,7 @@ static const uint32_t m4supscr_keys[2] = { 0x11, 0x101231 };
ROM_LOAD( name, offset, length, hash ) \
M4SUPSCR_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4supscr_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4supscr_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4supscr, 0, "sm_78___.6_0", 0x0000, 0x040000, CRC(e7022c44) SHA1(da3a5b9954f7e50dce73aeb9c46bd4631c8350d5), "BWB","Super Soccer (ver. 6) (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4supscr__a, m4supscr, "sm_78_d_.6_0", 0x0000, 0x040000, CRC(4dbe6a87) SHA1(fe2ce1fca7105afbf459ee6558744f8fee417169), "BWB","Super Soccer (ver. 6) (BWB) (MPU4) (set 2)" )
@@ -1609,7 +1616,7 @@ static const uint32_t m4sure_keys[2] = {0x10, 0x281215};
ROM_LOAD( name, offset, length, hash ) \
M4SURE_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4sure_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4sure_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4sure, 0, "su_xf___.3_1", 0x0000, 0x010000, CRC(f85dae5c) SHA1(4c761c355fb6651f1e0cb041342f8a2ff510dfd2), "BWB","Sure Thing (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4sure__a, m4sure, "su_xf_b_.3_1", 0x0000, 0x010000, CRC(9a760e0f) SHA1(fdacdae0e2322daa004b2385616dd34626814d42), "BWB","Sure Thing (BWB) (MPU4) (set 2)" )
@@ -1638,7 +1645,7 @@ static const uint32_t m4trex_keys[2] = {0x10, 0x112231};
ROM_LOAD( name, offset, length, hash ) \
M4TREX_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4trex_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4trex_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4trex, 0, "tr_20a__.2_1", 0x0000, 0x010000, CRC(21150b8e) SHA1(1531bc6fdb8b787fed6f4f98c6463313c55efc3c), "BWB","T-Rex (BWB) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4trex__a, m4trex, "tr_20a_p.2_1", 0x0000, 0x010000, CRC(ec1b35bc) SHA1(944959c6d1f8e9b0bb33c659b7c515cb7585fed0), "BWB","T-Rex (BWB) (MPU4) (set 2)" )
@@ -1674,7 +1681,7 @@ static const uint32_t m4tutbwb_keys[2] = { 0x01, 0x163428 };
ROM_LOAD( name, offset, length, hash ) \
M4TUTBWB_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4tutbwb_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4tutbwb_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4 ,ROT0,company,title,GAME_FLAGS )
// these were in with the regular Barcrest / Bwb Tutti Fruity sets, but this looks like something different, maybe a Bwn original with the same name?
// it has a 0x3f fill near the vectors etc. which is typically associated with Bwb originals.
@@ -1715,15 +1722,15 @@ static const uint32_t m4volcan_keys[2] = { 0x11, 0x3f0d26 };
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4volcan, 0, bwboki_chr_cheat<m4volcan_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "vo_sj___.5_0", 0x0000, 0x040000, CRC(78096ebf) SHA1(96915bc2eca00fbd82fab8b3f62e697da118acdd), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4volcan__a, m4volcan, bwboki_chr_cheat<m4volcan_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "vo_sj_d_.5_0", 0x0000, 0x040000, CRC(87e0347d) SHA1(be5d5b90739fa8ac10f6504290aa58fcf147f323), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4volcan__b, m4volcan, bwboki_chr_cheat<m4volcan_keys>, mpu4impcoin_jackpot15_20p_90pc, init_m4default_big, "vo_sj_k_.5_0", 0x0000, 0x040000, CRC(8604d102) SHA1(34c7df0257ba02ace4a74ffd5b0eed11eea0c333), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 3)" ) // % key
-GAME_CUSTOM( 199?, m4volcan__c, m4volcan, bwboki_chr_cheat<m4volcan_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "vo_sja__.5_0", 0x0000, 0x040000, CRC(d73bade2) SHA1(7e02493ec0710f109ae45e523ef3d7d275aaefab), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 4)" )
-GAME_CUSTOM( 199?, m4volcan__d, m4volcan, bwboki_chr_cheat<m4volcan_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "vo_sjs__.5_0", 0x0000, 0x040000, CRC(51eff796) SHA1(d0efb1eb4be176906726a438fcffb50cf5ddd217), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 5)" ) // Datapak
+GAME_CUSTOM( 199?, m4volcan, 0, bwboki_chr_cheat<m4volcan_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "vo_sj___.5_0", 0x0000, 0x040000, CRC(78096ebf) SHA1(96915bc2eca00fbd82fab8b3f62e697da118acdd), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4volcan__a, m4volcan, bwboki_chr_cheat<m4volcan_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "vo_sj_d_.5_0", 0x0000, 0x040000, CRC(87e0347d) SHA1(be5d5b90739fa8ac10f6504290aa58fcf147f323), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4volcan__b, m4volcan, bwboki_chr_cheat<m4volcan_keys>(R5, RT3), mpu4impcoin_jackpot15_20p_90pc, init_m4big, "vo_sj_k_.5_0", 0x0000, 0x040000, CRC(8604d102) SHA1(34c7df0257ba02ace4a74ffd5b0eed11eea0c333), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 3)" ) // % key
+GAME_CUSTOM( 199?, m4volcan__c, m4volcan, bwboki_chr_cheat<m4volcan_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "vo_sja__.5_0", 0x0000, 0x040000, CRC(d73bade2) SHA1(7e02493ec0710f109ae45e523ef3d7d275aaefab), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 4)" )
+GAME_CUSTOM( 199?, m4volcan__d, m4volcan, bwboki_chr_cheat<m4volcan_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "vo_sjs__.5_0", 0x0000, 0x040000, CRC(51eff796) SHA1(d0efb1eb4be176906726a438fcffb50cf5ddd217), "BWB",u8"Volcano (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 5)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4volcan__e, m4volcan, bwboki_chr_cheat<m4volcan_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "vo_vc___.2_0", 0x0000, 0x040000, CRC(24a9e5d6) SHA1(dd4223c3b5c024eb9d56bb45426e327b49f78dde), "BWB",u8"Volcano (BWB) (MPU4) (5/10p stake / £5/£8 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4volcan__f, m4volcan, bwboki_chr_cheat<m4volcan_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "vo_vc_d_.2_0", 0x0000, 0x040000, CRC(7f7341b6) SHA1(23d46ca0eed1e942b2a0d33d6ada2434ded5819b), "BWB",u8"Volcano (BWB) (MPU4) (5/10p stake / £5/£8 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4volcan__g, m4volcan, bwboki_chr_cheat<m4volcan_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "volcano_bwb_2-0.bin", 0x0000, 0x040000, CRC(20688684) SHA1(fe533341417a3a0b16f485351cb635f4e7d823db), "BWB",u8"Volcano (BWB) (MPU4) (5/10p stake / £5/£8 jackpot) (set 3)" )
+GAME_CUSTOM( 199?, m4volcan__e, m4volcan, bwboki_chr_cheat<m4volcan_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "vo_vc___.2_0", 0x0000, 0x040000, CRC(24a9e5d6) SHA1(dd4223c3b5c024eb9d56bb45426e327b49f78dde), "BWB",u8"Volcano (BWB) (MPU4) (5/10p stake / £5/£8 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4volcan__f, m4volcan, bwboki_chr_cheat<m4volcan_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "vo_vc_d_.2_0", 0x0000, 0x040000, CRC(7f7341b6) SHA1(23d46ca0eed1e942b2a0d33d6ada2434ded5819b), "BWB",u8"Volcano (BWB) (MPU4) (5/10p stake / £5/£8 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4volcan__g, m4volcan, bwboki_chr_cheat<m4volcan_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "volcano_bwb_2-0.bin", 0x0000, 0x040000, CRC(20688684) SHA1(fe533341417a3a0b16f485351cb635f4e7d823db), "BWB",u8"Volcano (BWB) (MPU4) (5/10p stake / £5/£8 jackpot) (set 3)" )
/*****************************************************************************************************************************************************************************
@@ -1750,12 +1757,12 @@ static const uint32_t m4vdexpr_keys[2] = { 0x11, 0x3f0d27 };
ROM_END \
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
-GAME_CUSTOM( 199?, m4vdexpr, 0, bwboki_chr_cheat<m4vdexpr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "vd_sj___.2_0", 0x0000, 0x040000, CRC(03efd2a5) SHA1(4fc3695c24335aef11ba168f660fb519d8c9d473), "BWB","Voodoo Express (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4vdexpr__a, m4vdexpr, bwboki_chr_cheat<m4vdexpr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "vd_sj_d_.2_0", 0x0000, 0x040000, CRC(5073b98e) SHA1(66b020b8c096e78e1c9694f1cbc139e97314ab48), "BWB","Voodoo Express (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4vdexpr__b, m4vdexpr, bwboki_chr_cheat<m4vdexpr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "vd_sja__.2_0", 0x0000, 0x040000, CRC(c53dbf48) SHA1(ceee2de3ea8cb511540d90b87bc67bec3309de35), "BWB","Voodoo Express (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 3)" )
-GAME_CUSTOM( 199?, m4vdexpr__c, m4vdexpr, bwboki_chr_cheat<m4vdexpr_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "vd_sjs__.2_0", 0x0000, 0x040000, CRC(036157b3) SHA1(b575751006c3ee59bf0404fa0e177fee9ef9c5db), "BWB","Voodoo Express (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 4)" ) // Datapak
+GAME_CUSTOM( 199?, m4vdexpr, 0, bwboki_chr_cheat<m4vdexpr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "vd_sj___.2_0", 0x0000, 0x040000, CRC(03efd2a5) SHA1(4fc3695c24335aef11ba168f660fb519d8c9d473), "BWB","Voodoo Express (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4vdexpr__a, m4vdexpr, bwboki_chr_cheat<m4vdexpr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "vd_sj_d_.2_0", 0x0000, 0x040000, CRC(5073b98e) SHA1(66b020b8c096e78e1c9694f1cbc139e97314ab48), "BWB","Voodoo Express (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4vdexpr__b, m4vdexpr, bwboki_chr_cheat<m4vdexpr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "vd_sja__.2_0", 0x0000, 0x040000, CRC(c53dbf48) SHA1(ceee2de3ea8cb511540d90b87bc67bec3309de35), "BWB","Voodoo Express (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 3)" )
+GAME_CUSTOM( 199?, m4vdexpr__c, m4vdexpr, bwboki_chr_cheat<m4vdexpr_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "vd_sjs__.2_0", 0x0000, 0x040000, CRC(036157b3) SHA1(b575751006c3ee59bf0404fa0e177fee9ef9c5db), "BWB","Voodoo Express (BWB) (MPU4) (20/25/30p stake / £5/£10/£15 jackpot) (set 4)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4vdexpr__d, m4vdexpr, bwboki_chr_cheat<m4vdexpr_keys>, mpu4impcoin_jackpot5_5p, init_m4default_big, "vd_vc___.1_0", 0x0000, 0x040000, CRC(6326e14a) SHA1(3dbfbb1cfb60dc10c6972aa2fda89c8e3c3107ea), "BWB","Voodoo Express (BWB) (MPU4) (5/10p stake / £5/£8 jackpot)" )
+GAME_CUSTOM( 199?, m4vdexpr__d, m4vdexpr, bwboki_chr_cheat<m4vdexpr_keys>(R5, RT3), mpu4impcoin_jackpot5_5p, init_m4big, "vd_vc___.1_0", 0x0000, 0x040000, CRC(6326e14a) SHA1(3dbfbb1cfb60dc10c6972aa2fda89c8e3c3107ea), "BWB","Voodoo Express (BWB) (MPU4) (5/10p stake / £5/£8 jackpot)" )
/*****************************************************************************************************************************************************************************
@@ -1780,24 +1787,24 @@ static const uint32_t m4xch_keys[2] = { 0x42, 0x3f0c26 };
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
// these don't require stake/jp to be set
-GAME_CUSTOM( 199?, m4xch, 0, bwboki_chr_cheat<m4xch_keys>, mpu4_impcoin, init_m4default_big, "ec_25b__.b_0", 0x0000, 0x020000, CRC(cec9e836) SHA1(460ec38566d7608e51b62f1ffebc18a395002ed4), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £10 jackpot)" )
+GAME_CUSTOM( 199?, m4xch, 0, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4_impcoin, init_m4big, "ec_25b__.b_0", 0x0000, 0x020000, CRC(cec9e836) SHA1(460ec38566d7608e51b62f1ffebc18a395002ed4), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £10 jackpot)" )
//
-GAME_CUSTOM( 199?, m4xch__a, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4_impcoin, init_m4default_big, "ec_36bg_.bv0", 0x0000, 0x020000, CRC(c5d1523a) SHA1(813916008d7e7576e4594a6eb79a76c514470f31), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £8 jackpot) (set 1)" ) // Datapak
-GAME_CUSTOM( 199?, m4xch__b, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4_impcoin, init_m4default_big, "ec_36bgn.bv0", 0x0000, 0x020000, CRC(4be33ee1) SHA1(888009e09c59f30649eac3238e0b70dec258cb3c), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £8 jackpot) (set 2)" )
+GAME_CUSTOM( 199?, m4xch__a, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4_impcoin, init_m4big, "ec_36bg_.bv0", 0x0000, 0x020000, CRC(c5d1523a) SHA1(813916008d7e7576e4594a6eb79a76c514470f31), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £8 jackpot) (set 1)" ) // Datapak
+GAME_CUSTOM( 199?, m4xch__b, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4_impcoin, init_m4big, "ec_36bgn.bv0", 0x0000, 0x020000, CRC(4be33ee1) SHA1(888009e09c59f30649eac3238e0b70dec258cb3c), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £8 jackpot) (set 2)" )
//
-GAME_CUSTOM( 199?, m4xch__c, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4_impcoin, init_m4default_big, "ec_39b__.b_0", 0x0000, 0x020000, CRC(e5d5961d) SHA1(ac3916cba91a13d1e0820982a1cefabd378647c9), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4xch__d, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4_impcoin, init_m4default_big, "ec_39bg_.b_0", 0x0000, 0x020000, CRC(49b2be01) SHA1(dbf808d0949a9658d23e57e7eaaa520891a4f0e0), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4xch__e, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4_impcoin, init_m4default_big, "ec_39bm_.b_0", 0x0000, 0x020000, CRC(29c86cf0) SHA1(384a475d34ad5d15b68d019c3771aba471f89b4d), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £15 jackpot) (set 3)" )
+GAME_CUSTOM( 199?, m4xch__c, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4_impcoin, init_m4big, "ec_39b__.b_0", 0x0000, 0x020000, CRC(e5d5961d) SHA1(ac3916cba91a13d1e0820982a1cefabd378647c9), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4xch__d, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4_impcoin, init_m4big, "ec_39bg_.b_0", 0x0000, 0x020000, CRC(49b2be01) SHA1(dbf808d0949a9658d23e57e7eaaa520891a4f0e0), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4xch__e, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4_impcoin, init_m4big, "ec_39bm_.b_0", 0x0000, 0x020000, CRC(29c86cf0) SHA1(384a475d34ad5d15b68d019c3771aba471f89b4d), "BWB",u8"X-change (BWB) (MPU4) (25p stake / £15 jackpot) (set 3)" )
//
-GAME_CUSTOM( 199?, m4xch__f, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4_impcoin, init_m4default_big, "ec_49bd_.b_0", 0x0000, 0x020000, CRC(02854189) SHA1(beab97ccd9889cfdb24e1fb6fb373bf9fd114eab), "BWB",u8"X-change (BWB) (MPU4) (30p stake / £15 jackpot) (set 1)" ) // Datapak
-GAME_CUSTOM( 199?, m4xch__g, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4_impcoin, init_m4default_big, "ec_49bmd.b_0", 0x0000, 0x020000, CRC(2a5578e3) SHA1(d8f100bc83721b6b0f365be7a962249af79d6162), "BWB",u8"X-change (BWB) (MPU4) (30p stake / £15 jackpot) (set 2)" )
+GAME_CUSTOM( 199?, m4xch__f, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4_impcoin, init_m4big, "ec_49bd_.b_0", 0x0000, 0x020000, CRC(02854189) SHA1(beab97ccd9889cfdb24e1fb6fb373bf9fd114eab), "BWB",u8"X-change (BWB) (MPU4) (30p stake / £15 jackpot) (set 1)" ) // Datapak
+GAME_CUSTOM( 199?, m4xch__g, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4_impcoin, init_m4big, "ec_49bmd.b_0", 0x0000, 0x020000, CRC(2a5578e3) SHA1(d8f100bc83721b6b0f365be7a962249af79d6162), "BWB",u8"X-change (BWB) (MPU4) (30p stake / £15 jackpot) (set 2)" )
//
-GAME_CUSTOM( 199?, m4xch__h, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "ec_s9bt_.b_0", 0x0000, 0x020000, CRC(7e0a27d1) SHA1(d4a23a6c358e38a1a66a06b82af85c844f684830), "BWB",u8"X-change (BWB) (MPU4) (20/25/30p stake / £15 jackpot)" )
+GAME_CUSTOM( 199?, m4xch__h, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "ec_s9bt_.b_0", 0x0000, 0x020000, CRC(7e0a27d1) SHA1(d4a23a6c358e38a1a66a06b82af85c844f684830), "BWB",u8"X-change (BWB) (MPU4) (20/25/30p stake / £15 jackpot)" )
//
-GAME_CUSTOM( 199?, m4xch__i, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "ec_sja__.a_0", 0x0000, 0x020000, CRC(1f923f89) SHA1(84486287d55591c7e81c59a10e8cc722ec21e8f9), "BWB",u8"X-change (BWB) (MPU4) (10/20/25/30p stake / £5/£8/£10 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" ) // 10p stake not valid with £15 jackpot
-GAME_CUSTOM( 199?, m4xch__j, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big, "ec_sja__.b_0", 0x0000, 0x020000, CRC(16d7b8bb) SHA1(be8ab98a64aa976e25cb302b68323c6781034f2b), "BWB",u8"X-change (BWB) (MPU4) (10/20/25/30p stake / £5/£8/£10 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" )
+GAME_CUSTOM( 199?, m4xch__i, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "ec_sja__.a_0", 0x0000, 0x020000, CRC(1f923f89) SHA1(84486287d55591c7e81c59a10e8cc722ec21e8f9), "BWB",u8"X-change (BWB) (MPU4) (10/20/25/30p stake / £5/£8/£10 jackpot, 20/25/30p stake / £15 jackpot) (set 1)" ) // 10p stake not valid with £15 jackpot
+GAME_CUSTOM( 199?, m4xch__j, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big, "ec_sja__.b_0", 0x0000, 0x020000, CRC(16d7b8bb) SHA1(be8ab98a64aa976e25cb302b68323c6781034f2b), "BWB",u8"X-change (BWB) (MPU4) (10/20/25/30p stake / £5/£8/£10 jackpot, 20/25/30p stake / £15 jackpot) (set 2)" )
// probably just a bad dump (half size) very close to the first half of ec_sja__.a_0
-GAME_CUSTOM( 199?, m4xch__k, m4xch, bwboki_chr_cheat<m4xch_keys>, mpu4_impcoin, init_m4default, "xchange.bin", 0x0000, 0x010000, CRC(c96cd014) SHA1(6e32d10c18b6b34dbcb21e75925a77e810ffe892), "BWB",u8"X-change (BWB) (MPU4) (unknown set, bad?)" )
+GAME_CUSTOM( 199?, m4xch__k, m4xch, bwboki_chr_cheat<m4xch_keys>(R5, RT3), mpu4_impcoin, init_m4, "xchange.bin", 0x0000, 0x010000, CRC(c96cd014) SHA1(6e32d10c18b6b34dbcb21e75925a77e810ffe892), "BWB",u8"X-change (BWB) (MPU4) (unknown set, bad?)" )
/*****************************************************************************************************************************************************************************
@@ -1822,15 +1829,15 @@ static const uint32_t m4xs_keys[2] = { 0x34, 0x3f0e26 };
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
// these sets don't require stake/jp set
-GAME_CUSTOM( 199?, m4xs, 0, bwboki_chr_cheat<m4xs_keys>, mpu4_impcoin, init_m4default_big , "es_39b__.3_0", 0x0000, 0x020000, CRC(ba478372) SHA1(c13f9cc4261e91119aa694ec3ac81d94d9f32d22), "BWB",u8"X-s (BWB) (MPU4) (25p stake / £15 jackpot) (set 1)" )
-GAME_CUSTOM( 199?, m4xs__a, m4xs, bwboki_chr_cheat<m4xs_keys>, mpu4_impcoin, init_m4default_big , "es_39bg_.3_0", 0x0000, 0x020000, CRC(b689f14f) SHA1(0c3253e1f747a979f55d53fe637fc61cf50e01a3), "BWB",u8"X-s (BWB) (MPU4) (25p stake / £15 jackpot) (set 2)" ) // Datapak
-GAME_CUSTOM( 199?, m4xs__b, m4xs, bwboki_chr_cheat<m4xs_keys>, mpu4_impcoin, init_m4default_big , "es_39bm_.3_0", 0x0000, 0x020000, CRC(934f5d1e) SHA1(1ffd462d561d4a16f2392cc90a139499b74a234a), "BWB",u8"X-s (BWB) (MPU4) (25p stake / £15 jackpot) (set 3)" )
-GAME_CUSTOM( 199?, m4xs__c, m4xs, bwboki_chr_cheat<m4xs_keys>, mpu4_impcoin, init_m4default_big , "es_39bmd.3_0", 0x0000, 0x020000, CRC(cf663dcc) SHA1(620e65528687eb5fd6fd879e305e8b7da9b95253), "BWB",u8"X-s (BWB) (MPU4) (25p stake / £15 jackpot) (set 4)" ) // Datapak
+GAME_CUSTOM( 199?, m4xs, 0, bwboki_chr_cheat<m4xs_keys>(R5, RT3), mpu4_impcoin, init_m4big , "es_39b__.3_0", 0x0000, 0x020000, CRC(ba478372) SHA1(c13f9cc4261e91119aa694ec3ac81d94d9f32d22), "BWB",u8"X-s (BWB) (MPU4) (25p stake / £15 jackpot) (set 1)" )
+GAME_CUSTOM( 199?, m4xs__a, m4xs, bwboki_chr_cheat<m4xs_keys>(R5, RT3), mpu4_impcoin, init_m4big , "es_39bg_.3_0", 0x0000, 0x020000, CRC(b689f14f) SHA1(0c3253e1f747a979f55d53fe637fc61cf50e01a3), "BWB",u8"X-s (BWB) (MPU4) (25p stake / £15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4xs__b, m4xs, bwboki_chr_cheat<m4xs_keys>(R5, RT3), mpu4_impcoin, init_m4big , "es_39bm_.3_0", 0x0000, 0x020000, CRC(934f5d1e) SHA1(1ffd462d561d4a16f2392cc90a139499b74a234a), "BWB",u8"X-s (BWB) (MPU4) (25p stake / £15 jackpot) (set 3)" )
+GAME_CUSTOM( 199?, m4xs__c, m4xs, bwboki_chr_cheat<m4xs_keys>(R5, RT3), mpu4_impcoin, init_m4big , "es_39bmd.3_0", 0x0000, 0x020000, CRC(cf663dcc) SHA1(620e65528687eb5fd6fd879e305e8b7da9b95253), "BWB",u8"X-s (BWB) (MPU4) (25p stake / £15 jackpot) (set 4)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4xs__d, m4xs, bwboki_chr_cheat<m4xs_keys>, mpu4_impcoin, init_m4default_big , "es_49bg_.3_0", 0x0000, 0x020000, CRC(b76f1d7d) SHA1(9b43a9e847db3d4024f978b6f996534b8d52368b), "BWB",u8"X-s (BWB) (MPU4) (30p stake / £15 jackpot) (set 1)" ) // Datapak
-GAME_CUSTOM( 199?, m4xs__e, m4xs, bwboki_chr_cheat<m4xs_keys>, mpu4_impcoin, init_m4default_big , "es_49bmd.3_0", 0x0000, 0x020000, CRC(1150e499) SHA1(25d2c37e5287f73d2b11608c50f21072422850f0), "BWB",u8"X-s (BWB) (MPU4) (30p stake / £15 jackpot) (set 2)" ) // Datapak
+GAME_CUSTOM( 199?, m4xs__d, m4xs, bwboki_chr_cheat<m4xs_keys>(R5, RT3), mpu4_impcoin, init_m4big , "es_49bg_.3_0", 0x0000, 0x020000, CRC(b76f1d7d) SHA1(9b43a9e847db3d4024f978b6f996534b8d52368b), "BWB",u8"X-s (BWB) (MPU4) (30p stake / £15 jackpot) (set 1)" ) // Datapak
+GAME_CUSTOM( 199?, m4xs__e, m4xs, bwboki_chr_cheat<m4xs_keys>(R5, RT3), mpu4_impcoin, init_m4big , "es_49bmd.3_0", 0x0000, 0x020000, CRC(1150e499) SHA1(25d2c37e5287f73d2b11608c50f21072422850f0), "BWB",u8"X-s (BWB) (MPU4) (30p stake / £15 jackpot) (set 2)" ) // Datapak
// requires stake/jp
-GAME_CUSTOM( 199?, m4xs__f, m4xs, bwboki_chr_cheat<m4xs_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big , "es_sja__.3_0", 0x0000, 0x020000, CRC(5909092d) SHA1(64df6ad5ba5ac74592b525af2f4cab8a092a5766), "BWB",u8"X-s (BWB) (MPU4) (20/25/30p stake / £15 jackpot)" )
+GAME_CUSTOM( 199?, m4xs__f, m4xs, bwboki_chr_cheat<m4xs_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big , "es_sja__.3_0", 0x0000, 0x020000, CRC(5909092d) SHA1(64df6ad5ba5ac74592b525af2f4cab8a092a5766), "BWB",u8"X-s (BWB) (MPU4) (20/25/30p stake / £15 jackpot)" )
/*****************************************************************************************************************************************************************************
@@ -1855,11 +1862,11 @@ static const uint32_t m4xtrm_keys[2] = { 0x36, 0x301210 };
GAME( year, setname, parent, machine, inputs, mpu4bwb_machines_state, init, ROT0, company, title, GAME_FLAGS )
// state/jp needed
-GAME_CUSTOM( 199?, m4xtrm, 0, bwboki_chr_cheat<m4xtrm_keys>, mpu4impcoin_jackpot15_20p, init_m4default_big , "et_sja__.2_0", 0x0000, 0x020000, CRC(8ee2602b) SHA1(b9a779b900ac71ec842dd7eb1643f7a2f1cb6a38), "BWB",u8"X-treme (BWB) (MPU4) (20/25/30p stake / £8/£15 jackpot)" )
+GAME_CUSTOM( 199?, m4xtrm, 0, bwboki_chr_cheat<m4xtrm_keys>(R5, RT3), mpu4impcoin_jackpot15_20p, init_m4big , "et_sja__.2_0", 0x0000, 0x020000, CRC(8ee2602b) SHA1(b9a779b900ac71ec842dd7eb1643f7a2f1cb6a38), "BWB",u8"X-treme (BWB) (MPU4) (20/25/30p stake / £8/£15 jackpot)" )
// no stake/jp needed on sets below
-GAME_CUSTOM( 199?, m4xtrm__a, m4xtrm, bwboki_chr_cheat<m4xtrm_keys>, mpu4_impcoin, init_m4default_big , "et_49bg_.2_0", 0x0000, 0x020000, CRC(f858d927) SHA1(e7ab84c8898a95075a41fb0249e4b103d60e7d85), "BWB",u8"X-treme (BWB) (MPU4) (30p stake / £15 jackpot)" ) // Datapak
+GAME_CUSTOM( 199?, m4xtrm__a, m4xtrm, bwboki_chr_cheat<m4xtrm_keys>(R5, RT3), mpu4_impcoin, init_m4big , "et_49bg_.2_0", 0x0000, 0x020000, CRC(f858d927) SHA1(e7ab84c8898a95075a41fb0249e4b103d60e7d85), "BWB",u8"X-treme (BWB) (MPU4) (30p stake / £15 jackpot)" ) // Datapak
//
-GAME_CUSTOM( 199?, m4xtrm__b, m4xtrm, bwboki_chr_cheat<m4xtrm_keys>, mpu4_impcoin, init_m4default_big , "et_39bg_.2_0", 0x0000, 0x020000, CRC(db1a3c3c) SHA1(081c934ebfc0a9dfa195bb20f51e025e53d9c4b9), "BWB",u8"X-treme (BWB) (MPU4) (25p stake / £15 jackpot)" ) // Datapak
+GAME_CUSTOM( 199?, m4xtrm__b, m4xtrm, bwboki_chr_cheat<m4xtrm_keys>(R5, RT3), mpu4_impcoin, init_m4big , "et_39bg_.2_0", 0x0000, 0x020000, CRC(db1a3c3c) SHA1(081c934ebfc0a9dfa195bb20f51e025e53d9c4b9), "BWB",u8"X-treme (BWB) (MPU4) (25p stake / £15 jackpot)" ) // Datapak
/*****************************************************************************************************************************************************************************
@@ -1894,7 +1901,7 @@ static const uint32_t m4bluesn_keys[2] = { 0x23, 0x1b0b36 };
ROM_LOAD( name, offset, length, hash ) \
M4BLUESN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4bluesn_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4bluesn_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4bluesn, m4blsbys, "bluesboys.bin", 0x0000, 0x020000, CRC(c1395649) SHA1(3cd0eed1f966f5391fe5de496dc747385ebfb556), "BWB","Blues Boys (Nova) (MPU4)" )
@@ -1919,7 +1926,7 @@ static const uint32_t m4cfinln_keys[2] = { 0x10, 0x213623 };
ROM_LOAD( name, offset, length, hash ) \
M4CFINLN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4cfinln_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4cfinln_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4cfinln, m4cpfinl, "cfd_7_1.bin", 0x0000, 0x020000, CRC(e42ec2aa) SHA1(6495448c1d11ce0ab9ad794bc3a0981432e22945), "BWB","Cup Final (Nova) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4cfinln__a, m4cpfinl, "cfd_d0.bin", 0x0000, 0x020000, CRC(179fcf13) SHA1(abd18ed28118ba0a62ab321a9d963105946d5eef), "BWB","Cup Final (Nova) (MPU4) (set 2)" )
@@ -1945,7 +1952,7 @@ static const uint32_t m4wcnov_keys[2] = { 0x19, 0x0f2029 };
ROM_LOAD( name, offset, length, hash ) \
M4WCNOV_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4wcnov_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4wcnov_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4wcnov, 0, "wcdsxh__.5_0", 0x0000, 0x080000, CRC(a82d11de) SHA1(ece14fd5f56da8cc788c53d5c1404275e9000b65), "BWB","World Cup (Nova) (MPU4)" )
@@ -1970,7 +1977,7 @@ static const uint32_t m4excaln_keys[2] = { 0x10, 0x010e20 };
ROM_LOAD( name, offset, length, hash ) \
M4EXCALN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4excaln_keys>, mpu4_impcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4excaln_keys>(R5, RT3), mpu4_impcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4excaln, m4excal, "exdsx___.6_0", 0x0000, 0x080000, CRC(fcdc703c) SHA1(927870723106aebbb2b492ce9bfebe4aa25d0325), "BWB","Excalibur (Nova) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4excaln__a,m4excal, "exdsx_e_.6_0", 0x0000, 0x080000, CRC(f6421feb) SHA1(5b3cf7fa4bf9711097ed1c9d2d5689329d73193d), "BWB","Excalibur (Nova) (MPU4) (set 2)" )
@@ -1996,7 +2003,7 @@ static const uint32_t m4olygn_keys[2] = { 0x19, 0x0f2029};
ROM_LOAD( name, offset, length, hash ) \
M4OLYGN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4olygn_keys>, mpu4_invimpcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4olygn_keys>(R5, RT3), mpu4_invimpcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4olygn, 0, "ogdsx___.8_0", 0x0000, 0x040000, CRC(b51a2538) SHA1(d54f37dc14c44ab66e6d6ba6e2df8bc9ed003054), "BWB","Olympic Gold (German) (Nova) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4olygn__a, m4olygn, "ogdsxe__.8_0", 0x0000, 0x040000, CRC(13aa70aa) SHA1(3878c181ec07e24060935bec96e5128e6e4baf31), "BWB","Olympic Gold (German) (Nova) (MPU4) (set 2)" )
@@ -2022,7 +2029,7 @@ static const uint32_t m4ftladn_keys[2] = { 0x05, 0x200f03 };
ROM_LOAD( name, offset, length, hash ) \
M4FTLADN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4ftladn_keys>, mpu4_invimpcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4ftladn_keys>(R5, RT3), mpu4_invimpcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4ftladn, 0, "fidse___.5_0", 0x00000, 0x20000, CRC(62347bbf) SHA1(2b1cd5adda831a8c74c9484ee1b616259d3e3981), "BWB","Find the Lady (Nova) (MPU4)" )
@@ -2050,7 +2057,7 @@ static const uint32_t m4sinbdn__b_keys[2] = { 0x10, 0x3e2f0b };
ROM_LOAD( name, offset, length, hash ) \
M4SINBDN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4sinbdn_keys>, mpu4_invimpcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4sinbdn_keys>(R5, RT3), mpu4_invimpcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4sinbdn, 0, "sbds3___.a_1", 0x0000, 0x020000, CRC(9bff0e40) SHA1(f8a1263a58f828554e9df77ed0db78e627666fb5), "BWB","Sinbad (Nova) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4sinbdn__e, m4sinbdn, "sbds3__l.9_0", 0x0000, 0x040000, CRC(e425375a) SHA1(d2bdd8e768fc7764054eff574360f3cfb5f4f66d), "BWB","Sinbad (Nova) (MPU4) (set 6)" )
@@ -2062,7 +2069,7 @@ GAME_CUSTOM( 199?, m4sinbdn__e, m4sinbdn, "sbds3__l.9_0", 0x0000, 0x040000,
ROM_LOAD( name, offset, length, hash ) \
M4SINBDN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4sinbdn__a_keys>, mpu4_invimpcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4sinbdn__a_keys>(R5, RT3), mpu4_invimpcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4sinbdn__a, m4sinbdn, "sbds3___.7w1", 0x0000, 0x020000, CRC(23bc9ce0) SHA1(f750de2b781bc902c65de7109e10a5fc2d4e1c61), "BWB","Sinbad (Nova) (MPU4) (set 2)" )
GAME_CUSTOM( 199?, m4sinbdn__f, m4sinbdn, "sbds3__l.aw0", 0x0000, 0x040000, CRC(c484ef9d) SHA1(62f6644b83dd6abaf80809217edf6a8230a89268), "BWB","Sinbad (Nova) (MPU4) (set 7)" )
@@ -2074,7 +2081,7 @@ GAME_CUSTOM( 199?, m4sinbdn__f, m4sinbdn, "sbds3__l.aw0", 0x0000, 0x040000,
ROM_LOAD( name, offset, length, hash ) \
M4SINBDN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, bwboki_chr_cheat<m4sinbdn__b_keys>, mpu4_invimpcoin, mpu4bwb_machines_state, init_m4default_big ,ROT0,company,title,GAME_FLAGS )
+ GAME(year, setname, parent, bwboki_chr_cheat<m4sinbdn__b_keys>(R5, RT3), mpu4_invimpcoin, mpu4bwb_machines_state, init_m4big ,ROT0,company,title,GAME_FLAGS )
GAME_CUSTOM( 199?, m4sinbdn__b, m4sinbdn, "sxdsx___.2_0", 0x0000, 0x040000, CRC(4e1f98b5) SHA1(3e16e7a0cdccc9eb1a1bb6f9a0332c4582483eee), "BWB","Sinbad (Nova) (MPU4) (set 3)" )
GAME_CUSTOM( 199?, m4sinbdn__c, m4sinbdn, "sdd__.3_0", 0x0000, 0x040000, CRC(100098c1) SHA1(b125855c49325972f620463e32fdf124222e27d2), "BWB","Sinbad (Nova) (MPU4) (set 4)" )
diff --git a/src/mame/barcrest/mpu4concept.cpp b/src/mame/barcrest/mpu4concept.cpp
index ed596afb670..df98daa2170 100644
--- a/src/mame/barcrest/mpu4concept.cpp
+++ b/src/mame/barcrest/mpu4concept.cpp
@@ -19,6 +19,8 @@ public:
} // anonymous namespace
+using namespace mpu4_traits;
+
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
#define M4RHFEVC_EXTRA_ROMS \
@@ -32,7 +34,7 @@ public:
ROM_LOAD( name, offset, length, hash ) \
M4RHFEVC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4concept_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4concept_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4rhfevc, 0, "rhb6a58e.bin", 0x0000, 0x010000, CRC(c5a1ec02) SHA1(3a4dc552fffc34673e590e903a5c15a409f9aeec), "Concept Games Ltd","Red Hot Fever (Concept Games Ltd) (MPU4) (set 1)" )
@@ -75,7 +77,7 @@ GAME_CUSTOM( 199?, m4rhfevc__y, m4rhfevc, "lxled1.bin", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4PULWNC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4concept_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4concept_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
@@ -125,7 +127,7 @@ GAME_CUSTOM( 199?, m4pulwnc__4, m4pulwnc, "tchm02.bin", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4SPNWNC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4concept_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4concept_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4spnwnc, 0, "saw01.bin", 0x0000, 0x010000, CRC(5350e50e) SHA1(0d7ba3280eddb4400545729c55bcfaff7918d553), "Concept Games Ltd","Spin-A-Win (Concept Games Ltd) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4spnwnc__a, m4spnwnc, "saw02.bin", 0x0000, 0x010000, CRC(daf85100) SHA1(ff89adb0d6530bcf5ff0807f48c6008198948d50), "Concept Games Ltd","Spin-A-Win (Concept Games Ltd) (MPU4) (set 2)" )
@@ -142,7 +144,7 @@ GAME_CUSTOM( 199?, m4spnwnc__b, m4spnwnc, "saw03.bin", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4NUDGWC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4concept_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4concept_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4nudgwc, 0, "naw02.bin", 0x0000, 0x010000, CRC(eb3ff27d) SHA1(ff0a80a75162380c6cc2d1b31f0bb0579faa1a2c), "Concept Games Ltd","Nudge-A-Win (Concept Games Ltd) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4nudgwc__a, m4nudgwc, "nawhc6.bin", 0x0000, 0x010000, CRC(f9389823) SHA1(e1db35200c9ed9d59cf817901cf75bdbb48507b2), "Concept Games Ltd","Nudge-A-Win (Concept Games Ltd) (MPU4) (set 2)" )
diff --git a/src/mame/barcrest/mpu4crystal.cpp b/src/mame/barcrest/mpu4crystal.cpp
index f6cc52b3389..e27dcc40153 100644
--- a/src/mame/barcrest/mpu4crystal.cpp
+++ b/src/mame/barcrest/mpu4crystal.cpp
@@ -7,6 +7,8 @@
#include "emu.h"
#include "mpu4.h"
+#include "sound/upd7759.h"
+
namespace {
class mpu4crystal_machines_state : public mpu4_state
@@ -22,7 +24,13 @@ public:
void init_crystal();
void init_m_frkstn();
- void mpu4crys(machine_config &config);
+ void crystal_f(machine_config &config);
+
+ template<typename... T>
+ auto crystal(T... traits)
+ {
+ return trait_wrapper(this, &mpu4crystal_machines_state::crystal_f, traits...);
+ }
private:
DECLARE_MACHINE_START(mpu4cry);
@@ -36,12 +44,11 @@ MACHINE_START_MEMBER(mpu4crystal_machines_state,mpu4cry)
mpu4_config_common();
m_link7a_connected=false;
- m_mod_number=4;
}
-void mpu4crystal_machines_state::mpu4crys(machine_config &config)
+void mpu4crystal_machines_state::crystal_f(machine_config &config)
{
- mod2(config);
+ mod2_f(config);
MCFG_MACHINE_START_OVERRIDE(mpu4crystal_machines_state,mpu4cry)
upd7759_device &upd(UPD7759(config, "upd"));
@@ -62,8 +69,8 @@ void mpu4crystal_machines_state::crystal_sound_w(uint8_t data)
void mpu4crystal_machines_state::init_m_frkstn()
{
+ init_m4();
address_space &space = m_maincpu->space(AS_PROGRAM);
- init_m4default();
space.install_read_handler(0x0880, 0x0880, read8smo_delegate(*this, FUNC(mpu4crystal_machines_state::crystal_sound_r)));
space.install_write_handler(0x0881, 0x0881, write8smo_delegate(*this, FUNC(mpu4crystal_machines_state::crystal_sound_w)));
}
@@ -850,134 +857,136 @@ ROM_END
} // anonymous namespace
+using namespace mpu4_traits;
+
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
-GAME(199?, m4frkstn, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frkstna,m4frkstn, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frkstnb,m4frkstn, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frkstnc,m4frkstn, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frkstnd,m4frkstn, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frkstne,m4frkstn, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frkstnf,m4frkstn, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frkstng,m4frkstn, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 8)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frkstnh,m4frkstn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 9)", GAME_FLAGS|MACHINE_NO_SOUND ) // this set is encrypted
-
-GAME(199?, m4aladn, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4aladna, m4aladn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4aladnb, m4aladn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4aladnc, m4aladn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4aladnd, m4aladn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4aladne, m4aladn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4aladnf, m4aladn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4aladng, m4aladn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 8)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4aladnh, m4aladn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 9)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4aladni, m4aladn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 10)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4bagcsh, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Bags Of Cash Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bagcsha,m4bagcsh, mpu4crys, mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Bags Of Cash Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4bucclb, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bucclba,m4bucclb, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bucclbb,m4bucclb, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bucclbc,m4bucclb, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4bullio, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bullioa,m4bullio, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bulliob,m4bullio, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4carou ,0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4caroua, m4carou, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4caroub, m4carou, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4carouc, m4carou, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4cclimb, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4cclimba,m4cclimb, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4crzcl, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4crzcla, m4crzcl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4crzclb, m4crzcl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4crzclc, m4crzcl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4crzcld, m4crzcl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4elitc, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Elite Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4elitca, m4elitc, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Elite Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4fairg, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fairground (Crystal) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4frmani, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frmania,m4frmani, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frmanib,m4frmani, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frmanic,m4frmani, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4goldxc, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4goldxca,m4goldxc, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4goldxcb,m4goldxc, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4goldxcc,m4goldxc, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4goldxcd,m4goldxc, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4goldxce,m4goldxc, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4goldfc, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4goldfca,m4goldfc, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4goldfcb,m4goldfc, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4hirol, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Hi Roller Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4hirola, m4hirol, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Hi Roller Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4kingqn, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Kings & Queens Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4kingqna,m4kingqn, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Kings & Queens Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4lotclb, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Lottery Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4lotclba,m4lotclb, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Lottery Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4montrl, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
-GAME(199?, m4montrla,m4montrl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
-GAME(199?, m4montrlb,m4montrl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
-GAME(199?, m4montrlc,m4montrl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
-GAME(199?, m4montrld,m4montrl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
-
-GAME(199?, m4mystiq, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4mystiqa,m4mystiq, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4mystiqb,m4mystiq, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4mystiqc,m4mystiq, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4nudwin, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Nudge & Win (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4nudwina,m4nudwin, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Nudge & Win (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4paracl, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Paradise Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4paracla,m4paracl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Paradise Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4rlpick, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4rlpicka,m4rlpick, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4rlpickb,m4rlpick, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4rlpickc,m4rlpick, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4twstr, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4twstra, m4twstr, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4twstrb, m4twstr, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4twstrc, m4twstr, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4twstrd, m4twstr, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4twstcl, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4twstcla,m4twstcl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4twstclb,m4twstcl, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4dz, 0, mpu4crys, mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Danger Zone (Crystal) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4tylb, 0, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Thank Your Lucky Bars (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-GAME(199?, m4tylba, m4tylb, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Thank Your Lucky Bars (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-
-GAME(199?, m4magi7, 0, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Magic 7's (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-GAME(199?, m4magi7a, m4magi7, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Magic 7's (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-
-GAME(199?, m4rags, 0, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-GAME(199?, m4ragsa, m4rags, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-GAME(199?, m4ragsb, m4rags, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 3)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-GAME(199?, m4ragsc, m4rags, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 4)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-
-GAME(199?, m4riocr, 0, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Rio Grande (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-GAME(199?, m4riocra, m4riocr, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Rio Grande (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-
-GAME(199?, m4ndup, 0, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-GAME(199?, m4ndupa, m4ndup, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-GAME(199?, m4ndupb, m4ndup, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 3)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
-GAME(199?, m4ndupc, m4ndup, mod4oki, mpu4, mpu4crystal_machines_state, init_m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 4)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4frkstn, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstna,m4frkstn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnb,m4frkstn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnc,m4frkstn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnd,m4frkstn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstne,m4frkstn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnf,m4frkstn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstng,m4frkstn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 8)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnh,m4frkstn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 9)", GAME_FLAGS|MACHINE_NO_SOUND ) // this set is encrypted
+
+GAME(199?, m4aladn, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladna, m4aladn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnb, m4aladn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnc, m4aladn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnd, m4aladn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladne, m4aladn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnf, m4aladn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladng, m4aladn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 8)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnh, m4aladn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 9)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladni, m4aladn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 10)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4bagcsh, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Bags Of Cash Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bagcsha,m4bagcsh, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_m_frkstn, ROT0, "Crystal","Bags Of Cash Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4bucclb, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bucclba,m4bucclb, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bucclbb,m4bucclb, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bucclbc,m4bucclb, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4bullio, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bullioa,m4bullio, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bulliob,m4bullio, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4carou ,0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4caroua, m4carou, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4caroub, m4carou, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4carouc, m4carou, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4cclimb, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cclimba,m4cclimb, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4crzcl, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcla, m4crzcl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzclb, m4crzcl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzclc, m4crzcl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcld, m4crzcl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4elitc, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Elite Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4elitca, m4elitc, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Elite Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4fairg, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fairground (Crystal) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4frmani, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frmania,m4frmani, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frmanib,m4frmani, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frmanic,m4frmani, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4goldxc, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxca,m4goldxc, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxcb,m4goldxc, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxcc,m4goldxc, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxcd,m4goldxc, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxce,m4goldxc, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4goldfc, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldfca,m4goldfc, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldfcb,m4goldfc, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4hirol, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Hi Roller Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hirola, m4hirol, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Hi Roller Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4kingqn, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Kings & Queens Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4kingqna,m4kingqn, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Kings & Queens Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4lotclb, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Lottery Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4lotclba,m4lotclb, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Lottery Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4montrl, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+GAME(199?, m4montrla,m4montrl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+GAME(199?, m4montrlb,m4montrl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+GAME(199?, m4montrlc,m4montrl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+GAME(199?, m4montrld,m4montrl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+
+GAME(199?, m4mystiq, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mystiqa,m4mystiq, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mystiqb,m4mystiq, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mystiqc,m4mystiq, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4nudwin, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Nudge & Win (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4nudwina,m4nudwin, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Nudge & Win (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4paracl, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Paradise Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4paracla,m4paracl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Paradise Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4rlpick, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rlpicka,m4rlpick, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rlpickb,m4rlpick, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rlpickc,m4rlpick, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4twstr, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstra, m4twstr, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstrb, m4twstr, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstrc, m4twstr, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstrd, m4twstr, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4twstcl, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstcla,m4twstcl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstclb,m4twstcl, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4dz, 0, crystal(R4, RT1), mpu4, mpu4crystal_machines_state, init_crystal, ROT0, "Crystal","Danger Zone (Crystal) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4tylb, 0, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Thank Your Lucky Bars (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4tylba, m4tylb, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Thank Your Lucky Bars (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+
+GAME(199?, m4magi7, 0, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Magic 7's (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4magi7a, m4magi7, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Magic 7's (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+
+GAME(199?, m4rags, 0, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ragsa, m4rags, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ragsb, m4rags, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 3)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ragsc, m4rags, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 4)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+
+GAME(199?, m4riocr, 0, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Rio Grande (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4riocra, m4riocr, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Rio Grande (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+
+GAME(199?, m4ndup, 0, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ndupa, m4ndup, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ndupb, m4ndup, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 3)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ndupc, m4ndup, mod4oki(R4, RT1), mpu4, mpu4crystal_machines_state, init_m4, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 4)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
diff --git a/src/mame/barcrest/mpu4dealem.cpp b/src/mame/barcrest/mpu4dealem.cpp
index c7635ff4b6a..374b7ec8ab0 100644
--- a/src/mame/barcrest/mpu4dealem.cpp
+++ b/src/mame/barcrest/mpu4dealem.cpp
@@ -29,6 +29,7 @@ public:
: mpu4_state(mconfig, type, tag)
, m_dealem_videoram(*this, "dealem_videoram")
, m_gfxdecode(*this, "gfxdecode")
+ , m_palette(*this, "palette")
{
}
@@ -38,13 +39,18 @@ protected:
virtual void video_start() override;
private:
- optional_shared_ptr<uint8_t> m_dealem_videoram;
DECLARE_MACHINE_RESET(dealem_vid);
void dealem_palette(palette_device &palette) const;
uint32_t screen_update_dealem(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- required_device<gfxdecode_device> m_gfxdecode;
+
void dealem_memmap(address_map &map);
TILE_GET_INFO_MEMBER(tile_info);
+
+ optional_shared_ptr<uint8_t> m_dealem_videoram;
+
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+
tilemap_t *m_tilemap = nullptr;
};
diff --git a/src/mame/barcrest/mpu4empire.cpp b/src/mame/barcrest/mpu4empire.cpp
index 61b46b1447d..d183f684bb8 100644
--- a/src/mame/barcrest/mpu4empire.cpp
+++ b/src/mame/barcrest/mpu4empire.cpp
@@ -16,8 +16,6 @@ public:
{
}
- void init_m4apachg();
-
};
#include "m4apachg.lh"
@@ -25,39 +23,32 @@ public:
} // anonymous namespace
-void mpu4empire_machines_state::init_m4apachg()
-{
- init_m4default();
- //Derived from Apache_Gold_(Empire)_[C02_800_25jp].gam
- use_m4_hopper_duart_a();
- use_m4_large_extender_b();
- use_m4_standard_reels();
- //PCKEY =b
- //STKEY =4
- //JPKEY =a
- //JPSET =5
- //DIP1_0=false
- //DIP1_1=true
- //DIP1_2=false
- //DIP1_3=true
- //DIP1_4=false
- //DIP1_5=false
- //DIP1_6=false
- //DIP1_7=false
- //DIP2_0=false
- //DIP2_1=false
- //DIP2_2=false
- //DIP2_3=true
- //DIP2_4=true
- //DIP2_5=false
- //DIP2_6=false
- //DIP2_7=false
- //Sound empire
- //Standard
- //Volume 0 Stereo= 1
- //Sample rate 16000
- //Front door code 0 Cash door code 0
-}
+//Derived from Apache_Gold_(Empire)_[C02_800_25jp].gam
+//PCKEY =b
+//STKEY =4
+//JPKEY =a
+//JPSET =5
+//DIP1_0=false
+//DIP1_1=true
+//DIP1_2=false
+//DIP1_3=true
+//DIP1_4=false
+//DIP1_5=false
+//DIP1_6=false
+//DIP1_7=false
+//DIP2_0=false
+//DIP2_1=false
+//DIP2_2=false
+//DIP2_3=true
+//DIP2_4=true
+//DIP2_5=false
+//DIP2_6=false
+//DIP2_7=false
+//Sound empire
+//Standard
+//Volume 0 Stereo= 1
+//Sample rate 16000
+//Front door code 0 Cash door code 0
ROM_START( m4apachg )
ROM_REGION( 0x020000, "maincpu", 0 )
@@ -869,6 +860,8 @@ ROM_START( m4jne )
ROM_END
+using namespace mpu4_traits;
+
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
@@ -876,107 +869,107 @@ ROM_END
most of these boot (after a single reset to initialize)
but have broken text, need to check VFD emulation */
-GAMEL(199?, m4apachg, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4apachg, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
-GAMEL(199?, m4apachga, m4apachg, mod4oki, mpu4, mpu4empire_machines_state, init_m4apachg, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
-GAMEL(199?, m4apachgb, m4apachg, mod4oki, mpu4, mpu4empire_machines_state, init_m4apachg, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
-GAMEL(199?, m4apachgc, m4apachg, mod4oki, mpu4, mpu4empire_machines_state, init_m4apachg, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
-GAMEL(199?, m4apachgd, m4apachg, mod4oki, mpu4, mpu4empire_machines_state, init_m4apachg, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
-GAMEL(199?, m4apachge, m4apachg, mod4oki, mpu4, mpu4empire_machines_state, init_m4apachg, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
-GAMEL(199?, m4apachgf, m4apachg, mod4oki, mpu4, mpu4empire_machines_state, init_m4apachg, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 7)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
-
-GAME(199?, m4bangrs, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bangrsa, m4bangrs, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bangrsb, m4bangrs, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4bankrd, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bankrda, m4bankrd, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bankrdb, m4bankrd, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bankrdc, m4bankrd, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bankrdd, m4bankrd, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4bigchs, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bigchsa, m4bigchs, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bigchsb, m4bigchs, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4cstrik, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4cstrika, m4cstrik, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4cstrikb, m4cstrik, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4cstrikc, m4cstrik, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4chacec, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Chase The Ace [Cards] (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4chaceca, m4chacec, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Chase The Ace [Cards] (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4chacef, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4chacefa, m4chacef, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4chacefb, m4chacef, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4chacefc, m4chacef, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4crzcap, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4crzcapa, m4crzcap, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4crzcapb, m4crzcap, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4crzcapc, m4crzcap, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4crfire, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Crossfire (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4crfirea, m4crfire, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Crossfire (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
-
-GAME(199?, m4eureka, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Eureka (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4eurekaa, m4eureka, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Eureka (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4eurekab, m4eureka, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Eureka (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4fright, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1X)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frighta, m4fright, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frightb, m4fright, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1i)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frightc, m4fright, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v?.?, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // bad dump
-GAME(199?, m4frightd, m4fright, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v3.3)",GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frighte, m4fright, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v3.0)",GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frightf, m4fright, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v?.?, set 2)",GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4gamblr, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","The Gambler (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gamblra, m4gamblr, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","The Gambler (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gamblrb, m4gamblr, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","The Gambler (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4gtrain, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gtraina, m4gtrain, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gtrainb, m4gtrain, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gtrainc, m4gtrain, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4goldfv, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Gold Fever (Empire) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4haunt, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4haunta, m4haunt, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4hauntb, m4haunt, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4hauntc, m4haunt, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4hauntd, m4haunt, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4hisprt, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4hisprta, m4hisprt, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4hisprtb, m4hisprt, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4hisprtc, m4hisprt, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4hisprtd, m4hisprt, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4hisprte, m4hisprt, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(1996, m4hotcsh, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(1996, m4hotcsha, m4hotcsh, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(1996, m4hotcshb, m4hotcsh, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(1996, m4hotcshc, m4hotcsh, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4monspn, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4monspna, m4monspn, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4monspnb, m4monspn, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4pbnudg, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4pbnudga, m4pbnudg, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4pbnudgb, m4pbnudg, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-
-GAME(199?, m4pitfal, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4pitfala, m4pitfal, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4pitfalb, m4pitfal, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4pitfalc, m4pitfal, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
-
-GAME(199?, m4ttrail, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4ttraila,m4ttrail, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4ttrailb,m4ttrail, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAMEL(199?, m4apachg, 0, mod4oki(R4, RT1, LPLB, HDA), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
+GAMEL(199?, m4apachga, m4apachg, mod4oki(R4, RT1, LPLB, HDA), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
+GAMEL(199?, m4apachgb, m4apachg, mod4oki(R4, RT1, LPLB, HDA), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
+GAMEL(199?, m4apachgc, m4apachg, mod4oki(R4, RT1, LPLB, HDA), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
+GAMEL(199?, m4apachgd, m4apachg, mod4oki(R4, RT1, LPLB, HDA), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
+GAMEL(199?, m4apachge, m4apachg, mod4oki(R4, RT1, LPLB, HDA), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
+GAMEL(199?, m4apachgf, m4apachg, mod4oki(R4, RT1, LPLB, HDA), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 7)", GAME_FLAGS|MACHINE_NO_SOUND, layout_m4apachg )
+
+GAME(199?, m4bangrs, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bangrsa, m4bangrs, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bangrsb, m4bangrs, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4bankrd, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bankrda, m4bankrd, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bankrdb, m4bankrd, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bankrdc, m4bankrd, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bankrdd, m4bankrd, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4bigchs, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigchsa, m4bigchs, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigchsb, m4bigchs, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4cstrik, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cstrika, m4cstrik, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cstrikb, m4cstrik, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cstrikc, m4cstrik, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4chacec, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Chase The Ace [Cards] (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chaceca, m4chacec, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Chase The Ace [Cards] (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4chacef, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chacefa, m4chacef, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chacefb, m4chacef, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chacefc, m4chacef, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4crzcap, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcapa, m4crzcap, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcapb, m4crzcap, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcapc, m4crzcap, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4crfire, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Crossfire (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4crfirea, m4crfire, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Crossfire (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+
+GAME(199?, m4eureka, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Eureka (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4eurekaa, m4eureka, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Eureka (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4eurekab, m4eureka, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Eureka (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4fright, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1X)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frighta, m4fright, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frightb, m4fright, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1i)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frightc, m4fright, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Fright Night (Empire) (MPU4, v?.?, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // bad dump
+GAME(199?, m4frightd, m4fright, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Fright Night (Empire) (MPU4, v3.3)",GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frighte, m4fright, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Fright Night (Empire) (MPU4, v3.0)",GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frightf, m4fright, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Fright Night (Empire) (MPU4, v?.?, set 2)",GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4gamblr, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","The Gambler (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gamblra, m4gamblr, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","The Gambler (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gamblrb, m4gamblr, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","The Gambler (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4gtrain, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gtraina, m4gtrain, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gtrainb, m4gtrain, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gtrainc, m4gtrain, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4goldfv, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Gold Fever (Empire) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4haunt, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Haunted House (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4haunta, m4haunt, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Haunted House (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hauntb, m4haunt, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Haunted House (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hauntc, m4haunt, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Haunted House (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hauntd, m4haunt, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Haunted House (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4hisprt, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","High Spirits (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprta, m4hisprt, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","High Spirits (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprtb, m4hisprt, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","High Spirits (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprtc, m4hisprt, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","High Spirits (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprtd, m4hisprt, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","High Spirits (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprte, m4hisprt, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","High Spirits (Empire) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(1996, m4hotcsh, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(1996, m4hotcsha, m4hotcsh, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(1996, m4hotcshb, m4hotcsh, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(1996, m4hotcshc, m4hotcsh, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4monspn, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4monspna, m4monspn, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4monspnb, m4monspn, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4pbnudg, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4pbnudga, m4pbnudg, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4pbnudgb, m4pbnudg, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+
+GAME(199?, m4pitfal, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Pitfall (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4pitfala, m4pitfal, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Pitfall (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4pitfalb, m4pitfal, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Pitfall (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4pitfalc, m4pitfal, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Pitfall (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+
+GAME(199?, m4ttrail, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4ttraila,m4ttrail, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4ttrailb,m4ttrail, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
// doesn't seem like the other Empire games (starts with RESETTING JNE, licensed, mislabeled?)
//Looks like the only one to have a proper protection routine, too so I'm guessing it's just a game they distributed, rather than made themselves
-GAME(199?, m4jne, 0, mod4oki, mpu4, mpu4empire_machines_state, init_m4default, ROT0, "Empire","The Jackpot's Not Enough (Empire) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4jne, 0, mod4oki(R4, RT1), mpu4, mpu4empire_machines_state, init_m4, ROT0, "Empire","The Jackpot's Not Enough (Empire) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
diff --git a/src/mame/barcrest/mpu4mdm.cpp b/src/mame/barcrest/mpu4mdm.cpp
index 99484b75141..3636fcd273c 100644
--- a/src/mame/barcrest/mpu4mdm.cpp
+++ b/src/mame/barcrest/mpu4mdm.cpp
@@ -426,71 +426,73 @@ ROM_END
} // anonymous namespace
+using namespace mpu4_traits;
+
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
/* MDM
most of these boot and act similar to the Empire games (ie bad text, but run OK) */
-GAME(199?, m42punlm, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","2p Unlimited (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m42punlm, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","2p Unlimited (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4silnud, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm?","Silver Nudger (Mdm?) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
+GAME(199?, m4silnud, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm?","Silver Nudger (Mdm?) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
-GAME(199?, m4nud2p, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm?","2p Nudger (Mdm?) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
+GAME(199?, m4nud2p, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm?","2p Nudger (Mdm?) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
-GAME(199?, m4ctn, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm?","Tuppenny Nudger Classic (Mdm?) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
+GAME(199?, m4ctn, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm?","Tuppenny Nudger Classic (Mdm?) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
-GAME(199?, m4bigapl, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bigapla, m4bigapl, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bigaplb, m4bigapl, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bigaplc, m4bigapl, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bigapld, m4bigapl, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bigaple, m4bigapl, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigapl, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigapla, m4bigapl, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigaplb, m4bigapl, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigaplc, m4bigapl, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigapld, m4bigapl, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigaple, m4bigapl, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4blztrl, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Blazing Trails (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4blztrla, m4blztrl, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Blazing Trails (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4blztrl, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Blazing Trails (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4blztrla, m4blztrl, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Blazing Trails (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bodymt, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Body Match (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, various alarms
+GAME(199?, m4bodymt, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Body Match (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, various alarms
-GAME(199?, m4coloss, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4colossa, m4coloss, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4colossb, m4coloss, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4colossc, m4coloss, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4colossd, m4coloss, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4colosse, m4coloss, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4colossf, m4coloss, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4colossg, m4coloss, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 8)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4coloss, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossa, m4coloss, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossb, m4coloss, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossc, m4coloss, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossd, m4coloss, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colosse, m4coloss, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossf, m4coloss, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossg, m4coloss, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 8)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4firebl, 0, mod2 ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4firebla, m4firebl, mod2 ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4fireblb, m4firebl, mod2 ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4fireblc, m4firebl, mod2 ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4firebld, m4firebl, mod2 ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4firebl, 0, mod2(R4, RT1),mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4firebla, m4firebl, mod2(R4, RT1),mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4fireblb, m4firebl, mod2(R4, RT1),mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4fireblc, m4firebl, mod2(R4, RT1),mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4firebld, m4firebl, mod2(R4, RT1),mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4mayhem, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Mayhem (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4mayhema, m4mayhem, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Mayhem (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mayhem, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Mayhem (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mayhema, m4mayhem, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Mayhem (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4themob, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4themoba, m4themob, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4themobb, m4themob, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4themob, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4themoba, m4themob, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4themobb, m4themob, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4nudbon, 0, mod2 ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Nudge Bonanza (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4nudbona, m4nudbon, mod2 ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Nudge Bonanza (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4nudbon, 0, mod2(R4, RT1),mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Nudge Bonanza (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4nudbona, m4nudbon, mod2(R4, RT1),mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Nudge Bonanza (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4nudgem, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Nudge Gems (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4nudgem, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Nudge Gems (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4smshgb, 0, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4smshgba,m4smshgb, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4smshgbb,m4smshgb, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4smshgbc,m4smshgb, mod4oki, mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4smshgb, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4smshgba,m4smshgb, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4smshgbb,m4smshgb, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4smshgbc,m4smshgb, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4snklad, 0, mod2 ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Snakes & Ladders (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4snklad, 0, mod2(R4, RT1),mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Snakes & Ladders (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4excam, 0, mod4oki ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Excalibur (Mdm) (MPU4, V1.4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4excamd,m4excam, mod4oki ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Excalibur (Mdm) (MPU4, V1.0D)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4excam, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Excalibur (Mdm) (MPU4, V1.4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4excamd,m4excam, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Excalibur (Mdm) (MPU4, V1.0D)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4front, 0, mod4oki ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Final Frontier (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4front, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Final Frontier (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4safar, 0, mod4oki ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Safari Club (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4safar, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Safari Club (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4snowbl, 0, mod2 ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Snowball Bingo (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4snowbl, 0, mod2(R4, RT1),mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Snowball Bingo (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4ewshft, 0, mod4oki ,mpu4, mpu4mdm_machines_state, init_m4default, ROT0, "Mdm","Each Way Shifter (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4ewshft, 0, mod4oki(R4, RT1), mpu4, mpu4mdm_machines_state, init_m4, ROT0, "Mdm","Each Way Shifter (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
diff --git a/src/mame/barcrest/mpu4misc.cpp b/src/mame/barcrest/mpu4misc.cpp
index 5d895ed21d5..99c891762d8 100644
--- a/src/mame/barcrest/mpu4misc.cpp
+++ b/src/mame/barcrest/mpu4misc.cpp
@@ -19,6 +19,8 @@ public:
} // anonymous namespace
+using namespace mpu4_traits;
+
ROM_START( m4bangin )
ROM_REGION( 0x020000, "maincpu", 0 )
@@ -166,7 +168,7 @@ ROM_END
ROM_LOAD( name, offset, length, hash ) \
M4DCRLS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4dcrls, 0, "70000116.bin", 0x0000, 0x040000, CRC(27e5ad77) SHA1(83cabd8b52efc6c0d5530b55683295208f64abb6), "Qps","Double Crazy Reels (Qps) (MPU4) (set 1)" ) // dcr_std_340.bin
@@ -195,7 +197,7 @@ GAME_CUSTOM( 199?, m4dcrls__q, m4dcrls, "70001116.bin",
ROM_LOAD( name, offset, length, hash ) \
M4DCRLS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
@@ -214,7 +216,7 @@ GAME_CUSTOM( 199?, m4dcrls__r, m4dcrls, "dcr_data_340.bin",
ROM_LOAD( name, offset, length, hash ) \
M4JUNGJK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
@@ -238,7 +240,7 @@ GAME_CUSTOM( 199?, m4jungjk__e, m4jungjk, "jungle.p1", 0
ROM_LOAD( name, offset, length, hash ) \
M4RHNOTE_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4rhnote, 0, "70000120.bin", 0x0000, 0x040000, CRC(d1ce1e1c) SHA1(2fc2b041b4e9fcade4b2ce6a0bc709f4174e2d88), "Qps","Red Hot Notes (Qps) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4rhnote__a, m4rhnote, "70000121.bin", 0x0000, 0x040000, CRC(1e1a26c0) SHA1(8a80a94d280c82887a0f7da607988597df23e1fb), "Qps","Red Hot Notes (Qps) (MPU4) (set 2)" )
GAME_CUSTOM( 199?, m4rhnote__b, m4rhnote, "70000125.bin", 0x0000, 0x080000, CRC(67a617a2) SHA1(3900c0cc3f8e4d52105096c1e21903cb83b8c1b7), "Qps","Red Hot Notes (Qps) (MPU4) (set 3)" )
@@ -278,7 +280,7 @@ GAME_CUSTOM( 199?, m4rhnote__y, m4rhnote, "rhn_std_110_lv.bin", 0
ROM_LOAD( name, offset, length, hash ) \
M4RHROCK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4rhrock, 0, "rhr_v200_1625_da8c_nlv.bin", 0x0000, 0x040000, CRC(dd67f5b3) SHA1(19b7b57ef20a2ad7997cf748396b246fda87db70), "Qps","Red Hot Rocks (Qps) (MPU4) (set 1)" )
@@ -298,7 +300,7 @@ GAME_CUSTOM( 199?, m4rhrock__a, m4rhrock, "rhr_v300_1216_ce52_nlv.bin", 0x0
ROM_LOAD( name, offset, length, hash ) \
M4RHWHL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4rhwhl, 0, "70001184.bin", 0x0000, 0x080000, CRC(8792d95b) SHA1(24b4f78728db7ee95d1fcd3ba38b49a20baaae6b), "Qps","Red Hot Wheels (Qps) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4rhwhl__a, m4rhwhl, "rhw_v100_1333_6d40_lv.bin", 0x0000, 0x080000, CRC(9ef7b655) SHA1(605822eaee44bebf554218ef7346192a6a84077e), "Qps","Red Hot Wheels (Qps) (MPU4) (set 2)" )
GAME_CUSTOM( 199?, m4rhwhl__b, m4rhwhl, "rhw_v310_0925_0773_lv_p.bin", 0x0000, 0x080000, CRC(11880908) SHA1(0165bacf73dd54959975b3f186e256fd8d690d34), "Qps","Red Hot Wheels (Qps) (MPU4) (set 3)" )
@@ -316,7 +318,7 @@ GAME_CUSTOM( 199?, m4rhwhl__c, m4rhwhl, "rhw_v310_0931_fa02_lv.bin", 0x00
ROM_LOAD( name, offset, length, hash ) \
M4RDEAL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4rdeal, 0, "70000703.bin", 0x0000, 0x080000, CRC(11e51311) SHA1(71a4327fa01cd7e899d423adc34c732ed56118d8), "Qps","Reel Deal (Qps) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4rdeal__a, m4rdeal, "70000704.bin", 0x0000, 0x080000, CRC(b161c08b) SHA1(bb914eb900aff0f6eeec33ff8a595a288306e073), "Qps","Reel Deal (Qps) (MPU4) (set 2)" )
@@ -343,7 +345,7 @@ GAME_CUSTOM( 199?, m4rdeal__i, m4rdeal, "70001745.bin", 0x0000, 0x080000, CR
ROM_LOAD( name, offset, length, hash ) \
M4SHOKNR_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4shoknr, 0, "snr_v300_1218_3019_lv.bin", 0x0000, 0x040000, CRC(bec80497) SHA1(08de5e29a063b01fb904a156170a3063633115ab), "Qps","Shock 'n' Roll (Qps) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4shoknr__a, m4shoknr, "snr_v300_1221_c8ff_nlv.bin", 0x0000, 0x040000, CRC(d191b361) SHA1(4146e509e77878a51e32de877768504b3c85e6f8), "Qps","Shock 'n' Roll (Qps) (MPU4) (set 2)" )
@@ -363,7 +365,7 @@ GAME_CUSTOM( 199?, m4shoknr__c, m4shoknr, "snr_v200_1655_5a69_nlv.bin", 0
ROM_LOAD( name, offset, length, hash ) \
M4TORNAD_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4tornad, 0, "torn_v110_1146_979d_lv.bin", 0x0000, 0x040000, CRC(3160bddd) SHA1(4f36b081c8f6859a3fe55e1f177a0406c2480987), "Qps","Tornado (Qps) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4tornad__a, m4tornad, "torn_v110_1153_955f_nlv.bin", 0x0000, 0x040000, CRC(c437040d) SHA1(50c5ba655989b7f6a2ee61af0ad007ce825f4364), "Qps","Tornado (Qps) (MPU4) (set 2)" )
@@ -387,7 +389,7 @@ GAME_CUSTOM( 199?, m4tornad__g, m4tornad, "tornsp_v200_1626_ec93_lv.bin",
ROM_LOAD( name, offset, length, hash ) \
M4SHKWAV_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4shkwav, 0, "swave_v210_1135_08dd_lv.bin", 0x0000, 0x040000, CRC(ca9d40a3) SHA1(65c9e4aa022eb6fe70d619f67638c37ad578ddbf), "Qps","Shockwave (Qps) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4shkwav__a, m4shkwav, "swave_v210_11376_0bb3_nlv.bin", 0x0000, 0x040000, CRC(3fcaf973) SHA1(28258c8c60e6b542e1789cd8a4cfd530d1ed6084), "Qps","Shockwave (Qps) (MPU4) (set 2)" )
GAME_CUSTOM( 199?, m4shkwav__b, m4shkwav, "swsplv.bin", 0x0000, 0x040000, CRC(1e33e93f) SHA1(3e87f8ed35da776e1968c9574c140cc3984ea8de), "Qps","Shockwave (Qps) (MPU4) (set 3)" )
@@ -398,7 +400,7 @@ GAME_CUSTOM( 199?, m4shkwav__b, m4shkwav, "swsplv.bin",
ROM_IGNORE(0x40000)
M4SHKWAV_EXTRA_ROMS
ROM_END
-GAME(199?, m4shkwav__c, m4shkwav, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, "Qps", "Shockwave (Qps) (MPU4) (set 4)", GAME_FLAGS )
+GAME(199?, m4shkwav__c, m4shkwav, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, "Qps", "Shockwave (Qps) (MPU4) (set 4)", GAME_FLAGS )
GAME_CUSTOM( 199?, m4shkwav__d, m4shkwav, "swave_v300_1552_13ed_nlv.bin", 0x0000, 0x040000, CRC(b0e03f04) SHA1(fdd113af30fd9e87b171ecdf3be7e720366476b3), "Qps","Shockwave (Qps) (MPU4) (set 5)" )
GAME_CUSTOM( 199?, m4shkwav__e, m4shkwav, "swave_v300_1555_119d_lv.bin", 0x0000, 0x040000, CRC(45b786d4) SHA1(24fd4fdea684103334385ca329f384796b496e2c), "Qps","Shockwave (Qps) (MPU4) (set 6)" )
GAME_CUSTOM( 199?, m4shkwav__f, m4shkwav, "swsp_v300_1602_e1b2_nlv.bin", 0x0000, 0x040000, CRC(4ed74015) SHA1(0ab2167ba0ce6f1a1317c2087091187b9fa94c27), "Qps","Shockwave (Qps) (MPU4) (set 7)" )
@@ -417,7 +419,7 @@ GAME_CUSTOM( 199?, m4shkwav__g, m4shkwav, "swsp_v300_1606_ded8_lv.bin",
ROM_LOAD( name, offset, length, hash ) \
M4CLAB_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4clab, 0, "70000019.bin", 0x0000, 0x040000, CRC(23a12863) SHA1(4047cb8cbc03f96f2b8681b6276e100e8e9194a5), "Qps","Cash Lab (Qps) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4clab__a, m4clab, "70000020.bin", 0x0000, 0x040000, CRC(88af7368) SHA1(14dea4267a4365286eea1e02b9b44d4053618cbe), "Qps","Cash Lab (Qps) (MPU4) (set 2)" )
@@ -440,7 +442,7 @@ GAME_CUSTOM( 199?, m4clab__j, m4clab, "clabrom", 0x0
ROM_LOAD( name, offset, length, hash ) \
M4SDQUID_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4sdquid, 0, "70000352.bin", 0x0000, 0x040000, CRC(303d6177) SHA1(aadff8a81244bfd62d1cc088caf01496e1ff61db), "Qps","Sundance Quid (Qps) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4sdquid__a, m4sdquid, "70000353.bin", 0x0000, 0x040000, CRC(6e3a9dfc) SHA1(1d5d04140811e17267102c0618ffdaf70f71f717), "Qps","Sundance Quid (Qps) (MPU4) (set 2)" )
@@ -467,7 +469,7 @@ GAME_CUSTOM( 199?, m4sdquid__k, m4sdquid, "70001461.bin", 0x0000, 0x080000,
ROM_LOAD( name, offset, length, hash ) \
M4LOOPLT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4misc_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4looplt, 0, "70000500.bin", 0x0000, 0x080000, CRC(040699a5) SHA1(e1ebc23684c5bc1faaac7409d2179488c3022872), "Qps","Loop The Loot (Qps) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4looplt__a, m4looplt, "70000500a.bin", 0x0000, 0x080000, CRC(0668f52d) SHA1(6560309facf0022e3c14421b848f212b18be7550), "Qps","Loop The Loot (Qps) (MPU4) (set 2)" )
@@ -488,20 +490,20 @@ GAME_CUSTOM( 199?, m4looplt__m, m4looplt, "70001505.bin", 0x0000, 0x080
/* Global */
// boot to "Percent Change" then "*initializing*"
-GAME(199?, m4bangin, 0, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Bangin' Away (Global) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4bangina, m4bangin, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Bangin' Away (Global) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4banginb, m4bangin, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Bangin' Away (Global) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bangin, 0, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Bangin' Away (Global) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bangina, m4bangin, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Bangin' Away (Global) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4banginb, m4bangin, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Bangin' Away (Global) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4wwc, 0, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4wwca, m4wwc, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 2)" , GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4wwcb, m4wwc, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4wwc, 0, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4wwca, m4wwc, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 2)" , GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4wwcb, m4wwc, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4screw, 0, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.8)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4screwp, m4screw, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.8) (Protocol)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4screwa, m4screw, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.7)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4screwb, m4screw, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4screw, 0, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.8)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4screwp, m4screw, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.8) (Protocol)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4screwa, m4screw, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.7)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4screwb, m4screw, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.5)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4vfm, 0, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Value For Money (Global) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4vfm, 0, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Value For Money (Global) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4jiggin, 0, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Jiggin' In The Riggin' (Global) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4jiggina, m4jiggin, mod4oki, mpu4, mpu4misc_machines_state, init_m4default, ROT0, "Global","Jiggin' In The Riggin' (Global) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4jiggin, 0, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Jiggin' In The Riggin' (Global) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4jiggina, m4jiggin, mod4oki(R4, RT1), mpu4, mpu4misc_machines_state, init_m4, ROT0, "Global","Jiggin' In The Riggin' (Global) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
diff --git a/src/mame/barcrest/mpu4mod2sw.cpp b/src/mame/barcrest/mpu4mod2sw.cpp
index a63360debb5..8e0cde95534 100644
--- a/src/mame/barcrest/mpu4mod2sw.cpp
+++ b/src/mame/barcrest/mpu4mod2sw.cpp
@@ -2,15 +2,12 @@
// copyright-holders:David Haywood
/* MPU4 'Mod2' Sets
- This is the original MPU4 board, with AY8913 chip
+ This is the original MPU4 board, with AY-3-8913 chip.
+ If a set requires samples it doesn't belong here!
- if a set requires samples it doesn't belong here!
- the AY was only present on the original MOD2 board
- although you could apparently fit one on a MOD4
- if you wanted.
-
- Sets only get here if they do enough and make enough
- sounds for me to know they use the AY.
+ The AY-3-8913 was only present on the original MOD2
+ board, although you could apparently fit an AY-3-8912
+ (which also has one I/O port) on a MOD4 if you wanted.
*/
@@ -24,32 +21,85 @@ namespace {
class mpu4mod2_machines_state : public mpu4_state
{
public:
-
mpu4mod2_machines_state(const machine_config &mconfig, device_type type, const char *tag) :
mpu4_state(mconfig, type, tag)
{
}
- template<const uint8_t* Table> void mod2_cheatchr_pal_rtc(machine_config &config)
- {
- mod2_cheatchr_pal<Table>(config);
+ template<const uint8_t* Table> void mod2_cheatchr_pal_f(machine_config &config);
+ template<const uint8_t* Table> void mod2_cheatchr_pal_rtc_f(machine_config &config);
+
+ // bootleg mod2
+ template<uint8_t Fixed> void mod2_bootleg_fixedret_f(machine_config &config);
+
+ void mod2_chr_blastbnk_f(machine_config &config);
+ void mod2_chr_copcash_f(machine_config &config);
- m_maincpu->set_addrmap(AS_PROGRAM, &mpu4mod2_machines_state::mpu4_memmap_characteriser_rtc);
+ void mod4psg_f(machine_config &config);
- M48T02(config, "rtc");
+ template<const uint8_t* Table, typename... T>
+ auto mod2_cheatchr_pal(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod2_machines_state::mod2_cheatchr_pal_f<Table>, traits...);
+ }
+ template<const uint8_t* Table, typename... T>
+ auto mod2_cheatchr_pal_rtc(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod2_machines_state::mod2_cheatchr_pal_rtc_f<Table>, traits...);
+ }
+ template<uint8_t Fixed, typename... T>
+ auto mod2_bootleg_fixedret(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod2_machines_state::mod2_bootleg_fixedret_f<Fixed>, traits...);
+ }
+ template<typename... T>
+ auto mod2_chr_blastbnk(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod2_machines_state::mod2_chr_blastbnk_f, traits...);
+ }
+ template<typename... T>
+ auto mod2_chr_copcash(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod2_machines_state::mod2_chr_copcash_f, traits...);
+ }
+ template<typename... T>
+ auto mod4psg(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod2_machines_state::mod4psg_f, traits...);
}
- void init_connect4();
- void init_m4actpak();
- void init_m4alladv();
- void init_m4alpha();
- void init_m4actclb();
void init_m4test();
private:
void mpu4_memmap_characteriser_rtc(address_map &map);
+
+ void ay8912_outport_w(uint8_t data);
};
+template<const uint8_t* Table> void mpu4mod2_machines_state::mod2_cheatchr_pal_f(machine_config &config)
+{
+ mod2_f(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4mod2_machines_state::mpu4_memmap_characteriser);
+
+ MPU4_CHARACTERISER_PAL(config, m_characteriser, 0);
+ m_characteriser->set_cpu_tag("maincpu");
+ m_characteriser->set_allow_6809_cheat(true);
+ m_characteriser->set_lamp_table(Table);
+}
+
+
+// bootleg mod2
+template<uint8_t Fixed> void mpu4mod2_machines_state::mod2_bootleg_fixedret_f(machine_config &config)
+{
+ mod2_f(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4mod2_machines_state::mpu4_memmap_bootleg_characteriser);
+
+ MPU4_CHARACTERISER_BL(config, m_characteriser_bl, 0);
+ m_characteriser_bl->set_bl_fixed_return(Fixed);
+}
+
void mpu4mod2_machines_state::mpu4_memmap_characteriser_rtc(address_map &map)
{
mpu4_memmap_characteriser(map);
@@ -57,6 +107,55 @@ void mpu4mod2_machines_state::mpu4_memmap_characteriser_rtc(address_map &map)
map(0x1000, 0x17ff).rw("rtc", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write));
}
+template<const uint8_t* Table> void mpu4mod2_machines_state::mod2_cheatchr_pal_rtc_f(machine_config &config)
+{
+ mod2_cheatchr_pal_f<Table>(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4mod2_machines_state::mpu4_memmap_characteriser_rtc);
+
+ M48T02(config, "rtc");
+}
+
+
+void mpu4mod2_machines_state::mod2_chr_blastbnk_f(machine_config &config)
+{
+ mod2_f(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4mod2_machines_state::mpu4_memmap_bl_characteriser_blastbank);
+
+ MPU4_CHARACTERISER_BL_BLASTBANK(config, m_characteriser_blastbank, 0);
+}
+
+void mpu4mod2_machines_state::mod2_chr_copcash_f(machine_config &config)
+{
+ mod2_f(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4mod2_machines_state::mpu4_memmap_bl_characteriser_blastbank);
+
+ MPU4_CHARACTERISER_BL_BLASTBANK(config, m_characteriser_blastbank, 0);
+ m_characteriser_blastbank->set_retxor(0x03);
+}
+
+
+
+void mpu4mod2_machines_state::ay8912_outport_w(uint8_t data)
+{
+ // TODO: figure out what maps here
+ logerror("%s: AY-3-8912 output port <- $%02X\n", machine().describe_context(), data);
+}
+
+void mpu4mod2_machines_state::mod4psg_f(machine_config &config)
+{
+ mpu4base(config);
+ AY8912(config, m_ay8913, MPU4_MASTER_CLOCK/4);
+ m_ay8913->port_a_write_callback().set(FUNC(mpu4mod2_machines_state::ay8912_outport_w));
+ m_ay8913->set_flags(AY8910_SINGLE_OUTPUT);
+ m_ay8913->set_resistors_load(820, 0, 0);
+ m_ay8913->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_ay8913->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
+
+
#include "m4actclb.lh"
#include "m4actpak.lh"
#include "m4alladv.lh"
@@ -66,15 +165,6 @@ void mpu4mod2_machines_state::mpu4_memmap_characteriser_rtc(address_map &map)
} // anonymous namespace
-
-void mpu4mod2_machines_state::init_connect4()
-{
- m_reels = 0; //reel-free game
- m_overcurrent_detect = true;
- setup_rom_banks();
-}
-
-
INPUT_PORTS_START( connect4 )
PORT_START("ORANGE1")
PORT_BIT(0xFF, IP_ACTIVE_HIGH, IPT_UNUSED)
@@ -290,38 +380,32 @@ ROM_START( m4stakeua )
ROM_LOAD( "stakeup.hex", 0x6000, 0x00a000, CRC(a7ac8f19) SHA1(ec87512e16ff0252012067ad655c3fcee1d2e908) ) // needs to be split
ROM_END
-void mpu4mod2_machines_state::init_m4actpak()
-{
- //Derived from Action_Pack_(Barcrest)_[C02_800_4jp].gam
- use_m4_hopper_tubes();
- use_m4_standard_reels();
- setup_rom_banks();
- //PCKEY =0
- //STKEY =0
- //JPKEY =0
- //JPSET =0
- //DIP1_0=false
- //DIP1_1=false
- //DIP1_2=false
- //DIP1_3=false
- //DIP1_4=false
- //DIP1_5=false
- //DIP1_6=false
- //DIP1_7=false
- //DIP2_0=false
- //DIP2_1=false
- //DIP2_2=false
- //DIP2_3=false
- //DIP2_4=false
- //DIP2_5=true
- //DIP2_6=false
- //DIP2_7=false
- //Sound barcrest1
- //Standard
- //Volume 0 Stereo= 1
- //Sample rate 16000
- //Front door code 0 Cash door code 0
-}
+//Derived from Action_Pack_(Barcrest)_[C02_800_4jp].gam
+//PCKEY =0
+//STKEY =0
+//JPKEY =0
+//JPSET =0
+//DIP1_0=false
+//DIP1_1=false
+//DIP1_2=false
+//DIP1_3=false
+//DIP1_4=false
+//DIP1_5=false
+//DIP1_6=false
+//DIP1_7=false
+//DIP2_0=false
+//DIP2_1=false
+//DIP2_2=false
+//DIP2_3=false
+//DIP2_4=false
+//DIP2_5=true
+//DIP2_6=false
+//DIP2_7=false
+//Sound barcrest1
+//Standard
+//Volume 0 Stereo= 1
+//Sample rate 16000
+//Front door code 0 Cash door code 0
ROM_START( m4actpak )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -334,38 +418,32 @@ ROM_START( m4actpaka )
ROM_LOAD( "action.hex", 0x0000, 0x010000, CRC(c5808b5d) SHA1(577950166c91e7f1ca390ebcf34be2da945c0a5f) )
ROM_END
-void mpu4mod2_machines_state::init_m4alladv()
-{
- //Derived from All_Cash_Advance_(Barcrest)_[C01_800_4jp].gam
- init_m4default();
- use_m4_hopper_tubes();
- use_m4_standard_reels();
- //PCKEY =0
- //STKEY =0
- //JPKEY =0
- //JPSET =0
- //DIP1_0=false
- //DIP1_1=false
- //DIP1_2=false
- //DIP1_3=false
- //DIP1_4=false
- //DIP1_5=false
- //DIP1_6=false
- //DIP1_7=false
- //DIP2_0=false
- //DIP2_1=false
- //DIP2_2=false
- //DIP2_3=false
- //DIP2_4=false
- //DIP2_5=false
- //DIP2_6=false
- //DIP2_7=false
- //Sound empire
- //Standard
- //Volume 0 Stereo= 1
- //Sample rate 16000
- //Front door code 0 Cash door code 0
-}
+//Derived from All_Cash_Advance_(Barcrest)_[C01_800_4jp].gam
+//PCKEY =0
+//STKEY =0
+//JPKEY =0
+//JPSET =0
+//DIP1_0=false
+//DIP1_1=false
+//DIP1_2=false
+//DIP1_3=false
+//DIP1_4=false
+//DIP1_5=false
+//DIP1_6=false
+//DIP1_7=false
+//DIP2_0=false
+//DIP2_1=false
+//DIP2_2=false
+//DIP2_3=false
+//DIP2_4=false
+//DIP2_5=false
+//DIP2_6=false
+//DIP2_7=false
+//Sound empire
+//Standard
+//Volume 0 Stereo= 1
+//Sample rate 16000
+//Front door code 0 Cash door code 0
ROM_START( m4alladv )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -897,38 +975,32 @@ ROM_START( m421 )
ROM_LOAD( "twentyone.bin", 0x0000, 0x010000, CRC(243f3bc1) SHA1(141df3dcdd8d70ad26a76ec071e0cd927357ee6e) )
ROM_END
-void mpu4mod2_machines_state::init_m4alpha()
-{
- //Derived from Alphabet_(Barcrest)_[C03_1024_4jp].gam
- init_m4default();
- use_m4_hopper_tubes();
- use_m4_standard_reels();
- //PCKEY =0
- //STKEY =0
- //JPKEY =0
- //JPSET =0
- //DIP1_0=false
- //DIP1_1=false
- //DIP1_2=false
- //DIP1_3=false
- //DIP1_4=false
- //DIP1_5=false
- //DIP1_6=false
- //DIP1_7=false
- //DIP2_0=false
- //DIP2_1=false
- //DIP2_2=false
- //DIP2_3=false
- //DIP2_4=false
- //DIP2_5=false
- //DIP2_6=false
- //DIP2_7=false
- //Sound empire
- //Standard
- //Volume 0 Stereo= 0
- //Sample rate 16000
- //Front door code 255 Cash door code 255
-}
+//Derived from Alphabet_(Barcrest)_[C03_1024_4jp].gam
+//PCKEY =0
+//STKEY =0
+//JPKEY =0
+//JPSET =0
+//DIP1_0=false
+//DIP1_1=false
+//DIP1_2=false
+//DIP1_3=false
+//DIP1_4=false
+//DIP1_5=false
+//DIP1_6=false
+//DIP1_7=false
+//DIP2_0=false
+//DIP2_1=false
+//DIP2_2=false
+//DIP2_3=false
+//DIP2_4=false
+//DIP2_5=false
+//DIP2_6=false
+//DIP2_7=false
+//Sound empire
+//Standard
+//Volume 0 Stereo= 0
+//Sample rate 16000
+//Front door code 255 Cash door code 255
ROM_START( m4alpha )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -1159,6 +1231,11 @@ ROM_START( m4wayina )
ROM_LOAD( "wi3.bin", 0x6000, 0x002000, CRC(1ba06ef1) SHA1(495c4e21a5b34cba0859e4e8fc842036c97ec063) )
ROM_END
+ROM_START( m4funh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "funhouse.bin", 0x00000, 0x10000, CRC(4e342025) SHA1(288125ff5e3da7249d89dfcc3cd0915f791f7d43) )
+ROM_END
+
ROM_START( m4actbnka )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -1171,38 +1248,32 @@ ROM_START( m4actbnkb )
ROM_LOAD( "abank.hex", 0x6000, 0x00a000, CRC(2cd1a269) SHA1(5ce22b2736844a2de6cda04abdd0fe435391e033) ) // split me
ROM_END
-void mpu4mod2_machines_state::init_m4actclb()
-{
- //Derived from Action_Club_(Barcrest)_[C03_800_150jp]_[c].gam
- init_m4default();
- use_m4_hopper_tubes();
- use_m4_standard_reels();
- //PCKEY =0
- //STKEY =0
- //JPKEY =0
- //JPSET =0
- //DIP1_0=true
- //DIP1_1=true
- //DIP1_2=true
- //DIP1_3=true
- //DIP1_4=true
- //DIP1_5=true
- //DIP1_6=true
- //DIP1_7=true
- //DIP2_0=false
- //DIP2_1=false
- //DIP2_2=false
- //DIP2_3=false
- //DIP2_4=false
- //DIP2_5=true
- //DIP2_6=false
- //DIP2_7=false
- //Sound barcrest1
- //Standard
- //Volume 2 Stereo= 1
- //Sample rate 16000
- //Front door code 0 Cash door code 0
-}
+//Derived from Action_Club_(Barcrest)_[C03_800_150jp]_[c].gam
+//PCKEY =0
+//STKEY =0
+//JPKEY =0
+//JPSET =0
+//DIP1_0=true
+//DIP1_1=true
+//DIP1_2=true
+//DIP1_3=true
+//DIP1_4=true
+//DIP1_5=true
+//DIP1_6=true
+//DIP1_7=true
+//DIP2_0=false
+//DIP2_1=false
+//DIP2_2=false
+//DIP2_3=false
+//DIP2_4=false
+//DIP2_5=true
+//DIP2_6=false
+//DIP2_7=false
+//Sound barcrest1
+//Standard
+//Volume 2 Stereo= 1
+//Sample rate 16000
+//Front door code 0 Cash door code 0
ROM_START( m4actclb )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -1701,266 +1772,267 @@ ROM_START( m4graffd )
ROM_LOAD( "grafittirom.bin", 0x0000, 0x010000, CRC(36135d6e) SHA1(e71eedabae36971739f8a6fd56a4a954de29944b) )
ROM_END
+using namespace mpu4_traits;
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
-GAME(199?, m4rsg, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type) (RSG 1.2)",GAME_FLAGS )
-GAME(199?, m4rsga, m4rsg, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type) (R4G 1.0)",GAME_FLAGS )
+GAME(199?, m4rsg, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type) (RSG 1.2)",GAME_FLAGS )
+GAME(199?, m4rsga, m4rsg, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type) (R4G 1.0)",GAME_FLAGS )
-GAME(199?, m4stopcl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Stop the Clock (Barcrest) (MPU4) (SC 2.5)",GAME_FLAGS )
+GAME(199?, m4stopcl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Stop the Clock (Barcrest) (MPU4) (SC 2.5)",GAME_FLAGS )
-GAME(199?, m4crkpot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Crackpot 100 Club (Barcrest) (MPU4) (C1P 1.2)",GAME_FLAGS )
-GAME(199?, m4crkpota, m4crkpot, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Crackpot 100 Club (Barcrest) (MPU4) (CP 3.8)",GAME_FLAGS )
-GAME(199?, m4crkpotb, m4crkpot, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Crackpot 100 Club (Barcrest) (MPU4) (CP 3.1)",GAME_FLAGS )
+GAME(199?, m4crkpot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Crackpot 100 Club (Barcrest) (MPU4) (C1P 1.2)",GAME_FLAGS )
+GAME(199?, m4crkpota, m4crkpot, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Crackpot 100 Club (Barcrest) (MPU4) (CP 3.8)",GAME_FLAGS )
+GAME(199?, m4crkpotb, m4crkpot, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Crackpot 100 Club (Barcrest) (MPU4) (CP 3.1)",GAME_FLAGS )
-GAME(199?, m4hiroll, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","High Roller (Barcrest) (Dutch) (MPU4) (HR 3.0)",GAME_FLAGS )
+GAME(199?, m4hiroll, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","High Roller (Barcrest) (Dutch) (MPU4) (HR 3.0)",GAME_FLAGS )
-GAME(199?, m4multcl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Multiplay Club (Barcrest) (MPU4, MP 2.8)",GAME_FLAGS )
+GAME(199?, m4multcl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Multiplay Club (Barcrest) (MPU4, MP 2.8)",GAME_FLAGS )
-GAME(199?, m4reelpk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Reel Poker (Barcrest) (MPU4) (R2P 3.0)",GAME_FLAGS )
+GAME(199?, m4reelpk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Reel Poker (Barcrest) (MPU4) (R2P 3.0)",GAME_FLAGS )
-GAME(199?, m4grbbnk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Grab The Bank (Barcrest) (MPU4) (G4B 2.0)",GAME_FLAGS )
-GAME(199?, m4grbbnka, m4grbbnk, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Grab The Bank (Barcrest) (MPU4) (G4B 2.1)",GAME_FLAGS )
+GAME(199?, m4grbbnk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Grab The Bank (Barcrest) (MPU4) (G4B 2.0)",GAME_FLAGS )
+GAME(199?, m4grbbnka, m4grbbnk, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Grab The Bank (Barcrest) (MPU4) (G4B 2.1)",GAME_FLAGS )
// doesn't run valid code, bad (missing a ROM)
-GAME(199?, m4grbbnkb, m4grbbnk, mod2_cheatchr, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Grab The Bank (Barcrest) (MPU4) (G4B 1.0)",GAME_FLAGS )
+GAME(199?, m4grbbnkb, m4grbbnk, mod2_cheatchr(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Grab The Bank (Barcrest) (MPU4) (G4B 1.0)",GAME_FLAGS )
-GAME(199?, m4sgrab, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Smash 'n' Grab (Barcrest) (MPU4) (SAG 1.0, set 1)",GAME_FLAGS )
-GAME(199?, m4sgraba, m4sgrab, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Smash 'n' Grab (Barcrest) (MPU4) (SAG 1.0, set 2)",GAME_FLAGS )
-GAME(199?, m4sgrabb, m4sgrab, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Smash 'n' Grab (Barcrest) (MPU4) (SAG 3.4)",GAME_FLAGS )
+GAME(199?, m4sgrab, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Smash 'n' Grab (Barcrest) (MPU4) (SAG 1.0, set 1)",GAME_FLAGS )
+GAME(199?, m4sgraba, m4sgrab, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Smash 'n' Grab (Barcrest) (MPU4) (SAG 1.0, set 2)",GAME_FLAGS )
+GAME(199?, m4sgrabb, m4sgrab, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Smash 'n' Grab (Barcrest) (MPU4) (SAG 3.4)",GAME_FLAGS )
-GAME(199?, m4potlck, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Pot Luck 100 Club (Barcrest) (MPU4) (P1L 2.2)",GAME_FLAGS )
-GAME(199?, m4potlcka, m4potlck, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Pot Luck 100 Club (Barcrest) (MPU4) (PL 2.7)",GAME_FLAGS )
+GAME(199?, m4potlck, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Pot Luck 100 Club (Barcrest) (MPU4) (P1L 2.2)",GAME_FLAGS )
+GAME(199?, m4potlcka, m4potlck, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Pot Luck 100 Club (Barcrest) (MPU4) (PL 2.7)",GAME_FLAGS )
-GAME(199?, m4wayin, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::wayin_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Super Way In (Barcrest) (MPU4) (WS 1.0)",GAME_FLAGS )
+GAME(199?, m4wayin, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::wayin_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Super Way In (Barcrest) (MPU4) (WS 1.0)",GAME_FLAGS )
// non-standard protection, hack?
-GAME(199?, m4wayina, m4wayin, mod2_bootleg_fixedret<0x40>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Way In Mk 2 (Barcrest) (bootleg) (MPU4)",GAME_FLAGS )
+GAME(199?, m4wayina, m4wayin, mod2_bootleg_fixedret<0x40>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Way In Mk 2 (Barcrest) (bootleg) (MPU4)",GAME_FLAGS )
-GAME(199?, m4stakeu, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Stake Up Club (Barcrest) (MPU4) (SU 4.4)",GAME_FLAGS )
-GAME(199?, m4stakeua, m4stakeu, mod2_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Stake Up Club (Barcrest) (MPU4) (SU 4.8)",GAME_FLAGS )
+GAME(199?, m4stakeu, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Stake Up Club (Barcrest) (MPU4) (SU 4.4)",GAME_FLAGS )
+GAME(199?, m4stakeua, m4stakeu, mod2_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Stake Up Club (Barcrest) (MPU4) (SU 4.8)",GAME_FLAGS )
-GAME(199?, m4clbclm, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Club Climber (Barcrest) (MPU4, C1C 3.3)",GAME_FLAGS )
-GAME(199?, m4clbclma, m4clbclm, mod2_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Club Climber (Barcrest) (MPU4, CC 4.5)",GAME_FLAGS )
+GAME(199?, m4clbclm, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Club Climber (Barcrest) (MPU4, C1C 3.3)",GAME_FLAGS )
+GAME(199?, m4clbclma, m4clbclm, mod2_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Club Climber (Barcrest) (MPU4, CC 4.5)",GAME_FLAGS )
-GAMEL(199?, m4actpak, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4actpak, ROT0, "Barcrest","Action Pack (Barcrest) (MPU4) (AP 0.4)",GAME_FLAGS, layout_m4actpak )
-GAMEL(199?, m4actpaka,m4actpak, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4actpak, ROT0, "Barcrest","Action Pack (Barcrest) (MPU4) (AP 0.5)",GAME_FLAGS, layout_m4actpak )
+GAMEL(199?, m4actpak, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R4, RT1, HT), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Action Pack (Barcrest) (MPU4) (AP 0.4)",GAME_FLAGS, layout_m4actpak )
+GAMEL(199?, m4actpaka,m4actpak, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R4, RT1, HT), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Action Pack (Barcrest) (MPU4) (AP 0.5)",GAME_FLAGS, layout_m4actpak )
-GAMEL(199?, m4alladv, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::buc_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4alladv, ROT0, "Barcrest","All Cash Advance (Barcrest) (MPU4) (C2B 6.0)",GAME_FLAGS, layout_m4alladv )
+GAMEL(199?, m4alladv, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::buc_characteriser_prot>(R4, RT1, HT), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","All Cash Advance (Barcrest) (MPU4) (C2B 6.0)",GAME_FLAGS, layout_m4alladv )
-GAME(199?, m4clbdbl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Club Double (Barcrest) (MPU4) (CD 1.6)",GAME_FLAGS )
+GAME(199?, m4clbdbl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Club Double (Barcrest) (MPU4) (CD 1.6)",GAME_FLAGS )
-GAME(199?, m4hittp2, m4hittop, mod2_cheatchr_pal<mpu4_characteriser_pal::hittop_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Hit The Top (Barcrest) (MPU4, Mod 2 type, H4T 2.0, set 1)",GAME_FLAGS )
-GAME(199?, m4hittp2a, m4hittop, mod2_cheatchr_pal<mpu4_characteriser_pal::hittop_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Hit The Top (Barcrest) (MPU4, Mod 2 type, H4T 2.0, set 2)",GAME_FLAGS )
+GAME(199?, m4hittp2, m4hittop, mod2_cheatchr_pal<mpu4_characteriser_pal::hittop_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Hit The Top (Barcrest) (MPU4, Mod 2 type, H4T 2.0, set 1)",GAME_FLAGS )
+GAME(199?, m4hittp2a, m4hittop, mod2_cheatchr_pal<mpu4_characteriser_pal::hittop_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Hit The Top (Barcrest) (MPU4, Mod 2 type, H4T 2.0, set 2)",GAME_FLAGS )
-GAME(199?, m4toptena, m4topten, mod2_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Top Tenner (Barcrest) (MPU4, Mod 2 type, TP 2.7)",GAME_FLAGS )
+GAME(199?, m4toptena, m4topten, mod2_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Top Tenner (Barcrest) (MPU4, Mod 2 type, TP 2.7)",GAME_FLAGS )
-GAME(199?, m4toplot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::toplot_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Top The Lot (Barcrest) (MPU4, T4L 1.0)",GAME_FLAGS )
+GAME(199?, m4toplot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::toplot_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Top The Lot (Barcrest) (MPU4, T4L 1.0)",GAME_FLAGS )
-GAME(199?, m4topgr, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::topgear_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Top Gear (Barcrest) (MPU4) (TG4 1.1)",GAME_FLAGS )
+GAME(199?, m4topgr, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::topgear_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Top Gear (Barcrest) (MPU4) (TG4 1.1)",GAME_FLAGS )
-GAME(199?, m4bj, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Black Jack (Barcrest) (Dutch) (MPU4) (BJ 1.6)",GAME_FLAGS )
+GAME(199?, m4bj, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Black Jack (Barcrest) (Dutch) (MPU4) (BJ 1.6)",GAME_FLAGS )
-GAME(199?, m4flash, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Flash Cash (Barcrest) (MPU4, FC 1.0)",GAME_FLAGS )
+GAME(199?, m4flash, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Flash Cash (Barcrest) (MPU4, FC 1.0)",GAME_FLAGS )
-GAME(199?, m4swpnot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Swap-A-Note (Barcrest) (MPU4) (SN 3.3)",GAME_FLAGS )
-GAME(199?, m4swpnota, m4swpnot, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Swap-A-Note (Barcrest) (MPU4) (SN 3.2)",GAME_FLAGS )
-GAME(199?, m4swpnotb, m4swpnot, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Swap-A-Note (Barcrest) (MPU4) (SN 3.5)",GAME_FLAGS ) // was in a set named Centrepoint, but clearly fits here
+GAME(199?, m4swpnot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Swap-A-Note (Barcrest) (MPU4) (SN 3.3)",GAME_FLAGS )
+GAME(199?, m4swpnota, m4swpnot, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Swap-A-Note (Barcrest) (MPU4) (SN 3.2)",GAME_FLAGS )
+GAME(199?, m4swpnotb, m4swpnot, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Swap-A-Note (Barcrest) (MPU4) (SN 3.5)",GAME_FLAGS ) // was in a set named Centrepoint, but clearly fits here
-GAME(199?, m4actnot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Action Note (Barcrest) (MPU4) (AN 1.2)",GAME_FLAGS )
+GAME(199?, m4actnot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Action Note (Barcrest) (MPU4) (AN 1.2)",GAME_FLAGS )
-GAME(199?, m4cardcs, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Card Cash (Barcrest) (MPU4) (CCS 1.9)",GAME_FLAGS )
+GAME(199?, m4cardcs, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Card Cash (Barcrest) (MPU4) (CCS 1.9)",GAME_FLAGS )
-GAME(199?, m4bnknot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Bank A Note (Barcrest) (MPU4) (BN 1.0)",GAME_FLAGS )
+GAME(199?, m4bnknot, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Bank A Note (Barcrest) (MPU4) (BN 1.0)",GAME_FLAGS )
-GAME(199?, m4moneym, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Money Maker (Barcrest) (MPU4) (MMK 1.6)",GAME_FLAGS )
+GAME(199?, m4moneym, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Money Maker (Barcrest) (MPU4) (MMK 1.6)",GAME_FLAGS )
// this and Cash Counter might be swapped around
-GAME(199?, m4cashcn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Connect (Barcrest) (MPU4) (CCO 3.2)",GAME_FLAGS )
+GAME(199?, m4cashcn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Connect (Barcrest) (MPU4) (CCO 3.2)",GAME_FLAGS )
-GAME(199?, m4cashco, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Counter (Barcrest) (MPU4) (C3 2.4)",GAME_FLAGS )
-GAME(199?, m4cashcoa, m4cashco, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Counter (Barcrest) (MPU4) (C3 1.8)",GAME_FLAGS )
-GAME(199?, m4cashcob, m4cashco, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Counter (Barcrest) (MPU4) (CO 0.5)",GAME_FLAGS )
-GAME(199?, m4cashcoc, m4cashco, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Counter (Barcrest) (MPU4) (C3 3.1)",GAME_FLAGS )
-GAME(199?, m4cashcod, m4cashco, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Connect (Barcrest) (MPU4) (C3 2.0)",GAME_FLAGS )
+GAME(199?, m4cashco, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Counter (Barcrest) (MPU4) (C3 2.4)",GAME_FLAGS )
+GAME(199?, m4cashcoa, m4cashco, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Counter (Barcrest) (MPU4) (C3 1.8)",GAME_FLAGS )
+GAME(199?, m4cashcob, m4cashco, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Counter (Barcrest) (MPU4) (CO 0.5)",GAME_FLAGS )
+GAME(199?, m4cashcoc, m4cashco, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Counter (Barcrest) (MPU4) (C3 3.1)",GAME_FLAGS )
+GAME(199?, m4cashcod, m4cashco, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Connect (Barcrest) (MPU4) (C3 2.0)",GAME_FLAGS )
// unusual input mapping
-GAME(199?, m4cashmx, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::cashmx_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Matrix (Barcrest) (MPU4) (CM 1.7, set 1)",GAME_FLAGS ) // hangs during play
-GAME(199?, m4cashmxa, m4cashmx, mod2_cheatchr_pal<mpu4_characteriser_pal::cashmx_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Matrix (Barcrest) (MPU4) (CM 1.7, set 2)",GAME_FLAGS ) // hangs during play
+GAME(199?, m4cashmx, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::cashmx_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Matrix (Barcrest) (MPU4) (CM 1.7, set 1)",GAME_FLAGS ) // hangs during play
+GAME(199?, m4cashmxa, m4cashmx, mod2_cheatchr_pal<mpu4_characteriser_pal::cashmx_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Matrix (Barcrest) (MPU4) (CM 1.7, set 2)",GAME_FLAGS ) // hangs during play
-GAME(199?, m4cashzn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Zone (Barcrest) (MPU4) (CAZ 1.2)",GAME_FLAGS )
-GAME(199?, m4cashzna, m4cashzn, mod2_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cash Zone (Barcrest) (MPU4) (CAZ 1.5)",GAME_FLAGS )
+GAME(199?, m4cashzn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Zone (Barcrest) (MPU4) (CAZ 1.2)",GAME_FLAGS )
+GAME(199?, m4cashzna, m4cashzn, mod2_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cash Zone (Barcrest) (MPU4) (CAZ 1.5)",GAME_FLAGS )
// non-standard protection
-GAME(199?, m4czne, m4cashzn, mod2_bootleg_fixedret<0x9a>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg?","Cash Zone (bootleg) (MPU4) (CAZ 1.5)",GAME_FLAGS )
+GAME(199?, m4czne, m4cashzn, mod2_bootleg_fixedret<0x9a>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg?","Cash Zone (bootleg) (MPU4) (CAZ 1.5)",GAME_FLAGS )
-GAME(199?, m4dblup, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Double Up (Barcrest) (MPU4) (DU 1.5)",GAME_FLAGS ) // token alarm
+GAME(199?, m4dblup, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Double Up (Barcrest) (MPU4) (DU 1.5)",GAME_FLAGS ) // token alarm
-GAME(199?, m4eighth, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Eighth Wonder (Barcrest) (MPU4) (WON 2.2)",GAME_FLAGS )
+GAME(199?, m4eighth, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Eighth Wonder (Barcrest) (MPU4) (WON 2.2)",GAME_FLAGS )
//
-GAME(199?, m4eightha, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 1)",GAME_FLAGS )
-GAME(199?, m4eighthb, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 2)",GAME_FLAGS )
-GAME(199?, m4eighthc, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 3)",GAME_FLAGS )
-GAME(199?, m4eighthd, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 4, bad?)",GAME_FLAGS )
-GAME(199?, m4eighthe, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 5)",GAME_FLAGS )
-GAME(199?, m4eighthf, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 6)",GAME_FLAGS )
-GAME(199?, m4eighthg, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 7)",GAME_FLAGS )
+GAME(199?, m4eightha, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 1)",GAME_FLAGS )
+GAME(199?, m4eighthb, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 2)",GAME_FLAGS )
+GAME(199?, m4eighthc, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 3)",GAME_FLAGS )
+GAME(199?, m4eighthd, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 4, bad?)",GAME_FLAGS )
+GAME(199?, m4eighthe, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 5)",GAME_FLAGS )
+GAME(199?, m4eighthf, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 6)",GAME_FLAGS )
+GAME(199?, m4eighthg, m4eighth, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 7)",GAME_FLAGS )
-GAME(199?, m4frtprs, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Fruit Preserve (Barcrest) (MPU4) (F4P 1.1, set 1)",GAME_FLAGS )
-GAME(199?, m4frtprsa, m4frtprs, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Fruit Preserve (Barcrest) (MPU4) (F4P 1.1, set 2)",GAME_FLAGS )
+GAME(199?, m4frtprs, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Fruit Preserve (Barcrest) (MPU4) (F4P 1.1, set 1)",GAME_FLAGS )
+GAME(199?, m4frtprsa, m4frtprs, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Fruit Preserve (Barcrest) (MPU4) (F4P 1.1, set 2)",GAME_FLAGS )
-GAME(199?, m4gldstr, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU4) (G4S 2.0)",GAME_FLAGS )
+GAME(199?, m4gldstr, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU4) (G4S 2.0)",GAME_FLAGS )
-GAME(199?, m4grands, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::grandclub_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Grandstand Club (Barcrest) (MPU4) (G2D 4.0)",GAME_FLAGS )
-GAME(199?, m4grandsa, m4grands, mod2_cheatchr_pal<mpu4_characteriser_pal::grandclub_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Grandstand Club (Barcrest) (MPU4) (GD 1.1)",GAME_FLAGS )
+GAME(199?, m4grands, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::grandclub_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Grandstand Club (Barcrest) (MPU4) (G2D 4.0)",GAME_FLAGS )
+GAME(199?, m4grandsa, m4grands, mod2_cheatchr_pal<mpu4_characteriser_pal::grandclub_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Grandstand Club (Barcrest) (MPU4) (GD 1.1)",GAME_FLAGS )
-GAME(199?, m4intcep, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Interceptor (Barcrest) (MPU4) (INT 3.0)",GAME_FLAGS ) // set % key
-GAME(199?, m4intcepa, m4intcep, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Interceptor (Barcrest) (MPU4) (INT 3.0X)",GAME_FLAGS ) // set % key
+GAME(199?, m4intcep, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Interceptor (Barcrest) (MPU4) (INT 3.0)",GAME_FLAGS ) // set % key
+GAME(199?, m4intcepa, m4intcep, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Interceptor (Barcrest) (MPU4) (INT 3.0X)",GAME_FLAGS ) // set % key
// non-standard protection? hack?
-GAME(199?, m4intcepb, m4intcep, mod2_bootleg_fixedret<0x9a>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "hack?","Interceptor (Barcrest) (MPU4) (INT 1.1)",GAME_FLAGS )
+GAME(199?, m4intcepb, m4intcep, mod2_bootleg_fixedret<0x9a>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "hack?","Interceptor (Barcrest) (MPU4) (INT 1.1)",GAME_FLAGS )
-GAME(199?, m4megbks, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Mega Bucks (Barcrest) (MPU4) (BUC 4.1X)",GAME_FLAGS )
-GAME(199?, m4megbksa, m4megbks, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Mega Bucks (Barcrest) (MPU4) (BUC 4.1CX)",GAME_FLAGS )
-GAME(199?, m4megbksb, m4megbks, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Mega Bucks (Barcrest) (MPU4) (BUC 4.1XD)",GAME_FLAGS )
-GAME(199?, m4megbksc, m4megbks, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Mega Bucks (Barcrest) (MPU4) (BUC 3.1)",GAME_FLAGS )
+GAME(199?, m4megbks, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Mega Bucks (Barcrest) (MPU4) (BUC 4.1X)",GAME_FLAGS )
+GAME(199?, m4megbksa, m4megbks, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Mega Bucks (Barcrest) (MPU4) (BUC 4.1CX)",GAME_FLAGS )
+GAME(199?, m4megbksb, m4megbks, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Mega Bucks (Barcrest) (MPU4) (BUC 4.1XD)",GAME_FLAGS )
+GAME(199?, m4megbksc, m4megbks, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Mega Bucks (Barcrest) (MPU4) (BUC 3.1)",GAME_FLAGS )
-GAME(199?, m4mirage, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Mirage (Barcrest) (MPU4) (RAG 4.1)",GAME_FLAGS )
+GAME(199?, m4mirage, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Mirage (Barcrest) (MPU4) (RAG 4.1)",GAME_FLAGS )
-GAME(199?, m4nifty, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nifty Fifty (Barcrest) (MPU4) (NF 2.0)",GAME_FLAGS )
-GAME(199?, m4niftya, m4nifty, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nifty Fifty (Barcrest) (MPU4) (NF 2.1, set 1)",GAME_FLAGS )
-GAME(199?, m4niftyb, m4nifty, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nifty Fifty (Barcrest) (MPU4) (NF 2.1, set 2)",GAME_FLAGS )
+GAME(199?, m4nifty, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nifty Fifty (Barcrest) (MPU4) (NF 2.0)",GAME_FLAGS )
+GAME(199?, m4niftya, m4nifty, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nifty Fifty (Barcrest) (MPU4) (NF 2.1, set 1)",GAME_FLAGS )
+GAME(199?, m4niftyb, m4nifty, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nifty Fifty (Barcrest) (MPU4) (NF 2.1, set 2)",GAME_FLAGS )
-GAME(199?, m4nudqst, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nudge Quest (Barcrest) (MPU4) (NQ 2.0)",GAME_FLAGS )
+GAME(199?, m4nudqst, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nudge Quest (Barcrest) (MPU4) (NQ 2.0)",GAME_FLAGS )
-GAME(199?, m4r2r, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Reel 2 Reel (Barcrest) (MPU4) (RR 3.0)",GAME_FLAGS )
+GAME(199?, m4r2r, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Reel 2 Reel (Barcrest) (MPU4) (RR 3.0)",GAME_FLAGS )
-GAME(199?, m4runawy, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Runaway Trail (Barcrest) (MPU4) (R4T 1.1)",GAME_FLAGS )
-GAME(199?, m4runawyb, m4runawy, mod2_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Runaway Trail (Barcrest) (MPU4) (R4T 1.3)",GAME_FLAGS )
+GAME(199?, m4runawy, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Runaway Trail (Barcrest) (MPU4) (R4T 1.1)",GAME_FLAGS )
+GAME(199?, m4runawyb, m4runawy, mod2_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Runaway Trail (Barcrest) (MPU4) (R4T 1.3)",GAME_FLAGS )
-GAME(199?, m4silshd, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Silver Shadow (Barcrest) (MPU4)",GAME_FLAGS )
+GAME(199?, m4silshd, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Silver Shadow (Barcrest) (MPU4)",GAME_FLAGS )
// these don't boot (bad dumps)
-GAME(199?, m4silshda, m4silshd, mod2_cheatchr, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Silver Shadow (Barcrest) (MPU4) (SH 2.0, set 1)",GAME_FLAGS )
-GAME(199?, m4silshdb, m4silshd, mod2_cheatchr, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Silver Shadow (Barcrest) (MPU4) (SH 2.0, set 2)",GAME_FLAGS )
+GAME(199?, m4silshda, m4silshd, mod2_cheatchr(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Silver Shadow (Barcrest) (MPU4) (SH 2.0, set 1)",GAME_FLAGS )
+GAME(199?, m4silshdb, m4silshd, mod2_cheatchr(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Silver Shadow (Barcrest) (MPU4) (SH 2.0, set 2)",GAME_FLAGS )
-GAME(199?, m4solsil, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::luckystrike_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Solid Silver Club (Barcrest) (MPU4) (SOS 2.2)",GAME_FLAGS )
-GAME(199?, m4solsila, m4solsil, mod2_cheatchr_pal<mpu4_characteriser_pal::luckystrike_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Solid Silver Club (Barcrest) (MPU4) (SOS 2.1)",GAME_FLAGS )
+GAME(199?, m4solsil, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::luckystrike_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Solid Silver Club (Barcrest) (MPU4) (SOS 2.2)",GAME_FLAGS )
+GAME(199?, m4solsila, m4solsil, mod2_cheatchr_pal<mpu4_characteriser_pal::luckystrike_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Solid Silver Club (Barcrest) (MPU4) (SOS 2.1)",GAME_FLAGS )
-GAME(199?, m4starbr, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::starsbars_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Stars And Bars (Barcrest) (Dutch) (MPU4) (DSB 2.8)",GAME_FLAGS )
+GAME(199?, m4starbr, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::starsbars_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Stars And Bars (Barcrest) (Dutch) (MPU4) (DSB 2.8)",GAME_FLAGS )
-GAME(199?, m4sunset, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BSB 0.4)",GAME_FLAGS )
-GAME(199?, m4sb5, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BSB 0.3)",GAME_FLAGS )
+GAME(199?, m4sunset, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BSB 0.4)",GAME_FLAGS )
+GAME(199?, m4sb5, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::eighth_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BSB 0.3)",GAME_FLAGS )
//
-GAME(199?, m4sunsetd, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetb_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SBU 2.0)",GAME_FLAGS )
+GAME(199?, m4sunsetd, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetb_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SBU 2.0)",GAME_FLAGS )
//
-GAME(199?, m4sunsete, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.1)",GAME_FLAGS )
-GAME(199?, m4sunsetf, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 1)",GAME_FLAGS )
-GAME(199?, m4sunsetg, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 2)",GAME_FLAGS )
-GAME(199?, m4sunseth, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 3, bad)",GAME_FLAGS )
-GAME(199?, m4sunseti, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 4)",GAME_FLAGS )
-GAME(199?, m4sunsetj, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 5)",GAME_FLAGS )
+GAME(199?, m4sunsete, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.1)",GAME_FLAGS )
+GAME(199?, m4sunsetf, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 1)",GAME_FLAGS )
+GAME(199?, m4sunsetg, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 2)",GAME_FLAGS )
+GAME(199?, m4sunseth, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 3, bad)",GAME_FLAGS )
+GAME(199?, m4sunseti, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 4)",GAME_FLAGS )
+GAME(199?, m4sunsetj, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::sunsetbalt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 5)",GAME_FLAGS )
//
-GAME(199?, m4sunsetk, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.1)",GAME_FLAGS )
-GAME(199?, m4sunsetl, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 1)",GAME_FLAGS )
-GAME(199?, m4sunsetm, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 2)",GAME_FLAGS )
-GAME(199?, m4sunsetn, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 3)",GAME_FLAGS )
-GAME(199?, m4sunseto, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 4)",GAME_FLAGS )
-GAME(199?, m4sunsetp, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 5)",GAME_FLAGS )
-GAME(199?, m4sunsetq, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 6)",GAME_FLAGS )
-GAME(199?, m4sunsetr, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 7)",GAME_FLAGS )
-GAME(199?, m4sunsets, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 8)",GAME_FLAGS )
-GAME(199?, m4sunsett, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 9)",GAME_FLAGS )
+GAME(199?, m4sunsetk, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.1)",GAME_FLAGS )
+GAME(199?, m4sunsetl, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 1)",GAME_FLAGS )
+GAME(199?, m4sunsetm, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 2)",GAME_FLAGS )
+GAME(199?, m4sunsetn, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 3)",GAME_FLAGS )
+GAME(199?, m4sunseto, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 4)",GAME_FLAGS )
+GAME(199?, m4sunsetp, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 5)",GAME_FLAGS )
+GAME(199?, m4sunsetq, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 6)",GAME_FLAGS )
+GAME(199?, m4sunsetr, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 7)",GAME_FLAGS )
+GAME(199?, m4sunsets, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 8)",GAME_FLAGS )
+GAME(199?, m4sunsett, m4sunset, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 9)",GAME_FLAGS )
// non-standard protection
-GAME(199?, m4sunsetc, m4sunset, mod2_bootleg_fixedret<0xd0>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Sunset Boulevard (Barcrest) (bootleg) (MPU4) (OSB 0.2)",GAME_FLAGS )
+GAME(199?, m4sunsetc, m4sunset, mod2_bootleg_fixedret<0xd0>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Sunset Boulevard (Barcrest) (bootleg) (MPU4) (OSB 0.2)",GAME_FLAGS )
-GAME(199?, m4supslt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Supa Slot (Barcrest) (MPU4) (S4S 1.0)",GAME_FLAGS )
+GAME(199?, m4supslt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Supa Slot (Barcrest) (MPU4) (S4S 1.0)",GAME_FLAGS )
-GAME(199?, m4suptub, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Super Tubes (Barcrest) (MPU4) (S4T 1.0, set 1)",GAME_FLAGS )
-GAME(199?, m4suptuba, m4suptub, mod2_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Super Tubes (Barcrest) (MPU4) (S4T 1.0, set 2)",GAME_FLAGS )
+GAME(199?, m4suptub, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Super Tubes (Barcrest) (MPU4) (S4T 1.0, set 1)",GAME_FLAGS )
+GAME(199?, m4suptuba, m4suptub, mod2_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Super Tubes (Barcrest) (MPU4) (S4T 1.0, set 2)",GAME_FLAGS )
-GAME(199?, m4suptwo, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Super Two (Barcrest) (MPU4) (SUT 1.2)",GAME_FLAGS ) // set % key
+GAME(199?, m4suptwo, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Super Two (Barcrest) (MPU4) (SUT 1.2)",GAME_FLAGS ) // set % key
-GAME(199?, m4tiktak, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tictak_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Tic Tak Cash (Barcrest) (MPU4) (TC 1.1)",GAME_FLAGS )
+GAME(199?, m4tiktak, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tictak_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Tic Tak Cash (Barcrest) (MPU4) (TC 1.1)",GAME_FLAGS )
// these have the same version number but use different protection PALs, is one modified?
-GAME(199?, m4topact, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::topaction_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Top Action (Barcrest) (Dutch) (MPU4) (TA 2.2, set 1)",GAME_FLAGS )
+GAME(199?, m4topact, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::topaction_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Top Action (Barcrest) (Dutch) (MPU4) (TA 2.2, set 1)",GAME_FLAGS )
//
-GAME(199?, m4topacta, m4topact, mod2_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Top Action (Barcrest) (Dutch) (MPU4) (TA 2.2, set 2)",GAME_FLAGS )
+GAME(199?, m4topacta, m4topact, mod2_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Top Action (Barcrest) (Dutch) (MPU4) (TA 2.2, set 2)",GAME_FLAGS )
-GAME(199?, m4topst, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::du91_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Top Stop (Barcrest) (MPU4) (TSP 0.5)",GAME_FLAGS )
+GAME(199?, m4topst, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::du91_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Top Stop (Barcrest) (MPU4) (TSP 0.5)",GAME_FLAGS )
-GAME(199?, m4toptak, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Top Take (Barcrest) (MPU4) (TTK 1.1)",GAME_FLAGS )
+GAME(199?, m4toptak, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Top Take (Barcrest) (MPU4) (TTK 1.1)",GAME_FLAGS )
-GAME(199?, m4tribnk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tribank_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Triple Bank (Barcrest) (Dutch) (MPU4) (DTB 1.2)",GAME_FLAGS )
+GAME(199?, m4tribnk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tribank_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Triple Bank (Barcrest) (Dutch) (MPU4) (DTB 1.2)",GAME_FLAGS )
// unprotected
-GAME(199?, m4tupen, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Tuppenny Cracker (unprotected bootleg) (MPU4)",GAME_FLAGS ) // bootleg of Barcrest game
+GAME(199?, m4tupen, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Tuppenny Cracker (unprotected bootleg) (MPU4)",GAME_FLAGS ) // bootleg of Barcrest game
-GAME(199?, m421, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Twenty One (Barcrest) (Dutch) (MPU4) (DTO 2.0)",GAME_FLAGS )
+GAME(199?, m421, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Twenty One (Barcrest) (Dutch) (MPU4) (DTO 2.0)",GAME_FLAGS )
-GAMEL(199?, m4alpha, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m435_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4alpha, ROT0, "Barcrest","Alphabet (Barcrest) (MPU4) (A4B 1.0)",GAME_FLAGS, layout_m4alpha )
+GAMEL(199?, m4alpha, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m435_characteriser_prot>(R4, RT1, HT), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Alphabet (Barcrest) (MPU4) (A4B 1.0)",GAME_FLAGS, layout_m4alpha )
-GAME(199?, m4bjack, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Black Jack (Barcrest) (MPU4) (B2J 2.2)",GAME_FLAGS )
-GAME(199?, m4bjacka, m4bjack, mod2_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Black Jack (Barcrest) (MPU4) (BLA 2.0)",GAME_FLAGS )
+GAME(199?, m4bjack, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Black Jack (Barcrest) (MPU4) (B2J 2.2)",GAME_FLAGS )
+GAME(199?, m4bjacka, m4bjack, mod2_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Black Jack (Barcrest) (MPU4) (BLA 2.0)",GAME_FLAGS )
-GAME(199?, m4bjsm, 0, mod2_cheatchr_pal_rtc<mpu4_characteriser_pal::sunsetb_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Blackjack Super Multi (Barcrest) (German) (MPU4) (SM H1.6)",GAME_FLAGS )
-GAME(199?, m4bjsma, m4bjsm, mod2_cheatchr_pal_rtc<mpu4_characteriser_pal::sunsetb_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Blackjack Super Multi (Barcrest) (MPU4) (SM 1.6)",GAME_FLAGS ) // is this a different game?
+GAME(199?, m4bjsm, 0, mod2_cheatchr_pal_rtc<mpu4_characteriser_pal::sunsetb_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Blackjack Super Multi (Barcrest) (German) (MPU4) (SM H1.6)",GAME_FLAGS )
+GAME(199?, m4bjsma, m4bjsm, mod2_cheatchr_pal_rtc<mpu4_characteriser_pal::sunsetb_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Blackjack Super Multi (Barcrest) (MPU4) (SM 1.6)",GAME_FLAGS ) // is this a different game?
-GAME(198?, m4supsl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest", "Supa Silva (Barcrest) (MPU4) (SS2V 1.0)",GAME_FLAGS )
+GAME(198?, m4supsl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest", "Supa Silva (Barcrest) (MPU4) (SS2V 1.0)",GAME_FLAGS )
-GAME(199?, m4flshlt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 1)",GAME_FLAGS )
-GAME(199?, m4flshltb, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 2)",GAME_FLAGS )
-GAME(199?, m4flshltc, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 3)",GAME_FLAGS )
-GAME(199?, m4flshltd, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 4)",GAME_FLAGS )
-GAME(199?, m4flshlte, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 5)",GAME_FLAGS )
-GAME(199?, m4flshltf, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 6)",GAME_FLAGS )
-GAME(199?, m4flshltg, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 7)",GAME_FLAGS )
+GAME(199?, m4flshlt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 1)",GAME_FLAGS )
+GAME(199?, m4flshltb, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 2)",GAME_FLAGS )
+GAME(199?, m4flshltc, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 3)",GAME_FLAGS )
+GAME(199?, m4flshltd, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 4)",GAME_FLAGS )
+GAME(199?, m4flshlte, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 5)",GAME_FLAGS )
+GAME(199?, m4flshltf, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 6)",GAME_FLAGS )
+GAME(199?, m4flshltg, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Flashlite (BWB) (MPU4) (FLT 1.0, set 7)",GAME_FLAGS )
//
-GAME(199?, m4flshlta, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::berseralt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Flashlite (BWB) (MPU4) (BFL 0.5)",GAME_FLAGS )
+GAME(199?, m4flshlta, m4flshlt, mod2_cheatchr_pal<mpu4_characteriser_pal::berseralt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Flashlite (BWB) (MPU4) (BFL 0.5)",GAME_FLAGS )
-GAME(199?, m4blflsh, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Blue Flash (BWB) (MPU4) (TBF 0.3)",GAME_FLAGS )
-GAME(199?, m4blflsha, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 1)",GAME_FLAGS )
-GAME(199?, m4blflshb, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 2)",GAME_FLAGS )
-GAME(199?, m4blflshc, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 3)",GAME_FLAGS )
-GAME(199?, m4blflshd, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 4)",GAME_FLAGS )
-GAME(199?, m4blflshe, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 5)",GAME_FLAGS )
+GAME(199?, m4blflsh, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Blue Flash (BWB) (MPU4) (TBF 0.3)",GAME_FLAGS )
+GAME(199?, m4blflsha, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 1)",GAME_FLAGS )
+GAME(199?, m4blflshb, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 2)",GAME_FLAGS )
+GAME(199?, m4blflshc, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 3)",GAME_FLAGS )
+GAME(199?, m4blflshd, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 4)",GAME_FLAGS )
+GAME(199?, m4blflshe, m4blflsh, mod2_cheatchr_pal<mpu4_characteriser_pal::blueflash_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Blue Flash (BWB) (MPU4) (BFL 0.3, set 5)",GAME_FLAGS )
-GAME(199?, m4ttak, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Tic Tac Take (Barcrest) (MPU4) (TIC 2.0)",GAME_FLAGS )
+GAME(199?, m4ttak, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Tic Tac Take (Barcrest) (MPU4) (TIC 2.0)",GAME_FLAGS )
-GAME(199?, m4actbnka, m4actbnk, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, mpu4jackpot8tkn, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Action Bank (Barcrest) (Mod 2 type, AC3.0) (MPU4)",GAME_FLAGS ) // set jackpot key to 8GBP TOKEN & stake key
-GAME(199?, m4actbnkb, m4actbnk, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, mpu4jackpot8tkn, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Action Bank (Barcrest) (Mod 2 type, ACT2.0) (MPU4)",GAME_FLAGS )
+GAME(199?, m4actbnka, m4actbnk, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R4, RT1), mpu4jackpot8tkn, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Action Bank (Barcrest) (Mod 2 type, AC3.0) (MPU4)",GAME_FLAGS ) // set jackpot key to 8GBP TOKEN & stake key
+GAME(199?, m4actbnkb, m4actbnk, mod2_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R4, RT1), mpu4jackpot8tkn, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Action Bank (Barcrest) (Mod 2 type, ACT2.0) (MPU4)",GAME_FLAGS )
-GAMEL(199?, m4actclb, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::kqee2_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4actclb, ROT0, "Barcrest","Action Club (Barcrest) (MPU4) (ABV 1.9)",GAME_FLAGS, layout_m4actclb ) // set stake to boot
+GAMEL(199?, m4actclb, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::kqee2_characteriser_prot>(R4, RT1, HT), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Action Club (Barcrest) (MPU4) (ABV 1.9)",GAME_FLAGS, layout_m4actclb ) // set stake to boot
//
-GAMEL(199?, m4actclba,m4actclb, mod2_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4actclb, ROT0, "Barcrest","Action Club (Barcrest) (MPU4) (A2C 1.1)",GAME_FLAGS, layout_m4actclb ) // ^^
+GAMEL(199?, m4actclba,m4actclb, mod2_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Action Club (Barcrest) (MPU4) (A2C 1.1)",GAME_FLAGS, layout_m4actclb ) // ^^
-GAME(199?, m4bluemn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Blue Moon (Barcrest) (MPU4) (BLU 2.3)",GAME_FLAGS )
-GAME(199?, m4bluemna, m4bluemn, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Blue Moon (Barcrest) (MPU4) (BLU 2.1)",GAME_FLAGS )
+GAME(199?, m4bluemn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Blue Moon (Barcrest) (MPU4) (BLU 2.3)",GAME_FLAGS )
+GAME(199?, m4bluemna, m4bluemn, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Blue Moon (Barcrest) (MPU4) (BLU 2.1)",GAME_FLAGS )
// not using standard protection, hack?
-GAME(199?, m4bluemnb, m4bluemn, mod2_bootleg_fixedret<0x51>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "hack?","Blue Moon (Barcrest) (MPU4) (BLU 1.1)",GAME_FLAGS )
+GAME(199?, m4bluemnb, m4bluemn, mod2_bootleg_fixedret<0x51>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "hack?","Blue Moon (Barcrest) (MPU4) (BLU 1.1)",GAME_FLAGS )
-GAME(199?, m4take2, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Take Two (Barcrest) (MPU4) (TTO 1.2)",GAME_FLAGS )
+GAME(199?, m4take2, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Take Two (Barcrest) (MPU4) (TTO 1.2)",GAME_FLAGS )
// not using standard protection, hack?
-GAME(199?, m4take2a, m4take2, mod2_bootleg_fixedret<0x11>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Take Two (Barcrest) (MPU4) (TTO 1.1) (set 1)",GAME_FLAGS )
-GAME(199?, m4t266, m4take2, mod2_bootleg_fixedret<0x11>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Take Two (Barcrest) (MPU4) (TTO 1.1) (set 2)",GAME_FLAGS )
+GAME(199?, m4take2a, m4take2, mod2_bootleg_fixedret<0x11>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Take Two (Barcrest) (MPU4) (TTO 1.1) (set 1)",GAME_FLAGS )
+GAME(199?, m4t266, m4take2, mod2_bootleg_fixedret<0x11>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Take Two (Barcrest) (MPU4) (TTO 1.1) (set 2)",GAME_FLAGS )
-GAME(199?, m4pont, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::pontoon_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Pontoon Club (Barcrest) (MPU4) (PON 3.0)",GAME_FLAGS ) // set stake to boot
-GAME(199?, m4ponta, m4pont, mod2_cheatchr_pal<mpu4_characteriser_pal::pontoon_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Pontoon Club (Barcrest) (MPU4) (PON 4.0)",GAME_FLAGS )// ^^
+GAME(199?, m4pont, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::pontoon_characteriser_prot>(R4, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Pontoon Club (Barcrest) (MPU4) (PON 3.0)",GAME_FLAGS ) // set stake to boot
+GAME(199?, m4ponta, m4pont, mod2_cheatchr_pal<mpu4_characteriser_pal::pontoon_characteriser_prot>(R4, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Pontoon Club (Barcrest) (MPU4) (PON 4.0)",GAME_FLAGS )// ^^
-GAME(199?, m4loadmn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Loads A Money (Barcrest) (MPU4) (LA 1.0)",GAME_FLAGS )
-GAME(199?, m4loadmna, m4loadmn, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Loads A Money (Barcrest) (MPU4) (LA 1.1, set 1)",GAME_FLAGS )
-GAME(199?, m4loadmnb, m4loadmn, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Loads A Money (Barcrest) (MPU4) (LA 1.1, set 2)",GAME_FLAGS )
+GAME(199?, m4loadmn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Loads A Money (Barcrest) (MPU4) (LA 1.0)",GAME_FLAGS )
+GAME(199?, m4loadmna, m4loadmn, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Loads A Money (Barcrest) (MPU4) (LA 1.1, set 1)",GAME_FLAGS )
+GAME(199?, m4loadmnb, m4loadmn, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Loads A Money (Barcrest) (MPU4) (LA 1.1, set 2)",GAME_FLAGS )
-GAME(199?, m4celclb, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Celebration Club (Barcrest) (MPU4) (CEL 1.5)",GAME_FLAGS ) // set stake
+GAME(199?, m4celclb, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>(R4, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Celebration Club (Barcrest) (MPU4) (CEL 1.5)",GAME_FLAGS ) // set stake
-GAME(199?, m4centpt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Centrepoint (Barcrest) (MPU4) (DU 1.3)",GAME_FLAGS )
+GAME(199?, m4centpt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Centrepoint (Barcrest) (MPU4) (DU 1.3)",GAME_FLAGS )
-GAME(199?, m4clbcls, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m533_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Club Classic (Barcrest) (MPU4) (CI 1.1)",GAME_FLAGS ) // set stake
+GAME(199?, m4clbcls, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m533_characteriser_prot>(R4, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Club Classic (Barcrest) (MPU4) (CI 1.1)",GAME_FLAGS ) // set stake
-GAME(199?, m4c999, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tictak_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (CLN 4.0 V)",GAME_FLAGS )
+GAME(199?, m4c999, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tictak_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (CLN 4.0 V)",GAME_FLAGS )
// these are bootlegs with non-standard protection
-GAME(199?, m4c999a, m4c999, mod2_bootleg_fixedret<0x51>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Cloud 999 (Barcrest) (bootleg) (MPU4) (CLN 3.6)",GAME_FLAGS )
-GAME(199?, m4c999b, m4c999, mod2_bootleg_fixedret<0x51>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Cloud 999 (Barcrest) (bootleg) (MPU4) (CLN 3.0)",GAME_FLAGS )
-GAME(199?, m4c999c, m4c999, mod2_bootleg_fixedret<0x80>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Cloud 999 (Barcrest) (bootleg) (MPU4) (OC9 0.3, set 1)",GAME_FLAGS )
-GAME(199?, m4c999d, m4c999, mod2_bootleg_fixedret<0x9a>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Cloud 999 (Barcrest) (bootleg) (MPU4) (OC9 0.3, set 2)",GAME_FLAGS )
+GAME(199?, m4c999a, m4c999, mod2_bootleg_fixedret<0x51>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Cloud 999 (Barcrest) (bootleg) (MPU4) (CLN 3.6)",GAME_FLAGS )
+GAME(199?, m4c999b, m4c999, mod2_bootleg_fixedret<0x51>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Cloud 999 (Barcrest) (bootleg) (MPU4) (CLN 3.0)",GAME_FLAGS )
+GAME(199?, m4c999c, m4c999, mod2_bootleg_fixedret<0x80>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Cloud 999 (Barcrest) (bootleg) (MPU4) (OC9 0.3, set 1)",GAME_FLAGS )
+GAME(199?, m4c999d, m4c999, mod2_bootleg_fixedret<0x9a>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Cloud 999 (Barcrest) (bootleg) (MPU4) (OC9 0.3, set 2)",GAME_FLAGS )
#undef GAME_CUSTOM
#define GAME_CUSTOM(year, setname,parent,name,offset,length,hash,company,title) \
@@ -1968,7 +2040,7 @@ GAME(199?, m4c999d, m4c999, mod2_bootleg_fixedret<0x9a>, mpu4,
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod2_cheatchr_pal<mpu4_characteriser_pal::hittop_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod2_cheatchr_pal<mpu4_characteriser_pal::hittop_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1993 B.W.B." and "SC9 5.0"
GAME_CUSTOM( 199?, m4c999g, m4c999, "c9o20__1.1", 0x0000, 0x010000, CRC(e05fa532) SHA1(63d070416a4e6979302901bb33e20c994cb3723e), "BWB","Cloud 999 (Barcrest) (MPU4) (SC9 5.0)" )
@@ -1985,143 +2057,143 @@ ROM_START( m4c9c )
ROM_END
// requires stake set to boot (just hangs otherwise)
-GAME(199?, m4c9c, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Cloud Nine Club (Barcrest) (MPU4) (CNC 2.1)",GAME_FLAGS )
+GAME(199?, m4c9c, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cloud Nine Club (Barcrest) (MPU4) (CNC 2.1)",GAME_FLAGS )
// works
-GAME(199?, m4bjac, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::bjac_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Blackjack Club (Barcrest) (MPU4) (C2J 1.8)",GAME_FLAGS )
-GAME(199?, m4bjaca, m4bjac, mod2_cheatchr_pal<mpu4_characteriser_pal::bjac_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Blackjack Club (Barcrest) (MPU4) (C2J 2.1)",GAME_FLAGS )
+GAME(199?, m4bjac, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::bjac_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Blackjack Club (Barcrest) (MPU4) (C2J 1.8)",GAME_FLAGS )
+GAME(199?, m4bjaca, m4bjac, mod2_cheatchr_pal<mpu4_characteriser_pal::bjac_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Blackjack Club (Barcrest) (MPU4) (C2J 2.1)",GAME_FLAGS )
// works
-GAME(199?, m4clbcnt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.2)",GAME_FLAGS )
-GAME(199?, m4clbcnta, m4clbcnt, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.0)",GAME_FLAGS )
-GAME(199?, m4clbcntb, m4clbcnt, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.1)",GAME_FLAGS )
-GAME(199?, m4clbcntc, m4clbcnt, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.5, set 1)",GAME_FLAGS )
-GAME(199?, m4clbcntd, m4clbcnt, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.5, set 2)",GAME_FLAGS )
+GAME(199?, m4clbcnt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.2)",GAME_FLAGS )
+GAME(199?, m4clbcnta, m4clbcnt, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.0)",GAME_FLAGS )
+GAME(199?, m4clbcntb, m4clbcnt, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.1)",GAME_FLAGS )
+GAME(199?, m4clbcntc, m4clbcnt, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.5, set 1)",GAME_FLAGS )
+GAME(199?, m4clbcntd, m4clbcnt, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Club Connect (Barcrest) (MPU4) (CON 1.5, set 2)",GAME_FLAGS )
// works
-GAME(199?, m4frtfl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Fruit Full Club (Barcrest) (MPU4) (FFC 0.3)",GAME_FLAGS )
-GAME(199?, m4frtfla, m4frtfl, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Fruit Full Club (Barcrest) (MPU4) (FFC 1.0)",GAME_FLAGS )
-GAME(199?, m4frtflc, m4frtfl, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Fruit Full Club (Barcrest) (MPU4) (FFC 1.2)",GAME_FLAGS )
+GAME(199?, m4frtfl, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Fruit Full Club (Barcrest) (MPU4) (FFC 0.3)",GAME_FLAGS )
+GAME(199?, m4frtfla, m4frtfl, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Fruit Full Club (Barcrest) (MPU4) (FFC 1.0)",GAME_FLAGS )
+GAME(199?, m4frtflc, m4frtfl, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Fruit Full Club (Barcrest) (MPU4) (FFC 1.2)",GAME_FLAGS )
// works
-GAME(199?, m4frtlnk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Fruit Link Club (Barcrest) (MPU4) (FLC 1.8, set 1)",GAME_FLAGS )
-GAME(199?, m4frtlnka, m4frtlnk, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Fruit Link Club (Barcrest) (MPU4) (FLC 1.6, set 2)",GAME_FLAGS )
+GAME(199?, m4frtlnk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Fruit Link Club (Barcrest) (MPU4) (FLC 1.8, set 1)",GAME_FLAGS )
+GAME(199?, m4frtlnka, m4frtlnk, mod2_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>(R5R, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Fruit Link Club (Barcrest) (MPU4) (FLC 1.6, set 2)",GAME_FLAGS )
// works
-GAME(199?, m4milclb, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MI2 1.0, set 1)",GAME_FLAGS )
-GAME(199?, m4milclba, m4milclb, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MI2 1.0, set 2)",GAME_FLAGS )
-GAME(199?, m4milclbb, m4milclb, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MI2 1.0, set 3)",GAME_FLAGS )
-GAME(199?, m4milclbc, m4milclb, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MIL 5.0, set 1)",GAME_FLAGS )
-GAME(199?, m4milclbd, m4milclb, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MIL 5.0, set 2)",GAME_FLAGS )
+GAME(199?, m4milclb, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MI2 1.0, set 1)",GAME_FLAGS )
+GAME(199?, m4milclba, m4milclb, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MI2 1.0, set 2)",GAME_FLAGS )
+GAME(199?, m4milclbb, m4milclb, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MI2 1.0, set 3)",GAME_FLAGS )
+GAME(199?, m4milclbc, m4milclb, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MIL 5.0, set 1)",GAME_FLAGS )
+GAME(199?, m4milclbd, m4milclb, mod2_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Millionaire's Club (Barcrest) (MPU4) (MIL 5.0, set 2)",GAME_FLAGS )
// works
-GAME(199?, m4jpjmp, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Jackpot Jump (Barcrest) (MPU4) (VJC 2.0)",GAME_FLAGS )
-GAME(199?, m4jpjmpa, m4jpjmp, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Jackpot Jump (Barcrest) (MPU4) (VJC 1.3)",GAME_FLAGS )
+GAME(199?, m4jpjmp, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Jackpot Jump (Barcrest) (MPU4) (VJC 2.0)",GAME_FLAGS )
+GAME(199?, m4jpjmpa, m4jpjmp, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R5R, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Jackpot Jump (Barcrest) (MPU4) (VJC 1.3)",GAME_FLAGS )
-GAME(199?, m4ambass, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Ambassador (Barcrest) (Dutch) (MPU4) (DAM 3.7)",GAME_FLAGS )
+GAME(199?, m4ambass, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Ambassador (Barcrest) (Dutch) (MPU4) (DAM 3.7)",GAME_FLAGS )
-GAME(199?, m4graffd, 0, mod2_7reel_cheatchr_pal<mpu4_characteriser_pal::turboplay_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_seven, ROT0, "Barcrest","Grafitti (Barcrest) (Dutch) (MPU4) (DGR 1.3)",GAME_FLAGS )
+GAME(199?, m4graffd, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::turboplay_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Grafitti (Barcrest) (Dutch) (MPU4) (DGR 1.3)",GAME_FLAGS )
-GAME(199?, m4atlan, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m533_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Atlantis (Barcrest) (Dutch) (MPU4) (DAT 1.4)",GAME_FLAGS ) // was also an identical set marked 'Triple Dice'
+GAME(199?, m4atlan, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m533_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Atlantis (Barcrest) (Dutch) (MPU4) (DAT 1.4)",GAME_FLAGS ) // was also an identical set marked 'Triple Dice'
-GAME(199?, m4bjc, 0, mod2_7reel_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_seven, ROT0, "Barcrest","Black Jack Club (Barcrest) (Dutch) (MPU4) (DBC 1.1)",GAME_FLAGS )
+GAME(199?, m4bjc, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Black Jack Club (Barcrest) (Dutch) (MPU4) (DBC 1.1)",GAME_FLAGS )
-GAME(199?, m4exprs, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Express (Barcrest) (Dutch) (MPU4) (DXP 2.0)",GAME_FLAGS )
+GAME(199?, m4exprs, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Express (Barcrest) (Dutch) (MPU4) (DXP 2.0)",GAME_FLAGS )
-GAME(199?, m4brdway, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Broadway (Barcrest) (Dutch) (MPU4) (DBR 1.1)",GAME_FLAGS )
+GAME(199?, m4brdway, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Broadway (Barcrest) (Dutch) (MPU4) (DBR 1.1)",GAME_FLAGS )
-GAME(199?, m4bigbn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Big Ben (Barcrest) (Dutch) (MPU4) (DBB 1.2)",GAME_FLAGS )
+GAME(199?, m4bigbn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Big Ben (Barcrest) (Dutch) (MPU4) (DBB 1.2)",GAME_FLAGS )
-GAME(199?, m4cheryo, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::cheryo_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Cherryo (Barcrest) (Dutch) (MPU4) (DCH 1.4)",GAME_FLAGS )
+GAME(199?, m4cheryo, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::cheryo_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Cherryo (Barcrest) (Dutch) (MPU4) (DCH 1.4)",GAME_FLAGS )
-GAME(199?, m4giant, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::giant_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Giant (Barcrest) (Dutch) (MPU4) (DGI 2.1)",GAME_FLAGS )
+GAME(199?, m4giant, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::giant_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Giant (Barcrest) (Dutch) (MPU4) (DGI 2.1)",GAME_FLAGS )
-GAME(199?, m4holdon, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Hold On (Barcrest) (Dutch) (MPU4) (DHO 2.5)",GAME_FLAGS )
+GAME(199?, m4holdon, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Hold On (Barcrest) (Dutch) (MPU4) (DHO 2.5)",GAME_FLAGS )
-GAME(199?, m4libty, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Liberty (Barcrest) (Dutch) (MPU4) (DLI 1.0)",GAME_FLAGS )
+GAME(199?, m4libty, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::crkpot_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Liberty (Barcrest) (Dutch) (MPU4) (DLI 1.0)",GAME_FLAGS )
-GAME(199?, m4meglnk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Megalink (Barcrest) (Dutch) (MPU4) (DML 2.0)",GAME_FLAGS )
+GAME(199?, m4meglnk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Megalink (Barcrest) (Dutch) (MPU4) (DML 2.0)",GAME_FLAGS )
-GAME(199?, m4multwy, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::kingqn_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Multiway (Barcrest) (Dutch) (MPU4) (DMU 1.7)",GAME_FLAGS )
+GAME(199?, m4multwy, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::kingqn_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Multiway (Barcrest) (Dutch) (MPU4) (DMU 1.7)",GAME_FLAGS )
-GAME(199?, m4num1, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Number One (Barcrest) (Dutch) (MPU4) (DNO 1.7)",GAME_FLAGS )
+GAME(199?, m4num1, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Number One (Barcrest) (Dutch) (MPU4) (DNO 1.7)",GAME_FLAGS )
-GAME(199?, m4nudup, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nudge Up (Barcrest) (Dutch) (MPU4) (DNU 2.5)",GAME_FLAGS )
+GAME(199?, m4nudup, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nudge Up (Barcrest) (Dutch) (MPU4) (DNU 2.5)",GAME_FLAGS )
-GAME(199?, m4omega, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Omega (Barcrest) (Dutch) (MPU4) (DOM 2.3)",GAME_FLAGS )
+GAME(199?, m4omega, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Omega (Barcrest) (Dutch) (MPU4) (DOM 2.3)",GAME_FLAGS )
-GAME(199?, m4randr, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::randroul_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Random Roulette (Barcrest) (Dutch) (MPU4) (DRR 2.2)",GAME_FLAGS )
+GAME(199?, m4randr, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::randroul_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Random Roulette (Barcrest) (Dutch) (MPU4) (DRR 2.2)",GAME_FLAGS )
-GAME(199?, m4samu, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Samurai (Barcrest) (Dutch) (MPU4) (DSM 1.0)",GAME_FLAGS )
+GAME(199?, m4samu, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Samurai (Barcrest) (Dutch) (MPU4) (DSM 1.0)",GAME_FLAGS )
-GAME(199?, m4stards, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Stardust (Barcrest) (Dutch) (MPU4) (DSD 1.3)",GAME_FLAGS )
+GAME(199?, m4stards, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Stardust (Barcrest) (Dutch) (MPU4) (DSD 1.3)",GAME_FLAGS )
-GAME(199?, m4tbreel, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::grandclub_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Turbo Reel (Barcrest) (Dutch) (MPU4) (DTR 3.1)",GAME_FLAGS )
+GAME(199?, m4tbreel, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::grandclub_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Turbo Reel (Barcrest) (Dutch) (MPU4) (DTR 3.1)",GAME_FLAGS )
-GAME(199?, m4tbrldx, m4tbreel, mod2_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Turbo Reel Deluxe (Barcrest) (Dutch) (MPU4) (DTU 3.0)",GAME_FLAGS )
+GAME(199?, m4tbrldx, m4tbreel, mod2_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Turbo Reel Deluxe (Barcrest) (Dutch) (MPU4) (DTU 3.0)",GAME_FLAGS )
-GAME(199?, m4taj, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tajmahal_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Taj Mahal (Barcrest) (Dutch) (MPU4) (DTM 1.0)",GAME_FLAGS )
+GAME(199?, m4taj, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tajmahal_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Taj Mahal (Barcrest) (Dutch) (MPU4) (DTM 1.0)",GAME_FLAGS )
-GAME(199?, m4tricol, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tricolor_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Tricolor (Barcrest) (Dutch) (MPU4) (DTC 2.5)",GAME_FLAGS )
+GAME(199?, m4tricol, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::tricolor_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Tricolor (Barcrest) (Dutch) (MPU4) (DTC 2.5)",GAME_FLAGS )
-GAME(199?, m4twilgt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::pontoon_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Twilight (Barcrest) (Dutch) (MPU4) (DTL 2.2)",GAME_FLAGS )
+GAME(199?, m4twilgt, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::pontoon_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Twilight (Barcrest) (Dutch) (MPU4) (DTL 2.2)",GAME_FLAGS )
-GAME(199?, m4wildms, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Wild Mystery (Barcrest) (Dutch) (MPU4) (DWM 1.8)",GAME_FLAGS )
+GAME(199?, m4wildms, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R6A, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Wild Mystery (Barcrest) (Dutch) (MPU4) (DWM 1.8)",GAME_FLAGS )
-GAME(199?, m4suptrn, 0, mod2_7reel_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_seven, ROT0, "Barcrest","Supatron (Barcrest) (MPU4) (DSU 2.1)",GAME_FLAGS )
+GAME(199?, m4suptrn, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Supatron (Barcrest) (MPU4) (DSU 2.1)",GAME_FLAGS )
-GAME(199?, m421club, 0, mod2_7reel_cheatchr_pal<mpu4_characteriser_pal::blackwhite_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_seven, ROT0, "Barcrest","21 Club (Barcrest) (Dutch) (MPU4) (DTW 2.7)",GAME_FLAGS )
+GAME(199?, m421club, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::blackwhite_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","21 Club (Barcrest) (Dutch) (MPU4) (DTW 2.7)",GAME_FLAGS )
-GAME(199?, m4class, 0, mod2_7reel_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_seven, ROT0, "Barcrest","First Class (Barcrest) (Dutch) (MPU4) (DFC 2.0, set 1)",GAME_FLAGS )
+GAME(199?, m4class, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","First Class (Barcrest) (Dutch) (MPU4) (DFC 2.0, set 1)",GAME_FLAGS )
// INITIALIZE COMMS, before any prot sequence
-GAME(199?, m4classa, m4class, mod2_7reel_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_seven, ROT0, "Barcrest","First Class (Barcrest) (Dutch) (MPU4) (DFC 2.0, set 2)",GAME_FLAGS )
+GAME(199?, m4classa, m4class, mod2_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","First Class (Barcrest) (Dutch) (MPU4) (DFC 2.0, set 2)",GAME_FLAGS )
-GAME(199?, m4thehit, 0, mod2_7reel_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_seven, ROT0, "Barcrest","The Hit (Barcrest) (MPU4) (DTH 1.7)",GAME_FLAGS )
+GAME(199?, m4thehit, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::toptake_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","The Hit (Barcrest) (MPU4) (DTH 1.7)",GAME_FLAGS )
-GAME(199?, m4gldgat, 0, mod2_7reel_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_seven, ROT0, "Barcrest","Golden Gate (Barcrest) (Dutch) (MPU4) (DGG 2.2)",GAME_FLAGS )
+GAME(199?, m4gldgat, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Golden Gate (Barcrest) (Dutch) (MPU4) (DGG 2.2)",GAME_FLAGS )
-GAME(199?, m4toma, 0, mod2_7reel_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default_seven, ROT0, "Barcrest","Tomahawk (Barcrest) (Dutch) (MPU4) (DTK 2.3)",GAME_FLAGS )
+GAME(199?, m4toma, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Tomahawk (Barcrest) (Dutch) (MPU4) (DTK 2.3)",GAME_FLAGS )
-GAME(199?, m4topdk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu4_dutch, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Top Deck (Barcrest) (Dutch) (MPU4) (DT 2.6)",GAME_FLAGS )
+GAME(199?, m4topdk, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Top Deck (Barcrest) (Dutch) (MPU4) (DT 2.6)",GAME_FLAGS )
// boots but no coins?
-GAME(199?, m4bigchd, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Big Chief (Barcrest) (Dutch) (MPU4) (BCH 1.5)",GAME_FLAGS ) // why code BCH on a dutch?
+GAME(199?, m4bigchd, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Big Chief (Barcrest) (Dutch) (MPU4) (BCH 1.5)",GAME_FLAGS ) // why code BCH on a dutch?
// boots with percent key
-GAME(199?, m4dbl9, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::du91_characteriser_prot>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Double 9's (Barcrest) (MPU4) (DU9 1.0)",GAME_FLAGS )
+GAME(199?, m4dbl9, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::du91_characteriser_prot>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Double 9's (Barcrest) (MPU4) (DU9 1.0)",GAME_FLAGS )
// non-standard chr use, hack?
-GAME(199?, m4dbl9a, m4dbl9, mod2_bootleg_fixedret<0x51>, mpu4_70pc, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Double 9's (Barcrest) (bootleg) (MPU4) (DU9 0.2)",GAME_FLAGS )
+GAME(199?, m4dbl9a, m4dbl9, mod2_bootleg_fixedret<0x51>(R4, RT1), mpu4_70pc, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Double 9's (Barcrest) (bootleg) (MPU4) (DU9 0.2)",GAME_FLAGS )
-GAME(199?, m4nick, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 1)",GAME_FLAGS )
-GAME(199?, m4nicka, m4nick, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 2)",GAME_FLAGS )
-GAME(199?, m4nickb, m4nick, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 3)",GAME_FLAGS )
-GAME(199?, m4nickc, m4nick, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 4)",GAME_FLAGS )
-GAME(199?, m4nickd, m4nick, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 5)",GAME_FLAGS )
+GAME(199?, m4nick, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 1)",GAME_FLAGS )
+GAME(199?, m4nicka, m4nick, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 2)",GAME_FLAGS )
+GAME(199?, m4nickb, m4nick, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 3)",GAME_FLAGS )
+GAME(199?, m4nickc, m4nick, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 4)",GAME_FLAGS )
+GAME(199?, m4nickd, m4nick, mod2_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Nickelodeon (Barcrest) (MPU4) (NIL 4.1, set 5)",GAME_FLAGS )
// non-standard protection, hack?
-GAME(199?, m4nicke, m4nick, mod2_bootleg_fixedret<0x1b>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Nickelodeon (Barcrest) (bootleg) (MPU4) (NIL 2.5)",GAME_FLAGS )
+GAME(199?, m4nicke, m4nick, mod2_bootleg_fixedret<0x1b>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Nickelodeon (Barcrest) (bootleg) (MPU4) (NIL 2.5)",GAME_FLAGS )
-GAME(199?, m4joljok, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Jolly Joker (Barcrest) (MPU4) (JOJ 1.6)",GAME_FLAGS )
+GAME(199?, m4joljok, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Jolly Joker (Barcrest) (MPU4) (JOJ 1.6)",GAME_FLAGS )
// non-standard protection
-GAME(199?, m4unkjok, m4joljok, mod2_bootleg_fixedret<0x9a>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Jolly Joker (Barcrest) (MPU4) (bootleg) (JJ1 0.1, set 1)",GAME_FLAGS )
-GAME(199?, m4unkjoka, m4joljok, mod2_bootleg_fixedret<0x9a>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Jolly Joker (Barcrest) (MPU4) (bootleg) (JJ1 0.1. set 2)",GAME_FLAGS )
+GAME(199?, m4unkjok, m4joljok, mod2_bootleg_fixedret<0x9a>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Jolly Joker (Barcrest) (MPU4) (bootleg) (JJ1 0.1, set 1)",GAME_FLAGS )
+GAME(199?, m4unkjoka, m4joljok, mod2_bootleg_fixedret<0x9a>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Jolly Joker (Barcrest) (MPU4) (bootleg) (JJ1 0.1. set 2)",GAME_FLAGS )
-GAME(199?, m4joltav, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Jolly Taverner (Barcrest) (MPU4) (TAV 1.3)",GAME_FLAGS )
+GAME(199?, m4joltav, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Jolly Taverner (Barcrest) (MPU4) (TAV 1.3)",GAME_FLAGS )
//
-GAME(199?, m4joltava, m4joltav, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Jolly Taverner (Barcrest) (MPU4) (JT__ 2.0, set 1)",GAME_FLAGS )
-GAME(199?, m4joltavb, m4joltav, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Barcrest","Jolly Taverner (Barcrest) (MPU4) (JT__ 2.0, set 2)",GAME_FLAGS )
+GAME(199?, m4joltava, m4joltav, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Jolly Taverner (Barcrest) (MPU4) (JT__ 2.0, set 1)",GAME_FLAGS )
+GAME(199?, m4joltavb, m4joltav, mod2_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Jolly Taverner (Barcrest) (MPU4) (JT__ 2.0, set 2)",GAME_FLAGS )
//
-GAME(199?, m4unkjokb, m4joltav, mod2_bootleg_fixedret<0x11>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Jolly Taverner (Barcrest) (bootleg) (MPU4) (TAV 1.1, set 1)",GAME_FLAGS )
-GAME(199?, m4unkjokc, m4joltav, mod2_bootleg_fixedret<0x11>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Jolly Taverner (Barcrest) (bootleg) (MPU4) (TAV 1.1, set 2)",GAME_FLAGS )
+GAME(199?, m4unkjokb, m4joltav, mod2_bootleg_fixedret<0x11>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Jolly Taverner (Barcrest) (bootleg) (MPU4) (TAV 1.1, set 1)",GAME_FLAGS )
+GAME(199?, m4unkjokc, m4joltav, mod2_bootleg_fixedret<0x11>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Jolly Taverner (Barcrest) (bootleg) (MPU4) (TAV 1.1, set 2)",GAME_FLAGS )
// this has a 'tri98' protection sequence check in ROM, but the code appears to have been hacked to expect a different response.
-GAME(199?, m4btclok, 0, mod2_bootleg_fixedret<0x45>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Beat The Clock (Barcrest) (bootleg) (MPU4)",GAME_FLAGS )
+GAME(199?, m4btclok, 0, mod2_bootleg_fixedret<0x45>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Beat The Clock (Barcrest) (bootleg) (MPU4)",GAME_FLAGS )
// protection has been hacked
-GAME(199?, m4brktak, 0, mod2_bootleg_fixedret<0x45>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Break & Take (Barcrest) (bootleg) (MPU4)",GAME_FLAGS )
+GAME(199?, m4brktak, 0, mod2_bootleg_fixedret<0x45>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Break & Take (Barcrest) (bootleg) (MPU4)",GAME_FLAGS )
// runs if you set a stake, missing an extender for the credits display?
-GAME(199?, m4sunclb, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Sun Club (BWB) (MPU4) (SUC 0.2, set 1)",GAME_FLAGS )
-GAME(199?, m4sunclba, m4sunclb, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>, mpu420p, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Sun Club (BWB) (MPU4) (SUC 0.2, set 2)",GAME_FLAGS )
+GAME(199?, m4sunclb, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Sun Club (BWB) (MPU4) (SUC 0.2, set 1)",GAME_FLAGS )
+GAME(199?, m4sunclba, m4sunclb, mod2_cheatchr_pal<mpu4_characteriser_pal::intcep_characteriser_prot>(R4, RT1), mpu420p, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Sun Club (BWB) (MPU4) (SUC 0.2, set 2)",GAME_FLAGS )
// these were found in with mod4oki sets, but don't attempt to play samples, only use the AY
@@ -2132,7 +2204,7 @@ GAME(199?, m4sunclba, m4sunclb, mod2_cheatchr_pal<mpu4_characteriser_pal::intc
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod2_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod2_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "NN3 0.1"
GAME_CUSTOM( 199?, m4nnww2, 0, "nn3xs.p1", 0x0000, 0x010000, CRC(13d02d21) SHA1(8e4dac8e60538884d3f3a92fc1bb9f41276be4c8), "Barcrest","Nudge Nudge Wink Wink (Barcrest) (MPU4, Mod2 type) (NN3 0.1 X)" )
@@ -2153,7 +2225,7 @@ GAME_CUSTOM( 199?, m4nnww2__j, m4nnww2, "nn3xy.p1", 0x0000, 0x010000, CRC
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod2_cheatchr_pal<mpu4_characteriser_pal::cashmx_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod2_cheatchr_pal<mpu4_characteriser_pal::cashmx_characteriser_prot>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "NNU 5.2"
GAME_CUSTOM( 199?, m4nnww2__k, m4nnww2, "nnus.p1", 0x0000, 0x010000, CRC(3e3a829e) SHA1(5aa3a56e007bad4dacdc3c993c87569e4250eecd), "Barcrest","Nudge Nudge Wink Wink (Barcrest) (MPU4, Mod2 type) (NNU 5.2)" )
@@ -2170,7 +2242,7 @@ GAME_CUSTOM( 199?, m4nnww2__o, m4nnww2, "nnu40x.bin", 0x0000, 0x010000, CRC
ROM_REGION( 0x10000, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME( year, setname, parent, mod2_bootleg_fixedret<0x06>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME( year, setname, parent, mod2_bootleg_fixedret<0x06>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// no copyright string and "NNU 5.0"
GAME_CUSTOM( 199?, m4nnww2__hx3, m4nnww2, "classic adders + ladders_alt", 0x0000, 0x010000, CRC(ac948903) SHA1(e07023efd7722a661a2bbf93c0a168af70ad6c20), "hack","Nudge Nudge Wink Wink (Barcrest) (MPU4, Mod2 type) (NNU 5.0, hack, set 1)")
@@ -2182,10 +2254,10 @@ GAME_CUSTOM( 199?, m4nnww2__hx4, m4nnww2, "classic adders + ladders_alt2",
ROM_REGION( 0x10000, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME( year, setname, parent, mod4yam, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS)
+ GAME( year, setname, parent, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, company, title, GAME_FLAGS)
-// fails to boot even without touching protection address, maybe bad? These were in 'adders + ladders' sets but are clearly not
-GAME_CUSTOM( 199?, m4nnww2__hx5, m4nnww2, "nik56c", 0x0000, 0x010000, CRC(05fa11d1) SHA1(01d3d0c504489f1513a0c3aa26e910c9604f5366), "hack","Nudge Nudge Wink Wink (Barcrest) (MPU4, Mod2 type) (NNU 5.0, hack, set 3)")
+// fails to boot even without touching protection address due to checksum error. These were in 'adders + ladders' sets but are clearly not
+GAME_CUSTOM( 199?, m4nnww2__hx5, m4nnww2, "nik56c", 0x0000, 0x010000, CRC(05fa11d1) SHA1(01d3d0c504489f1513a0c3aa26e910c9604f5366) BAD_DUMP, "hack","Nudge Nudge Wink Wink (Barcrest) (MPU4, Mod2 type) (NNU 5.0, hack, set 3)")
#undef GAME_CUSTOM
#define GAME_CUSTOM(year, setname,parent,name,offset,length,hash,company,title) \
@@ -2193,7 +2265,7 @@ GAME_CUSTOM( 199?, m4nnww2__hx5, m4nnww2, "nik56c",
ROM_REGION( 0x10000, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME( year, setname, parent, mod2_bootleg_fixedret<0x0e>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS)
+ GAME( year, setname, parent, mod2_bootleg_fixedret<0x0e>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, company, title, GAME_FLAGS)
// different protection
// no copyright string and "NNU 3.4"
@@ -2207,7 +2279,7 @@ ROM_START( m4holywd )
ROM_END
// non-standard protection, makes some invalid writes
-GAME(199?, m4holywd, 0, mod2_bootleg_fixedret<0xd0>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg?","Hollywood (bootleg) (MPU4) (HOL 1.0)",GAME_FLAGS )
+GAME(199?, m4holywd, 0, mod2_bootleg_fixedret<0xd0>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg?","Hollywood (bootleg) (MPU4) (HOL 1.0)",GAME_FLAGS )
/*********************************************************************************************************
@@ -2245,13 +2317,13 @@ ROM_START( m4hirisee )
ROM_LOAD( "hrise206", 0x0000, 0x010000, CRC(58b4bbdd) SHA1(0b76d27147fbadba97328eb9d2dc81cff9d576e0) )
ROM_END
-GAME(199?, m4hirise, 0, mod2_alt_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_std, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HII 0.3)",GAME_FLAGS )
-GAME(199?, m4hirisea, m4hirise, mod2_alt_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_std, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HIR 3.1, set 1)",GAME_FLAGS )
-GAME(199?, m4hirisec, m4hirise, mod2_alt_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_std, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HIR 3.1, set 2)",GAME_FLAGS )
-GAME(199?, m4hirised, m4hirise, mod2_alt_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_std, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HIR 3.1, set 3)",GAME_FLAGS )
-GAME(199?, m4hirisee, m4hirise, mod2_alt_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>, mpu4, mpu4mod2_machines_state, init_m4default_five_std, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HIR 3.0)",GAME_FLAGS )
+GAME(199?, m4hirise, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>(R5, RT2), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HII 0.3)",GAME_FLAGS )
+GAME(199?, m4hirisea, m4hirise, mod2_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>(R5, RT2), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HIR 3.1, set 1)",GAME_FLAGS )
+GAME(199?, m4hirisec, m4hirise, mod2_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>(R5, RT2), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HIR 3.1, set 2)",GAME_FLAGS )
+GAME(199?, m4hirised, m4hirise, mod2_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>(R5, RT2), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HIR 3.1, set 3)",GAME_FLAGS )
+GAME(199?, m4hirisee, m4hirise, mod2_cheatchr_pal<mpu4_characteriser_pal::hirise_characteriser_prot>(R5, RT2), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (HIR 3.0)",GAME_FLAGS )
// non-standard protection
-GAME(199?, m4hiriseb, m4hirise, mod2_alt_bootleg_fixedret<0x88>, mpu4, mpu4mod2_machines_state, init_m4default_five_std, ROT0, "bootleg?","High Rise (Barcrest) (MPU4) (HIR 1.5, bootleg?)",GAME_FLAGS )
+GAME(199?, m4hiriseb, m4hirise, mod2_bootleg_fixedret<0x88>(R5, RT2), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg?","High Rise (Barcrest) (MPU4) (HIR 1.5, bootleg?)",GAME_FLAGS )
/*********************************************************************************************************
@@ -2266,7 +2338,7 @@ GAME(199?, m4hiriseb, m4hirise, mod2_alt_bootleg_fixedret<0x88>, mpu4, mp
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod2_bootleg_fixedret<0x13>, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod2_bootleg_fixedret<0x13>(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// no copyright string in header, although 1988 BARCREST string exists elsewhere
@@ -2316,7 +2388,7 @@ INPUT_PORTS_START( m4blkbul )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
-GAME(199?, m4blkbul, 0, mod2_alt_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, m4blkbul, mpu4mod2_machines_state, init_m4altreels, ROT0, "Barcrest","Super Play (Czech) (Barcrest) (MPU4) (XSP 0.8)",GAME_FLAGS )
+GAME(199?, m4blkbul, 0, mod2_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT2), m4blkbul, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","Super Play (Czech) (Barcrest) (MPU4) (XSP 0.8)",GAME_FLAGS )
/*********************************************************************************************************
@@ -2332,7 +2404,7 @@ ROM_START( m4toprn )
ROM_LOAD( "toprun_v1_2.bin", 0x8000, 0x004000, CRC(940fafa9) SHA1(2a8b669c51c8df50710bd8b552ab30a5d1a136ab) )
ROM_END
-GAME(199?, m4toprn, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "<unknown>","Top Run (Dutch) (MPU4)",GAME_FLAGS ) // unique behavior (START UP IN countdown)
+GAME(199?, m4toprn, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "<unknown>","Top Run (Dutch) (MPU4)",GAME_FLAGS ) // unique behavior (START UP IN countdown)
/*****************************************************************************************************************************************************************************
*
@@ -2348,7 +2420,7 @@ ROM_START( m4fourmr )
ROM_END
// runs, unprotected, 17 May 1990 BWBNFM26 in ROM
-GAME(1990, m4fourmr, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Four More (BWB) (MPU4)",GAME_FLAGS ) // no sound with either system?
+GAME(1990, m4fourmr, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Four More (BWB) (MPU4)",GAME_FLAGS ) // no sound with either system?
/*****************************************************************************************************************************************************************************
*
@@ -2379,11 +2451,11 @@ ROM_START( m4specu )
ROM_LOAD( "speculator.bin", 0x8000, 0x008000, CRC(4035d20c) SHA1(4a534294c5c7332eacd09ca44f351d6a6850cc29) )
ROM_END
-GAME(199?, m4lineup, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Line Up (BWB) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4lineupa, m4lineup, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Line Up (BWB) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4lineup, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Line Up (BWB) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4lineupa, m4lineup, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Line Up (BWB) (MPU4) (set 2)",GAME_FLAGS )
// very similar game to above
-GAME(199?, m4specu, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "BWB","Speculator Club (BWB) (MPU4)",GAME_FLAGS )
+GAME(199?, m4specu, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "BWB","Speculator Club (BWB) (MPU4)",GAME_FLAGS )
/*********************************************************************************************************
@@ -2396,10 +2468,10 @@ GAME(199?, m4specu, 0, mod2, mpu4, mpu4mod2_machines_state,
*********************************************************************************************************/
// different protection, call/response check with 6 possible values
-GAME(199?, m4blstbk, 0, mod2_chr_blastbnk, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg?","Blast A Bank (MPU4) (BB 1.0)",GAME_FLAGS )
+GAME(199?, m4blstbk, 0, mod2_chr_blastbnk(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg?","Blast A Bank (MPU4) (BB 1.0)",GAME_FLAGS )
// different protection, call/response check with 6 possible values
-GAME(199?, m4copcsh, 0, mod2_chr_copcash, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "bootleg","Coppa Cash (MPU4) (FC 2.0)",GAME_FLAGS )
+GAME(199?, m4copcsh, 0, mod2_chr_copcash(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "bootleg","Coppa Cash (MPU4) (FC 2.0)",GAME_FLAGS )
/*********************************************************************************************************
@@ -2407,12 +2479,6 @@ GAME(199?, m4copcsh, 0, mod2_chr_copcash, mpu4, mpu4mod2_ma
*********************************************************************************************************/
-void mpu4mod2_machines_state::init_m4test()
-{
- init_m4default();
- m_overcurrent_detect = true;
-}
-
ROM_START( m4tst2 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "ut2.p1", 0xe000, 0x2000, CRC(f7fb6575) SHA1(f7961cbd0801b9561d8cd2d23081043d733e1902))
@@ -2428,9 +2494,9 @@ ROM_START( m4rltst )
ROM_LOAD( "rtv.p1", 0x08000, 0x08000, CRC(7b78f3f2) SHA1(07ef8e6a08fd70ee48e4463672a1230ecc669532) )
ROM_END
-GAME( 198?, m4tst2, 0, mod2_no_bacta, mpu4, mpu4mod2_machines_state, init_m4test, ROT0, "Barcrest","MPU4 Unit Test (Program 2)",MACHINE_MECHANICAL )
-GAME( 198?, m4clr, 0, mod2_no_bacta, mpu4, mpu4mod2_machines_state, init_m4test, ROT0, "Barcrest","MPU4 Meter Clear ROM",MACHINE_MECHANICAL )
-GAME( 198?, m4rltst, 0, mod2_no_bacta, mpu4, mpu4mod2_machines_state, init_m4test, ROT0, "Barcrest","MPU4 Reel Test (3.0)",MACHINE_MECHANICAL )
+GAME( 198?, m4tst2, 0, mod2_no_bacta(R4, RT1, OVER), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","MPU4 Unit Test (Program 2)",MACHINE_MECHANICAL )
+GAME( 198?, m4clr, 0, mod2_no_bacta(R4, RT1, OVER), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","MPU4 Meter Clear ROM",MACHINE_MECHANICAL )
+GAME( 198?, m4rltst, 0, mod2_no_bacta(R4, RT1, OVER), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Barcrest","MPU4 Reel Test (3.0)",MACHINE_MECHANICAL )
/*********************************************************************************************************
@@ -2442,36 +2508,39 @@ GAME( 198?, m4rltst, 0, mod2_no_bacta, mpu4, mpu4mod2_machine
/* Pcp */
// runs and plays, but no lamps or other display..
-GAME(199?, m4cshino, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Cashino Deluxe (Pcp) (MPU4)",GAME_FLAGS )
+GAME(199?, m4cshino, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Cashino Deluxe (Pcp) (MPU4)",GAME_FLAGS )
// runs and plays, but no lamps or other display..
-GAME(199?, m4jjc, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Jumping Jack Cash (Pcp) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4jjca, m4jjc, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Jumping Jack Cash (Pcp) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4jjc, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Jumping Jack Cash (Pcp) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4jjca, m4jjc, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Jumping Jack Cash (Pcp) (MPU4) (set 2)",GAME_FLAGS )
// runs and plays, but no lamps or other display..
-GAME(199?, m4spton, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Spot On (Pcp) (MPU4)",GAME_FLAGS )
+GAME(199?, m4spton, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Spot On (Pcp) (MPU4)",GAME_FLAGS )
-GAME(199?, m4exlin, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Extra Lines (Pcp) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4exlina, m4exlin, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Extra Lines (Pcp) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4exlin, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Extra Lines (Pcp) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4exlina, m4exlin, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Extra Lines (Pcp) (MPU4) (set 2)",GAME_FLAGS )
-GAME(199?, m4supjst, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4supjsta, m4supjst, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 2)",GAME_FLAGS )
-GAME(199?, m4supjstb, m4supjst, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 3)",GAME_FLAGS )
-GAME(199?, m4supjstc, m4supjst, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 4)",GAME_FLAGS )
-GAME(199?, m4supjstd, m4supjst, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 5)",GAME_FLAGS )
-GAME(199?, m4supjste, m4supjst, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 6)",GAME_FLAGS )
+GAME(199?, m4supjst, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4supjsta, m4supjst, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4supjstb, m4supjst, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 3)",GAME_FLAGS )
+GAME(199?, m4supjstc, m4supjst, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 4)",GAME_FLAGS )
+GAME(199?, m4supjstd, m4supjst, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 5)",GAME_FLAGS )
+GAME(199?, m4supjste, m4supjst, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Super Jester (Pcp) (MPU4) (set 6)",GAME_FLAGS )
-GAME(199?, m4frcrak, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Fruit Cracker (Pcp) (MPU4)",GAME_FLAGS )
+GAME(199?, m4frcrak, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Fruit Cracker (Pcp) (MPU4)",GAME_FLAGS )
-GAME(199?, m4clbrpl, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Pcp","Club Replay (PCP) (MPU4) (01)",GAME_FLAGS )
+GAME(199?, m4clbrpl, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Pcp","Club Replay (PCP) (MPU4) (01)",GAME_FLAGS )
/* Misc */
-GAME(199?, m4spnwin, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Cotswold Microsystems","Spin A Win (Cotswold Microsystems) (MPU4) (set 1)",GAME_FLAGS ) // works?
-GAME(199?, m4spnwina, m4spnwin, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "Cotswold Microsystems","Spin A Win (Cotswold Microsystems) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4spnwin, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Cotswold Microsystems","Spin A Win (Cotswold Microsystems) (MPU4) (set 1)",GAME_FLAGS ) // works?
+GAME(199?, m4spnwina, m4spnwin, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "Cotswold Microsystems","Spin A Win (Cotswold Microsystems) (MPU4) (set 2)",GAME_FLAGS )
// was marked as JPM, but that doesn't seem likely
-GAME(199?, m4pick, 0, mod2, mpu4, mpu4mod2_machines_state, init_m4default, ROT0, "<unknown>","Pick A Fruit (Dutch) (MPU4)",GAME_FLAGS )
+GAME(199?, m4pick, 0, mod2(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, ROT0, "<unknown>","Pick A Fruit (Dutch) (MPU4)",GAME_FLAGS )
-GAMEL(1989?, m4conn4, 0, mod2, connect4, mpu4mod2_machines_state, init_connect4, ROT0, "Dolbeck Systems","Connect 4",MACHINE_IMPERFECT_GRAPHICS|MACHINE_REQUIRES_ARTWORK,layout_connect4 )
+// No reels
+GAMEL(1989?, m4conn4, 0, mod2(OVER), connect4, mpu4mod2_machines_state, init_m4, ROT0, "Dolbeck Systems","Connect 4",MACHINE_IMPERFECT_GRAPHICS|MACHINE_REQUIRES_ARTWORK,layout_connect4 )
+// TUNE ALARM (may or may not be sound-related); probably needs RS-232 link
+GAME(198?, m4funh, 0, mod4psg(R4, RT1), mpu4, mpu4mod2_machines_state, init_m4, 0, "<unknown>", "Fun House (unknown) (MPU4)", GAME_FLAGS ) // was in the SC1 Fun House set
diff --git a/src/mame/barcrest/mpu4mod4oki.cpp b/src/mame/barcrest/mpu4mod4oki.cpp
index 0294a2be756..2e3b37b75b7 100644
--- a/src/mame/barcrest/mpu4mod4oki.cpp
+++ b/src/mame/barcrest/mpu4mod4oki.cpp
@@ -180,16 +180,6 @@ public:
mpu4_state(mconfig, type, tag)
{
}
-
- void init_m4andycp();
-
- void init_m4andyge();
-
- void init_m4tenten();
-
- void init_m4andyfh();
- void init_m4actbnk();
- void init_m4andybt();
};
@@ -202,6 +192,8 @@ public:
} // anonymous namespace
+using namespace mpu4_traits;
+
/* Explanation of automatically generated descriptions
void mpu4mod4oki_machines_state::init_PARENTNAME()
@@ -250,40 +242,32 @@ void mpu4mod4oki_machines_state::init_PARENTNAME()
*
*****************************************************************************************************************************************************************************/
-void mpu4mod4oki_machines_state::init_m4andycp()
-{
- //Derived from Andy_Capp_(Barcrest)_[C05_v1-0_1024_6jp].gam
- init_m4default();
- use_m4_hopper_tubes();
- use_m4_small_extender();
- use_m4_standard_reels();
- //PCKEY =9
- //STKEY =0
- //JPKEY =0
- //JPSET =0
- //DIP1_0=false
- //DIP1_1=false
- //DIP1_2=false
- //DIP1_3=false
- //DIP1_4=false
- //DIP1_5=false
- //DIP1_6=false
- //DIP1_7=false
- //DIP2_0=false
- //DIP2_1=false
- //DIP2_2=false
- //DIP2_3=false
- //DIP2_4=false
- //DIP2_5=true
- //DIP2_6=false
- //DIP2_7=false
- //Sound empire
- //Standard
- //Volume 0 Stereo= 1
- //Sample rate 16000
- //Front door code 39 Cash door code 38
-}
-
+ //Derived from Andy_Capp_(Barcrest)_[C05_v1-0_1024_6jp].gam
+ //PCKEY =9
+ //STKEY =0
+ //JPKEY =0
+ //JPSET =0
+ //DIP1_0=false
+ //DIP1_1=false
+ //DIP1_2=false
+ //DIP1_3=false
+ //DIP1_4=false
+ //DIP1_5=false
+ //DIP1_6=false
+ //DIP1_7=false
+ //DIP2_0=false
+ //DIP2_1=false
+ //DIP2_2=false
+ //DIP2_3=false
+ //DIP2_4=false
+ //DIP2_5=true
+ //DIP2_6=false
+ //DIP2_7=false
+ //Sound empire
+ //Standard
+ //Volume 0 Stereo= 1
+ //Sample rate 16000
+ //Front door code 39 Cash door code 38
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
@@ -307,90 +291,90 @@ void mpu4mod4oki_machines_state::init_m4andycp()
GAMEL( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS, layout_m4andycp )
// "(C)1991 BARCREST" and "C2T 0.2"
-GAME_CUSTOM( 1991, m4andycpc2, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02s.p1", 0x0000, 0x010000, CRC(d004f962) SHA1(1f211fd62438cb7c5d5f4ce9ced29a0a7e64e80b), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T, set 1)" )
-GAME_CUSTOM( 1991, m4andycpc2d, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02d.p1", 0x0000, 0x010000, CRC(ce5bbf2e) SHA1(dab2a1015713ceb8dce8b766fc2660207fcbb9f2), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T D)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpc2ad, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02ad.p1", 0x0000, 0x010000, CRC(38e36fe3) SHA1(01c007e21a6ac1a77bf314402d727c41b7a222ca), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T AD)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpc2b, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02b.p1", 0x0000, 0x010000, CRC(f059a9dc) SHA1(0c5d5a4b108c85215b9d5f8c2263b66559cfa90a), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T B)" )
-GAME_CUSTOM( 1991, m4andycpc2bd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02bd.p1", 0x0000, 0x010000, CRC(0eff02a9) SHA1(f460f93098630ac2757a560deb2e741ae9631a54), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T BD)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpc2r, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02r.p1", 0x0000, 0x010000, CRC(6ccaf958) SHA1(8878e16d2c01131d36f211b3a73e987409f54ef9), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T R)" )
-GAME_CUSTOM( 1991, m4andycpc2rd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02dr.p1", 0x0000, 0x010000, CRC(7daee156) SHA1(2ae03c39ca5704c112c9ec6acba46022f4dd9805), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T RD)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpc2k, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02k.p1", 0x0000, 0x010000, CRC(077024e0) SHA1(80597f28891caa25506bb6bbc77a005623096ff9), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T K)" )
-GAME_CUSTOM( 1991, m4andycpc2kd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02dk.p1", 0x0000, 0x010000, CRC(dc8c078e) SHA1(9dcde48d17a39dbe10333632eacc1f0860e165de), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T KD)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpc2y, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02y.p1", 0x0000, 0x010000, CRC(f1a1d1b6) SHA1(d9ceedee3b833be8de5b065e45a72ca180283528), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T Y)" )
-GAME_CUSTOM( 1991, m4andycpc2yd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c2t02dy.p1", 0x0000, 0x010000, CRC(e0c5c9b8) SHA1(d067d4786ded041d8031808078eb2c0383937931), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T YD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc2, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02s.p1", 0x0000, 0x010000, CRC(d004f962) SHA1(1f211fd62438cb7c5d5f4ce9ced29a0a7e64e80b), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T, set 1)" )
+GAME_CUSTOM( 1991, m4andycpc2d, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02d.p1", 0x0000, 0x010000, CRC(ce5bbf2e) SHA1(dab2a1015713ceb8dce8b766fc2660207fcbb9f2), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T D)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc2ad, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02ad.p1", 0x0000, 0x010000, CRC(38e36fe3) SHA1(01c007e21a6ac1a77bf314402d727c41b7a222ca), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T AD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc2b, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02b.p1", 0x0000, 0x010000, CRC(f059a9dc) SHA1(0c5d5a4b108c85215b9d5f8c2263b66559cfa90a), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T B)" )
+GAME_CUSTOM( 1991, m4andycpc2bd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02bd.p1", 0x0000, 0x010000, CRC(0eff02a9) SHA1(f460f93098630ac2757a560deb2e741ae9631a54), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T BD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc2r, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02r.p1", 0x0000, 0x010000, CRC(6ccaf958) SHA1(8878e16d2c01131d36f211b3a73e987409f54ef9), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T R)" )
+GAME_CUSTOM( 1991, m4andycpc2rd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02dr.p1", 0x0000, 0x010000, CRC(7daee156) SHA1(2ae03c39ca5704c112c9ec6acba46022f4dd9805), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T RD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc2k, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02k.p1", 0x0000, 0x010000, CRC(077024e0) SHA1(80597f28891caa25506bb6bbc77a005623096ff9), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T K)" )
+GAME_CUSTOM( 1991, m4andycpc2kd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02dk.p1", 0x0000, 0x010000, CRC(dc8c078e) SHA1(9dcde48d17a39dbe10333632eacc1f0860e165de), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T KD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc2y, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02y.p1", 0x0000, 0x010000, CRC(f1a1d1b6) SHA1(d9ceedee3b833be8de5b065e45a72ca180283528), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T Y)" )
+GAME_CUSTOM( 1991, m4andycpc2yd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c2t02dy.p1", 0x0000, 0x010000, CRC(e0c5c9b8) SHA1(d067d4786ded041d8031808078eb2c0383937931), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T YD)" ) // datapak
// "(C)1991 BARCREST" and "C2T 0.1"
-GAME_CUSTOM( 1991, m4andycpc2_a, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "acap2010", 0x0000, 0x010000, CRC(1b8e712b) SHA1(6770869966290fe6e61b7bf1971ab7a15e601d69), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T, set 2)" )
+GAME_CUSTOM( 1991, m4andycpc2_a, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "acap2010", 0x0000, 0x010000, CRC(1b8e712b) SHA1(6770869966290fe6e61b7bf1971ab7a15e601d69), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C2T, set 2)" )
// "(C)1991 BARCREST" and "C5T 0.1"
-GAME_CUSTOM( 1991, m4andycpc5, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c5ts.p1", 0x0000, 0x010000, CRC(3ade4b1b) SHA1(c65d05e2493a0e2d6a4be58a42aac6cb7f9c01b5), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T)" )
-GAME_CUSTOM( 1991, m4andycpc5d, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c5td.p1", 0x0000, 0x010000, CRC(ab359cae) SHA1(f8ab817709e0eeb91a059cdef19df99c6286bf3f), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T D)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpc5ad, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c5tad.p1", 0x0000, 0x010000, CRC(dab92a37) SHA1(30297a7e1a995b76d8f955fd8a40efc914874e29), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T AD)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpc5b, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c5tb.p1", 0x0000, 0x010000, CRC(1a747871) SHA1(61eb026c2d35feade5cfecf609e99cd0c6d0693e), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T B)" )
-GAME_CUSTOM( 1991, m4andycpc5bd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c5tbd.p1", 0x0000, 0x010000, CRC(b0fb7c1c) SHA1(f5edf7685cc7015ac9791d35dde3fd284180660f), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T BD)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpc5k, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c5tk.p1", 0x0000, 0x010000, CRC(26a1d1f6) SHA1(c64763188dd0520c3f802863d36c84a476efef40), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T K)" )
-GAME_CUSTOM( 1991, m4andycpc5kd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c5tdk.p1", 0x0000, 0x010000, CRC(295976d6) SHA1(a506097e94d290f5b66f61c9979b0ae4f211bb0c), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T KD)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpc5y, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c5ty.p1", 0x0000, 0x010000, CRC(52953040) SHA1(65102c88e8766e07d268fe0267bc6731d8b3eeb3), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T Y)" ) // needs % key
-GAME_CUSTOM( 1991, m4andycpc5yd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, init_m4andycp, "c5tdy.p1", 0x0000, 0x010000, CRC(d9b4dc81) SHA1(e7b7a5f9b1ad348444d5403df2bf16b829364d33), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T YD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc5, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c5ts.p1", 0x0000, 0x010000, CRC(3ade4b1b) SHA1(c65d05e2493a0e2d6a4be58a42aac6cb7f9c01b5), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T)" )
+GAME_CUSTOM( 1991, m4andycpc5d, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c5td.p1", 0x0000, 0x010000, CRC(ab359cae) SHA1(f8ab817709e0eeb91a059cdef19df99c6286bf3f), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T D)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc5ad, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c5tad.p1", 0x0000, 0x010000, CRC(dab92a37) SHA1(30297a7e1a995b76d8f955fd8a40efc914874e29), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T AD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc5b, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c5tb.p1", 0x0000, 0x010000, CRC(1a747871) SHA1(61eb026c2d35feade5cfecf609e99cd0c6d0693e), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T B)" )
+GAME_CUSTOM( 1991, m4andycpc5bd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c5tbd.p1", 0x0000, 0x010000, CRC(b0fb7c1c) SHA1(f5edf7685cc7015ac9791d35dde3fd284180660f), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T BD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc5k, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c5tk.p1", 0x0000, 0x010000, CRC(26a1d1f6) SHA1(c64763188dd0520c3f802863d36c84a476efef40), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T K)" )
+GAME_CUSTOM( 1991, m4andycpc5kd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c5tdk.p1", 0x0000, 0x010000, CRC(295976d6) SHA1(a506097e94d290f5b66f61c9979b0ae4f211bb0c), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T KD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpc5y, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c5ty.p1", 0x0000, 0x010000, CRC(52953040) SHA1(65102c88e8766e07d268fe0267bc6731d8b3eeb3), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T Y)" ) // needs % key
+GAME_CUSTOM( 1991, m4andycpc5yd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "c5tdy.p1", 0x0000, 0x010000, CRC(d9b4dc81) SHA1(e7b7a5f9b1ad348444d5403df2bf16b829364d33), "Barcrest", "Andy Capp (Barcrest) (MPU4) (C5T YD)" ) // datapak
// "(C)1991 BARCREST" and "AN8 0.1"
-GAME_CUSTOM( 1991, m4andycp8, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "an8s.p1", 0x0000, 0x010000, CRC(14ac28da) SHA1(0b4a3f997e10573f2c4c44daac344f4be52363a0), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8)" )
-GAME_CUSTOM( 1991, m4andycp8d, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "an8d.p1", 0x0000, 0x010000, CRC(ae01af1c) SHA1(7b2305480a318648a3cc6c3bc66f21ac327e25aa), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 D)" ) // datapak
-GAME_CUSTOM( 1991, m4andycp8ad, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "an8ad.p1", 0x0000, 0x010000, CRC(d0f9da00) SHA1(fb380897fffc33d238b8fe7d47ff4d9d97960283), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 AD)" ) // datapak
-GAME_CUSTOM( 1991, m4andycp8b, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "an8b.p1", 0x0000, 0x010000, CRC(fc4001ae) SHA1(b0cd795235e6f500f0150097b8f760165c17ca27), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 B)" )
-GAME_CUSTOM( 1991, m4andycp8c, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "an8c.p1", 0x0000, 0x010000, CRC(35a4403e) SHA1(33d3ca4e7bad25d064e0780c2104c395259c2a94), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 C)" )
-GAME_CUSTOM( 1991, m4andycp8k, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "an8k.p1", 0x0000, 0x010000, CRC(296b4453) SHA1(060a6cea9a0be923e359dd69e34a6c25d631e4e5), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 K)" )
-GAME_CUSTOM( 1991, m4andycp8kd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "an8dk.p1", 0x0000, 0x010000, CRC(d43ad86d) SHA1(a71f1eb26e5f688db675b5c6bddda713e709a7af), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 KD)" ) // datapak
-GAME_CUSTOM( 1991, m4andycp8y, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "an8y.p1", 0x0000, 0x010000, CRC(44da57c9) SHA1(0f2776214068400a0e30b5642f42d72f58bbc29b), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 Y)" ) // need % key
-GAME_CUSTOM( 1991, m4andycp8yd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "an8dy.p1", 0x0000, 0x010000, CRC(6730e476) SHA1(d19f7d173ec18085ef904c8621e81305bd54a143), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 YD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycp8, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "an8s.p1", 0x0000, 0x010000, CRC(14ac28da) SHA1(0b4a3f997e10573f2c4c44daac344f4be52363a0), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8)" )
+GAME_CUSTOM( 1991, m4andycp8d, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "an8d.p1", 0x0000, 0x010000, CRC(ae01af1c) SHA1(7b2305480a318648a3cc6c3bc66f21ac327e25aa), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 D)" ) // datapak
+GAME_CUSTOM( 1991, m4andycp8ad, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "an8ad.p1", 0x0000, 0x010000, CRC(d0f9da00) SHA1(fb380897fffc33d238b8fe7d47ff4d9d97960283), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 AD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycp8b, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "an8b.p1", 0x0000, 0x010000, CRC(fc4001ae) SHA1(b0cd795235e6f500f0150097b8f760165c17ca27), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 B)" )
+GAME_CUSTOM( 1991, m4andycp8c, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "an8c.p1", 0x0000, 0x010000, CRC(35a4403e) SHA1(33d3ca4e7bad25d064e0780c2104c395259c2a94), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 C)" )
+GAME_CUSTOM( 1991, m4andycp8k, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "an8k.p1", 0x0000, 0x010000, CRC(296b4453) SHA1(060a6cea9a0be923e359dd69e34a6c25d631e4e5), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 K)" )
+GAME_CUSTOM( 1991, m4andycp8kd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "an8dk.p1", 0x0000, 0x010000, CRC(d43ad86d) SHA1(a71f1eb26e5f688db675b5c6bddda713e709a7af), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 KD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycp8y, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "an8y.p1", 0x0000, 0x010000, CRC(44da57c9) SHA1(0f2776214068400a0e30b5642f42d72f58bbc29b), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 Y)" ) // need % key
+GAME_CUSTOM( 1991, m4andycp8yd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "an8dy.p1", 0x0000, 0x010000, CRC(6730e476) SHA1(d19f7d173ec18085ef904c8621e81305bd54a143), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AN8 YD)" ) // datapak
// "(C)1991 BARCREST" and "AND 0.4"
-GAME_CUSTOM( 1991, m4andycpd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "ands.p1", 0x0000, 0x010000, CRC(120967eb) SHA1(f47846e5f1c6300518104341740e66610b9a9ab3), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND)" )
-GAME_CUSTOM( 1991, m4andycpdd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "andd.p1", 0x0000, 0x010000, CRC(d48a42fb) SHA1(94e3b994b9425af9a7744d511ad3413a79e24f21), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND D)" ) // datapak
-GAME_CUSTOM( 1991, m4andycpdc, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "andc.p1", 0x0000, 0x010000, CRC(31735e79) SHA1(7247efbfe41dce04dd494f07a8871f34d76eaacd), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND C)" )
-GAME_CUSTOM( 1991, m4andycpdk, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "andk.p1", 0x0000, 0x010000, CRC(08e6d20f) SHA1(f66207f69bf417e9380ecc8bd2ba73c6f3d55150), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND K)" )
-GAME_CUSTOM( 1991, m4andycpdy, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "andy.p1", 0x0000, 0x010000, CRC(b1124803) SHA1(0f3422e5f048d1748d2c912f2ea56f206fd101bb), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND Y, set 1)" ) // needs % key
-GAME_CUSTOM( 1991, m4andycpdyd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "anddy.p1", 0x0000, 0x010000, CRC(7f24b95d) SHA1(0aa97ad653b24265d73577db61200e44abf11c50), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND YD)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ands.p1", 0x0000, 0x010000, CRC(120967eb) SHA1(f47846e5f1c6300518104341740e66610b9a9ab3), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND)" )
+GAME_CUSTOM( 1991, m4andycpdd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "andd.p1", 0x0000, 0x010000, CRC(d48a42fb) SHA1(94e3b994b9425af9a7744d511ad3413a79e24f21), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND D)" ) // datapak
+GAME_CUSTOM( 1991, m4andycpdc, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "andc.p1", 0x0000, 0x010000, CRC(31735e79) SHA1(7247efbfe41dce04dd494f07a8871f34d76eaacd), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND C)" )
+GAME_CUSTOM( 1991, m4andycpdk, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "andk.p1", 0x0000, 0x010000, CRC(08e6d20f) SHA1(f66207f69bf417e9380ecc8bd2ba73c6f3d55150), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND K)" )
+GAME_CUSTOM( 1991, m4andycpdy, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "andy.p1", 0x0000, 0x010000, CRC(b1124803) SHA1(0f3422e5f048d1748d2c912f2ea56f206fd101bb), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND Y, set 1)" ) // needs % key
+GAME_CUSTOM( 1991, m4andycpdyd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "anddy.p1", 0x0000, 0x010000, CRC(7f24b95d) SHA1(0aa97ad653b24265d73577db61200e44abf11c50), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND YD)" ) // datapak
// "(C)1991 BARCREST" and "AND 0.2"
-GAME_CUSTOM( 1991, m4andycpdy_a, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, init_m4andycp, "acap20p", 0x0000, 0x010000, CRC(f0a9a4a4) SHA1(3c9a2e3d90ea91f92ae500856ad97c376edc1548), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND Y, set 2)" ) // needs % key
+GAME_CUSTOM( 1991, m4andycpdy_a, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "acap20p", 0x0000, 0x010000, CRC(f0a9a4a4) SHA1(3c9a2e3d90ea91f92ae500856ad97c376edc1548), "Barcrest", "Andy Capp (Barcrest) (MPU4) (AND Y, set 2)" ) // needs % key
// "(C)1994 B.W.B." and "AC101.0"
-GAME_CUSTOM( 1994, m4andycp, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "ac10.hex", 0x0000, 0x010000, CRC(0e250923) SHA1(9557315cca7a47c307e811d437ff424fe77a2843), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10)" )
-GAME_CUSTOM( 1994, m4andycp10c, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "aci10___.1_1", 0x0000, 0x010000, CRC(afa29daa) SHA1(33d161977b1e3512b550980aed48954ba7f0c5a2), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C)" )
-GAME_CUSTOM( 1994, m4andycp10d, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "ac_10sd_.1_1", 0x0000, 0x010000, CRC(ec800208) SHA1(47734ae5a3184e4805a7620287fb5da7fe823929), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10D)" ) // datapak
-GAME_CUSTOM( 1994, m4andycp10k, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "ac_10a__.1_1", 0x0000, 0x010000, CRC(c8a1150b) SHA1(99ba283aeacd1c415d261e10b5b7fd43d3c25af8), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10K)" )
-GAME_CUSTOM( 1994, m4andycp10yd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "ac_10sb_.1_1", 0x0000, 0x010000, CRC(f68f8f48) SHA1(a156d942e7ab7446290dcd8def6236e7436126b9), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10YD)" ) // datapak
+GAME_CUSTOM( 1994, m4andycp, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ac10.hex", 0x0000, 0x010000, CRC(0e250923) SHA1(9557315cca7a47c307e811d437ff424fe77a2843), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10)" )
+GAME_CUSTOM( 1994, m4andycp10c, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "aci10___.1_1", 0x0000, 0x010000, CRC(afa29daa) SHA1(33d161977b1e3512b550980aed48954ba7f0c5a2), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C)" )
+GAME_CUSTOM( 1994, m4andycp10d, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ac_10sd_.1_1", 0x0000, 0x010000, CRC(ec800208) SHA1(47734ae5a3184e4805a7620287fb5da7fe823929), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10D)" ) // datapak
+GAME_CUSTOM( 1994, m4andycp10k, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ac_10a__.1_1", 0x0000, 0x010000, CRC(c8a1150b) SHA1(99ba283aeacd1c415d261e10b5b7fd43d3c25af8), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10K)" )
+GAME_CUSTOM( 1994, m4andycp10yd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ac_10sb_.1_1", 0x0000, 0x010000, CRC(f68f8f48) SHA1(a156d942e7ab7446290dcd8def6236e7436126b9), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC10YD)" ) // datapak
// "(C)1994 B.W.B." and "AC5 1.0"
-GAME_CUSTOM( 1994, m4andycpac, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "ac_05s__.1_1", 0x0000, 0x010000, CRC(eab8aaca) SHA1(ccec86cf44f97a894192b2a6f900a93d26e84bf9), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5)" )
-GAME_CUSTOM( 1994, m4andycpacd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "ac_05sd_.1_1", 0x0000, 0x010000, CRC(4c815831) SHA1(66c6a4fed60ecc5ff5c9202528797d044fde3e76), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 D)" ) // datapak
-GAME_CUSTOM( 1994, m4andycpack, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "ac_05a__.1_1", 0x0000, 0x010000, CRC(880c2532) SHA1(a6a3c996c7507f0e2b8ae8e9fdfb7473263bd5cf), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 K)" )
-GAME_CUSTOM( 1994, m4andycpacyd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "ac_05sb_.1_1", 0x0000, 0x010000, CRC(dfd2571b) SHA1(98d93e30f4684fcbbc5ce4f356b8c9eeb20cbbdb), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 YD)" ) // datapak
-GAME_CUSTOM( 1994, m4andycpacc, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>, mpu4, init_m4andycp, "aci05___.1_1", 0x0000, 0x010000, CRC(e06174e8) SHA1(e984e45b99d4aef9b46c83590efadbdec9888b2d), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C)" )
+GAME_CUSTOM( 1994, m4andycpac, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ac_05s__.1_1", 0x0000, 0x010000, CRC(eab8aaca) SHA1(ccec86cf44f97a894192b2a6f900a93d26e84bf9), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5)" )
+GAME_CUSTOM( 1994, m4andycpacd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ac_05sd_.1_1", 0x0000, 0x010000, CRC(4c815831) SHA1(66c6a4fed60ecc5ff5c9202528797d044fde3e76), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 D)" ) // datapak
+GAME_CUSTOM( 1994, m4andycpack, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ac_05a__.1_1", 0x0000, 0x010000, CRC(880c2532) SHA1(a6a3c996c7507f0e2b8ae8e9fdfb7473263bd5cf), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 K)" )
+GAME_CUSTOM( 1994, m4andycpacyd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ac_05sb_.1_1", 0x0000, 0x010000, CRC(dfd2571b) SHA1(98d93e30f4684fcbbc5ce4f356b8c9eeb20cbbdb), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 YD)" ) // datapak
+GAME_CUSTOM( 1994, m4andycpacc, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andycappalt_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "aci05___.1_1", 0x0000, 0x010000, CRC(e06174e8) SHA1(e984e45b99d4aef9b46c83590efadbdec9888b2d), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C)" )
// "(C)1995 B.W.B." and "ACC52.0"
-GAME_CUSTOM( 1995, m4andycpaccsd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, mpu4, init_m4andycp, "ac_05_d4.2_1", 0x0000, 0x010000, CRC(f672182a) SHA1(55a6691fa9878bc2becf1f080915c0cd939240dd), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (ACC5)" ) // datapak (odd ident string)
+GAME_CUSTOM( 1995, m4andycpaccsd, m4andycp, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R4, RT1, HT, LPS), mpu4, init_m4, "ac_05_d4.2_1", 0x0000, 0x010000, CRC(f672182a) SHA1(55a6691fa9878bc2becf1f080915c0cd939240dd), "BWB", "Andy Capp (BWB / Barcrest) (MPU4) (ACC5)" ) // datapak (odd ident string)
// different protection
// "95,S ALIVE!!!" and "AND 0.3" (hack?)
-GAME_CUSTOM( 199?, m4andycp20, m4andycp, mod4oki_bootleg_fixedret<0x2e>, mpu4, init_m4andycp, "acap_20_.4", 0x0000, 0x010000, CRC(29848eed) SHA1(4096ab2f58b3293c559ff69c6f0f4d6c5dee2fd2), "hack?", "Andy Capp (Barcrest) (MPU4) (hack?, set 1)" ) // bad chr
-GAME_CUSTOM( 199?, m4andycp20_a, m4andycp, mod4oki_bootleg_fixedret<0x2e>, mpu4, init_m4andycp, "acap_20_.8", 0x0000, 0x010000, CRC(3981ec67) SHA1(ad040a4c8690d4348bfe306309df5374251f2b3e), "hack?", "Andy Capp (Barcrest) (MPU4) (hack?, set 2)" ) // bad chr
+GAME_CUSTOM( 199?, m4andycp20, m4andycp, mod4oki_bootleg_fixedret<0x2e>(R4, RT1, HT, LPS), mpu4, init_m4, "acap_20_.4", 0x0000, 0x010000, CRC(29848eed) SHA1(4096ab2f58b3293c559ff69c6f0f4d6c5dee2fd2), "hack?", "Andy Capp (Barcrest) (MPU4) (hack?, set 1)" ) // bad chr
+GAME_CUSTOM( 199?, m4andycp20_a, m4andycp, mod4oki_bootleg_fixedret<0x2e>(R4, RT1, HT, LPS), mpu4, init_m4, "acap_20_.8", 0x0000, 0x010000, CRC(3981ec67) SHA1(ad040a4c8690d4348bfe306309df5374251f2b3e), "hack?", "Andy Capp (Barcrest) (MPU4) (hack?, set 2)" ) // bad chr
// different protection
// "95,S ALIVE!!!" and "AND 0.3" (hack?)
-GAME_CUSTOM( 199?, m4andycp20_b, m4andycp, mod4oki_bootleg_fixedret<0x1e>, mpu4, init_m4andycp, "acap20_11", 0x0000, 0x010000, CRC(799fd89e) SHA1(679016fad8b012bf6b6c617b99fd0dbe71eff562), "hack?", "Andy Capp (Barcrest) (MPU4) (hack?, set 3)" ) // bad chr
+GAME_CUSTOM( 199?, m4andycp20_b, m4andycp, mod4oki_bootleg_fixedret<0x1e>(R4, RT1, HT, LPS), mpu4, init_m4, "acap20_11", 0x0000, 0x010000, CRC(799fd89e) SHA1(679016fad8b012bf6b6c617b99fd0dbe71eff562), "hack?", "Andy Capp (Barcrest) (MPU4) (hack?, set 3)" ) // bad chr
// different protection, involving 814 and regular reads, see note at top of driver
// "FATHER CHISTMAS" and "AC5 1.0" (hack?)
-GAME_CUSTOM( 1994, m4andycpac_a, m4andycp, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4andycp, "acap_05_.8", 0x0000, 0x010000, CRC(a17dd8de) SHA1(963d39fdca7c7b54f5ecf723c982eb30a426ebae), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5, hack?)" )
-GAME_CUSTOM( 1994, m4andycpacc_a, m4andycp, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4andycp, "acap_05_.4", 0x0000, 0x010000, CRC(ca00ee84) SHA1(f1fef3db3db5ca7f0eb72ccc1daba8446db02924), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 1)" )
-GAME_CUSTOM( 1994, m4andycpacc_c, m4andycp, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4andycp, "ac058c", 0x0000, 0x010000, CRC(15204ccc) SHA1(ade376193bc2d53dd4c824ee35fbcc16da31330a), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 3)" )
-GAME_CUSTOM( 1994, m4andycpacc_b, m4andycp, mod4oki_bootleg_fixedret<0x47>, mpu4, init_m4andycp, "ac056c", 0x0000, 0x010000, CRC(cdeaeb06) SHA1(5bfcfba614477f4df9f4b2e56e8448eb357c554a), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 2)" )
-GAME_CUSTOM( 1994, m4andycpacc_d, m4andycp, mod4oki_bootleg_fixedret<0x1f>, mpu4, init_m4andycp, "acap05_11", 0x0000, 0x010000, CRC(fb1533a0) SHA1(814e5dd9c4fe3baf4ea3b22c7e02e30b07bd27a1), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 4)" )
-GAME_CUSTOM( 1994, m4andycpacc_e, m4andycp, mod4oki_bootleg_fixedret<0x2b>, mpu4, init_m4andycp, "acap55", 0x0000, 0x010000, CRC(8007c459) SHA1(b3b6213d89eb0d2cc2f7dab81e0f0f2fdd0f8776), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 5)" )
+GAME_CUSTOM( 1994, m4andycpac_a, m4andycp, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, HT, LPS), mpu4, init_m4, "acap_05_.8", 0x0000, 0x010000, CRC(a17dd8de) SHA1(963d39fdca7c7b54f5ecf723c982eb30a426ebae), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5, hack?)" )
+GAME_CUSTOM( 1994, m4andycpacc_a, m4andycp, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, HT, LPS), mpu4, init_m4, "acap_05_.4", 0x0000, 0x010000, CRC(ca00ee84) SHA1(f1fef3db3db5ca7f0eb72ccc1daba8446db02924), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 1)" )
+GAME_CUSTOM( 1994, m4andycpacc_c, m4andycp, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, HT, LPS), mpu4, init_m4, "ac058c", 0x0000, 0x010000, CRC(15204ccc) SHA1(ade376193bc2d53dd4c824ee35fbcc16da31330a), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 3)" )
+GAME_CUSTOM( 1994, m4andycpacc_b, m4andycp, mod4oki_bootleg_fixedret<0x47>(R4, RT1, HT, LPS), mpu4, init_m4, "ac056c", 0x0000, 0x010000, CRC(cdeaeb06) SHA1(5bfcfba614477f4df9f4b2e56e8448eb357c554a), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 2)" )
+GAME_CUSTOM( 1994, m4andycpacc_d, m4andycp, mod4oki_bootleg_fixedret<0x1f>(R4, RT1, HT, LPS), mpu4, init_m4, "acap05_11", 0x0000, 0x010000, CRC(fb1533a0) SHA1(814e5dd9c4fe3baf4ea3b22c7e02e30b07bd27a1), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 4)" )
+GAME_CUSTOM( 1994, m4andycpacc_e, m4andycp, mod4oki_bootleg_fixedret<0x2b>(R4, RT1, HT, LPS), mpu4, init_m4, "acap55", 0x0000, 0x010000, CRC(8007c459) SHA1(b3b6213d89eb0d2cc2f7dab81e0f0f2fdd0f8776), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC5 C, hack?, set 5)" )
// "FATHER CHISTMAS" and "AC101.0" (hack?)
-GAME_CUSTOM( 1994, m4andycp10_a, m4andycp, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4andycp, "acap_10_.8", 0x0000, 0x010000, CRC(614403a7) SHA1(b627c7c3c6f9a43a0cd9e064715aeee8834c717c), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10, hack?)" )
-GAME_CUSTOM( 1994, m4andycp10c_b, m4andycp, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4andycp, "acp8ac", 0x0000, 0x010000, CRC(d51997b5) SHA1(fe08b5a3832eeaa80f674893342c3baea1608a91), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C, hack?, set 2)" )
-GAME_CUSTOM( 1994, m4andycp10c_d, m4andycp, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4andycp, "acap_10_.4", 0x0000, 0x010000, CRC(fffe742d) SHA1(f2ca45391690dc31662e2d97a3ee34473effa258), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C, hack?, set 4)" )
-GAME_CUSTOM( 1994, m4andycp10c_c, m4andycp, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4andycp, "acap10_11", 0x0000, 0x010000, CRC(c3a866e7) SHA1(4c18e5a26ad2885eb012fd3dd61aaf9cc7d3519a), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C, hack?, set 3)" )
-GAME_CUSTOM( 1994, m4andycp10c_a, m4andycp, mod4oki_bootleg_fixedret<0x1c>, mpu4, init_m4andycp, "acapp10p5.bin", 0x0000, 0x010000, CRC(de650e19) SHA1(c1b9cbad23a1eac9b3718f4f2457c97317f96be6), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C, hack?, set 1)" )
+GAME_CUSTOM( 1994, m4andycp10_a, m4andycp, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, HT, LPS), mpu4, init_m4, "acap_10_.8", 0x0000, 0x010000, CRC(614403a7) SHA1(b627c7c3c6f9a43a0cd9e064715aeee8834c717c), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10, hack?)" )
+GAME_CUSTOM( 1994, m4andycp10c_b, m4andycp, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, HT, LPS), mpu4, init_m4, "acp8ac", 0x0000, 0x010000, CRC(d51997b5) SHA1(fe08b5a3832eeaa80f674893342c3baea1608a91), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C, hack?, set 2)" )
+GAME_CUSTOM( 1994, m4andycp10c_d, m4andycp, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, HT, LPS), mpu4, init_m4, "acap_10_.4", 0x0000, 0x010000, CRC(fffe742d) SHA1(f2ca45391690dc31662e2d97a3ee34473effa258), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C, hack?, set 4)" )
+GAME_CUSTOM( 1994, m4andycp10c_c, m4andycp, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, HT, LPS), mpu4, init_m4, "acap10_11", 0x0000, 0x010000, CRC(c3a866e7) SHA1(4c18e5a26ad2885eb012fd3dd61aaf9cc7d3519a), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C, hack?, set 3)" )
+GAME_CUSTOM( 1994, m4andycp10c_a, m4andycp, mod4oki_bootleg_fixedret<0x1c>(R4, RT1, HT, LPS), mpu4, init_m4, "acapp10p5.bin", 0x0000, 0x010000, CRC(de650e19) SHA1(c1b9cbad23a1eac9b3718f4f2457c97317f96be6), "hack?", "Andy Capp (BWB / Barcrest) (MPU4) (AC10C, hack?, set 1)" )
/*****************************************************************************************************************************************************************************
@@ -416,7 +400,7 @@ ROM_START( m4andycpdut )
ROM_END
// blank copyright and "DAC 1.3" (6 reel game, not the same as the UK version?)
-GAME(199?, m4andycpdut, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_six_sextender, ROT0, "Barcrest", "Andy Capp (Barcrest) (Dutch) (MPU4) (DAC 1.3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4andycpdut, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>(R6, RT1, LPS), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest", "Andy Capp (Barcrest) (Dutch) (MPU4) (DAC 1.3)", GAME_FLAGS|MACHINE_NO_SOUND )
/*****************************************************************************************************************************************************************************
@@ -438,7 +422,7 @@ GAME(199?, m4andycpdut, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::phr_char
ROM_LOAD( name, offset, length, hash ) \
M4ANDYFL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "ALT 0.4"
GAME_CUSTOM( 1991, m4andyflt, m4andyfl, "alt04s.p1", 0x0000, 0x010000, CRC(81cf27b3) SHA1(b04970a20a297032cf33dbe97fa22fb723587228), "Barcrest", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4)" )
@@ -472,7 +456,7 @@ GAME_CUSTOM( 1991, m4andyfluyd, m4andyfl, "alu03dy.p1", 0x000
ROM_LOAD( name, offset, length, hash ) \
M4ANDYFL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cheryo_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cheryo_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1996 B.W.B." and "AL4 2.1"
GAME_CUSTOM( 1996, m4andyfl, 0, "andy loves flo 05a 4 2-1",0x0000, 0x010000, CRC(773d2c6f) SHA1(944be6fff70439077a9c0d858e76806e0317585c), "BWB", "Andy Loves Flo (BWB / Barcrest) (MPU4) (AL4 2.1 KS)" )
@@ -486,7 +470,7 @@ GAME_CUSTOM( 1996, m4andyfl8bs, m4andyfl, "al_05a__.2_1", 0x000
ROM_LOAD( name, offset, length, hash ) \
M4ANDYFL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andyfloalt_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andyfloalt_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "AL3 0.1"
GAME_CUSTOM( 1991, m4andyfl3, m4andyfl, "al3s.p1", 0x0000, 0x010000, CRC(07d4d6c3) SHA1(d013cf49ed4b84e6149065c95d1cd00eca0d62b8), "Barcrest", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1)" )
@@ -506,7 +490,7 @@ GAME_CUSTOM( 1991, m4andyfl3yd, m4andyfl, "al3dy.p1", 0x000
ROM_LOAD( name, offset, length, hash ) \
M4ANDYFL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "AL8 0.1"
GAME_CUSTOM( 1991, m4andyfl8, m4andyfl, "al8s.p1", 0x0000, 0x010000, CRC(37e211f9) SHA1(8614e8081fdd370d6c3dd537ee6058a2247d4ae0), "Barcrest", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1)" )
@@ -550,85 +534,85 @@ GAME_CUSTOM( 1991, m4andyflfr, m4andyfl, "alfr.p1", 0x000
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "DF5 0.3"
-GAME_CUSTOM( 1993, m4dtyfref5, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503s.p1", 0x0000, 0x010000, CRC(d5e80ed5) SHA1(b2d601b2a0020f4adf80b1256d31c8cce432ecee), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3)" )
-GAME_CUSTOM( 1993, m4dtyfref5d, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503d.p1", 0x0000, 0x010000, CRC(3eab581a) SHA1(e1f358081953feccf1f03d733f29e839d5f51fcb), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 D)" )
-GAME_CUSTOM( 1993, m4dtyfref5ad, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503ad.p1", 0x0000, 0x010000, CRC(348e375f) SHA1(f9a7e84afb33ec8fad14521eb2ea5d5cdfa48005), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 AD)" )
-GAME_CUSTOM( 1993, m4dtyfref5b, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503b.p1", 0x0000, 0x010000, CRC(5eef10a2) SHA1(938e9a04fe54ac24dd93e9a1388c1dcf485ac212), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 B)" )
-GAME_CUSTOM( 1993, m4dtyfref5bd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503bd.p1", 0x0000, 0x010000, CRC(94840089) SHA1(a48668cdc1d7edae425cc80f2ce0f884f8619242), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 BD)" )
-GAME_CUSTOM( 1993, m4dtyfref5k, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503k.p1", 0x0000, 0x010000, CRC(bc51cc39) SHA1(0bb977c14e66ec48cd64b01a509d8f0cecdc7880), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 K)" )
-GAME_CUSTOM( 1993, m4dtyfref5kd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503dk.p1", 0x0000, 0x010000, CRC(85ede229) SHA1(6799567df8078b69f897c0c5d8a315c6e3ef79b5), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 KD)" )
-GAME_CUSTOM( 1993, m4dtyfref5r, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503r.p1", 0x0000, 0x010000, CRC(6b1940e0) SHA1(e8d3683d1ef65d2e7e035e9aab98ab9136f89464), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 R)" )
-GAME_CUSTOM( 1993, m4dtyfref5rd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503dr.p1", 0x0000, 0x010000, CRC(42721aa6) SHA1(8a29a4433d641ea37bbe3bf99f9222e8261dd63f), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 RD)" )
-GAME_CUSTOM( 1993, m4dtyfref5y, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503y.p1", 0x0000, 0x010000, CRC(118642d4) SHA1(af2c86f0120f38652dc3d1141c5339a32bf73e11), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 Y)" )
-GAME_CUSTOM( 1993, m4dtyfref5yd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "df503dy.p1", 0x0000, 0x010000, CRC(cfce461e) SHA1(5bbbe878e89b1d775048945e259b711ef60de9a1), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 YD)" )
+GAME_CUSTOM( 1993, m4dtyfref5, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503s.p1", 0x0000, 0x010000, CRC(d5e80ed5) SHA1(b2d601b2a0020f4adf80b1256d31c8cce432ecee), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3)" )
+GAME_CUSTOM( 1993, m4dtyfref5d, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503d.p1", 0x0000, 0x010000, CRC(3eab581a) SHA1(e1f358081953feccf1f03d733f29e839d5f51fcb), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 D)" )
+GAME_CUSTOM( 1993, m4dtyfref5ad, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503ad.p1", 0x0000, 0x010000, CRC(348e375f) SHA1(f9a7e84afb33ec8fad14521eb2ea5d5cdfa48005), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 AD)" )
+GAME_CUSTOM( 1993, m4dtyfref5b, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503b.p1", 0x0000, 0x010000, CRC(5eef10a2) SHA1(938e9a04fe54ac24dd93e9a1388c1dcf485ac212), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 B)" )
+GAME_CUSTOM( 1993, m4dtyfref5bd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503bd.p1", 0x0000, 0x010000, CRC(94840089) SHA1(a48668cdc1d7edae425cc80f2ce0f884f8619242), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 BD)" )
+GAME_CUSTOM( 1993, m4dtyfref5k, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503k.p1", 0x0000, 0x010000, CRC(bc51cc39) SHA1(0bb977c14e66ec48cd64b01a509d8f0cecdc7880), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 K)" )
+GAME_CUSTOM( 1993, m4dtyfref5kd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503dk.p1", 0x0000, 0x010000, CRC(85ede229) SHA1(6799567df8078b69f897c0c5d8a315c6e3ef79b5), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 KD)" )
+GAME_CUSTOM( 1993, m4dtyfref5r, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503r.p1", 0x0000, 0x010000, CRC(6b1940e0) SHA1(e8d3683d1ef65d2e7e035e9aab98ab9136f89464), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 R)" )
+GAME_CUSTOM( 1993, m4dtyfref5rd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503dr.p1", 0x0000, 0x010000, CRC(42721aa6) SHA1(8a29a4433d641ea37bbe3bf99f9222e8261dd63f), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 RD)" )
+GAME_CUSTOM( 1993, m4dtyfref5y, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503y.p1", 0x0000, 0x010000, CRC(118642d4) SHA1(af2c86f0120f38652dc3d1141c5339a32bf73e11), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 Y)" )
+GAME_CUSTOM( 1993, m4dtyfref5yd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df503dy.p1", 0x0000, 0x010000, CRC(cfce461e) SHA1(5bbbe878e89b1d775048945e259b711ef60de9a1), "Barcrest","Duty Free (Barcrest) (MPU4) (DF5 0.3 YD)" )
// "(C)1993 BARCREST" and "DFT 0.1"
-GAME_CUSTOM( 1993, m4dtyfreft, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "dfts.p1", 0x0000, 0x010000, CRC(d6585e76) SHA1(91538ff218d8dd7a0d6747daaa9921d3e4b3ec33), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1)" )
-GAME_CUSTOM( 1993, m4dtyfreftd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "dftd.p1", 0x0000, 0x010000, CRC(9ac1f31f) SHA1(541a761c8755d1d85cedbba306ff7330d284480f), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 D)" )
-GAME_CUSTOM( 1993, m4dtyfreftad, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "dftad.p1", 0x0000, 0x010000, CRC(045cedc1) SHA1(0f833077dee2b942e17ce49b5f506d9754ed0bc1), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 AD)" )
-GAME_CUSTOM( 1993, m4dtyfreftb, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "dftb.p1", 0x0000, 0x010000, CRC(93567c8b) SHA1(8dc7d662ae4a5dd58240e90144c0c9905afc04f1), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 B)" )
-GAME_CUSTOM( 1993, m4dtyfreftbd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "dftbd.p1", 0x0000, 0x010000, CRC(b5e5b19a) SHA1(8533865e8c63498e808fb9b1da86fe0ac2a7efdc), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 BD)" )
-GAME_CUSTOM( 1993, m4dtyfreftk, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "dftk.p1", 0x0000, 0x010000, CRC(ad9bb027) SHA1(630e334fdffbdecc903f75b9447c2c7993cf2656), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 K)" )
-GAME_CUSTOM( 1993, m4dtyfreftkd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "dftdk.p1", 0x0000, 0x010000, CRC(dbb4bf41) SHA1(c20b102a53f4d4ccbdb83433a80c77aa444a982d), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 KD)" )
-GAME_CUSTOM( 1993, m4dtyfrefty, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "dfty.p1", 0x0000, 0x010000, CRC(0dead807) SHA1(a704ec65b1d6f91b4950181a792bb082c81fe668), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 Y)" )
-GAME_CUSTOM( 1993, m4dtyfreftyd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "dftdy.p1", 0x0000, 0x010000, CRC(6b12a337) SHA1(57cfa667a2ae3bea36d82ef32429638dc36533ad), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 YD)" )
+GAME_CUSTOM( 1993, m4dtyfreft, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dfts.p1", 0x0000, 0x010000, CRC(d6585e76) SHA1(91538ff218d8dd7a0d6747daaa9921d3e4b3ec33), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1)" )
+GAME_CUSTOM( 1993, m4dtyfreftd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dftd.p1", 0x0000, 0x010000, CRC(9ac1f31f) SHA1(541a761c8755d1d85cedbba306ff7330d284480f), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 D)" )
+GAME_CUSTOM( 1993, m4dtyfreftad, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dftad.p1", 0x0000, 0x010000, CRC(045cedc1) SHA1(0f833077dee2b942e17ce49b5f506d9754ed0bc1), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 AD)" )
+GAME_CUSTOM( 1993, m4dtyfreftb, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dftb.p1", 0x0000, 0x010000, CRC(93567c8b) SHA1(8dc7d662ae4a5dd58240e90144c0c9905afc04f1), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 B)" )
+GAME_CUSTOM( 1993, m4dtyfreftbd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dftbd.p1", 0x0000, 0x010000, CRC(b5e5b19a) SHA1(8533865e8c63498e808fb9b1da86fe0ac2a7efdc), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 BD)" )
+GAME_CUSTOM( 1993, m4dtyfreftk, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dftk.p1", 0x0000, 0x010000, CRC(ad9bb027) SHA1(630e334fdffbdecc903f75b9447c2c7993cf2656), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 K)" )
+GAME_CUSTOM( 1993, m4dtyfreftkd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dftdk.p1", 0x0000, 0x010000, CRC(dbb4bf41) SHA1(c20b102a53f4d4ccbdb83433a80c77aa444a982d), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 KD)" )
+GAME_CUSTOM( 1993, m4dtyfrefty, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dfty.p1", 0x0000, 0x010000, CRC(0dead807) SHA1(a704ec65b1d6f91b4950181a792bb082c81fe668), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 Y)" )
+GAME_CUSTOM( 1993, m4dtyfreftyd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dftdy.p1", 0x0000, 0x010000, CRC(6b12a337) SHA1(57cfa667a2ae3bea36d82ef32429638dc36533ad), "Barcrest","Duty Free (Barcrest) (MPU4) (DFT 0.1 YD)" )
// "(C)1993 BARCREST" and "XD5 0.2"
-GAME_CUSTOM( 1993, m4dtyfrexd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502s.p1", 0x0000, 0x010000, CRC(223117c7) SHA1(9c017c4165db7076c76c081404d27742fd1f62e7), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2)" )
-GAME_CUSTOM( 1993, m4dtyfrexdd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502d.p1", 0x0000, 0x010000, CRC(7b44a085) SHA1(d7e4c25e0d42a32f72afdb17b66425e1127373fc), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 D)" )
-GAME_CUSTOM( 1993, m4dtyfrexdad, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502ad.p1", 0x0000, 0x010000, CRC(62700345) SHA1(9825a9a6161e217ba4682902ac25528287d4ecf3), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 AD)" )
-GAME_CUSTOM( 1993, m4dtyfrexdb, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502b.p1", 0x0000, 0x010000, CRC(40069386) SHA1(0d065c2b528b406468354be68bbafdcac05f779d), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 B)" )
-GAME_CUSTOM( 1993, m4dtyfrexdbd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502bd.p1", 0x0000, 0x010000, CRC(2cdc9833) SHA1(d3fa76c0a9a0113fbb7a83a47e3f7a72aeb942aa), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 BD)" )
-GAME_CUSTOM( 1993, m4dtyfrexdc, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502c.p1", 0x0000, 0x010000, CRC(17124bb6) SHA1(4ab22cffe11e84ff08bf0f026b0ca6d9a0d32bed), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 C)" )
-GAME_CUSTOM( 1993, m4dtyfrexdk, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502k.p1", 0x0000, 0x010000, CRC(c9a3b787) SHA1(c7166c9e809a37037dfdc616df5fbd6b6ff8b2f8), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 K)" )
-GAME_CUSTOM( 1993, m4dtyfrexdkd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502dk.p1", 0x0000, 0x010000, CRC(790aac05) SHA1(db697b9a87d0266fabd23e1b085234e36c816170), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 KD)" )
-GAME_CUSTOM( 1993, m4dtyfrexdr, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502r.p1", 0x0000, 0x010000, CRC(4ddbd944) SHA1(c3df807ead3a50c7be73b084f65771e4b9d1f2d0), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 R)" )
-GAME_CUSTOM( 1993, m4dtyfrexdrd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502dr.p1", 0x0000, 0x010000, CRC(77a14f87) SHA1(651b58c0a9ec13441c9bf8d7bf0d7c736337f171), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 RD)" )
-GAME_CUSTOM( 1993, m4dtyfrexdy, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502y.p1", 0x0000, 0x010000, CRC(d0b0f1aa) SHA1(39560550083952cae568d4d634c04bf48b7baca6), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 Y)" )
-GAME_CUSTOM( 1993, m4dtyfrexdyd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd502dy.p1", 0x0000, 0x010000, CRC(eaca6769) SHA1(1d3d1264d849043f0adcf9a32520e5f80ae17b5f), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 YD)" )
+GAME_CUSTOM( 1993, m4dtyfrexd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502s.p1", 0x0000, 0x010000, CRC(223117c7) SHA1(9c017c4165db7076c76c081404d27742fd1f62e7), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2)" )
+GAME_CUSTOM( 1993, m4dtyfrexdd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502d.p1", 0x0000, 0x010000, CRC(7b44a085) SHA1(d7e4c25e0d42a32f72afdb17b66425e1127373fc), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 D)" )
+GAME_CUSTOM( 1993, m4dtyfrexdad, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502ad.p1", 0x0000, 0x010000, CRC(62700345) SHA1(9825a9a6161e217ba4682902ac25528287d4ecf3), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 AD)" )
+GAME_CUSTOM( 1993, m4dtyfrexdb, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502b.p1", 0x0000, 0x010000, CRC(40069386) SHA1(0d065c2b528b406468354be68bbafdcac05f779d), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 B)" )
+GAME_CUSTOM( 1993, m4dtyfrexdbd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502bd.p1", 0x0000, 0x010000, CRC(2cdc9833) SHA1(d3fa76c0a9a0113fbb7a83a47e3f7a72aeb942aa), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 BD)" )
+GAME_CUSTOM( 1993, m4dtyfrexdc, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502c.p1", 0x0000, 0x010000, CRC(17124bb6) SHA1(4ab22cffe11e84ff08bf0f026b0ca6d9a0d32bed), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 C)" )
+GAME_CUSTOM( 1993, m4dtyfrexdk, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502k.p1", 0x0000, 0x010000, CRC(c9a3b787) SHA1(c7166c9e809a37037dfdc616df5fbd6b6ff8b2f8), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 K)" )
+GAME_CUSTOM( 1993, m4dtyfrexdkd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502dk.p1", 0x0000, 0x010000, CRC(790aac05) SHA1(db697b9a87d0266fabd23e1b085234e36c816170), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 KD)" )
+GAME_CUSTOM( 1993, m4dtyfrexdr, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502r.p1", 0x0000, 0x010000, CRC(4ddbd944) SHA1(c3df807ead3a50c7be73b084f65771e4b9d1f2d0), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 R)" )
+GAME_CUSTOM( 1993, m4dtyfrexdrd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502dr.p1", 0x0000, 0x010000, CRC(77a14f87) SHA1(651b58c0a9ec13441c9bf8d7bf0d7c736337f171), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 RD)" )
+GAME_CUSTOM( 1993, m4dtyfrexdy, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502y.p1", 0x0000, 0x010000, CRC(d0b0f1aa) SHA1(39560550083952cae568d4d634c04bf48b7baca6), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 Y)" )
+GAME_CUSTOM( 1993, m4dtyfrexdyd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd502dy.p1", 0x0000, 0x010000, CRC(eaca6769) SHA1(1d3d1264d849043f0adcf9a32520e5f80ae17b5f), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.2 YD)" )
// "(C)1993 BARCREST" and "XD5 0.1"
-GAME_CUSTOM( 1993, m4dtyfrexd_a, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xd5s.p1", 0x0000, 0x010000, CRC(235ba9d1) SHA1(3a58c986f63c9ee75e91c59455b0a02582b4301b), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.1)" )
+GAME_CUSTOM( 1993, m4dtyfrexd_a, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xd5s.p1", 0x0000, 0x010000, CRC(235ba9d1) SHA1(3a58c986f63c9ee75e91c59455b0a02582b4301b), "Barcrest","Duty Free (Barcrest) (MPU4) (XD5 0.1)" )
// "(C)1993 BARCREST" and "XFT 0.1"
-GAME_CUSTOM( 1993, m4dtyfrexf, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01s.p1", 0x0000, 0x010000, CRC(fc107ba0) SHA1(661f1ab0d0192f77c355d5570885940d71174592), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1)" )
-GAME_CUSTOM( 1993, m4dtyfrexfd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01d.p1", 0x0000, 0x010000, CRC(88391d1c) SHA1(f1b1034b962a03efd7d2cbe6ac0cc7328871a180), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 D)" )
-GAME_CUSTOM( 1993, m4dtyfrexfad, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01ad.p1", 0x0000, 0x010000, CRC(7299da07) SHA1(eb1371ce52e24fbfcac8f45166ca56d8aee9d403), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 AD)" )
-GAME_CUSTOM( 1993, m4dtyfrexfb, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01b.p1", 0x0000, 0x010000, CRC(c24904c4) SHA1(1c1b94b499f7a50e04b1287ce95633a8b0a5c0ea), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 B)" )
-GAME_CUSTOM( 1993, m4dtyfrexfbd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01bd.p1", 0x0000, 0x010000, CRC(e67a0e47) SHA1(8115a5ab8b508ff30b28fa8f5d33f598385ee115), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 BD)" )
-GAME_CUSTOM( 1993, m4dtyfrexfc, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01c.p1", 0x0000, 0x010000, CRC(ee915038) SHA1(a0239268eae757e8e7ee16d9acb5dc28e7820b4e), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 C)" )
-GAME_CUSTOM( 1993, m4dtyfrexfk, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01k.p1", 0x0000, 0x010000, CRC(fbdc88b2) SHA1(231b6b8ba92a794ec363c1b853921e28e6b34fec), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 K)" )
-GAME_CUSTOM( 1993, m4dtyfrexfkd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01dk.p1", 0x0000, 0x010000, CRC(dfef8231) SHA1(7610a7bcdb91a39cf86ac926818d02f4d751f099), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 KD)" )
-GAME_CUSTOM( 1993, m4dtyfrexfr, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01r.p1", 0x0000, 0x010000, CRC(dd8b05e6) SHA1(64a5aaaa6e7fb162c23ad0e36d39923e986b0fb4), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 R)" )
-GAME_CUSTOM( 1993, m4dtyfrexfrd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01dr.p1", 0x0000, 0x010000, CRC(213f7fe5) SHA1(7e9cad6df7f4a58a0b98dbac552bf545a53ebfcd), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 RD)" )
-GAME_CUSTOM( 1993, m4dtyfrexfy, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01y.p1", 0x0000, 0x010000, CRC(39e49e72) SHA1(459e0d81b6d0d2aa44aa6a7a00cbdec4d9536df0), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 Y)" )
-GAME_CUSTOM( 1993, m4dtyfrexfyd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, init_m4default_lextender, "xft01dy.p1", 0x0000, 0x010000, CRC(25fc8e71) SHA1(54c4c8c2118b4758dedb15f0a11f918f2ee0fb7d), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 YD)" )
+GAME_CUSTOM( 1993, m4dtyfrexf, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01s.p1", 0x0000, 0x010000, CRC(fc107ba0) SHA1(661f1ab0d0192f77c355d5570885940d71174592), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1)" )
+GAME_CUSTOM( 1993, m4dtyfrexfd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01d.p1", 0x0000, 0x010000, CRC(88391d1c) SHA1(f1b1034b962a03efd7d2cbe6ac0cc7328871a180), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 D)" )
+GAME_CUSTOM( 1993, m4dtyfrexfad, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01ad.p1", 0x0000, 0x010000, CRC(7299da07) SHA1(eb1371ce52e24fbfcac8f45166ca56d8aee9d403), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 AD)" )
+GAME_CUSTOM( 1993, m4dtyfrexfb, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01b.p1", 0x0000, 0x010000, CRC(c24904c4) SHA1(1c1b94b499f7a50e04b1287ce95633a8b0a5c0ea), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 B)" )
+GAME_CUSTOM( 1993, m4dtyfrexfbd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01bd.p1", 0x0000, 0x010000, CRC(e67a0e47) SHA1(8115a5ab8b508ff30b28fa8f5d33f598385ee115), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 BD)" )
+GAME_CUSTOM( 1993, m4dtyfrexfc, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01c.p1", 0x0000, 0x010000, CRC(ee915038) SHA1(a0239268eae757e8e7ee16d9acb5dc28e7820b4e), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 C)" )
+GAME_CUSTOM( 1993, m4dtyfrexfk, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01k.p1", 0x0000, 0x010000, CRC(fbdc88b2) SHA1(231b6b8ba92a794ec363c1b853921e28e6b34fec), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 K)" )
+GAME_CUSTOM( 1993, m4dtyfrexfkd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01dk.p1", 0x0000, 0x010000, CRC(dfef8231) SHA1(7610a7bcdb91a39cf86ac926818d02f4d751f099), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 KD)" )
+GAME_CUSTOM( 1993, m4dtyfrexfr, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01r.p1", 0x0000, 0x010000, CRC(dd8b05e6) SHA1(64a5aaaa6e7fb162c23ad0e36d39923e986b0fb4), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 R)" )
+GAME_CUSTOM( 1993, m4dtyfrexfrd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01dr.p1", 0x0000, 0x010000, CRC(213f7fe5) SHA1(7e9cad6df7f4a58a0b98dbac552bf545a53ebfcd), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 RD)" )
+GAME_CUSTOM( 1993, m4dtyfrexfy, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01y.p1", 0x0000, 0x010000, CRC(39e49e72) SHA1(459e0d81b6d0d2aa44aa6a7a00cbdec4d9536df0), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 Y)" )
+GAME_CUSTOM( 1993, m4dtyfrexfyd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "xft01dy.p1", 0x0000, 0x010000, CRC(25fc8e71) SHA1(54c4c8c2118b4758dedb15f0a11f918f2ee0fb7d), "Barcrest","Duty Free (Barcrest) (MPU4) (XFT 0.1 YD)" )
// "(C)1993 BARCREST" and "DUT 0.4"
-GAME_CUSTOM( 1993, m4dtyfre, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "duts.p1", 0x0000, 0x010000, CRC(8c7d6567) SHA1(8e82c4168d4d455c7cb95a895c04f7ad327894ec), "Barcrest","Duty Free (Barcrest) (MPU4) (DUT 0.4)" )
-GAME_CUSTOM( 1993, m4dtyfreutb, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "dutb.p1", 0x0000, 0x010000, CRC(479acab7) SHA1(645e876b2c59dd4c091b5f168dcfd2cfa7eda0a3), "Barcrest","Duty Free (Barcrest) (MPU4) (DUT 0.4 B)" )
-GAME_CUSTOM( 1993, m4dtyfreutc, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "dutc.p1", 0x0000, 0x010000, CRC(654858eb) SHA1(4e95d6f1b84360b747a04d34bfda4d8c8ee3ea3b), "Barcrest","Duty Free (Barcrest) (MPU4) (DUT 0.4 C)" )
+GAME_CUSTOM( 1993, m4dtyfre, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "duts.p1", 0x0000, 0x010000, CRC(8c7d6567) SHA1(8e82c4168d4d455c7cb95a895c04f7ad327894ec), "Barcrest","Duty Free (Barcrest) (MPU4) (DUT 0.4)" )
+GAME_CUSTOM( 1993, m4dtyfreutb, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dutb.p1", 0x0000, 0x010000, CRC(479acab7) SHA1(645e876b2c59dd4c091b5f168dcfd2cfa7eda0a3), "Barcrest","Duty Free (Barcrest) (MPU4) (DUT 0.4 B)" )
+GAME_CUSTOM( 1993, m4dtyfreutc, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "dutc.p1", 0x0000, 0x010000, CRC(654858eb) SHA1(4e95d6f1b84360b747a04d34bfda4d8c8ee3ea3b), "Barcrest","Duty Free (Barcrest) (MPU4) (DUT 0.4 C)" )
// "(C)1993 BARCREST" and "DF8 0.1"
-GAME_CUSTOM( 1993, m4dtyfref8, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "df8s.p1", 0x0000, 0x010000, CRC(00571ce4) SHA1(39f5ecec8ccdefb68a8b9d2ab1cd0be6acb0c1c7), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1)" )
-GAME_CUSTOM( 1993, m4dtyfref8d, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "df8d.p1", 0x0000, 0x010000, CRC(df3a0ed7) SHA1(97569499f65e768a059fc86bdbcbde31e1977c23), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 D)" )
-GAME_CUSTOM( 1993, m4dtyfref8c, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "df8c.p1", 0x0000, 0x010000, CRC(07a82d24) SHA1(548576ce7c8d661777122e0d86d8273933beff11), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 C)" )
-GAME_CUSTOM( 1993, m4dtyfref8k, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "df8k.p1", 0x0000, 0x010000, CRC(056ac122) SHA1(9a993c0a7322323512a26b147963591212a226ab), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 K)" )
-GAME_CUSTOM( 1993, m4dtyfref8y, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "df8y.p1", 0x0000, 0x010000, CRC(cb902ef4) SHA1(efd7cb0a002aa54131725759cb73387f281f15a9), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 Y)" )
-GAME_CUSTOM( 1993, m4dtyfref8yd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "df8dy.p1", 0x0000, 0x010000, CRC(0f24e42d) SHA1(1049f50bc8e0a2f7b77d8e3cdc8883b6879e5cd9), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 YD)" )
+GAME_CUSTOM( 1993, m4dtyfref8, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df8s.p1", 0x0000, 0x010000, CRC(00571ce4) SHA1(39f5ecec8ccdefb68a8b9d2ab1cd0be6acb0c1c7), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1)" )
+GAME_CUSTOM( 1993, m4dtyfref8d, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df8d.p1", 0x0000, 0x010000, CRC(df3a0ed7) SHA1(97569499f65e768a059fc86bdbcbde31e1977c23), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 D)" )
+GAME_CUSTOM( 1993, m4dtyfref8c, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df8c.p1", 0x0000, 0x010000, CRC(07a82d24) SHA1(548576ce7c8d661777122e0d86d8273933beff11), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 C)" )
+GAME_CUSTOM( 1993, m4dtyfref8k, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df8k.p1", 0x0000, 0x010000, CRC(056ac122) SHA1(9a993c0a7322323512a26b147963591212a226ab), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 K)" )
+GAME_CUSTOM( 1993, m4dtyfref8y, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df8y.p1", 0x0000, 0x010000, CRC(cb902ef4) SHA1(efd7cb0a002aa54131725759cb73387f281f15a9), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 Y)" )
+GAME_CUSTOM( 1993, m4dtyfref8yd, m4dtyfre, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "df8dy.p1", 0x0000, 0x010000, CRC(0f24e42d) SHA1(1049f50bc8e0a2f7b77d8e3cdc8883b6879e5cd9), "Barcrest","Duty Free (Barcrest) (MPU4) (DF8 0.1 YD)" )
// "1997 COCO" and "DF4 4.1" (hack?)
-GAME_CUSTOM( 199?, m4dtyfre_h1, m4dtyfre, mod4oki_bootleg_fixedret<0x2b>, mpu4, init_m4default_lextender, "dfre55", 0x0000, 0x010000, CRC(01e7d367) SHA1(638b709e4bb997998ccc7c4ea8adc33cabf2fe36), "hack?","Duty Free (BWB / Barcrest) (MPU4) (DF4 4.1, hack?)" ) // bad chr
+GAME_CUSTOM( 199?, m4dtyfre_h1, m4dtyfre, mod4oki_bootleg_fixedret<0x2b>(R4, RT1, LPLB), mpu4, init_m4, "dfre55", 0x0000, 0x010000, CRC(01e7d367) SHA1(638b709e4bb997998ccc7c4ea8adc33cabf2fe36), "hack?","Duty Free (BWB / Barcrest) (MPU4) (DF4 4.1, hack?)" ) // bad chr
// "HI BIG BOY" and "DFT 0.1" (hack?)
-GAME_CUSTOM( 199?, m4dtyfre_h2, m4dtyfre, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default_lextender, "duty2010", 0x0000, 0x010000, CRC(48617f20) SHA1(dd35eef2357af6f88be42bb81608696ed97522c5), "hack?","Duty Free (Barcrest) (MPU4) (DFT 0.1, hack?)" ) // bad chr
+GAME_CUSTOM( 199?, m4dtyfre_h2, m4dtyfre, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, LPLB), mpu4, init_m4, "duty2010", 0x0000, 0x010000, CRC(48617f20) SHA1(dd35eef2357af6f88be42bb81608696ed97522c5), "hack?","Duty Free (Barcrest) (MPU4) (DFT 0.1, hack?)" ) // bad chr
// "(C)1996 B.W.B." and various ident strings, are these hacks? require non-standard protection
-GAME_CUSTOM( 1996, m4dtyfrebwb, m4dtyfre, mod4oki_bootleg_fixedret<0x1f>, mpu4, init_m4default_lextender, "4df5.10", 0x0000, 0x010000, CRC(01c9e06f) SHA1(6d9d4a43f621c4a80259040875a1fe851459b662), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF10 4.3, set 1)" )
-GAME_CUSTOM( 1996, m4dtyfrebwb_a, m4dtyfre, mod4oki_bootleg_fixedret<0x1f>, mpu4, init_m4default_lextender, "dfree510l", 0x0000, 0x010000, CRC(7cf877a9) SHA1(54a87391832a641bf5f7104968b919dbb2bfa1eb), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF10 4.3, set 2)" )
-GAME_CUSTOM( 1996, m4dtyfrebwb_b, m4dtyfre, mod4oki_bootleg_fixedret<0x2c>, mpu4, init_m4default_lextender, "4df5.8t", 0x0000, 0x010000, CRC(e8abec56) SHA1(84f6abc5e8b46c55052d308266000085374b12af), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF8 4.2)" )
-GAME_CUSTOM( 1996, m4dtyfrebwb_d, m4dtyfre, mod4oki_bootleg_fixedret<0x2e>, mpu4, init_m4default_lextender, "df5,2.8t", 0x0000, 0x010000, CRC(eb4cf0ae) SHA1(45c4e143a3e358c4bdc0c10e38039cba48a9e6dc), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF8 2.2, set 2)" )
-GAME_CUSTOM( 1996, m4dtyfrebwb_g, m4dtyfre, mod4oki_bootleg_fixedret<0x2e>, mpu4, init_m4default_lextender, "df5,2.4", 0x0000, 0x010000, CRC(50f8566c) SHA1(364d33de4b34d0052ffc98536468c0a13f847a2a), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF4 1.1)" )
+GAME_CUSTOM( 1996, m4dtyfrebwb, m4dtyfre, mod4oki_bootleg_fixedret<0x1f>(R4, RT1, LPLB), mpu4, init_m4, "4df5.10", 0x0000, 0x010000, CRC(01c9e06f) SHA1(6d9d4a43f621c4a80259040875a1fe851459b662), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF10 4.3, set 1)" )
+GAME_CUSTOM( 1996, m4dtyfrebwb_a, m4dtyfre, mod4oki_bootleg_fixedret<0x1f>(R4, RT1, LPLB), mpu4, init_m4, "dfree510l", 0x0000, 0x010000, CRC(7cf877a9) SHA1(54a87391832a641bf5f7104968b919dbb2bfa1eb), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF10 4.3, set 2)" )
+GAME_CUSTOM( 1996, m4dtyfrebwb_b, m4dtyfre, mod4oki_bootleg_fixedret<0x2c>(R4, RT1, LPLB), mpu4, init_m4, "4df5.8t", 0x0000, 0x010000, CRC(e8abec56) SHA1(84f6abc5e8b46c55052d308266000085374b12af), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF8 4.2)" )
+GAME_CUSTOM( 1996, m4dtyfrebwb_d, m4dtyfre, mod4oki_bootleg_fixedret<0x2e>(R4, RT1, LPLB), mpu4, init_m4, "df5,2.8t", 0x0000, 0x010000, CRC(eb4cf0ae) SHA1(45c4e143a3e358c4bdc0c10e38039cba48a9e6dc), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF8 2.2, set 2)" )
+GAME_CUSTOM( 1996, m4dtyfrebwb_g, m4dtyfre, mod4oki_bootleg_fixedret<0x2e>(R4, RT1, LPLB), mpu4, init_m4, "df5,2.4", 0x0000, 0x010000, CRC(50f8566c) SHA1(364d33de4b34d0052ffc98536468c0a13f847a2a), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF4 1.1)" )
-GAME_CUSTOM( 1996, m4dtyfrebwb_c, m4dtyfre, mod4oki_bootleg_fixedret<0x2e>, mpu4, init_m4default_lextender, "bwb duty free 5.8.bin", 0x0000, 0x010000, CRC(c67e7315) SHA1(a70183b0937c138c96fd1a0cd5bacff1acd0cbdb), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF8 2.2, set 1)" )
-GAME_CUSTOM( 1996, m4dtyfrebwb_e, m4dtyfre, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_lextender, "4df5.4", 0x0000, 0x010000, CRC(60e21664) SHA1(2a343f16ece19396ad41eeac8c94a23d8e648d4f), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF4 4.1)" )
-GAME_CUSTOM( 1996, m4dtyfrebwb_f, m4dtyfre, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_lextender, "df5.4", 0x0000, 0x010000, CRC(14de7ecb) SHA1(f7445b33b2febbf93fd0398ab310ac104e79443c), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF4 2.1)" )
-GAME_CUSTOM( 1996, m4dtyfrebwb_h, m4dtyfre, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default_lextender, "df5.10", 0x0000, 0x010000, CRC(96acf53f) SHA1(1297a9162dea474079d0ea63b2b1b8e7f649230a), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DFC 2.3)" )
+GAME_CUSTOM( 1996, m4dtyfrebwb_c, m4dtyfre, mod4oki_bootleg_fixedret<0x2e>(R4, RT1, LPLB), mpu4, init_m4, "bwb duty free 5.8.bin", 0x0000, 0x010000, CRC(c67e7315) SHA1(a70183b0937c138c96fd1a0cd5bacff1acd0cbdb), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF8 2.2, set 1)" )
+GAME_CUSTOM( 1996, m4dtyfrebwb_e, m4dtyfre, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPLB), mpu4, init_m4, "4df5.4", 0x0000, 0x010000, CRC(60e21664) SHA1(2a343f16ece19396ad41eeac8c94a23d8e648d4f), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF4 4.1)" )
+GAME_CUSTOM( 1996, m4dtyfrebwb_f, m4dtyfre, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPLB), mpu4, init_m4, "df5.4", 0x0000, 0x010000, CRC(14de7ecb) SHA1(f7445b33b2febbf93fd0398ab310ac104e79443c), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DF4 2.1)" )
+GAME_CUSTOM( 1996, m4dtyfrebwb_h, m4dtyfre, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, LPLB), mpu4, init_m4, "df5.10", 0x0000, 0x010000, CRC(96acf53f) SHA1(1297a9162dea474079d0ea63b2b1b8e7f649230a), "BWB","Duty Free (BWB / Barcrest) (MPU4) (DFC 2.3)" )
/*****************************************************************************************************************************************************************************
*
@@ -651,7 +635,7 @@ GAME_CUSTOM( 1996, m4dtyfrebwb_h, m4dtyfre, mod4oki_bootleg_fixedret<0x1d>, mpu
ROM_LOAD( name, offset, length, hash ) \
M4SHODF_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "SDF 0.2"
GAME_CUSTOM( 199?, m4shodf, 0, "sdfs.p1", 0x0000, 0x010000, CRC(5df9abdb) SHA1(0dce3a7ff4d2f11c370a3a2578c592910a9e7371), "Barcrest","Showcase Duty Free (Barcrest) (MPU4) (SDF 0.2)" )
@@ -691,7 +675,7 @@ GAME_CUSTOM( 199?, m4shodf__g, m4shodf, "sd8y.p1", 0x0000, 0x010000, CRC(f7
ROM_LOAD( name, offset, length, hash ) \
M4PRZDTY_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PDU 0.2"
GAME_CUSTOM( 199?, m4przdty, 0, "pdus.p1", 0x0000, 0x010000, CRC(eaa2ae08) SHA1(a4cef3ee8c005fb717625699260d24ef6a368824), "Barcrest","Prize Duty Free (Barcrest) (MPU4) (PDU 0.2)" )
@@ -742,65 +726,65 @@ GAME_CUSTOM( 199?, m4przdty__k, m4przdty, "pd8y.p1", 0x0000, 0x010000, CRC
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "RR6 1.2"
-GAME_CUSTOM( 1991, m4rhog, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, init_m4default_sextender, "rr6s.p1", 0x0000, 0x010000, CRC(f978ca0b) SHA1(11eeac41f4c77b38b33baefb16dab7de1268d161), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2)" )
-GAME_CUSTOM( 1991, m4rhogr6d, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, init_m4default_sextender, "rr6d.p1", 0x0000, 0x010000, CRC(b61115ea) SHA1(92b97cc8b71eb31e8377a59344faaf0d800d1bdc), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 D)" )
-GAME_CUSTOM( 1991, m4rhogr6ad, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, init_m4default_sextender, "rr6ad.p1", 0x0000, 0x010000, CRC(f328204d) SHA1(057f28e7eaaa372b901a76250fb7ebf4403348ad), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 AD)" )
-GAME_CUSTOM( 1991, m4rhogr6b, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, init_m4default_sextender, "rr6b.p1", 0x0000, 0x010000, CRC(ccacd58e) SHA1(64b67e54e5568378a18ba99017078fcd4e6bc749), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 B)" )
-GAME_CUSTOM( 1991, m4rhogr6c, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, init_m4default_sextender, "rr6c.p1", 0x0000, 0x010000, CRC(b5783c69) SHA1(38c122455bed904c9fd683be1a8508a69cbad03f), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 C)" )
-GAME_CUSTOM( 1991, m4rhogr6k, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, init_m4default_sextender, "rr6k.p1", 0x0000, 0x010000, CRC(121d29bf) SHA1(8a6dcf345012b2c499acd32c6bb76eb81ada6fa9), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 K)" )
-GAME_CUSTOM( 1991, m4rhogr6y, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, init_m4default_sextender, "rr6y.p1", 0x0000, 0x010000, CRC(56344b28) SHA1(7f6c740d0991a646393a47e2e85322a7c92bdd62), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 Y)" )
-GAME_CUSTOM( 1991, m4rhogr6yd, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, init_m4default_sextender, "rr6dy.p1", 0x0000, 0x010000, CRC(0e540e0d) SHA1(a783e73822e436669c8cc1504619990725306df1), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 YD)" )
+GAME_CUSTOM( 1991, m4rhog, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rr6s.p1", 0x0000, 0x010000, CRC(f978ca0b) SHA1(11eeac41f4c77b38b33baefb16dab7de1268d161), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2)" )
+GAME_CUSTOM( 1991, m4rhogr6d, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rr6d.p1", 0x0000, 0x010000, CRC(b61115ea) SHA1(92b97cc8b71eb31e8377a59344faaf0d800d1bdc), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 D)" )
+GAME_CUSTOM( 1991, m4rhogr6ad, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rr6ad.p1", 0x0000, 0x010000, CRC(f328204d) SHA1(057f28e7eaaa372b901a76250fb7ebf4403348ad), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 AD)" )
+GAME_CUSTOM( 1991, m4rhogr6b, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rr6b.p1", 0x0000, 0x010000, CRC(ccacd58e) SHA1(64b67e54e5568378a18ba99017078fcd4e6bc749), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 B)" )
+GAME_CUSTOM( 1991, m4rhogr6c, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rr6c.p1", 0x0000, 0x010000, CRC(b5783c69) SHA1(38c122455bed904c9fd683be1a8508a69cbad03f), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 C)" )
+GAME_CUSTOM( 1991, m4rhogr6k, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rr6k.p1", 0x0000, 0x010000, CRC(121d29bf) SHA1(8a6dcf345012b2c499acd32c6bb76eb81ada6fa9), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 K)" )
+GAME_CUSTOM( 1991, m4rhogr6y, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rr6y.p1", 0x0000, 0x010000, CRC(56344b28) SHA1(7f6c740d0991a646393a47e2e85322a7c92bdd62), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 Y)" )
+GAME_CUSTOM( 1991, m4rhogr6yd, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rr6dy.p1", 0x0000, 0x010000, CRC(0e540e0d) SHA1(a783e73822e436669c8cc1504619990725306df1), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.2 YD)" )
// "(C)1991 BARCREST" and "RR6 1.1"
-GAME_CUSTOM( 1991, m4rhogr6y_a, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, init_m4default_sextender, "rdhogvkn", 0x0000, 0x010000, CRC(3db03ada) SHA1(9b26f466c1dc1d03edacf64cbe507e084edf5f90), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.1 Y)" )
+GAME_CUSTOM( 1991, m4rhogr6y_a, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rdhogvkn", 0x0000, 0x010000, CRC(3db03ada) SHA1(9b26f466c1dc1d03edacf64cbe507e084edf5f90), "Barcrest","Road Hog (Barcrest) (MPU4) (RR6 1.1 Y)" )
// "(C)1995 B.W.B." and "RO_ 3.0"
-GAME_CUSTOM( 1995, m4rhogr3, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>, mpu4, init_m4default_sextender, "rh5p8.bin", 0x0000, 0x010000, CRC(35d56379) SHA1(ab70ef8151823c3157cf4cc4f9b29875c6ac81cc), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 3.0)" )
+GAME_CUSTOM( 1995, m4rhogr3, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rh5p8.bin", 0x0000, 0x010000, CRC(35d56379) SHA1(ab70ef8151823c3157cf4cc4f9b29875c6ac81cc), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 3.0)" )
// "(C)1994 B.W.B." and "RO_ 2.0"
-GAME_CUSTOM( 1994, m4rhogr2, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_05s__.2_1", 0x0000, 0x010000, CRC(dc18f70f) SHA1(da81b8279e4f58b1447f51beb446a6007eb39df9), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0)" )
-GAME_CUSTOM( 1994, m4rhogr2d, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_05sd_.2_1", 0x0000, 0x010000, CRC(f230ae7e) SHA1(5525ed33d115b01722186587de20013265ac19b2), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 D)" )
-GAME_CUSTOM( 1994, m4rhogr2c, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "roi05___.2_1", 0x0000, 0x010000, CRC(85fbd24a) SHA1(653a3cf3e651d94611caacddbd0692111667424a), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 C)" )
-GAME_CUSTOM( 1994, m4rhogr2k, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_05a__.2_1", 0x0000, 0x010000, CRC(67450ed1) SHA1(84cab7bb2411eb47c1336159bd1941862da59db3), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 K)" )
-GAME_CUSTOM( 1994, m4rhogr2y, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_05sk_.2_1", 0x0000, 0x010000, CRC(3e1dfedd) SHA1(a750663c96060b858e194445bc1e677b49da85b8), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 Y)" )
-GAME_CUSTOM( 1994, m4rhogr2yd, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_05sb_.2_1", 0x0000, 0x010000, CRC(4a33cfcf) SHA1(ac5d4873df74b521018d5eeac96fd7003ee093e8), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 YD)" )
+GAME_CUSTOM( 1994, m4rhogr2, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_05s__.2_1", 0x0000, 0x010000, CRC(dc18f70f) SHA1(da81b8279e4f58b1447f51beb446a6007eb39df9), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0)" )
+GAME_CUSTOM( 1994, m4rhogr2d, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_05sd_.2_1", 0x0000, 0x010000, CRC(f230ae7e) SHA1(5525ed33d115b01722186587de20013265ac19b2), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 D)" )
+GAME_CUSTOM( 1994, m4rhogr2c, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "roi05___.2_1", 0x0000, 0x010000, CRC(85fbd24a) SHA1(653a3cf3e651d94611caacddbd0692111667424a), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 C)" )
+GAME_CUSTOM( 1994, m4rhogr2k, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_05a__.2_1", 0x0000, 0x010000, CRC(67450ed1) SHA1(84cab7bb2411eb47c1336159bd1941862da59db3), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 K)" )
+GAME_CUSTOM( 1994, m4rhogr2y, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_05sk_.2_1", 0x0000, 0x010000, CRC(3e1dfedd) SHA1(a750663c96060b858e194445bc1e677b49da85b8), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 Y)" )
+GAME_CUSTOM( 1994, m4rhogr2yd, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_05sb_.2_1", 0x0000, 0x010000, CRC(4a33cfcf) SHA1(ac5d4873df74b521018d5eeac96fd7003ee093e8), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0 YD)" )
// "(C)1994 B.W.B." and "RO_ 1.0"
-GAME_CUSTOM( 1994, m4rhogr1, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_10s__.1_1", 0x0000, 0x010000, CRC(d140597a) SHA1(0ddf898b5db2a1cbfda84e8a63e0be3de7582cbd), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0)" )
-GAME_CUSTOM( 1994, m4rhogr1d, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_10sd_.1_1", 0x0000, 0x010000, CRC(3f9152f3) SHA1(97e0c0461b8d4994515ac9e20d001dc7e74042ec), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 D)" )
-GAME_CUSTOM( 1994, m4rhogr1c, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "roi10___.1_1", 0x0000, 0x010000, CRC(2f832f4b) SHA1(b9228e2585cff6d4d9df64048c77e0b9ad3e75d7), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 C)" )
-GAME_CUSTOM( 1994, m4rhogr1k, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_10a__.1_1", 0x0000, 0x010000, CRC(1772bce6) SHA1(c5d0cec8e5bcfcef5003325169522f1da066354b), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 K, set 1)" )
-GAME_CUSTOM( 1994, m4rhogr1y, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_10sk_.1_1", 0x0000, 0x010000, CRC(5d5118d1) SHA1(c4abc5ccdeb711b6ec2a2c82bb2f8da9d824fe4e), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 Y)" )
-GAME_CUSTOM( 1994, m4rhogr1yd, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "ro_10sb_.1_1", 0x0000, 0x010000, CRC(34febd6f) SHA1(e1d5e178771714f9633dd9782c1f9d373a9ca5e1), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 YD)" )
-GAME_CUSTOM( 1994, m4rhogr1k_a, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default_sextender, "rhog5p", 0x0000, 0x010000, CRC(49b11beb) SHA1(89c2320de4b3f2ff6ba28501f88147b659f1ee20), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 K, set 2, wrong version number?)" ) // clearly not the same version as above, more code...
+GAME_CUSTOM( 1994, m4rhogr1, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_10s__.1_1", 0x0000, 0x010000, CRC(d140597a) SHA1(0ddf898b5db2a1cbfda84e8a63e0be3de7582cbd), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0)" )
+GAME_CUSTOM( 1994, m4rhogr1d, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_10sd_.1_1", 0x0000, 0x010000, CRC(3f9152f3) SHA1(97e0c0461b8d4994515ac9e20d001dc7e74042ec), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 D)" )
+GAME_CUSTOM( 1994, m4rhogr1c, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "roi10___.1_1", 0x0000, 0x010000, CRC(2f832f4b) SHA1(b9228e2585cff6d4d9df64048c77e0b9ad3e75d7), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 C)" )
+GAME_CUSTOM( 1994, m4rhogr1k, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_10a__.1_1", 0x0000, 0x010000, CRC(1772bce6) SHA1(c5d0cec8e5bcfcef5003325169522f1da066354b), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 K, set 1)" )
+GAME_CUSTOM( 1994, m4rhogr1y, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_10sk_.1_1", 0x0000, 0x010000, CRC(5d5118d1) SHA1(c4abc5ccdeb711b6ec2a2c82bb2f8da9d824fe4e), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 Y)" )
+GAME_CUSTOM( 1994, m4rhogr1yd, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "ro_10sb_.1_1", 0x0000, 0x010000, CRC(34febd6f) SHA1(e1d5e178771714f9633dd9782c1f9d373a9ca5e1), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 YD)" )
+GAME_CUSTOM( 1994, m4rhogr1k_a, m4rhog, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rhog5p", 0x0000, 0x010000, CRC(49b11beb) SHA1(89c2320de4b3f2ff6ba28501f88147b659f1ee20), "BWB","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0 K, set 2, wrong version number?)" ) // clearly not the same version as above, more code...
// "(C)1995 B.W.B." and "ROC 2.0" (bad, and possible wrong game, club version?)
-GAME_CUSTOM( 1995, m4rhog_roc, m4rhog, mod4oki, mpu4, init_m4default_sextender, "roadhog5p4std.bin", 0x0000, 0x010000, BAD_DUMP CRC(0ff60341) SHA1(c12d5b160d9e47a6f1aa6f378c2a70186be6bdff), "BWB","Road Hog (BWB / Barcrest) (MPU4) (ROC 2.0, bad)" )
+GAME_CUSTOM( 1995, m4rhog_roc, m4rhog, mod4oki(R4, RT1, LPS), mpu4, init_m4, "roadhog5p4std.bin", 0x0000, 0x010000, BAD_DUMP CRC(0ff60341) SHA1(c12d5b160d9e47a6f1aa6f378c2a70186be6bdff), "BWB","Road Hog (BWB / Barcrest) (MPU4) (ROC 2.0, bad)" )
// "(C)1991 BARCREST" and "RR6 1.2" custom protection, hacked
-GAME_CUSTOM( 1991, m4rhog_h12, m4rhog, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_sextender, "rhog20c", 0x0000, 0x010000, CRC(74ec16f7) SHA1(995d75b3a4e88d8a34dc395b185f728c18e00a2b), "hack?","Road Hog (Barcrest) (MPU4) (RR6 1.2?, hack?)" )
-GAME_CUSTOM( 1991, m4rhog_h13, m4rhog, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_sextender, "rhog_20_.8", 0x0000, 0x010000, CRC(3a82e4bf) SHA1(6582951c2afe14502c37460381bf4c28ec02f3c9), "hack?","Road Hog (Barcrest) (MPU4) (RR6 1.2, hack?)" )
-GAME_CUSTOM( 1991, m4rhog_h14, m4rhog, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_sextender, "rhog_20_.4", 0x0000, 0x010000, CRC(15e28457) SHA1(2a758a727a6956e3029b2026cd189f6249677c6a), "hack?","Road Hog (Barcrest) (MPU4) (RR6 1.2C, hack?, set 1)" )
+GAME_CUSTOM( 1991, m4rhog_h12, m4rhog, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPS), mpu4, init_m4, "rhog20c", 0x0000, 0x010000, CRC(74ec16f7) SHA1(995d75b3a4e88d8a34dc395b185f728c18e00a2b), "hack?","Road Hog (Barcrest) (MPU4) (RR6 1.2?, hack?)" )
+GAME_CUSTOM( 1991, m4rhog_h13, m4rhog, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPS), mpu4, init_m4, "rhog_20_.8", 0x0000, 0x010000, CRC(3a82e4bf) SHA1(6582951c2afe14502c37460381bf4c28ec02f3c9), "hack?","Road Hog (Barcrest) (MPU4) (RR6 1.2, hack?)" )
+GAME_CUSTOM( 1991, m4rhog_h14, m4rhog, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPS), mpu4, init_m4, "rhog_20_.4", 0x0000, 0x010000, CRC(15e28457) SHA1(2a758a727a6956e3029b2026cd189f6249677c6a), "hack?","Road Hog (Barcrest) (MPU4) (RR6 1.2C, hack?, set 1)" )
// "(C)1991 BARCREST" and "RR6 1.2" custom protection
-GAME_CUSTOM( 1991, m4rhog_h15, m4rhog, mod4oki_bootleg_fixedret<0x1f>, mpu4, init_m4default_sextender, "rhog20_11", 0x0000, 0x010000, CRC(63c80ee0) SHA1(22a3f11007acedd833af9e73e3038fb3542781fe), "hack?","Road Hog (Barcrest) (MPU4) (RR6 1.2C, hack?, set 2)" )
+GAME_CUSTOM( 1991, m4rhog_h15, m4rhog, mod4oki_bootleg_fixedret<0x1f>(R4, RT1, LPS), mpu4, init_m4, "rhog20_11", 0x0000, 0x010000, CRC(63c80ee0) SHA1(22a3f11007acedd833af9e73e3038fb3542781fe), "hack?","Road Hog (Barcrest) (MPU4) (RR6 1.2C, hack?, set 2)" )
// different protection, involving 814 and regular reads, see note at top of driver
// "HAVE A NICE DAY" and "RO_ 2.0"
-GAME_CUSTOM( 1994, m4rhog_h1, m4rhog, mod4oki_bootleg_fixedret<0x44>, mpu4, init_m4default_sextender, "road hog 5p 6.bin", 0x0000, 0x010000, CRC(b365d1f0) SHA1(af3b4f5162af6c033039a1e004bc803175a4e996), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 1)" )
-GAME_CUSTOM( 1994, m4rhog_h5, m4rhog, mod4oki_bootleg_fixedret<0x44>, mpu4, init_m4default_sextender, "rh056c", 0x0000, 0x010000, CRC(073845e2) SHA1(5e6f3ccdfc346f95e5e7e955144332e727da1d9e), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 5)" )
+GAME_CUSTOM( 1994, m4rhog_h1, m4rhog, mod4oki_bootleg_fixedret<0x44>(R4, RT1, LPS), mpu4, init_m4, "road hog 5p 6.bin", 0x0000, 0x010000, CRC(b365d1f0) SHA1(af3b4f5162af6c033039a1e004bc803175a4e996), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 1)" )
+GAME_CUSTOM( 1994, m4rhog_h5, m4rhog, mod4oki_bootleg_fixedret<0x44>(R4, RT1, LPS), mpu4, init_m4, "rh056c", 0x0000, 0x010000, CRC(073845e2) SHA1(5e6f3ccdfc346f95e5e7e955144332e727da1d9e), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 5)" )
// "HAVE A NICE DAY" and "RO_ 2.0"
-GAME_CUSTOM( 1994, m4rhog_h2, m4rhog, mod4oki_bootleg_fixedret<0x1c>, mpu4, init_m4default_sextender, "rhog05_11", 0x0000, 0x010000, CRC(8e4b14aa) SHA1(8b67b34597c0d30b0b3cf2566536c02f880a74bc), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 2)" )
+GAME_CUSTOM( 1994, m4rhog_h2, m4rhog, mod4oki_bootleg_fixedret<0x1c>(R4, RT1, LPS), mpu4, init_m4, "rhog05_11", 0x0000, 0x010000, CRC(8e4b14aa) SHA1(8b67b34597c0d30b0b3cf2566536c02f880a74bc), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 2)" )
// "HAVE A NICE DAY" and "RO_ 2.0"
-GAME_CUSTOM( 1994, m4rhog_h3, m4rhog, mod4oki_bootleg_fixedret<0x28>, mpu4, init_m4default_sextender, "rhog55", 0x0000, 0x010000, CRC(29395082) SHA1(538434b82e31f7e40770a9b882e54a16195ee998), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 3)" )
+GAME_CUSTOM( 1994, m4rhog_h3, m4rhog, mod4oki_bootleg_fixedret<0x28>(R4, RT1, LPS), mpu4, init_m4, "rhog55", 0x0000, 0x010000, CRC(29395082) SHA1(538434b82e31f7e40770a9b882e54a16195ee998), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 3)" )
// "HAVE A NICE DAY" and "RO_ 2.0"
-GAME_CUSTOM( 1994, m4rhog_h4, m4rhog, mod4oki_bootleg_fixedret<0x2c>, mpu4, init_m4default_sextender, "rhog58c", 0x0000, 0x010000, CRC(e02b6da6) SHA1(7d329adcac594c98685dc5404f2b9e8f717cc47f), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 4)" )
-GAME_CUSTOM( 1994, m4rhog_h6, m4rhog, mod4oki_bootleg_fixedret<0x2c>, mpu4, init_m4default_sextender, "rhog_05_.4", 0x0000, 0x010000, CRC(a75a2bd4) SHA1(d21505d27792acf8fa20a7cdc830efbe8756fe81), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 6)" )
-GAME_CUSTOM( 1994, m4rhog_h7, m4rhog, mod4oki_bootleg_fixedret<0x2c>, mpu4, init_m4default_sextender, "rhog_05_.8", 0x0000, 0x010000, CRC(5476f9b4) SHA1(fbd038e8710a79ea697d5acb482bed2f307cefbb), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 7)" )
+GAME_CUSTOM( 1994, m4rhog_h4, m4rhog, mod4oki_bootleg_fixedret<0x2c>(R4, RT1, LPS), mpu4, init_m4, "rhog58c", 0x0000, 0x010000, CRC(e02b6da6) SHA1(7d329adcac594c98685dc5404f2b9e8f717cc47f), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 4)" )
+GAME_CUSTOM( 1994, m4rhog_h6, m4rhog, mod4oki_bootleg_fixedret<0x2c>(R4, RT1, LPS), mpu4, init_m4, "rhog_05_.4", 0x0000, 0x010000, CRC(a75a2bd4) SHA1(d21505d27792acf8fa20a7cdc830efbe8756fe81), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 6)" )
+GAME_CUSTOM( 1994, m4rhog_h7, m4rhog, mod4oki_bootleg_fixedret<0x2c>(R4, RT1, LPS), mpu4, init_m4, "rhog_05_.8", 0x0000, 0x010000, CRC(5476f9b4) SHA1(fbd038e8710a79ea697d5acb482bed2f307cefbb), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 2.0, hack?, set 7)" )
// "HAVE A NICE DAY" and "RO_ 1.0"
-GAME_CUSTOM( 1994, m4rhog_h8, m4rhog, mod4oki_bootleg_fixedret<0x1f>, mpu4, init_m4default_sextender, "rhog10_11", 0x0000, 0x010000, CRC(83575be7) SHA1(2cb549554028f2fdc32ecfa58b786de375b8fa35), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0, hack?, set 1)" )
+GAME_CUSTOM( 1994, m4rhog_h8, m4rhog, mod4oki_bootleg_fixedret<0x1f>(R4, RT1, LPS), mpu4, init_m4, "rhog10_11", 0x0000, 0x010000, CRC(83575be7) SHA1(2cb549554028f2fdc32ecfa58b786de375b8fa35), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0, hack?, set 1)" )
// "HAVE A NICE DAY" and "RO_ 1.0"
-GAME_CUSTOM( 1994, m4rhog_h9, m4rhog, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_sextender, "rhog10c", 0x0000, 0x010000, CRC(308c6d4f) SHA1(f7f8063fe8dd4ef204f225d0aa5202732ead5fa0), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0, hack?, set 2)" )
-GAME_CUSTOM( 1994, m4rhog_h10, m4rhog, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_sextender, "rhog_10_.4", 0x0000, 0x010000, CRC(8efa581c) SHA1(03c25b674cfb02792edc9ef8a76b16af31d80aae), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0, hack?, set 3)" )
-GAME_CUSTOM( 1994, m4rhog_h11, m4rhog, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_sextender, "rhog_10_.8", 0x0000, 0x010000, CRC(84d1f95d) SHA1(33f10e0e1e5abe6011b05f32f55c7dd6d3298945), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0, hack?, set 4)" )
+GAME_CUSTOM( 1994, m4rhog_h9, m4rhog, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPS), mpu4, init_m4, "rhog10c", 0x0000, 0x010000, CRC(308c6d4f) SHA1(f7f8063fe8dd4ef204f225d0aa5202732ead5fa0), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0, hack?, set 2)" )
+GAME_CUSTOM( 1994, m4rhog_h10, m4rhog, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPS), mpu4, init_m4, "rhog_10_.4", 0x0000, 0x010000, CRC(8efa581c) SHA1(03c25b674cfb02792edc9ef8a76b16af31d80aae), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0, hack?, set 3)" )
+GAME_CUSTOM( 1994, m4rhog_h11, m4rhog, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPS), mpu4, init_m4, "rhog_10_.8", 0x0000, 0x010000, CRC(84d1f95d) SHA1(33f10e0e1e5abe6011b05f32f55c7dd6d3298945), "hack?","Road Hog (BWB / Barcrest) (MPU4) (RO_ 1.0, hack?, set 4)" )
@@ -811,41 +795,32 @@ GAME_CUSTOM( 1994, m4rhog_h11, m4rhog, mod4oki_bootleg_fixedret<0x2f>, mpu
*
*****************************************************************************************************************************************************************************/
-void mpu4mod4oki_machines_state::init_m4andyge()
-{
- //Derived from Andy's_Great_Escape_(Barcrest)_[C02_1024_10jp].gam
- init_m4default();
- use_m4_hopper_tubes();
- use_m4_small_extender();
- use_m4_five_reel_std();
-
- //PCKEY =1
- //STKEY =3
- //JPKEY =7
- //JPSET =3
- //DIP1_0=false
- //DIP1_1=false
- //DIP1_2=false
- //DIP1_3=false
- //DIP1_4=false
- //DIP1_5=false
- //DIP1_6=false
- //DIP1_7=false
- //DIP2_0=false
- //DIP2_1=false
- //DIP2_2=false
- //DIP2_3=false
- //DIP2_4=false
- //DIP2_5=false
- //DIP2_6=false
- //DIP2_7=false
- //Sound other
- //Standard
- //Volume 1 Stereo= 1
- //Sample rate 16000
- //Front door code 0 Cash door code 0
-}
-
+//Derived from Andy's_Great_Escape_(Barcrest)_[C02_1024_10jp].gam
+//PCKEY =1
+//STKEY =3
+//JPKEY =7
+//JPSET =3
+//DIP1_0=false
+//DIP1_1=false
+//DIP1_2=false
+//DIP1_3=false
+//DIP1_4=false
+//DIP1_5=false
+//DIP1_6=false
+//DIP1_7=false
+//DIP2_0=false
+//DIP2_1=false
+//DIP2_2=false
+//DIP2_3=false
+//DIP2_4=false
+//DIP2_5=false
+//DIP2_6=false
+//DIP2_7=false
+//Sound other
+//Standard
+//Volume 1 Stereo= 1
+//Sample rate 16000
+//Front door code 0 Cash door code 0
#define M4ANDYGE_EXTRA_ROMS \
ROM_REGION( 0x1200, "plds", 0 ) /* PAL16V8 PLD, like others - CHR? Guess it should be here... */ \
@@ -864,75 +839,75 @@ void mpu4mod4oki_machines_state::init_m4andyge()
GAMEL( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS, layout_m4andyge )
// "(C)1991 BARCREST" and "A2T 0.1"
-GAME_CUSTOM( 1991, m4andyge2t, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a2ts.p1", 0x0000, 0x010000, CRC(d47c9c42) SHA1(5374cb5739a5c2ab2be32166c4819682f3266320), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1)" )
-GAME_CUSTOM( 1991, m4andyge2td, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a2td.p1", 0x0000, 0x010000, CRC(ad17a652) SHA1(86006c706768a9227a21eb8da25817f4efacaa39), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 D)" )
-GAME_CUSTOM( 1991, m4andyge2tad, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a2tad.p1", 0x0000, 0x010000, CRC(0e3971d7) SHA1(f8de4a932937923d585f816fc9bffbe9887011c1), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 AD)" )
-GAME_CUSTOM( 1991, m4andyge2tb, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a2tb.p1", 0x0000, 0x010000, CRC(d8c4bf4d) SHA1(06e082db39576f2da39866bdb8daab49e2b4108d), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 B)" )
-GAME_CUSTOM( 1991, m4andyge2tbd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a2tbd.p1", 0x0000, 0x010000, CRC(ed048ad0) SHA1(a2ffae901171363ccb827c7bf6299f29b0347e3c), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 BD)" )
-GAME_CUSTOM( 1991, m4andyge2tk, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a2tk.p1", 0x0000, 0x010000, CRC(8ca6ce3d) SHA1(6c869eceea88109b23a2b850deda6c5a46ca5a48), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 K)" )
-GAME_CUSTOM( 1991, m4andyge2tkd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a2tdk.p1", 0x0000, 0x010000, CRC(f11bd420) SHA1(0904ecf296474ee5283da26d8c728af438aac595), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 KD)" )
-GAME_CUSTOM( 1991, m4andyge2ty, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a2ty.p1", 0x0000, 0x010000, CRC(30c22b5d) SHA1(be87fcbfb13c34c3d0ee1f586e887c80ffa01245), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 Y)" )
-GAME_CUSTOM( 1991, m4andyge2tyd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a2tdy.p1", 0x0000, 0x010000, CRC(0ffcb8d7) SHA1(b1d591eed982d2bc2e02b96e2561bbb372242480), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 YD)" )
+GAME_CUSTOM( 1991, m4andyge2t, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a2ts.p1", 0x0000, 0x010000, CRC(d47c9c42) SHA1(5374cb5739a5c2ab2be32166c4819682f3266320), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1)" )
+GAME_CUSTOM( 1991, m4andyge2td, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a2td.p1", 0x0000, 0x010000, CRC(ad17a652) SHA1(86006c706768a9227a21eb8da25817f4efacaa39), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 D)" )
+GAME_CUSTOM( 1991, m4andyge2tad, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a2tad.p1", 0x0000, 0x010000, CRC(0e3971d7) SHA1(f8de4a932937923d585f816fc9bffbe9887011c1), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 AD)" )
+GAME_CUSTOM( 1991, m4andyge2tb, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a2tb.p1", 0x0000, 0x010000, CRC(d8c4bf4d) SHA1(06e082db39576f2da39866bdb8daab49e2b4108d), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 B)" )
+GAME_CUSTOM( 1991, m4andyge2tbd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a2tbd.p1", 0x0000, 0x010000, CRC(ed048ad0) SHA1(a2ffae901171363ccb827c7bf6299f29b0347e3c), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 BD)" )
+GAME_CUSTOM( 1991, m4andyge2tk, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a2tk.p1", 0x0000, 0x010000, CRC(8ca6ce3d) SHA1(6c869eceea88109b23a2b850deda6c5a46ca5a48), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 K)" )
+GAME_CUSTOM( 1991, m4andyge2tkd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a2tdk.p1", 0x0000, 0x010000, CRC(f11bd420) SHA1(0904ecf296474ee5283da26d8c728af438aac595), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 KD)" )
+GAME_CUSTOM( 1991, m4andyge2ty, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a2ty.p1", 0x0000, 0x010000, CRC(30c22b5d) SHA1(be87fcbfb13c34c3d0ee1f586e887c80ffa01245), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 Y)" )
+GAME_CUSTOM( 1991, m4andyge2tyd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a2tdy.p1", 0x0000, 0x010000, CRC(0ffcb8d7) SHA1(b1d591eed982d2bc2e02b96e2561bbb372242480), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1 YD)" )
// "(C)1991 BARCREST" and "A5T 0.1"
-GAME_CUSTOM( 1991, m4andyge5t, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a5ts.p1", 0x0000, 0x010000, CRC(9ab99a1e) SHA1(605c5ee71aa0583f02e9ced604692814e33b741a), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1)" )
-GAME_CUSTOM( 1991, m4andyge5td, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a5td.p1", 0x0000, 0x010000, CRC(b3ebc357) SHA1(6d0718474f83f71151189c3175b687564c1d49b0), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 D)" )
-GAME_CUSTOM( 1991, m4andyge5tad, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a5tad.p1", 0x0000, 0x010000, CRC(df767538) SHA1(17ca5ea5b217fda448f61412cae82ae61447c5ad), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 AD)" )
-GAME_CUSTOM( 1991, m4andyge5tb, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a5tb.p1", 0x0000, 0x010000, CRC(e6f22d3f) SHA1(f6da8edc0b058ce316ccca306f930469ef6d016c), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 B)" )
-GAME_CUSTOM( 1991, m4andyge5tbd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a5tbd.p1", 0x0000, 0x010000, CRC(24aa63c8) SHA1(838f1fff46c65dd56f25fd491f8aab3be826a845), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 BD)" )
-GAME_CUSTOM( 1991, m4andyge5tk, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a5tk.p1", 0x0000, 0x010000, CRC(c63209f8) SHA1(71968dd94431610ddef35bb4cf8dcba749470a26), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 K)" )
-GAME_CUSTOM( 1991, m4andyge5tkd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a5tdk.p1", 0x0000, 0x010000, CRC(67472634) SHA1(aae14b9ea4125b94dd1a7325c000629258573499), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 KD)" )
-GAME_CUSTOM( 1991, m4andyge5ty, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a5ty.p1", 0x0000, 0x010000, CRC(86ef0bd8) SHA1(870b8165e206f84e59a3badfba441a567626f297), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 Y)" )
-GAME_CUSTOM( 1991, m4andyge5tyd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, grtecp, init_m4andyge, "a5tdy.p1", 0x0000, 0x010000, CRC(9f9c15c2) SHA1(0e6471c62450bd8468adde1a2d69c5b24c472bfc), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 YD)" )
+GAME_CUSTOM( 1991, m4andyge5t, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a5ts.p1", 0x0000, 0x010000, CRC(9ab99a1e) SHA1(605c5ee71aa0583f02e9ced604692814e33b741a), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1)" )
+GAME_CUSTOM( 1991, m4andyge5td, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a5td.p1", 0x0000, 0x010000, CRC(b3ebc357) SHA1(6d0718474f83f71151189c3175b687564c1d49b0), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 D)" )
+GAME_CUSTOM( 1991, m4andyge5tad, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a5tad.p1", 0x0000, 0x010000, CRC(df767538) SHA1(17ca5ea5b217fda448f61412cae82ae61447c5ad), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 AD)" )
+GAME_CUSTOM( 1991, m4andyge5tb, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a5tb.p1", 0x0000, 0x010000, CRC(e6f22d3f) SHA1(f6da8edc0b058ce316ccca306f930469ef6d016c), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 B)" )
+GAME_CUSTOM( 1991, m4andyge5tbd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a5tbd.p1", 0x0000, 0x010000, CRC(24aa63c8) SHA1(838f1fff46c65dd56f25fd491f8aab3be826a845), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 BD)" )
+GAME_CUSTOM( 1991, m4andyge5tk, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a5tk.p1", 0x0000, 0x010000, CRC(c63209f8) SHA1(71968dd94431610ddef35bb4cf8dcba749470a26), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 K)" )
+GAME_CUSTOM( 1991, m4andyge5tkd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a5tdk.p1", 0x0000, 0x010000, CRC(67472634) SHA1(aae14b9ea4125b94dd1a7325c000629258573499), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 KD)" )
+GAME_CUSTOM( 1991, m4andyge5ty, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a5ty.p1", 0x0000, 0x010000, CRC(86ef0bd8) SHA1(870b8165e206f84e59a3badfba441a567626f297), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 Y)" )
+GAME_CUSTOM( 1991, m4andyge5tyd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a5tdy.p1", 0x0000, 0x010000, CRC(9f9c15c2) SHA1(0e6471c62450bd8468adde1a2d69c5b24c472bfc), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1 YD)" )
// "(C)1991 BARCREST" and "AN2 0.3"
-GAME_CUSTOM( 1991, m4andyge, 0, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "an2s.p1", 0x0000, 0x010000, CRC(65399fa0) SHA1(ecefdf63e7aa477001fa530ed340e90e85252c3c), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3, set 1)" ) // one of these is probably hacked
-GAME_CUSTOM( 1991, m4andygen2_a, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "agesc20p", 0x0000, 0x010000, CRC(94fec0f3) SHA1(7678e01a4e0fcc4136f6d4a668c4d1dd9a8f1246), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3, set 2)" ) // or has the wrong id strings
-GAME_CUSTOM( 1991, m4andygen2d, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "an2d.p1", 0x0000, 0x010000, CRC(5651ed3d) SHA1(6a1fbff252bf266b03c4cb64294053f686a523d6), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3 D)" )
-GAME_CUSTOM( 1991, m4andygen2c, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "an2c.p1", 0x0000, 0x010000, CRC(3e233c24) SHA1(4e8f0cb45851db509020afd47821893ab49448d7), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3 C)" )
-GAME_CUSTOM( 1991, m4andygen2k, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "an2k.p1", 0x0000, 0x010000, CRC(c0886dff) SHA1(ef2b509fde05ef4ef055a09275afc9e153f50efc), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3 K)" )
-GAME_CUSTOM( 1991, m4andygen2y, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "an2y.p1", 0x0000, 0x010000, CRC(a9cd1ed2) SHA1(052fc711efe633a2ece6bf24fabdc0b69b9355fd), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3 Y)" )
+GAME_CUSTOM( 1991, m4andyge, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "an2s.p1", 0x0000, 0x010000, CRC(65399fa0) SHA1(ecefdf63e7aa477001fa530ed340e90e85252c3c), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3, set 1)" ) // one of these is probably hacked
+GAME_CUSTOM( 1991, m4andygen2_a, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "agesc20p", 0x0000, 0x010000, CRC(94fec0f3) SHA1(7678e01a4e0fcc4136f6d4a668c4d1dd9a8f1246), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3, set 2)" ) // or has the wrong id strings
+GAME_CUSTOM( 1991, m4andygen2d, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "an2d.p1", 0x0000, 0x010000, CRC(5651ed3d) SHA1(6a1fbff252bf266b03c4cb64294053f686a523d6), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3 D)" )
+GAME_CUSTOM( 1991, m4andygen2c, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "an2c.p1", 0x0000, 0x010000, CRC(3e233c24) SHA1(4e8f0cb45851db509020afd47821893ab49448d7), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3 C)" )
+GAME_CUSTOM( 1991, m4andygen2k, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "an2k.p1", 0x0000, 0x010000, CRC(c0886dff) SHA1(ef2b509fde05ef4ef055a09275afc9e153f50efc), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3 K)" )
+GAME_CUSTOM( 1991, m4andygen2y, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "an2y.p1", 0x0000, 0x010000, CRC(a9cd1ed2) SHA1(052fc711efe633a2ece6bf24fabdc0b69b9355fd), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3 Y)" )
// "(C)1991 BARCREST" and "A28 0.1"
-GAME_CUSTOM( 1991, m4andyge28, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28s.p1", 0x0000, 0x010000, CRC(40529bad) SHA1(d22b0e8a8f4acec78dc05cde01d68b625008f3b0), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1)" )
-GAME_CUSTOM( 1991, m4andyge28d, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28d.p1", 0x0000, 0x010000, CRC(e8eee34e) SHA1(c223a8c1fd2c609376bab9e780020523c4e76b08), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 D)" )
-GAME_CUSTOM( 1991, m4andyge28ad, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28ad.p1", 0x0000, 0x010000, CRC(ecb0b180) SHA1(23d68e34e7a58fc6574e6c8524ce2e4e4cd25582), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 AD)" )
-GAME_CUSTOM( 1991, m4andyge28b, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28b.p1", 0x0000, 0x010000, CRC(481c6c1c) SHA1(d8133d87e481f9c01c60324e918f706da6486c1b), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 B)" )
-GAME_CUSTOM( 1991, m4andyge28bd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28bd.p1", 0x0000, 0x010000, CRC(a59430b1) SHA1(000a00ba115408ab35fea74faa745220a9fcad68), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 BD)" )
-GAME_CUSTOM( 1991, m4andyge28c, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28c.p1", 0x0000, 0x010000, CRC(e74533db) SHA1(f6f77dc61c08cdced0dca9133dfeeb5fdd4076f0), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 C)" )
-GAME_CUSTOM( 1991, m4andyge28k, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28k.p1", 0x0000, 0x010000, CRC(c83b94fa) SHA1(8194b25bfcb8ba0323c63ee2f2b45f030aa1caeb), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 K)" )
-GAME_CUSTOM( 1991, m4andyge28kd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28dk.p1", 0x0000, 0x010000, CRC(115a2bc1) SHA1(31736f9583b4f110a6c838cecbd47acb7baa58c9), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 KD)" )
-GAME_CUSTOM( 1991, m4andyge28y, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28y.p1", 0x0000, 0x010000, CRC(fb1c83b7) SHA1(76b40e1ea47732ae0f6e9557c2d0445421122ac8), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 Y)" )
-GAME_CUSTOM( 1991, m4andyge28yd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, grtecp, init_m4andyge, "a28dy.p1", 0x0000, 0x010000, CRC(05ef8b21) SHA1(762aaad6892511ba1f3266c1ed0a09850339cc63), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 YD)" )
+GAME_CUSTOM( 1991, m4andyge28, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28s.p1", 0x0000, 0x010000, CRC(40529bad) SHA1(d22b0e8a8f4acec78dc05cde01d68b625008f3b0), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1)" )
+GAME_CUSTOM( 1991, m4andyge28d, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28d.p1", 0x0000, 0x010000, CRC(e8eee34e) SHA1(c223a8c1fd2c609376bab9e780020523c4e76b08), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 D)" )
+GAME_CUSTOM( 1991, m4andyge28ad, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28ad.p1", 0x0000, 0x010000, CRC(ecb0b180) SHA1(23d68e34e7a58fc6574e6c8524ce2e4e4cd25582), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 AD)" )
+GAME_CUSTOM( 1991, m4andyge28b, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28b.p1", 0x0000, 0x010000, CRC(481c6c1c) SHA1(d8133d87e481f9c01c60324e918f706da6486c1b), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 B)" )
+GAME_CUSTOM( 1991, m4andyge28bd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28bd.p1", 0x0000, 0x010000, CRC(a59430b1) SHA1(000a00ba115408ab35fea74faa745220a9fcad68), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 BD)" )
+GAME_CUSTOM( 1991, m4andyge28c, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28c.p1", 0x0000, 0x010000, CRC(e74533db) SHA1(f6f77dc61c08cdced0dca9133dfeeb5fdd4076f0), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 C)" )
+GAME_CUSTOM( 1991, m4andyge28k, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28k.p1", 0x0000, 0x010000, CRC(c83b94fa) SHA1(8194b25bfcb8ba0323c63ee2f2b45f030aa1caeb), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 K)" )
+GAME_CUSTOM( 1991, m4andyge28kd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28dk.p1", 0x0000, 0x010000, CRC(115a2bc1) SHA1(31736f9583b4f110a6c838cecbd47acb7baa58c9), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 KD)" )
+GAME_CUSTOM( 1991, m4andyge28y, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28y.p1", 0x0000, 0x010000, CRC(fb1c83b7) SHA1(76b40e1ea47732ae0f6e9557c2d0445421122ac8), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 Y)" )
+GAME_CUSTOM( 1991, m4andyge28yd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "a28dy.p1", 0x0000, 0x010000, CRC(05ef8b21) SHA1(762aaad6892511ba1f3266c1ed0a09850339cc63), "Barcrest","Andy's Great Escape (Barcrest) (MPU4) (A28 0.1 YD)" )
// "(C)1995 B.W.B." and "AGC 2.0"
-GAME_CUSTOM( 1995, m4andygegc2, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, grtecp, init_m4andyge, "ag_05__c.2_1", 0x0000, 0x010000, CRC(c38c11a3) SHA1(c2d81d99a842eac8dff3e0be57f37af9eb534ad1), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AGC 2.0)" )
-GAME_CUSTOM( 1995, m4andygegc2d, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, grtecp, init_m4andyge, "ag_05_d4.2_1", 0x0000, 0x010000, CRC(29953aa1) SHA1(c1346ab7e651c35d704e5127c4d44d2086fd48e3), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AGC 2.0 D)" )
+GAME_CUSTOM( 1995, m4andygegc2, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_05__c.2_1", 0x0000, 0x010000, CRC(c38c11a3) SHA1(c2d81d99a842eac8dff3e0be57f37af9eb534ad1), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AGC 2.0)" )
+GAME_CUSTOM( 1995, m4andygegc2d, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_05_d4.2_1", 0x0000, 0x010000, CRC(29953aa1) SHA1(c1346ab7e651c35d704e5127c4d44d2086fd48e3), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AGC 2.0 D)" )
// "(C)1994 B.W.B." and "AG5 3.0"
-GAME_CUSTOM( 1994, m4andygeg5, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "ag_05s__.3_1", 0x0000, 0x010000, CRC(c0e45872) SHA1(936ca3230cd36dd4ad2c74ea33ea469c482e5688), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0)" )
-GAME_CUSTOM( 1994, m4andygeg5d, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "ag_05sd_.3_1", 0x0000, 0x010000, CRC(b7fced5c) SHA1(6b359b29019bf22b2ebdd96a69f919b18935a98c), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 D)" )
-GAME_CUSTOM( 1994, m4andygeg5a, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "agesc5p", 0x0000, 0x010000, CRC(9de05e25) SHA1(b4d6aea5cffb14babd89cfa76575a68277bfaa4b), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 A)" )
-GAME_CUSTOM( 1994, m4andygeg5c, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "agi05___.3_1", 0x0000, 0x010000, CRC(b061a468) SHA1(a1f1a8bd55eb7a684de270bace9464812172ed92), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 C)" )
-GAME_CUSTOM( 1994, m4andygeg5k, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "ag_05a__.3_1", 0x0000, 0x010000, CRC(89f4281e) SHA1(3ada70d7c5ef523f1a4eddfc8f1967e4a6de190d), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 K)" )
-GAME_CUSTOM( 1994, m4andygeg5yd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "ag_05sb_.3_1", 0x0000, 0x010000, CRC(f5055b62) SHA1(b12a7d2a1143ce47e6a327831d5df21483d78b03), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 YD)" )
+GAME_CUSTOM( 1994, m4andygeg5, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_05s__.3_1", 0x0000, 0x010000, CRC(c0e45872) SHA1(936ca3230cd36dd4ad2c74ea33ea469c482e5688), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0)" )
+GAME_CUSTOM( 1994, m4andygeg5d, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_05sd_.3_1", 0x0000, 0x010000, CRC(b7fced5c) SHA1(6b359b29019bf22b2ebdd96a69f919b18935a98c), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 D)" )
+GAME_CUSTOM( 1994, m4andygeg5a, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "agesc5p", 0x0000, 0x010000, CRC(9de05e25) SHA1(b4d6aea5cffb14babd89cfa76575a68277bfaa4b), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 A)" )
+GAME_CUSTOM( 1994, m4andygeg5c, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "agi05___.3_1", 0x0000, 0x010000, CRC(b061a468) SHA1(a1f1a8bd55eb7a684de270bace9464812172ed92), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 C)" )
+GAME_CUSTOM( 1994, m4andygeg5k, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_05a__.3_1", 0x0000, 0x010000, CRC(89f4281e) SHA1(3ada70d7c5ef523f1a4eddfc8f1967e4a6de190d), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 K)" )
+GAME_CUSTOM( 1994, m4andygeg5yd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_05sb_.3_1", 0x0000, 0x010000, CRC(f5055b62) SHA1(b12a7d2a1143ce47e6a327831d5df21483d78b03), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 YD)" )
// "(C)1994 B.W.B." and "AG__2.0"
-GAME_CUSTOM( 1994, m4andygeg_2, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "ag_10s__.2_1", 0x0000, 0x010000, CRC(0dfeda46) SHA1(27e7548845f116537043e26002d8a5458275389d), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0)" )
-GAME_CUSTOM( 1994, m4andygeg_2d, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "ag_10sd_.2_1", 0x0000, 0x010000, CRC(03ab435f) SHA1(3b04324c1ae839529d99255008874df3744769a4), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 D)" )
-GAME_CUSTOM( 1994, m4andygeg_2c, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "agi10___.2_1", 0x0000, 0x010000, CRC(7c56a6ca) SHA1(adb567b8e1b6cc727bcfa694ade947f8c695f44a), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 C)" )
-GAME_CUSTOM( 1994, m4andygeg_2k, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "ag_10a__.2_1", 0x0000, 0x010000, CRC(ca80d891) SHA1(17bf51fecc3cecbb1e0ef0550296c8bf81d3d879), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 K)" )
-GAME_CUSTOM( 1994, m4andygeg_2yd, m4andyge, mod4oki_5r_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, grtecp, init_m4andyge, "ag_10sb_.2_1", 0x0000, 0x010000, CRC(6f025416) SHA1(bb0167ba0a67dd1a03ec3e69e2050e2bf1d35244), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 YD)" )
+GAME_CUSTOM( 1994, m4andygeg_2, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_10s__.2_1", 0x0000, 0x010000, CRC(0dfeda46) SHA1(27e7548845f116537043e26002d8a5458275389d), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0)" )
+GAME_CUSTOM( 1994, m4andygeg_2d, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_10sd_.2_1", 0x0000, 0x010000, CRC(03ab435f) SHA1(3b04324c1ae839529d99255008874df3744769a4), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 D)" )
+GAME_CUSTOM( 1994, m4andygeg_2c, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "agi10___.2_1", 0x0000, 0x010000, CRC(7c56a6ca) SHA1(adb567b8e1b6cc727bcfa694ade947f8c695f44a), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 C)" )
+GAME_CUSTOM( 1994, m4andygeg_2k, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_10a__.2_1", 0x0000, 0x010000, CRC(ca80d891) SHA1(17bf51fecc3cecbb1e0ef0550296c8bf81d3d879), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 K)" )
+GAME_CUSTOM( 1994, m4andygeg_2yd, m4andyge, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R5, RT1, LPS, HT), grtecp, init_m4, "ag_10sb_.2_1", 0x0000, 0x010000, CRC(6f025416) SHA1(bb0167ba0a67dd1a03ec3e69e2050e2bf1d35244), "BWB","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 YD)" )
// these are unprotected, don't read from chr, possibly all hacks?
// "(C)1994 B.W.B." and "AG5 3.0"
-GAME_CUSTOM( 1994, m4andyge_hx1, m4andyge, mod4oki_5r, grtecp, init_m4andyge, "acappgreatescape5p4.bin", 0x0000, 0x010000, CRC(87733a0d) SHA1(6e2fc0f43eb48740b120af77302f1322a27e8a5a), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 CX, hack?, set 1)" )
-GAME_CUSTOM( 1994, m4andyge_hx2, m4andyge, mod4oki_5r, grtecp, init_m4andyge, "age55", 0x0000, 0x010000, CRC(481e942d) SHA1(23ac3c4f624ae73940baf515002a178d39ba32b0), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 CX, hack?, set 2)" )
-GAME_CUSTOM( 1994, m4andyge_hx3, m4andyge, mod4oki_5r, grtecp, init_m4andyge, "age58c", 0x0000, 0x010000, CRC(0b1e4a0e) SHA1(e2bcd590a358e48b26b056f83c7180da0e036024), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 CX, hack?, set 3)" )
-GAME_CUSTOM( 1994, m4andyge_hx4, m4andyge, mod4oki_5r, grtecp, init_m4andyge, "age05_101", 0x0000, 0x010000, CRC(70c1d1ab) SHA1(478891cadaeba76666af5c4f25531456ebbe789a), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 CX, hack?, set 4)" )
+GAME_CUSTOM( 1994, m4andyge_hx1, m4andyge, mod4oki(R5, RT1, LPS, HT), grtecp, init_m4, "acappgreatescape5p4.bin", 0x0000, 0x010000, CRC(87733a0d) SHA1(6e2fc0f43eb48740b120af77302f1322a27e8a5a), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 CX, hack?, set 1)" )
+GAME_CUSTOM( 1994, m4andyge_hx2, m4andyge, mod4oki(R5, RT1, LPS, HT), grtecp, init_m4, "age55", 0x0000, 0x010000, CRC(481e942d) SHA1(23ac3c4f624ae73940baf515002a178d39ba32b0), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 CX, hack?, set 2)" )
+GAME_CUSTOM( 1994, m4andyge_hx3, m4andyge, mod4oki(R5, RT1, LPS, HT), grtecp, init_m4, "age58c", 0x0000, 0x010000, CRC(0b1e4a0e) SHA1(e2bcd590a358e48b26b056f83c7180da0e036024), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 CX, hack?, set 3)" )
+GAME_CUSTOM( 1994, m4andyge_hx4, m4andyge, mod4oki(R5, RT1, LPS, HT), grtecp, init_m4, "age05_101", 0x0000, 0x010000, CRC(70c1d1ab) SHA1(478891cadaeba76666af5c4f25531456ebbe789a), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG5 3.0 CX, hack?, set 4)" )
// " " and "AG__2.0"
-GAME_CUSTOM( 1994, m4andyge_hx5, m4andyge, mod4oki_5r, grtecp, init_m4andyge, "age10_101", 0x0000, 0x010000, CRC(55e3a27e) SHA1(209166d052cc296f135225c77bb57abbef1a86ae), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 CX, hack?)" )
+GAME_CUSTOM( 1994, m4andyge_hx5, m4andyge, mod4oki(R5, RT1, LPS, HT), grtecp, init_m4, "age10_101", 0x0000, 0x010000, CRC(55e3a27e) SHA1(209166d052cc296f135225c77bb57abbef1a86ae), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (AG__2.0 CX, hack?)" )
// different protection
// "RICK LUVS BRIAN" and "8V1 3.0"
-GAME_CUSTOM( 199?, m4andyge_h1, m4andyge, mod4oki_5r_bootleg_fixedret<0x0c>, grtecp, init_m4andyge, "age5p8p.bin", 0x0000, 0x010000, CRC(c3b40981) SHA1(da56e468ae67f1a231fea721235036c75c5efac3), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (8V1 3.0, hack?, set 1)" )
-GAME_CUSTOM( 199?, m4andyge_h2, m4andyge, mod4oki_5r_bootleg_fixedret<0x0c>, grtecp, init_m4andyge, "ages58c", 0x0000, 0x010000, CRC(af479dc9) SHA1(7e0e3b36289d689bbd0c022730d7aee62192f49f), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (8V1 3.0, hack?, set 2)" )
+GAME_CUSTOM( 199?, m4andyge_h1, m4andyge, mod4oki_bootleg_fixedret<0x0c>(R5, RT1, LPS, HT), grtecp, init_m4, "age5p8p.bin", 0x0000, 0x010000, CRC(c3b40981) SHA1(da56e468ae67f1a231fea721235036c75c5efac3), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (8V1 3.0, hack?, set 1)" )
+GAME_CUSTOM( 199?, m4andyge_h2, m4andyge, mod4oki_bootleg_fixedret<0x0c>(R5, RT1, LPS, HT), grtecp, init_m4, "ages58c", 0x0000, 0x010000, CRC(af479dc9) SHA1(7e0e3b36289d689bbd0c022730d7aee62192f49f), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (8V1 3.0, hack?, set 2)" )
// " " and "8V1 0.3"
-GAME_CUSTOM( 199?, m4andyge_h3, m4andyge, mod4oki_5r_bootleg_fixedret<0x2c>, grtecp, init_m4andyge, "age_20_.8", 0x0000, 0x010000, CRC(b1f91b2a) SHA1(9340f87d6d186b3af0384ab546c3d3f487e797d4), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (8V1 0.3, hack?, set 1)" )
-GAME_CUSTOM( 199?, m4andyge_h4, m4andyge, mod4oki_5r_bootleg_fixedret<0x1c>, grtecp, init_m4andyge, "age20_101", 0x0000, 0x010000, CRC(7e3674f0) SHA1(351e353da24b63d2ef7cb09690b770b26505569a), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (8V1 0.3, hack?, set 2)" )
+GAME_CUSTOM( 199?, m4andyge_h3, m4andyge, mod4oki_bootleg_fixedret<0x2c>(R5, RT1, LPS, HT), grtecp, init_m4, "age_20_.8", 0x0000, 0x010000, CRC(b1f91b2a) SHA1(9340f87d6d186b3af0384ab546c3d3f487e797d4), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (8V1 0.3, hack?, set 1)" )
+GAME_CUSTOM( 199?, m4andyge_h4, m4andyge, mod4oki_bootleg_fixedret<0x1c>(R5, RT1, LPS, HT), grtecp, init_m4, "age20_101", 0x0000, 0x010000, CRC(7e3674f0) SHA1(351e353da24b63d2ef7cb09690b770b26505569a), "hack?","Andy's Great Escape (BWB / Barcrest) (MPU4) (8V1 0.3, hack?, set 2)" )
/*****************************************************************************************************************************************************************************
@@ -959,45 +934,45 @@ GAME_CUSTOM( 199?, m4andyge_h4, m4andyge, mod4oki_5r_bootleg_fixedret<0x1
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// (C)1993 BARCREST and DEN 1.2
-GAME_CUSTOM( 199?, m4denmen, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "dens.p1", 0x0000, 0x010000, CRC(d3687138) SHA1(611985a9116ea14992b34a84ed31693f88d99797), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2)" )
-GAME_CUSTOM( 199?, m4denmendnd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "dend.p1", 0x0000, 0x010000, CRC(176cd283) SHA1(f72c69b346f926a6e11b685ab9a6a2783b836450), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 D)" )
-GAME_CUSTOM( 199?, m4denmendnb, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "denb.p1", 0x0000, 0x010000, CRC(b0164796) SHA1(61ff7e7ea2c27742177d851a4eb9a041d95b37d7), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 B)" )
-GAME_CUSTOM( 199?, m4denmendnc, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "denc.p1", 0x0000, 0x010000, CRC(549e17bc) SHA1(78271e11d4c8e742acce9087f194a1db8fc8c3eb), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 C)" )
-GAME_CUSTOM( 199?, m4denmendnk, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "denk.p1", 0x0000, 0x010000, CRC(8983cbe0) SHA1(159dcbc3f5d24b6be03ae9c3c2af58993bebd38c), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 K)" )
-GAME_CUSTOM( 199?, m4denmendny, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "deny.p1", 0x0000, 0x010000, CRC(83ebd9f6) SHA1(f59e9d34295df8200f85a51d725437954acf9bdc), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 Y)" )
+GAME_CUSTOM( 199?, m4denmen, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "dens.p1", 0x0000, 0x010000, CRC(d3687138) SHA1(611985a9116ea14992b34a84ed31693f88d99797), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2)" )
+GAME_CUSTOM( 199?, m4denmendnd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "dend.p1", 0x0000, 0x010000, CRC(176cd283) SHA1(f72c69b346f926a6e11b685ab9a6a2783b836450), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 D)" )
+GAME_CUSTOM( 199?, m4denmendnb, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "denb.p1", 0x0000, 0x010000, CRC(b0164796) SHA1(61ff7e7ea2c27742177d851a4eb9a041d95b37d7), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 B)" )
+GAME_CUSTOM( 199?, m4denmendnc, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "denc.p1", 0x0000, 0x010000, CRC(549e17bc) SHA1(78271e11d4c8e742acce9087f194a1db8fc8c3eb), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 C)" )
+GAME_CUSTOM( 199?, m4denmendnk, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "denk.p1", 0x0000, 0x010000, CRC(8983cbe0) SHA1(159dcbc3f5d24b6be03ae9c3c2af58993bebd38c), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 K)" )
+GAME_CUSTOM( 199?, m4denmendny, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "deny.p1", 0x0000, 0x010000, CRC(83ebd9f6) SHA1(f59e9d34295df8200f85a51d725437954acf9bdc), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DEN 1.2 Y)" )
// (C)1993 BARCREST and DM8 0.1
-GAME_CUSTOM( 199?, m4denmend8, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "dm8s.p1", 0x0000, 0x010000, CRC(27484793) SHA1(872ad9bdbad793aa3bb4b8d227627f901a04d70e), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1)" )
-GAME_CUSTOM( 199?, m4denmend8d, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "dm8d.p1", 0x0000, 0x010000, CRC(23258932) SHA1(03b929bd86c429a7806f75639569534bfe7634a8), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 D)" )
-GAME_CUSTOM( 199?, m4denmend8c, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "dm8c.p1", 0x0000, 0x010000, CRC(f5bd6c61) SHA1(ec443a284dae480c944f437426c28481a61c8ebb), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 C)" )
-GAME_CUSTOM( 199?, m4denmend8k, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "dm8k.p1", 0x0000, 0x010000, CRC(9b3c3827) SHA1(2f584cfbbf38435377785dd654fe7b97c78e731a), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 K)" )
-GAME_CUSTOM( 199?, m4denmend8y, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "dm8y.p1", 0x0000, 0x010000, CRC(ebfcb926) SHA1(c6a623de9163e3f49ee7e5dbb8df867a90d0d0a9), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 Y)" )
-GAME_CUSTOM( 199?, m4denmend8yd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, init_m4default, "dm8dy.p1", 0x0000, 0x010000, CRC(3c5ef7c8) SHA1(ac102525900f34c53082d37fb1bd14db9ce928fe), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 YD)" )
+GAME_CUSTOM( 199?, m4denmend8, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm8s.p1", 0x0000, 0x010000, CRC(27484793) SHA1(872ad9bdbad793aa3bb4b8d227627f901a04d70e), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1)" )
+GAME_CUSTOM( 199?, m4denmend8d, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm8d.p1", 0x0000, 0x010000, CRC(23258932) SHA1(03b929bd86c429a7806f75639569534bfe7634a8), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 D)" )
+GAME_CUSTOM( 199?, m4denmend8c, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm8c.p1", 0x0000, 0x010000, CRC(f5bd6c61) SHA1(ec443a284dae480c944f437426c28481a61c8ebb), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 C)" )
+GAME_CUSTOM( 199?, m4denmend8k, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm8k.p1", 0x0000, 0x010000, CRC(9b3c3827) SHA1(2f584cfbbf38435377785dd654fe7b97c78e731a), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 K)" )
+GAME_CUSTOM( 199?, m4denmend8y, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm8y.p1", 0x0000, 0x010000, CRC(ebfcb926) SHA1(c6a623de9163e3f49ee7e5dbb8df867a90d0d0a9), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 Y)" )
+GAME_CUSTOM( 199?, m4denmend8yd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm8dy.p1", 0x0000, 0x010000, CRC(3c5ef7c8) SHA1(ac102525900f34c53082d37fb1bd14db9ce928fe), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM8 0.1 YD)" )
// (C)1993 BARCREST and DM5 0.1
-GAME_CUSTOM( 199?, m4denmend5, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dm5s.p1", 0x0000, 0x010000, CRC(49672daa) SHA1(92e327b59b532e58b8c2a4e507f56c2ae069420c), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1)" )
-GAME_CUSTOM( 199?, m4denmend5d, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dm5d.p1", 0x0000, 0x010000, CRC(0c6250d5) SHA1(56b316df56d6448137332044bfe1081401eef3e8), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 D)" )
-GAME_CUSTOM( 199?, m4denmend5ad, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dm5ad.p1", 0x0000, 0x010000, CRC(f01125cc) SHA1(faa80bfb107db127b2f9c4c7d23ec495775d2162), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 AD)" )
-GAME_CUSTOM( 199?, m4denmend5b, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dm5b.p1", 0x0000, 0x010000, CRC(2c6dae4c) SHA1(281e4ba31a60fb5600790f21095e697db80736b7), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 B)" )
-GAME_CUSTOM( 199?, m4denmend5bd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dm5bd.p1", 0x0000, 0x010000, CRC(a65c534d) SHA1(e5c38a9a06e20878cb820e5a12545405d699ff9d), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 BD)" )
-GAME_CUSTOM( 199?, m4denmend5k, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dm5k.p1", 0x0000, 0x010000, CRC(581572d6) SHA1(ac7303ea828846e770f8f1c7c818369d4b006495), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 K)" )
-GAME_CUSTOM( 199?, m4denmend5kd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dm5dk.p1", 0x0000, 0x010000, CRC(848412a1) SHA1(bb385e2abdc2651b4a7ea9d30108dfa8adab0aea), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 KD)" )
-GAME_CUSTOM( 199?, m4denmend5y, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dm5y.p1", 0x0000, 0x010000, CRC(e6b9a800) SHA1(543ef65352a98676d66f6a5d3d7f568e10aac084), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 Y)" )
-GAME_CUSTOM( 199?, m4denmend5yd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dm5dy.p1", 0x0000, 0x010000, CRC(0c091457) SHA1(930b87211b8df5846fa857744aafae2f2985e578), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 YD)" )
+GAME_CUSTOM( 199?, m4denmend5, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm5s.p1", 0x0000, 0x010000, CRC(49672daa) SHA1(92e327b59b532e58b8c2a4e507f56c2ae069420c), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1)" )
+GAME_CUSTOM( 199?, m4denmend5d, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm5d.p1", 0x0000, 0x010000, CRC(0c6250d5) SHA1(56b316df56d6448137332044bfe1081401eef3e8), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 D)" )
+GAME_CUSTOM( 199?, m4denmend5ad, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm5ad.p1", 0x0000, 0x010000, CRC(f01125cc) SHA1(faa80bfb107db127b2f9c4c7d23ec495775d2162), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 AD)" )
+GAME_CUSTOM( 199?, m4denmend5b, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm5b.p1", 0x0000, 0x010000, CRC(2c6dae4c) SHA1(281e4ba31a60fb5600790f21095e697db80736b7), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 B)" )
+GAME_CUSTOM( 199?, m4denmend5bd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm5bd.p1", 0x0000, 0x010000, CRC(a65c534d) SHA1(e5c38a9a06e20878cb820e5a12545405d699ff9d), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 BD)" )
+GAME_CUSTOM( 199?, m4denmend5k, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm5k.p1", 0x0000, 0x010000, CRC(581572d6) SHA1(ac7303ea828846e770f8f1c7c818369d4b006495), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 K)" )
+GAME_CUSTOM( 199?, m4denmend5kd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm5dk.p1", 0x0000, 0x010000, CRC(848412a1) SHA1(bb385e2abdc2651b4a7ea9d30108dfa8adab0aea), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 KD)" )
+GAME_CUSTOM( 199?, m4denmend5y, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm5y.p1", 0x0000, 0x010000, CRC(e6b9a800) SHA1(543ef65352a98676d66f6a5d3d7f568e10aac084), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 Y)" )
+GAME_CUSTOM( 199?, m4denmend5yd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dm5dy.p1", 0x0000, 0x010000, CRC(0c091457) SHA1(930b87211b8df5846fa857744aafae2f2985e578), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DM5 0.1 YD)" )
// (C)1993 BARCREST and DMT 0.1
-GAME_CUSTOM( 199?, m4denmendt, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dmts.p1", 0x0000, 0x010000, CRC(1a2776e3) SHA1(4d5029a5abafb3945d533ca5ca23b32c036fbb31), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1)" )
-GAME_CUSTOM( 199?, m4denmendtd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dmtd.p1", 0x0000, 0x010000, CRC(9b38fa46) SHA1(ce6509349c82a651336753a3062c1cf2390d0b9a), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 D)" )
-GAME_CUSTOM( 199?, m4denmendtad, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dmtad.p1", 0x0000, 0x010000, CRC(2edab31e) SHA1(c1cb258aba42e6ae33df731504d23162118054be), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 AD)" )
-GAME_CUSTOM( 199?, m4denmendtb, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dmtb.p1", 0x0000, 0x010000, CRC(c40fe8a4) SHA1(e182b0b1b975947da3b0a94afd17cdf166d7a8ac), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 B)" )
-GAME_CUSTOM( 199?, m4denmendtbd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dmtbd.p1", 0x0000, 0x010000, CRC(d9140665) SHA1(cba8fc1c285c9192a6ea80b3f0c958781a818489), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 BD)" )
-GAME_CUSTOM( 199?, m4denmendtk, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dmtk.p1", 0x0000, 0x010000, CRC(b64b6b3f) SHA1(f39b2143b811375564ec82030a7d34057f79b3f7), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 K)" )
-GAME_CUSTOM( 199?, m4denmendtkd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dmtdk.p1", 0x0000, 0x010000, CRC(b6211765) SHA1(3a2c5b1ef27113221ce7b61562f06589bcfa9072), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 KD)" )
-GAME_CUSTOM( 199?, m4denmendty, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dmty.p1", 0x0000, 0x010000, CRC(dbfa78a5) SHA1(edd9a1f286f3aa56a919e9e0c0013e9940d139ac), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 Y)" )
-GAME_CUSTOM( 199?, m4denmendtyd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default, "dmtdy.p1", 0x0000, 0x010000, CRC(66064a45) SHA1(3f64212b85320fba66afd40c0bb0cd58a5a616bf), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 YD)" )
+GAME_CUSTOM( 199?, m4denmendt, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dmts.p1", 0x0000, 0x010000, CRC(1a2776e3) SHA1(4d5029a5abafb3945d533ca5ca23b32c036fbb31), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1)" )
+GAME_CUSTOM( 199?, m4denmendtd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dmtd.p1", 0x0000, 0x010000, CRC(9b38fa46) SHA1(ce6509349c82a651336753a3062c1cf2390d0b9a), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 D)" )
+GAME_CUSTOM( 199?, m4denmendtad, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dmtad.p1", 0x0000, 0x010000, CRC(2edab31e) SHA1(c1cb258aba42e6ae33df731504d23162118054be), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 AD)" )
+GAME_CUSTOM( 199?, m4denmendtb, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dmtb.p1", 0x0000, 0x010000, CRC(c40fe8a4) SHA1(e182b0b1b975947da3b0a94afd17cdf166d7a8ac), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 B)" )
+GAME_CUSTOM( 199?, m4denmendtbd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dmtbd.p1", 0x0000, 0x010000, CRC(d9140665) SHA1(cba8fc1c285c9192a6ea80b3f0c958781a818489), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 BD)" )
+GAME_CUSTOM( 199?, m4denmendtk, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dmtk.p1", 0x0000, 0x010000, CRC(b64b6b3f) SHA1(f39b2143b811375564ec82030a7d34057f79b3f7), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 K)" )
+GAME_CUSTOM( 199?, m4denmendtkd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dmtdk.p1", 0x0000, 0x010000, CRC(b6211765) SHA1(3a2c5b1ef27113221ce7b61562f06589bcfa9072), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 KD)" )
+GAME_CUSTOM( 199?, m4denmendty, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dmty.p1", 0x0000, 0x010000, CRC(dbfa78a5) SHA1(edd9a1f286f3aa56a919e9e0c0013e9940d139ac), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 Y)" )
+GAME_CUSTOM( 199?, m4denmendtyd, m4denmen, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, init_m4, "dmtdy.p1", 0x0000, 0x010000, CRC(66064a45) SHA1(3f64212b85320fba66afd40c0bb0cd58a5a616bf), "Barcrest","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1 YD)" )
// different protection
// "(C)1993 BARCREST" and "DMT 0.1" (but hack? similar to other DMT sets, but with extra code inserted in places etc. different chr check)
-GAME_CUSTOM( 199?, m4denmen_h1, m4denmen, mod4oki_bootleg_fixedret<0x2b>, mpu4, init_m4default, "dtm205", 0x0000, 0x010000, CRC(af76a460) SHA1(325021a92042c87e804bc17d6a7ccfda8bf865b8), "hack","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1, hack?)" )
+GAME_CUSTOM( 199?, m4denmen_h1, m4denmen, mod4oki_bootleg_fixedret<0x2b>(R4, RT1), mpu4, init_m4, "dtm205", 0x0000, 0x010000, CRC(af76a460) SHA1(325021a92042c87e804bc17d6a7ccfda8bf865b8), "hack","Dennis The Menace (Barcrest) (MPU4) (DMT 0.1, hack?)" )
// "DAFFY DUCK" and "V1 0.1" (display message R.E.O instead of Barcrest)
-GAME_CUSTOM( 199?, m4denmen_h2, m4denmen, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default, "den20.10", 0x0000, 0x010000, CRC(e002932d) SHA1(0a9b31c138a79695e1c1c29eee40c5a741275da6), "hack","Dennis The Menace (Barcrest) (MPU4) (V1 0.1, hack, set 1)" )
-GAME_CUSTOM( 199?, m4denmen_h3, m4denmen, mod4oki_bootleg_fixedret<0x10>, mpu4, init_m4default, "denm2010", 0x0000, 0x010000, CRC(dbed5e48) SHA1(f374f01aeefca7cc19fc46c93e2ca7a10606b183), "hack","Dennis The Menace (Barcrest) (MPU4) (V1 0.1, hack, set 2)" )
+GAME_CUSTOM( 199?, m4denmen_h2, m4denmen, mod4oki_bootleg_fixedret<0x1d>(R4, RT1), mpu4, init_m4, "den20.10", 0x0000, 0x010000, CRC(e002932d) SHA1(0a9b31c138a79695e1c1c29eee40c5a741275da6), "hack","Dennis The Menace (Barcrest) (MPU4) (V1 0.1, hack, set 1)" )
+GAME_CUSTOM( 199?, m4denmen_h3, m4denmen, mod4oki_bootleg_fixedret<0x10>(R4, RT1), mpu4, init_m4, "denm2010", 0x0000, 0x010000, CRC(dbed5e48) SHA1(f374f01aeefca7cc19fc46c93e2ca7a10606b183), "hack","Dennis The Menace (Barcrest) (MPU4) (V1 0.1, hack, set 2)" )
/*****************************************************************************************************************************************************************************
@@ -1027,22 +1002,22 @@ GAME_CUSTOM( 199?, m4denmen_h3, m4denmen, mod4oki_bootleg_fixedret<0x10>, mpu
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "CRM 3.0"
-GAME_CUSTOM( 1993, m4crmaze, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crms.p1", 0x0000, 0x020000, CRC(b289c54b) SHA1(eb74bb559e2be2737fc311d044b9ce87014616f3), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0)" )
-GAME_CUSTOM( 1993, m4crmaze__h, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crmd.p1", 0x0000, 0x020000, CRC(1232a809) SHA1(483b96b3b3ea50cbf5c3823c3ba20369b88bd459), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 D)" )
-GAME_CUSTOM( 1993, m4crmaze__d, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crmad.p1", 0x0000, 0x020000, CRC(ed30e66e) SHA1(25c09637f6efaf8e24f758405fb55d6cfc7f4782), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 AD)" )
-GAME_CUSTOM( 1993, m4crmaze__e, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crmb.p1", 0x0000, 0x020000, CRC(6f29a37f) SHA1(598541e2dbf05b3f2a70279276407cd93734731e), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 B)" )
-GAME_CUSTOM( 1993, m4crmaze__f, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crmbd.p1", 0x0000, 0x020000, CRC(602a48ab) SHA1(3f1bf2b3294d15013e89d906865f065476202e54), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 BD)" )
-GAME_CUSTOM( 1993, m4crmaze__g, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crmc.p1", 0x0000, 0x020000, CRC(58631e6d) SHA1(cffecd4c4ca46aa0ccfbaf7592d58da0428cf143), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 C)" )
-GAME_CUSTOM( 1993, m4crmaze__k, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crmk.p1", 0x0000, 0x020000, CRC(25ee0b29) SHA1(addadf351a26e235a7fca573145a501aa6c0b53c), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 K)" )
-GAME_CUSTOM( 1993, m4crmaze__i, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crmdk.p1", 0x0000, 0x020000, CRC(2aede0fd) SHA1(1731c901149c196d8f6a8bf3c2eec4f9a42126ad), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 KD)" )
-GAME_CUSTOM( 1993, m4crmaze__l, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crmy.p1", 0x0000, 0x020000, CRC(a20d2bd7) SHA1(b05a0e2ab2b90a86873976c26a8299cb703fd6eb), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 Y)" )
-GAME_CUSTOM( 1993, m4crmaze__j, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "crmdy.p1", 0x0000, 0x020000, CRC(ad0ec003) SHA1(2d8a7467c3a79d60100f1290abe06410aaefaa49), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 YD)" )
+GAME_CUSTOM( 1993, m4crmaze, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crms.p1", 0x0000, 0x020000, CRC(b289c54b) SHA1(eb74bb559e2be2737fc311d044b9ce87014616f3), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0)" )
+GAME_CUSTOM( 1993, m4crmaze__h, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crmd.p1", 0x0000, 0x020000, CRC(1232a809) SHA1(483b96b3b3ea50cbf5c3823c3ba20369b88bd459), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 D)" )
+GAME_CUSTOM( 1993, m4crmaze__d, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crmad.p1", 0x0000, 0x020000, CRC(ed30e66e) SHA1(25c09637f6efaf8e24f758405fb55d6cfc7f4782), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 AD)" )
+GAME_CUSTOM( 1993, m4crmaze__e, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crmb.p1", 0x0000, 0x020000, CRC(6f29a37f) SHA1(598541e2dbf05b3f2a70279276407cd93734731e), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 B)" )
+GAME_CUSTOM( 1993, m4crmaze__f, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crmbd.p1", 0x0000, 0x020000, CRC(602a48ab) SHA1(3f1bf2b3294d15013e89d906865f065476202e54), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 BD)" )
+GAME_CUSTOM( 1993, m4crmaze__g, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crmc.p1", 0x0000, 0x020000, CRC(58631e6d) SHA1(cffecd4c4ca46aa0ccfbaf7592d58da0428cf143), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 C)" )
+GAME_CUSTOM( 1993, m4crmaze__k, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crmk.p1", 0x0000, 0x020000, CRC(25ee0b29) SHA1(addadf351a26e235a7fca573145a501aa6c0b53c), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 K)" )
+GAME_CUSTOM( 1993, m4crmaze__i, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crmdk.p1", 0x0000, 0x020000, CRC(2aede0fd) SHA1(1731c901149c196d8f6a8bf3c2eec4f9a42126ad), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 KD)" )
+GAME_CUSTOM( 1993, m4crmaze__l, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crmy.p1", 0x0000, 0x020000, CRC(a20d2bd7) SHA1(b05a0e2ab2b90a86873976c26a8299cb703fd6eb), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 Y)" )
+GAME_CUSTOM( 1993, m4crmaze__j, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crmdy.p1", 0x0000, 0x020000, CRC(ad0ec003) SHA1(2d8a7467c3a79d60100f1290abe06410aaefaa49), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0 YD)" )
// "(C)1993 BARCREST" and "CRM 2.3"
-GAME_CUSTOM( 1993, m4crmaze__c, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4jackpot8tkn, init_m4default_big_lextender, "cmaze8", 0x0000, 0x020000, CRC(f2f81306) SHA1(725bfbdc53cf66c08b440c2b8d45547aa426d9c7), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 2.3)" )
+GAME_CUSTOM( 1993, m4crmaze__c, m4crmaze, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "cmaze8", 0x0000, 0x020000, CRC(f2f81306) SHA1(725bfbdc53cf66c08b440c2b8d45547aa426d9c7), "Barcrest","The Crystal Maze (Barcrest) (MPU4) (CRM 2.3)" )
// different protection
// no copyright string, and "CRM 3.0"
-GAME_CUSTOM( 1993, m4crmaze__m, m4crmaze, mod4oki_bootleg_fixedret<0x70>, mpu4jackpot8tkn, init_m4default_big_lextender, "crystalmaze15.bin", 0x0000, 0x020000, CRC(492440a4) SHA1(2d5fe812f1d815620f7e72333d44946b66f5c867), "hack?","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0, hack?)" )
+GAME_CUSTOM( 1993, m4crmaze__m, m4crmaze, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4big, "crystalmaze15.bin", 0x0000, 0x020000, CRC(492440a4) SHA1(2d5fe812f1d815620f7e72333d44946b66f5c867), "hack?","The Crystal Maze (Barcrest) (MPU4) (CRM 3.0, hack?)" )
// roms below are a smaller size, have they been hacked to not use banking, or are they bad, they're all Bwb versions but all have the Barcrest at the end blanked out rather than replaced
#undef GAME_CUSTOM
@@ -1055,17 +1030,17 @@ GAME_CUSTOM( 1993, m4crmaze__m, m4crmaze, mod4oki_bootleg_fixedret<0x70>, mpu
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// no copyright string, and "CR8 1.2"
-GAME_CUSTOM( 199?, m4crmaze__s, m4crmaze, mod4oki_bootleg_fixedret<0x2e>, mpu4jackpot8tkn, init_m4default_lextender, "cmaz58t", 0x0000, 0x010000, CRC(81a2c48a) SHA1(3ea25a2863f1350054f41cb169282c592565dbcd), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CR8 1.2, hack?)" )
+GAME_CUSTOM( 199?, m4crmaze__s, m4crmaze, mod4oki_bootleg_fixedret<0x2e>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4, "cmaz58t", 0x0000, 0x010000, CRC(81a2c48a) SHA1(3ea25a2863f1350054f41cb169282c592565dbcd), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CR8 1.2, hack?)" )
// no copyright string, and "CRC 0.7"
-GAME_CUSTOM( 199?, m4crmaze__n, m4crmaze, mod4oki_bootleg_fixedret<0x1c>, mpu4jackpot8tkn, init_m4default_lextender, "cmaz5.10", 0x0000, 0x010000, CRC(13a64c64) SHA1(3a7c4173f99fdf1a4b5d5b627022b18eb66837ce), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CRC 0.7, hack?)" )
+GAME_CUSTOM( 199?, m4crmaze__n, m4crmaze, mod4oki_bootleg_fixedret<0x1c>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4, "cmaz5.10", 0x0000, 0x010000, CRC(13a64c64) SHA1(3a7c4173f99fdf1a4b5d5b627022b18eb66837ce), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CRC 0.7, hack?)" )
// no copyright string, and "CRC 1.3"
-GAME_CUSTOM( 199?, m4crmaze__p, m4crmaze, mod4oki_bootleg_fixedret<0x1c>, mpu4jackpot8tkn, init_m4default_lextender, "cmaz510", 0x0000, 0x010000, CRC(0a1d39ac) SHA1(37888bbea427e115c29253deb85ed851ff6bdfd4), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CRC 1.3, hack?)" )
+GAME_CUSTOM( 199?, m4crmaze__p, m4crmaze, mod4oki_bootleg_fixedret<0x1c>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4, "cmaz510", 0x0000, 0x010000, CRC(0a1d39ac) SHA1(37888bbea427e115c29253deb85ed851ff6bdfd4), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CRC 1.3, hack?)" )
// no copyright string, and "CR5 1.0"
-GAME_CUSTOM( 199?, m4crmaze__o, m4crmaze, mod4oki_bootleg_fixedret<0x2b>, mpu4jackpot8tkn, init_m4default_lextender, "cmaz5.5", 0x0000, 0x010000, CRC(1f110757) SHA1(a60bac78176dab70d68bfb2b6a44debf499c96e3), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CR5 1.0, hack?)" )
+GAME_CUSTOM( 199?, m4crmaze__o, m4crmaze, mod4oki_bootleg_fixedret<0x2b>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4, "cmaz5.5", 0x0000, 0x010000, CRC(1f110757) SHA1(a60bac78176dab70d68bfb2b6a44debf499c96e3), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CR5 1.0, hack?)" )
// no copyright string, and "CR5 2.0"
-GAME_CUSTOM( 199?, m4crmaze__q, m4crmaze, mod4oki_bootleg_fixedret<0x2b>, mpu4jackpot8tkn, init_m4default_lextender, "cmaz55", 0x0000, 0x010000, CRC(2c2540ce) SHA1(12163109e05fe8675bc2dbcad95f598bebec8ba3), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CR5 2.0, hack?, set 1)" )
+GAME_CUSTOM( 199?, m4crmaze__q, m4crmaze, mod4oki_bootleg_fixedret<0x2b>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4, "cmaz55", 0x0000, 0x010000, CRC(2c2540ce) SHA1(12163109e05fe8675bc2dbcad95f598bebec8ba3), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CR5 2.0, hack?, set 1)" )
// no copyright string, and "CR5 2.0"
-GAME_CUSTOM( 199?, m4crmaze__r, m4crmaze, mod4oki_bootleg_fixedret<0x28>, mpu4jackpot8tkn, init_m4default_lextender, "cmaz55v2", 0x0000, 0x010000, CRC(9a3515d6) SHA1(5edd2c67152d353a48ad2f28b685fae1e1e7fff7), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CR5 2.0, hack?, set 2)" )
+GAME_CUSTOM( 199?, m4crmaze__r, m4crmaze, mod4oki_bootleg_fixedret<0x28>(R4, RT1, LPLB), mpu4jackpot8tkn, init_m4, "cmaz55v2", 0x0000, 0x010000, CRC(9a3515d6) SHA1(5edd2c67152d353a48ad2f28b685fae1e1e7fff7), "Bwb / hack?","The Crystal Maze (BWB / Barcrest) (MPU4) (CR5 2.0, hack?, set 2)" )
/*****************************************************************************************************************************************************************************
@@ -1089,7 +1064,7 @@ GAME_CUSTOM( 199?, m4crmaze__r, m4crmaze, mod4oki_bootleg_fixedret<0x28>, mpu
ROM_LOAD( name, offset, length, hash ) \
M4SHOCM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, input, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), input, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "SCM 0.1"
GAME_CUSTOM( 199?, m4shocm, 0, mpu4jackpot8tkn20p, "scms.p1", 0x0000, 0x020000, CRC(8cb17f49) SHA1(6c67d5d65567ba3677f51f9c636e1f8e253111de), "Barcrest","Showcase Crystal Maze (Barcrest) (MPU4) (SCM 0.1)" )
@@ -1128,7 +1103,7 @@ GAME_CUSTOM( 199?, m4shocm__j, m4shocm, mpu4jackpot8tkn20p, "scmk.p1", 0
ROM_LOAD( name, offset, length, hash ) \
M4CASHMN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "CMA 0.8"
GAME_CUSTOM( 199?, m4cashmn__m, m4cashmn, "cma08ad.p1", 0x0000, 0x020000, CRC(fce2f785) SHA1(fc508e3d1036319894985600cb0142f13536078c), "Barcrest","Cash Machine (Barcrest) (MPU4) (CMA 0.8 AD)" )
@@ -1166,7 +1141,7 @@ GAME_CUSTOM( 199?, m4cashmn__al, m4cashmn, "cmh07y.p1", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4CASHMN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "CMA 0.7"
GAME_CUSTOM( 199?, m4cashmn, 0, "cma07s.p1", 0x0000, 0x020000, CRC(e9c1d9f2) SHA1(f2df4ae650ec2b62d15bbaa562d638476bf926e7), "Barcrest","Cash Machine (Barcrest) (MPU4) (CMA 0.7)" )
@@ -1208,7 +1183,7 @@ GAME_CUSTOM( 199?, m4cashmn__a, m4cashmn, "camc2010", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4CASHMN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "CMH 0.6"
GAME_CUSTOM( 199?, m4cashmn__za, m4cashmn, "cma15g", 0x0000, 0x020000, CRC(f30b3ef2) SHA1(c8fb4d883d12a477a703d8cb0842994675aaf879), "hack?","Cash Machine (Barcrest) (MPU4) (CMH 0.6 Y, hack?)" )
@@ -1235,7 +1210,7 @@ GAME_CUSTOM( 199?, m4cashmn__zb, m4cashmn, "cma15t", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4TOPTEN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4topten, 0, "tts04s.p1", 0x0000, 0x020000, CRC(5e53f04f) SHA1(d49377966ed787cc3571eadff8c4c16fac74434c), "Barcrest","Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4)" )
GAME_CUSTOM( 199?, m4topten__ak, m4topten, "tts04ad.p1", 0x0000, 0x020000, CRC(cdcc3d18) SHA1(4e9ccb8bfbe5b86731a24631cc60819919bb3ce8), "Barcrest","Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4 AD)" )
@@ -1276,7 +1251,7 @@ GAME_CUSTOM( 199?, m4topten__5, m4topten, "tth12y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4TOPTEN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4topten__6, m4topten, "tts02ad.p1", 0x0000, 0x020000, CRC(afba21a4) SHA1(6394014f5d46df96d6c7cd840fec996a6d5ffee5), "Barcrest","Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2 AD)" )
GAME_CUSTOM( 199?, m4topten__7, m4topten, "tts02b.p1", 0x0000, 0x020000, CRC(ef4e080d) SHA1(a82940e58537d0c40f97c43aec470d68e9b344e8), "Barcrest","Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2 B)" )
@@ -1315,7 +1290,7 @@ GAME_CUSTOM( 199?, m4topten__r, m4topten, "tth10y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4TOPTEN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// no copyright string, different protection
@@ -1333,7 +1308,7 @@ ROM_START( m4take5 )
ROM_END
// badchr, non-standard protection, hack?
-GAME(199?, m4take5, m4topten, mod4oki_bootleg_fixedret<0x69>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"bootleg?","Top Tenner ('Take 5' bootleg) (MPU4) (TES 2.0)",GAME_FLAGS )
+GAME(199?, m4take5, m4topten, mod4oki_bootleg_fixedret<0x69>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0,"bootleg?","Top Tenner ('Take 5' bootleg) (MPU4) (TES 2.0)",GAME_FLAGS )
@@ -1358,7 +1333,7 @@ GAME(199?, m4take5, m4topten, mod4oki_bootleg_fixedret<0x69>, mpu4
ROM_LOAD( name, offset, length, hash ) \
M4TOOT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(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)" )
@@ -1394,7 +1369,7 @@ GAME_CUSTOM( 199?, m4toot__ak, m4toot, "tot06y.p1", 0x0000, 0x020000, CRC(8
ROM_LOAD( name, offset, length, hash ) \
M4TOOT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(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)" )
@@ -1432,7 +1407,7 @@ GAME_CUSTOM( 199?, m4toot__al, m4toot, "tten2010", 0x0000, 0x020000, CRC(2
ROM_LOAD( name, offset, length, hash ) \
M4TOOT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// different protection
@@ -1461,7 +1436,7 @@ GAME_CUSTOM( 199?, m4toot__zb, m4toot, "tot15t", 0x0000, 0x020000, CRC(1
ROM_LOAD( name, offset, length, hash ) \
M4EAW_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "ER8 0.1"
@@ -1518,7 +1493,7 @@ GAME_CUSTOM( 199?, m4eaw__v, m4eaw, "ceu02y.p1", 0x0000, 0x0100
ROM_LOAD( name, offset, length, hash ) \
M4EAW_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "ER2 0.1"
@@ -1554,7 +1529,7 @@ GAME_CUSTOM( 199?, m4eaw__bl, m4eaw, "erty.p1", 0x0000, 0x0100
ROM_LOAD( name, offset, length, hash ) \
M4EAW_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "ER4 0.1" (startup is ENN 0.1)
GAME_CUSTOM( 199?, m4eaw__6, m4eaw, "enn01s.p1", 0x0000, 0x010000, CRC(d0ba447d) SHA1(744d5448c5318287e58994b684e116ac1a236f05), "Barcrest","Everyone's A Winner (Barcrest) (MPU4) (ENN 0.1 / ER4 0.1)" )
@@ -1621,62 +1596,62 @@ GAME_CUSTOM( 199?, m4eaw__bx, m4eaw, "eun01y.p1", 0x0000, 0x0100
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// (C)1993 BARCREST and "WN5 0.1"
-GAME_CUSTOM( 199?, m4wta__m, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wn5s.p1", 0x0000, 0x010000, CRC(f6e925c1) SHA1(963f06462c73300757aad2371df4ebe28afca521), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1)" )
-GAME_CUSTOM( 199?, m4wta__f, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wn5ad.p1", 0x0000, 0x010000, CRC(0eb0845d) SHA1(57a2ca27672119e71af3b990cedcf52dd89e24cc), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 AD)" )
-GAME_CUSTOM( 199?, m4wta__g, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wn5b.p1", 0x0000, 0x010000, CRC(82cefba2) SHA1(07753a5f0d455422f33495a6f050c8e16a92e087), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 B)" )
-GAME_CUSTOM( 199?, m4wta__h, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wn5bd.p1", 0x0000, 0x010000, CRC(19d25b26) SHA1(91459c87e95d9800c5f77fd0c7f72f8a1488dc37), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 BD)" )
-GAME_CUSTOM( 199?, m4wta__i, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wn5d.p1", 0x0000, 0x010000, CRC(8a3d6bed) SHA1(a20f24cd5216976913c0405f54883d6080986867), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 D)" )
-GAME_CUSTOM( 199?, m4wta__j, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wn5dk.p1", 0x0000, 0x010000, CRC(1dfcb2bc) SHA1(b1a73a7758c3126f7b13156835c91a4900cbe6e0), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 KD)" )
-GAME_CUSTOM( 199?, m4wta__k, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wn5dy.p1", 0x0000, 0x010000, CRC(d45e1db0) SHA1(2524c4b60a89ea0ca15cf999fbd1f8d9029dfbb6), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 YD)" )
-GAME_CUSTOM( 199?, m4wta__l, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wn5k.p1", 0x0000, 0x010000, CRC(71c34cb4) SHA1(e1b96dd30d8ab680128d76886691d06fcd2d48c0), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 K)" )
-GAME_CUSTOM( 199?, m4wta__n, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wn5y.p1", 0x0000, 0x010000, CRC(7155f8b5) SHA1(f55f88fd7b0144cb7b64640d529b179dd056f5ec), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 Y)" )
+GAME_CUSTOM( 199?, m4wta__m, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn5s.p1", 0x0000, 0x010000, CRC(f6e925c1) SHA1(963f06462c73300757aad2371df4ebe28afca521), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1)" )
+GAME_CUSTOM( 199?, m4wta__f, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn5ad.p1", 0x0000, 0x010000, CRC(0eb0845d) SHA1(57a2ca27672119e71af3b990cedcf52dd89e24cc), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 AD)" )
+GAME_CUSTOM( 199?, m4wta__g, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn5b.p1", 0x0000, 0x010000, CRC(82cefba2) SHA1(07753a5f0d455422f33495a6f050c8e16a92e087), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 B)" )
+GAME_CUSTOM( 199?, m4wta__h, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn5bd.p1", 0x0000, 0x010000, CRC(19d25b26) SHA1(91459c87e95d9800c5f77fd0c7f72f8a1488dc37), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 BD)" )
+GAME_CUSTOM( 199?, m4wta__i, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn5d.p1", 0x0000, 0x010000, CRC(8a3d6bed) SHA1(a20f24cd5216976913c0405f54883d6080986867), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 D)" )
+GAME_CUSTOM( 199?, m4wta__j, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn5dk.p1", 0x0000, 0x010000, CRC(1dfcb2bc) SHA1(b1a73a7758c3126f7b13156835c91a4900cbe6e0), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 KD)" )
+GAME_CUSTOM( 199?, m4wta__k, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn5dy.p1", 0x0000, 0x010000, CRC(d45e1db0) SHA1(2524c4b60a89ea0ca15cf999fbd1f8d9029dfbb6), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 YD)" )
+GAME_CUSTOM( 199?, m4wta__l, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn5k.p1", 0x0000, 0x010000, CRC(71c34cb4) SHA1(e1b96dd30d8ab680128d76886691d06fcd2d48c0), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 K)" )
+GAME_CUSTOM( 199?, m4wta__n, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn5y.p1", 0x0000, 0x010000, CRC(7155f8b5) SHA1(f55f88fd7b0144cb7b64640d529b179dd056f5ec), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN5 0.1 Y)" )
// "(C)1993 BARCREST" and "WNT 0.1"
-GAME_CUSTOM( 199?, m4wta__4, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wnts.p1", 0x0000, 0x010000, CRC(3a9b0878) SHA1(85e86cca1a3a079746cd4401767ba1d9fc31a938), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1)" )
-GAME_CUSTOM( 199?, m4wta__x, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wntad.p1", 0x0000, 0x010000, CRC(8502766e) SHA1(2a47c8f8ce8711b30962c5e8ef9093bdd3543551), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 AD)" )
-GAME_CUSTOM( 199?, m4wta__y, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wntb.p1", 0x0000, 0x010000, CRC(1e3159f0) SHA1(ab9d0e9e6731b40c66c358d98c6481f31d9a0b0c), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 B)" )
-GAME_CUSTOM( 199?, m4wta__z, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wntbd.p1", 0x0000, 0x010000, CRC(91cc8978) SHA1(570ad4092bb148106fb2600f1e22b6cb6f57002a), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 BD)" )
-GAME_CUSTOM( 199?, m4wta__0, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wntd.p1", 0x0000, 0x010000, CRC(ad68d804) SHA1(f301d0d267dd0020903f06b67ee6494b71258c68), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 D)" )
-GAME_CUSTOM( 199?, m4wta__1, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wntdk.p1", 0x0000, 0x010000, CRC(3a6b65b8) SHA1(1da0448e53a45fa249c14b5655cd0dc957ebb646), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 KD)" )
-GAME_CUSTOM( 199?, m4wta__2, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wntdy.p1", 0x0000, 0x010000, CRC(2420634f) SHA1(5c6e891c34a6e2b3a6acb3856c1554145bb24d0d), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 YD)" )
-GAME_CUSTOM( 199?, m4wta__3, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wntk.p1", 0x0000, 0x010000, CRC(3d8d07c7) SHA1(4659e2459d956bbcf5ef2a605527317ccdafcccb), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 K)" )
-GAME_CUSTOM( 199?, m4wta__5, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "wnty.p1", 0x0000, 0x010000, CRC(edaa5ae7) SHA1(d24b9f37d75f13f16718374e48e6c003b0b3333f), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 Y)" )
+GAME_CUSTOM( 199?, m4wta__4, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wnts.p1", 0x0000, 0x010000, CRC(3a9b0878) SHA1(85e86cca1a3a079746cd4401767ba1d9fc31a938), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1)" )
+GAME_CUSTOM( 199?, m4wta__x, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wntad.p1", 0x0000, 0x010000, CRC(8502766e) SHA1(2a47c8f8ce8711b30962c5e8ef9093bdd3543551), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 AD)" )
+GAME_CUSTOM( 199?, m4wta__y, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wntb.p1", 0x0000, 0x010000, CRC(1e3159f0) SHA1(ab9d0e9e6731b40c66c358d98c6481f31d9a0b0c), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 B)" )
+GAME_CUSTOM( 199?, m4wta__z, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wntbd.p1", 0x0000, 0x010000, CRC(91cc8978) SHA1(570ad4092bb148106fb2600f1e22b6cb6f57002a), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 BD)" )
+GAME_CUSTOM( 199?, m4wta__0, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wntd.p1", 0x0000, 0x010000, CRC(ad68d804) SHA1(f301d0d267dd0020903f06b67ee6494b71258c68), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 D)" )
+GAME_CUSTOM( 199?, m4wta__1, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wntdk.p1", 0x0000, 0x010000, CRC(3a6b65b8) SHA1(1da0448e53a45fa249c14b5655cd0dc957ebb646), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 KD)" )
+GAME_CUSTOM( 199?, m4wta__2, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wntdy.p1", 0x0000, 0x010000, CRC(2420634f) SHA1(5c6e891c34a6e2b3a6acb3856c1554145bb24d0d), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 YD)" )
+GAME_CUSTOM( 199?, m4wta__3, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wntk.p1", 0x0000, 0x010000, CRC(3d8d07c7) SHA1(4659e2459d956bbcf5ef2a605527317ccdafcccb), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 K)" )
+GAME_CUSTOM( 199?, m4wta__5, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wnty.p1", 0x0000, 0x010000, CRC(edaa5ae7) SHA1(d24b9f37d75f13f16718374e48e6c003b0b3333f), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WNT 0.1 Y)" )
// (C)1993 BARCREST and "WIN 0.6"
-GAME_CUSTOM( 199?, m4wta, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wins.p1", 0x0000, 0x010000, CRC(d79d1e5b) SHA1(722657423a605d6d272d61e4e00b4055ed05f98d), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WIN 0.6)" )
-GAME_CUSTOM( 199?, m4wta__b, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "windy.p1", 0x0000, 0x010000, CRC(d8b78c2d) SHA1(d8c2a2ac30a9b876acfbe99e3c540ba0e82cde33), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WIN 0.6 YD)" )
-GAME_CUSTOM( 199?, m4wta__e, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "winy.p1", 0x0000, 0x010000, CRC(5ff8ed08) SHA1(9567db64e8ebf25ecb22236598cc88a3106f0e36), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WIN 0.6 Y)" )
-GAME_CUSTOM( 199?, m4wta__aa, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wtall20a", 0x0000, 0x010000, CRC(b53c951e) SHA1(24f96d16852a4fbaf49fbdf29a26d15877f07b18), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WIN 0.6 K)" )
+GAME_CUSTOM( 199?, m4wta, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wins.p1", 0x0000, 0x010000, CRC(d79d1e5b) SHA1(722657423a605d6d272d61e4e00b4055ed05f98d), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WIN 0.6)" )
+GAME_CUSTOM( 199?, m4wta__b, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "windy.p1", 0x0000, 0x010000, CRC(d8b78c2d) SHA1(d8c2a2ac30a9b876acfbe99e3c540ba0e82cde33), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WIN 0.6 YD)" )
+GAME_CUSTOM( 199?, m4wta__e, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "winy.p1", 0x0000, 0x010000, CRC(5ff8ed08) SHA1(9567db64e8ebf25ecb22236598cc88a3106f0e36), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WIN 0.6 Y)" )
+GAME_CUSTOM( 199?, m4wta__aa, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wtall20a", 0x0000, 0x010000, CRC(b53c951e) SHA1(24f96d16852a4fbaf49fbdf29a26d15877f07b18), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WIN 0.6 K)" )
// (C)1993 BARCREST and "WN8 0.1"
-GAME_CUSTOM( 199?, m4wta__u, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wn8s.p1", 0x0000, 0x010000, CRC(5c5a0f31) SHA1(301e595141dd6eb9250d71e591780e15a7d36423), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1)" )
-GAME_CUSTOM( 199?, m4wta__o, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wn8b.p1", 0x0000, 0x010000, CRC(7e84f99c) SHA1(bef41b3e7906bdaadfa5741e9ae40028f4fd360f), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 B)" )
-GAME_CUSTOM( 199?, m4wta__p, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wn8c.p1", 0x0000, 0x010000, CRC(471ba65a) SHA1(6ede860bcf323ee75dd7f75a51e5d1166ee72abc), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 C)" )
-GAME_CUSTOM( 199?, m4wta__q, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wn8d.p1", 0x0000, 0x010000, CRC(eb2bd01e) SHA1(df74f8eb8fa411bab20ab522fd7c511a1370fe90), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 D)" )
-GAME_CUSTOM( 199?, m4wta__r, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wn8dk.p1", 0x0000, 0x010000, CRC(ec20a0bc) SHA1(61b615165a6e77cd85e1fa6aeb955307ec48d1b6), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 KD)" )
-GAME_CUSTOM( 199?, m4wta__s, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wn8dy.p1", 0x0000, 0x010000, CRC(d2a1513c) SHA1(e4d2ad88846cbb6b393d3615bf10e1dea01de219), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 YD)" )
-GAME_CUSTOM( 199?, m4wta__t, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wn8k.p1", 0x0000, 0x010000, CRC(3e15c690) SHA1(2fc1cca91ac5cc9abeac112e4d60e8fd57b07b94), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 K)" )
-GAME_CUSTOM( 199?, m4wta__v, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default_lextender, "wn8y.p1", 0x0000, 0x010000, CRC(993cee6a) SHA1(26b2d5d3aa3465f90fe74960f183b8580ea2fbb1), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 Y)" )
+GAME_CUSTOM( 199?, m4wta__u, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn8s.p1", 0x0000, 0x010000, CRC(5c5a0f31) SHA1(301e595141dd6eb9250d71e591780e15a7d36423), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1)" )
+GAME_CUSTOM( 199?, m4wta__o, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn8b.p1", 0x0000, 0x010000, CRC(7e84f99c) SHA1(bef41b3e7906bdaadfa5741e9ae40028f4fd360f), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 B)" )
+GAME_CUSTOM( 199?, m4wta__p, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn8c.p1", 0x0000, 0x010000, CRC(471ba65a) SHA1(6ede860bcf323ee75dd7f75a51e5d1166ee72abc), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 C)" )
+GAME_CUSTOM( 199?, m4wta__q, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn8d.p1", 0x0000, 0x010000, CRC(eb2bd01e) SHA1(df74f8eb8fa411bab20ab522fd7c511a1370fe90), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 D)" )
+GAME_CUSTOM( 199?, m4wta__r, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn8dk.p1", 0x0000, 0x010000, CRC(ec20a0bc) SHA1(61b615165a6e77cd85e1fa6aeb955307ec48d1b6), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 KD)" )
+GAME_CUSTOM( 199?, m4wta__s, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn8dy.p1", 0x0000, 0x010000, CRC(d2a1513c) SHA1(e4d2ad88846cbb6b393d3615bf10e1dea01de219), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 YD)" )
+GAME_CUSTOM( 199?, m4wta__t, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn8k.p1", 0x0000, 0x010000, CRC(3e15c690) SHA1(2fc1cca91ac5cc9abeac112e4d60e8fd57b07b94), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 K)" )
+GAME_CUSTOM( 199?, m4wta__v, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wn8y.p1", 0x0000, 0x010000, CRC(993cee6a) SHA1(26b2d5d3aa3465f90fe74960f183b8580ea2fbb1), "Barcrest","Winner Takes All (Barcrest) (MPU4) (WN8 0.1 Y)" )
// "(C)1996 B.W.B." and "WN4 1.1"
-GAME_CUSTOM( 199?, m4wta__9, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wtaalt_characteriser_prot>, mpu4, init_m4default_lextender, "wta_5p_4c.bin", 0x0000, 0x010000, CRC(54c51976) SHA1(70cae1f931615b993ac6a9e7ce2e529ad6d27da8), "BWB","Winner Takes All (Barcrest) (MPU4) (WN4 1.1 K5)" )
-GAME_CUSTOM( 199?, m4wta__ab, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wtaalt_characteriser_prot>, mpu4, init_m4default_lextender, "wt_05__4.1_1", 0x0000, 0x010000, CRC(5e05485e) SHA1(062f16ca92518f746f5410a2b9b551542e1a68e3), "BWB","Winner Takes All (Barcrest) (MPU4) (WN4 1.1 5)" )
+GAME_CUSTOM( 199?, m4wta__9, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wtaalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wta_5p_4c.bin", 0x0000, 0x010000, CRC(54c51976) SHA1(70cae1f931615b993ac6a9e7ce2e529ad6d27da8), "BWB","Winner Takes All (Barcrest) (MPU4) (WN4 1.1 K5)" )
+GAME_CUSTOM( 199?, m4wta__ab, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wtaalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wt_05__4.1_1", 0x0000, 0x010000, CRC(5e05485e) SHA1(062f16ca92518f746f5410a2b9b551542e1a68e3), "BWB","Winner Takes All (Barcrest) (MPU4) (WN4 1.1 5)" )
// "(C)1996 B.W.B." and "WN5 3.0"
-GAME_CUSTOM( 199?, m4wta__ac, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wtaalt_characteriser_prot>, mpu4, init_m4default_lextender, "wt_05__5.3_1", 0x0000, 0x010000, CRC(8a289bbd) SHA1(8ae0858716ed6aa02f6b4f93fd367c7cee85d13a), "BWB","Winner Takes All (Barcrest) (MPU4) (WN5 3.0 5)" )
+GAME_CUSTOM( 199?, m4wta__ac, m4wta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wtaalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "wt_05__5.3_1", 0x0000, 0x010000, CRC(8a289bbd) SHA1(8ae0858716ed6aa02f6b4f93fd367c7cee85d13a), "BWB","Winner Takes All (Barcrest) (MPU4) (WN5 3.0 5)" )
// below require different protection handling
// "(C)1993 BARCREST" and "WNT 0.1"
-GAME_CUSTOM( 199?, m4wta__w, m4wta, mod4oki_bootleg_fixedret<0x1e>, mpu4, init_m4default_lextender, "wnta2010", 0x0000, 0x010000, CRC(5b08faf8) SHA1(f4657041562044e17febfe77ad1f849545dcdaec), "hack","Winner Takes All (Barcrest) (MPU4) (WNT 0.1, hack)" )
+GAME_CUSTOM( 199?, m4wta__w, m4wta, mod4oki_bootleg_fixedret<0x1e>(R4, RT1, LPLB), mpu4, init_m4, "wnta2010", 0x0000, 0x010000, CRC(5b08faf8) SHA1(f4657041562044e17febfe77ad1f849545dcdaec), "hack","Winner Takes All (Barcrest) (MPU4) (WNT 0.1, hack)" )
// "(C)1996 B.W.B." and "WNC 1.3"
-GAME_CUSTOM( 199?, m4wta__7, m4wta, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default_lextender, "wta510l", 0x0000, 0x010000, CRC(9ce140ae) SHA1(01d53a5da0161ac4ecc861309f645d6eb47b4af5), "hack","Winner Takes All (Barcrest) (MPU4) (WNC 1.3 5, hack, set 1)" )
-GAME_CUSTOM( 199?, m4wta__ad, m4wta, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default_lextender, "wta5.10", 0x0000, 0x010000, CRC(c1ae8e9a) SHA1(66c0b200202386a10b96b7141517a52921266950), "hack","Winner Takes All (Barcrest) (MPU4) (WNC 1.3 5, hack, set 2)" )
+GAME_CUSTOM( 199?, m4wta__7, m4wta, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, LPLB), mpu4, init_m4, "wta510l", 0x0000, 0x010000, CRC(9ce140ae) SHA1(01d53a5da0161ac4ecc861309f645d6eb47b4af5), "hack","Winner Takes All (Barcrest) (MPU4) (WNC 1.3 5, hack, set 1)" )
+GAME_CUSTOM( 199?, m4wta__ad, m4wta, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, LPLB), mpu4, init_m4, "wta5.10", 0x0000, 0x010000, CRC(c1ae8e9a) SHA1(66c0b200202386a10b96b7141517a52921266950), "hack","Winner Takes All (Barcrest) (MPU4) (WNC 1.3 5, hack, set 2)" )
// "(C)1996 B.W.B." and "WN8 2.2"
-GAME_CUSTOM( 199?, m4wta__8, m4wta, mod4oki_bootleg_fixedret<0x2c>, mpu4, init_m4default_lextender, "wta58tl", 0x0000, 0x010000, CRC(7275e865) SHA1(d5550646a062609cfc052fab81c533ca69171875), "hack","Winner Takes All (Barcrest) (MPU4) (WN8 2.2 5, hack, set 1)" )
-GAME_CUSTOM( 199?, m4wta__ag, m4wta, mod4oki_bootleg_fixedret<0x2c>, mpu4, init_m4default_lextender, "wta5.8t", 0x0000, 0x010000, CRC(548122ab) SHA1(c611084e8a08d5556e458daf9cc721c0e5ba1948), "hack","Winner Takes All (Barcrest) (MPU4) (WN8 2.2 5, hack, set 2)" )
-GAME_CUSTOM( 199?, m4wta__ae, m4wta, mod4oki_bootleg_fixedret<0x2c>, mpu4, init_m4default_lextender, "wta5.4", 0x0000, 0x010000, CRC(00c64637) SHA1(54214edb107b28852a1bd3e095787bf9241e4fe3), "hack","Winner Takes All (Barcrest) (MPU4) (WN4 1.1 K5, hack?)" ) // bad char alarm
+GAME_CUSTOM( 199?, m4wta__8, m4wta, mod4oki_bootleg_fixedret<0x2c>(R4, RT1, LPLB), mpu4, init_m4, "wta58tl", 0x0000, 0x010000, CRC(7275e865) SHA1(d5550646a062609cfc052fab81c533ca69171875), "hack","Winner Takes All (Barcrest) (MPU4) (WN8 2.2 5, hack, set 1)" )
+GAME_CUSTOM( 199?, m4wta__ag, m4wta, mod4oki_bootleg_fixedret<0x2c>(R4, RT1, LPLB), mpu4, init_m4, "wta5.8t", 0x0000, 0x010000, CRC(548122ab) SHA1(c611084e8a08d5556e458daf9cc721c0e5ba1948), "hack","Winner Takes All (Barcrest) (MPU4) (WN8 2.2 5, hack, set 2)" )
+GAME_CUSTOM( 199?, m4wta__ae, m4wta, mod4oki_bootleg_fixedret<0x2c>(R4, RT1, LPLB), mpu4, init_m4, "wta5.4", 0x0000, 0x010000, CRC(00c64637) SHA1(54214edb107b28852a1bd3e095787bf9241e4fe3), "hack","Winner Takes All (Barcrest) (MPU4) (WN4 1.1 K5, hack?)" ) // bad char alarm
// "197 COCO" and "WN4 1.1" (hack)
-GAME_CUSTOM( 199?, m4wta__d, m4wta, mod4oki_bootleg_fixedret<0x28>, mpu4, init_m4default_lextender, "wta55", 0x0000, 0x010000, CRC(df3e66cd) SHA1(68e769816cb1a71dea8a3ccf4636414c45c01646), "hack","Winner Takes All (Barcrest) (MPU4) (WN4 1.1, hack, set 1)" )
-GAME_CUSTOM( 199?, m4wta__af, m4wta, mod4oki_bootleg_fixedret<0x28>, mpu4, init_m4default_lextender, "wta5.5n", 0x0000, 0x010000, CRC(85eed9b5) SHA1(6a11ff6a031b788524d23018e3af44767176246a), "hack","Winner Takes All (Barcrest) (MPU4) (WN4 1.1, hack, set 2)" )
+GAME_CUSTOM( 199?, m4wta__d, m4wta, mod4oki_bootleg_fixedret<0x28>(R4, RT1, LPLB), mpu4, init_m4, "wta55", 0x0000, 0x010000, CRC(df3e66cd) SHA1(68e769816cb1a71dea8a3ccf4636414c45c01646), "hack","Winner Takes All (Barcrest) (MPU4) (WN4 1.1, hack, set 1)" )
+GAME_CUSTOM( 199?, m4wta__af, m4wta, mod4oki_bootleg_fixedret<0x28>(R4, RT1, LPLB), mpu4, init_m4, "wta5.5n", 0x0000, 0x010000, CRC(85eed9b5) SHA1(6a11ff6a031b788524d23018e3af44767176246a), "hack","Winner Takes All (Barcrest) (MPU4) (WN4 1.1, hack, set 2)" )
// "BILLY WHIZZ" and "V1 0.1"
-GAME_CUSTOM( 199?, m4wta__6, m4wta, mod4oki_bootleg_fixedret<0x60>, mpu4, init_m4default_lextender, "wta20p10.bin", 0x0000, 0x010000, CRC(c7f235b8) SHA1(a25f6f755140d70b0392985839b1729640cf5d5d), "hack","Winner Takes All (Barcrest) (MPU4) (V1 0.1, hack)" )
+GAME_CUSTOM( 199?, m4wta__6, m4wta, mod4oki_bootleg_fixedret<0x60>(R4, RT1, LPLB), mpu4, init_m4, "wta20p10.bin", 0x0000, 0x010000, CRC(c7f235b8) SHA1(a25f6f755140d70b0392985839b1729640cf5d5d), "hack","Winner Takes All (Barcrest) (MPU4) (V1 0.1, hack)" )
/*****************************************************************************************************************************************************************************
*
@@ -1697,7 +1672,7 @@ GAME_CUSTOM( 199?, m4wta__6, m4wta, mod4oki_bootleg_fixedret<0x60>, mpu4, init_
ROM_LOAD( name, offset, length, hash ) \
M4PRZWTA_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PWN 0.4"
GAME_CUSTOM( 199?, m4przwta, 0, "pwns.p1", 0x0000, 0x020000, CRC(b3b87954) SHA1(f998ebf8047930f006213040ed5e6a9f90844143), "Barcrest","Prize Winner Takes All (Barcrest) (MPU4) (PWN 0.4)" )
@@ -1741,7 +1716,7 @@ GAME_CUSTOM( 199?, m4przwta__k, m4przwta, "pw8y.p1", 0x0000, 0x020000, CRC
ROM_LOAD( name, offset, length, hash ) \
M4GOODTM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(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)" )
@@ -1783,7 +1758,7 @@ GAME_CUSTOM( 199?, m4goodtm__1, m4goodtm, "gtr11s", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4GOODTM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(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)" )
@@ -1837,7 +1812,7 @@ GAME_CUSTOM( 199?, m4goodtm__n, m4goodtm, "gtk02k.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4GOODTM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// different protection
// no copyright string and "GTR 1.0"
@@ -1866,7 +1841,7 @@ GAME_CUSTOM( 199?, m4goodtm__3, m4goodtm, "gtr15t", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4JPGEM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// boots to hopper error, Q to run in 'Door Open' mode
@@ -1892,7 +1867,7 @@ GAME_CUSTOM( 199?, m4jpgem__bp, m4jpgem, "rrh01y.p1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4JPGEM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::du91_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::du91_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "CG4 0.7"
GAME_CUSTOM( 199?, m4jpgem, 0, "cg4s.p1", 0x0000, 0x010000, CRC(f25eba0b) SHA1(250189b7fb8aa82a8696c3a0099eb13ec74eeb10), "Barcrest","Jackpot Gems (Barcrest) (MPU4) (CG4 0.7)" )
@@ -1954,7 +1929,7 @@ GAME_CUSTOM( 199?, m4jpgem__aa, m4jpgem, "jagy.p1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4JPGEM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rhm_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "JG3 0.1"
GAME_CUSTOM( 199?, m4jpgem__ai, m4jpgem, "jg3s.p1", 0x0000, 0x010000, CRC(91945adc) SHA1(d80321fc4c2e67461d69df2164e3e290caa905bc), "Barcrest","Jackpot Gems (Barcrest) (MPU4) (JG3 0.1)" )
@@ -1975,7 +1950,7 @@ GAME_CUSTOM( 199?, m4jpgem__aj, m4jpgem, "jg3y.p1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4JPGEM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "JGT 0.3"
GAME_CUSTOM( 199?, m4jpgem__a1, m4jpgem, "jgts.p1", 0x0000, 0x010000, CRC(0e3810a7) SHA1(cf840bd84eba65d9dec2d6821a48112b6f2f9bca), "Barcrest","Jackpot Gems (Barcrest) (MPU4) (JGT 0.3)" )
@@ -2021,7 +1996,7 @@ GAME_CUSTOM( 199?, m4jpgem__bd, m4jpgem, "jgu02y.p1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4JPGEMC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "CG4 0.1" (startup shows GTC)
GAME_CUSTOM( 199?, m4jpgemc, 0, "gtc01s.p1", 0x0000, 0x010000, CRC(af33337b) SHA1(97d28e224b73baa9d6d7b0c309385f57b6dd5d9b), "Barcrest","Jackpot Gems Classic (Barcrest) (MPU4) (GTC 0.1 / CG4 0.1)" )
@@ -2070,7 +2045,7 @@ GAME_CUSTOM( 199?, m4jpgemc__w, m4jpgemc, "hge01y.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4JOLGEM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "GEM 0.7" // yes, the 'type' bytes are in a different order here, with D coming before the others
GAME_CUSTOM( 199?, m4jolgem, 0, "gem07s.p1", 0x0000, 0x020000, CRC(945ad0d2) SHA1(d636bc41a4f887d24affc0f5b644c5d5351cf0df), "Barcrest","Jolly Gems (Barcrest) (MPU4) (GEM 0.7)" )
@@ -2106,7 +2081,7 @@ GAME_CUSTOM( 199?, m4jolgem__al, m4jolgem, "gms05y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4JOLGEM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(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)" )
@@ -2146,7 +2121,7 @@ GAME_CUSTOM( 199?, m4jolgem__ao, m4jolgem, "jjem0", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4JOLGEM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::sunsetclub_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::sunsetclub_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(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 CK)" )
@@ -2158,7 +2133,7 @@ GAME_CUSTOM( 199?, m4jolgem__ap, m4jolgem, "jgs_xa_x.1_0", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4JOLGEM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// different protection
// no copyright string and "GEM 0.6"
@@ -2188,7 +2163,7 @@ GAME_CUSTOM( 199?, m4jolgem__an, m4jolgem, "jgem15t", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4HITTOP_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "HT2 0.1"
GAME_CUSTOM( 199?, m4hittop__ac, m4hittop, "ht201s.p1", 0x0000, 0x010000, CRC(37b20464) SHA1(e87b0a2023416fa7b63201e19850319723eb6c10), "Barcrest","Hit The Top (Barcrest) (MPU4) (HT2 0.1)" )
@@ -2222,7 +2197,7 @@ GAME_CUSTOM( 199?, m4hittop__ao, m4hittop, "ht501y.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4HITTOP_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hittopalt_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hittopalt_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "HTT 0.5"
GAME_CUSTOM( 199?, m4hittop__aw, m4hittop, "htts.p1", 0x0000, 0x010000, CRC(6c794eb2) SHA1(347a7c74b1fd7631fbcd398bf5e7c36af088109e), "Barcrest","Hit The Top (Barcrest) (MPU4) (HTT 0.5)" )
@@ -2242,7 +2217,7 @@ GAME_CUSTOM( 199?, m4hittop__ax, m4hittop, "htty.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4HITTOP_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hittopalt2_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hittopalt2_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "HI4 0.3"
GAME_CUSTOM( 199?, m4hittop, 0, "hi4s.p1", 0x0000, 0x010000, CRC(3a04ee7a) SHA1(d23e9da2c22f6983a855bc519597ea9cea84f2dd), "Barcrest","Hit The Top (Barcrest) (MPU4) (HI4 0.3)" )
@@ -2274,7 +2249,7 @@ GAME_CUSTOM( 199?, m4hittop__j, m4hittop, "chuy.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4HITTOP_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// doesn't read from protection
@@ -2313,7 +2288,7 @@ GAME_CUSTOM( 199?, m4hittop__2, m4hittop, "hit04y.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4NNWW_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// the rom codes, and startup message differ in several of these, I've put the startup display code first (which seems to match the rom label) followed by the code stored in the ROM header
@@ -2374,7 +2349,7 @@ GAME_CUSTOM( 199?, m4nnww__ah, m4nnww, "nn4y.p1", 0x0000, 0x010000, CRC(a
ROM_LOAD( name, offset, length, hash ) \
M4NNWW_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// most of the sets below were in marked 'classic' while the sets above weren't, but this version with samples appears to always be called 'Classic'
@@ -2434,7 +2409,7 @@ GAME_CUSTOM( 199?, m4nnww__ay, m4nnww, "ch301s", 0x0000, 0x010000, CRC(
ROM_LOAD( name, offset, length, hash ) \
M4NNWW_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::nifty_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)2000 BWB" and "CNN 2.0"
GAME_CUSTOM( 199?, m4nnwwc__aa, m4nnww, "cl__x__x.2_0", 0x0000, 0x010000, CRC(c3de4791) SHA1(220d32b961b6710d508c0c7e6b2d8e4d292746f4), "BWB","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (CNN 2.0)" )
@@ -2465,89 +2440,89 @@ GAME_CUSTOM( 199?, m4nnwwc__ad, m4nnww, "cl__xb_x.2_0", 0x0000, 0x010000,
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "RUN 0.5"
-GAME_CUSTOM( 199?, m4rfym, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "runs.p1", 0x0000, 0x010000, CRC(e20f5a06) SHA1(f0f71f8870db7003fce96f1dfe09804cf17c3ab3), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5)" )
-GAME_CUSTOM( 199?, m4rfym__ar, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "rund.p1", 0x0000, 0x010000, CRC(2be2a66d) SHA1(a66d74ccf1783912673cfcb6c1ae7fbb6d70ca0e), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 D)" )
-GAME_CUSTOM( 199?, m4rfym__ao, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "runc.p1", 0x0000, 0x010000, CRC(09f53ddf) SHA1(f46be95bfacac751102a5f4d4a0917a5e51a653e), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 C)" )
-GAME_CUSTOM( 199?, m4rfym__ap, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "rundy.p1", 0x0000, 0x010000, CRC(a6f69a24) SHA1(8370287dcc890fcb7529d3d4c7a3c2e2e688f6a8), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 YD)" )
-GAME_CUSTOM( 199?, m4rfym__aq, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "runk.p1", 0x0000, 0x010000, CRC(a2828b82) SHA1(0ae371a441df679fd9c699771ae9f58ce960d4a1), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 K)" )
-GAME_CUSTOM( 199?, m4rfym__as, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "runy.p1", 0x0000, 0x010000, CRC(0e311ab4) SHA1(c98540c07e9cc23ec70ecfbcb2f4d66f2c716fc3), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 Y)" )
+GAME_CUSTOM( 199?, m4rfym, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "runs.p1", 0x0000, 0x010000, CRC(e20f5a06) SHA1(f0f71f8870db7003fce96f1dfe09804cf17c3ab3), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5)" )
+GAME_CUSTOM( 199?, m4rfym__ar, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rund.p1", 0x0000, 0x010000, CRC(2be2a66d) SHA1(a66d74ccf1783912673cfcb6c1ae7fbb6d70ca0e), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 D)" )
+GAME_CUSTOM( 199?, m4rfym__ao, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "runc.p1", 0x0000, 0x010000, CRC(09f53ddf) SHA1(f46be95bfacac751102a5f4d4a0917a5e51a653e), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 C)" )
+GAME_CUSTOM( 199?, m4rfym__ap, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rundy.p1", 0x0000, 0x010000, CRC(a6f69a24) SHA1(8370287dcc890fcb7529d3d4c7a3c2e2e688f6a8), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 YD)" )
+GAME_CUSTOM( 199?, m4rfym__aq, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "runk.p1", 0x0000, 0x010000, CRC(a2828b82) SHA1(0ae371a441df679fd9c699771ae9f58ce960d4a1), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 K)" )
+GAME_CUSTOM( 199?, m4rfym__as, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "runy.p1", 0x0000, 0x010000, CRC(0e311ab4) SHA1(c98540c07e9cc23ec70ecfbcb2f4d66f2c716fc3), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUN 0.5 Y)" )
// "(C)1993 BARCREST" and "APR 0.1"
-GAME_CUSTOM( 199?, m4rfym__2, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "aprs.p1", 0x0000, 0x010000, CRC(a114a96a) SHA1(b0a9091cac86750329513a0927dd39b76995b2f2), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1)" )
-GAME_CUSTOM( 199?, m4rfym__u, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "aprad.p1", 0x0000, 0x010000, CRC(936f59ac) SHA1(325708d965d56a9a7482dbeaa089ca871d5c01b5), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 AD)" )
-GAME_CUSTOM( 199?, m4rfym__v, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "aprb.p1", 0x0000, 0x010000, CRC(72ad662a) SHA1(11f1695e05ecf34a58f8df3ffbc72ab2dd7d02c9), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 B)" )
-GAME_CUSTOM( 199?, m4rfym__w, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "aprbd.p1", 0x0000, 0x010000, CRC(13af990d) SHA1(604d2173e3d6d25252b30b5bf386b53470c35581), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 BD)" )
-GAME_CUSTOM( 199?, m4rfym__x, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "aprc.p1", 0x0000, 0x010000, CRC(fd3ece9a) SHA1(e11d1d258a415865f7477cdfddcd47e9bdb1c9b5), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 C)" )
-GAME_CUSTOM( 199?, m4rfym__y, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "aprd.p1", 0x0000, 0x010000, CRC(8c19b732) SHA1(e7aeea41cf649fe2a28414ddedacdf72f56d32fe), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 D)" )
-GAME_CUSTOM( 199?, m4rfym__z, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "aprdk.p1", 0x0000, 0x010000, CRC(58a41fcd) SHA1(e8c92dfb5c9662c90d363b5b7a7e0a4b4894d4cb), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 KD)" )
-GAME_CUSTOM( 199?, m4rfym__0, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "aprdy.p1", 0x0000, 0x010000, CRC(9496cfad) SHA1(cb24779db99d283f1df86864886f21ad333cb98b), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 YD)" )
-GAME_CUSTOM( 199?, m4rfym__1, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "aprk.p1", 0x0000, 0x010000, CRC(7277ef07) SHA1(dc509d125f8d377d4b2cb011d32be5bdba1daa17), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 K)" )
-GAME_CUSTOM( 199?, m4rfym__3, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "apry.p1", 0x0000, 0x010000, CRC(bf2120bc) SHA1(473374a9510dd53e39b94bfcf1369e13647239e6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 Y)" )
+GAME_CUSTOM( 199?, m4rfym__2, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "aprs.p1", 0x0000, 0x010000, CRC(a114a96a) SHA1(b0a9091cac86750329513a0927dd39b76995b2f2), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1)" )
+GAME_CUSTOM( 199?, m4rfym__u, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "aprad.p1", 0x0000, 0x010000, CRC(936f59ac) SHA1(325708d965d56a9a7482dbeaa089ca871d5c01b5), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 AD)" )
+GAME_CUSTOM( 199?, m4rfym__v, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "aprb.p1", 0x0000, 0x010000, CRC(72ad662a) SHA1(11f1695e05ecf34a58f8df3ffbc72ab2dd7d02c9), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 B)" )
+GAME_CUSTOM( 199?, m4rfym__w, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "aprbd.p1", 0x0000, 0x010000, CRC(13af990d) SHA1(604d2173e3d6d25252b30b5bf386b53470c35581), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 BD)" )
+GAME_CUSTOM( 199?, m4rfym__x, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "aprc.p1", 0x0000, 0x010000, CRC(fd3ece9a) SHA1(e11d1d258a415865f7477cdfddcd47e9bdb1c9b5), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 C)" )
+GAME_CUSTOM( 199?, m4rfym__y, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "aprd.p1", 0x0000, 0x010000, CRC(8c19b732) SHA1(e7aeea41cf649fe2a28414ddedacdf72f56d32fe), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 D)" )
+GAME_CUSTOM( 199?, m4rfym__z, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "aprdk.p1", 0x0000, 0x010000, CRC(58a41fcd) SHA1(e8c92dfb5c9662c90d363b5b7a7e0a4b4894d4cb), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 KD)" )
+GAME_CUSTOM( 199?, m4rfym__0, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "aprdy.p1", 0x0000, 0x010000, CRC(9496cfad) SHA1(cb24779db99d283f1df86864886f21ad333cb98b), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 YD)" )
+GAME_CUSTOM( 199?, m4rfym__1, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "aprk.p1", 0x0000, 0x010000, CRC(7277ef07) SHA1(dc509d125f8d377d4b2cb011d32be5bdba1daa17), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 K)" )
+GAME_CUSTOM( 199?, m4rfym__3, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "apry.p1", 0x0000, 0x010000, CRC(bf2120bc) SHA1(473374a9510dd53e39b94bfcf1369e13647239e6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (APR 0.1 Y)" )
// "(C)1993 BARCREST" and "RU8 0.1"
-GAME_CUSTOM( 199?, m4rfym__am, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "ru8s.p1", 0x0000, 0x010000, CRC(d6ce5891) SHA1(c130e7bf614c67767c9af6f38e3cd41ce63d11ef), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1)" )
-GAME_CUSTOM( 199?, m4rfym__ah, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "ru8c.p1", 0x0000, 0x010000, CRC(93290724) SHA1(37b17b08f77b308289d4392900576dc66a0377eb), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 C)" )
-GAME_CUSTOM( 199?, m4rfym__ai, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "ru8d.p1", 0x0000, 0x010000, CRC(3e7d6ebb) SHA1(a836a52aef9fe4a9021835e99109b7fefb4ead76), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 D)" )
-GAME_CUSTOM( 199?, m4rfym__aj, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "ru8dk.p1", 0x0000, 0x010000, CRC(b2983dc1) SHA1(412bf4a643c807371fa465fb5f9a85bc3e46623d), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 KD)" )
-GAME_CUSTOM( 199?, m4rfym__ak, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "ru8dy.p1", 0x0000, 0x010000, CRC(7d06cdcc) SHA1(d68f6ee59eb7689df30412288db4e9ee6c4bf178), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 YD)" )
-GAME_CUSTOM( 199?, m4rfym__al, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "ru8k.p1", 0x0000, 0x010000, CRC(42f6226e) SHA1(c4bac8efd9c17f96dd9d973e9f64c85ceeacb36b), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 K)" )
-GAME_CUSTOM( 199?, m4rfym__an, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, init_m4default_lextender, "ru8y.p1", 0x0000, 0x010000, CRC(f1fc1e75) SHA1(f6f1008349505ee0c494fcdde27db2a15147b6cb), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 Y)" )
+GAME_CUSTOM( 199?, m4rfym__am, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru8s.p1", 0x0000, 0x010000, CRC(d6ce5891) SHA1(c130e7bf614c67767c9af6f38e3cd41ce63d11ef), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1)" )
+GAME_CUSTOM( 199?, m4rfym__ah, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru8c.p1", 0x0000, 0x010000, CRC(93290724) SHA1(37b17b08f77b308289d4392900576dc66a0377eb), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 C)" )
+GAME_CUSTOM( 199?, m4rfym__ai, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru8d.p1", 0x0000, 0x010000, CRC(3e7d6ebb) SHA1(a836a52aef9fe4a9021835e99109b7fefb4ead76), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 D)" )
+GAME_CUSTOM( 199?, m4rfym__aj, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru8dk.p1", 0x0000, 0x010000, CRC(b2983dc1) SHA1(412bf4a643c807371fa465fb5f9a85bc3e46623d), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 KD)" )
+GAME_CUSTOM( 199?, m4rfym__ak, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru8dy.p1", 0x0000, 0x010000, CRC(7d06cdcc) SHA1(d68f6ee59eb7689df30412288db4e9ee6c4bf178), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 YD)" )
+GAME_CUSTOM( 199?, m4rfym__al, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru8k.p1", 0x0000, 0x010000, CRC(42f6226e) SHA1(c4bac8efd9c17f96dd9d973e9f64c85ceeacb36b), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 K)" )
+GAME_CUSTOM( 199?, m4rfym__an, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru8y.p1", 0x0000, 0x010000, CRC(f1fc1e75) SHA1(f6f1008349505ee0c494fcdde27db2a15147b6cb), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU8 0.1 Y)" )
// "(C)1993 BARCREST" and "AP1 0.1"
-GAME_CUSTOM( 199?, m4rfym__h, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap1s.p1", 0x0000, 0x010000, CRC(7474509c) SHA1(c87e20f10806ec87fd33f97b43b8378d304f7d67), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1)" )
-GAME_CUSTOM( 199?, m4rfym__a, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap1ad.p1", 0x0000, 0x010000, CRC(d1adbf80) SHA1(08801f38b8ba5034fd83b53b6cfff864104525b4), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 AD)" )
-GAME_CUSTOM( 199?, m4rfym__b, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap1b.p1", 0x0000, 0x010000, CRC(4939f186) SHA1(389d46d603e75d3aaeeca990f4e1143c61f1565f), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 B)" )
-GAME_CUSTOM( 199?, m4rfym__c, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap1bd.p1", 0x0000, 0x010000, CRC(08a33b2c) SHA1(ef38e9cd0c9bc8393530e36060c803d1250c46a6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 BD)" )
-GAME_CUSTOM( 199?, m4rfym__d, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap1d.p1", 0x0000, 0x010000, CRC(edef44fe) SHA1(4907804c1bebc1f13aa3eb9dad0e9189de8e9601), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 D)" )
-GAME_CUSTOM( 199?, m4rfym__e, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap1dk.p1", 0x0000, 0x010000, CRC(873a402c) SHA1(1315a4ad18544ca5d65526ea0f620cac528e4cad), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 KD)" )
-GAME_CUSTOM( 199?, m4rfym__f, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap1dy.p1", 0x0000, 0x010000, CRC(e8436c00) SHA1(1c2f171e55c3519d63d6c4dd0d56df4e1daad6af), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 YD)" )
-GAME_CUSTOM( 199?, m4rfym__g, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap1k.p1", 0x0000, 0x010000, CRC(9afeb1e7) SHA1(5fc5d73a2c976d227a0598fb1dd802c6336415d1), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 K)" )
-GAME_CUSTOM( 199?, m4rfym__i, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap1y.p1", 0x0000, 0x010000, CRC(152bf7cb) SHA1(8dd8b621f9dac430c293b29ca03814fc21a148b9), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 Y)" )
+GAME_CUSTOM( 199?, m4rfym__h, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap1s.p1", 0x0000, 0x010000, CRC(7474509c) SHA1(c87e20f10806ec87fd33f97b43b8378d304f7d67), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1)" )
+GAME_CUSTOM( 199?, m4rfym__a, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap1ad.p1", 0x0000, 0x010000, CRC(d1adbf80) SHA1(08801f38b8ba5034fd83b53b6cfff864104525b4), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 AD)" )
+GAME_CUSTOM( 199?, m4rfym__b, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap1b.p1", 0x0000, 0x010000, CRC(4939f186) SHA1(389d46d603e75d3aaeeca990f4e1143c61f1565f), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 B)" )
+GAME_CUSTOM( 199?, m4rfym__c, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap1bd.p1", 0x0000, 0x010000, CRC(08a33b2c) SHA1(ef38e9cd0c9bc8393530e36060c803d1250c46a6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 BD)" )
+GAME_CUSTOM( 199?, m4rfym__d, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap1d.p1", 0x0000, 0x010000, CRC(edef44fe) SHA1(4907804c1bebc1f13aa3eb9dad0e9189de8e9601), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 D)" )
+GAME_CUSTOM( 199?, m4rfym__e, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap1dk.p1", 0x0000, 0x010000, CRC(873a402c) SHA1(1315a4ad18544ca5d65526ea0f620cac528e4cad), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 KD)" )
+GAME_CUSTOM( 199?, m4rfym__f, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap1dy.p1", 0x0000, 0x010000, CRC(e8436c00) SHA1(1c2f171e55c3519d63d6c4dd0d56df4e1daad6af), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 YD)" )
+GAME_CUSTOM( 199?, m4rfym__g, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap1k.p1", 0x0000, 0x010000, CRC(9afeb1e7) SHA1(5fc5d73a2c976d227a0598fb1dd802c6336415d1), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 K)" )
+GAME_CUSTOM( 199?, m4rfym__i, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap1y.p1", 0x0000, 0x010000, CRC(152bf7cb) SHA1(8dd8b621f9dac430c293b29ca03814fc21a148b9), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP1 0.1 Y)" )
// "(C)1993 BARCREST" and "AP5 0.2"
-GAME_CUSTOM( 199?, m4rfym__s, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502s.p1", 0x0000, 0x010000, CRC(8502a09a) SHA1(e635552b7f0c7b2e142d7f4d0f1fd93edac6132d), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2)" )
-GAME_CUSTOM( 199?, m4rfym__j, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502ad.p1", 0x0000, 0x010000, CRC(ab059e57) SHA1(45ba91989b0fd1a44628f696b78eae2a349e3e4a), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 AD)" )
-GAME_CUSTOM( 199?, m4rfym__k, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502b.p1", 0x0000, 0x010000, CRC(9ed27a6e) SHA1(2d655305a178e4ebe43f3d429dfec5a2ef6b9873), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 B)" )
-GAME_CUSTOM( 199?, m4rfym__l, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502bd.p1", 0x0000, 0x010000, CRC(48e83fcd) SHA1(3e2de0416722df5004f00baae2d3f6846ff596e5), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 BD)" )
-GAME_CUSTOM( 199?, m4rfym__m, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502d.p1", 0x0000, 0x010000, CRC(d0560301) SHA1(c35e97391c588f6567eeb253eb9de59bec9e1724), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 D)" )
-GAME_CUSTOM( 199?, m4rfym__n, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502dk.p1", 0x0000, 0x010000, CRC(82aa8d80) SHA1(e42d10537dcc5aaae59472681b215b0eb0821c25), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 KD)" )
-GAME_CUSTOM( 199?, m4rfym__o, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502dr.p1", 0x0000, 0x010000, CRC(1cfb3102) SHA1(b1d3a533de0ff93e15f7c039e75af0ef6c8eec57), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 RD)" )
-GAME_CUSTOM( 199?, m4rfym__p, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502dy.p1", 0x0000, 0x010000, CRC(819019ec) SHA1(36d2093a7a592850533d4206e0c9dd28cdc17568), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 YD)" )
-GAME_CUSTOM( 199?, m4rfym__q, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502k.p1", 0x0000, 0x010000, CRC(5064a894) SHA1(3e67358fe5ed9bfac05f621d7e72e5be7aae67df), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 K)" )
-GAME_CUSTOM( 199?, m4rfym__r, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502r.p1", 0x0000, 0x010000, CRC(2503c7da) SHA1(2478bab8b19ab68ff01be8fae2e86e47894b3d7c), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 R)" )
-GAME_CUSTOM( 199?, m4rfym__t, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ap502y.p1", 0x0000, 0x010000, CRC(b868ef34) SHA1(a773503afd2f59b71e0b9a7e202d3e7120ec88ff), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 Y)" )
+GAME_CUSTOM( 199?, m4rfym__s, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502s.p1", 0x0000, 0x010000, CRC(8502a09a) SHA1(e635552b7f0c7b2e142d7f4d0f1fd93edac6132d), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2)" )
+GAME_CUSTOM( 199?, m4rfym__j, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502ad.p1", 0x0000, 0x010000, CRC(ab059e57) SHA1(45ba91989b0fd1a44628f696b78eae2a349e3e4a), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 AD)" )
+GAME_CUSTOM( 199?, m4rfym__k, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502b.p1", 0x0000, 0x010000, CRC(9ed27a6e) SHA1(2d655305a178e4ebe43f3d429dfec5a2ef6b9873), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 B)" )
+GAME_CUSTOM( 199?, m4rfym__l, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502bd.p1", 0x0000, 0x010000, CRC(48e83fcd) SHA1(3e2de0416722df5004f00baae2d3f6846ff596e5), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 BD)" )
+GAME_CUSTOM( 199?, m4rfym__m, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502d.p1", 0x0000, 0x010000, CRC(d0560301) SHA1(c35e97391c588f6567eeb253eb9de59bec9e1724), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 D)" )
+GAME_CUSTOM( 199?, m4rfym__n, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502dk.p1", 0x0000, 0x010000, CRC(82aa8d80) SHA1(e42d10537dcc5aaae59472681b215b0eb0821c25), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 KD)" )
+GAME_CUSTOM( 199?, m4rfym__o, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502dr.p1", 0x0000, 0x010000, CRC(1cfb3102) SHA1(b1d3a533de0ff93e15f7c039e75af0ef6c8eec57), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 RD)" )
+GAME_CUSTOM( 199?, m4rfym__p, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502dy.p1", 0x0000, 0x010000, CRC(819019ec) SHA1(36d2093a7a592850533d4206e0c9dd28cdc17568), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 YD)" )
+GAME_CUSTOM( 199?, m4rfym__q, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502k.p1", 0x0000, 0x010000, CRC(5064a894) SHA1(3e67358fe5ed9bfac05f621d7e72e5be7aae67df), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 K)" )
+GAME_CUSTOM( 199?, m4rfym__r, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502r.p1", 0x0000, 0x010000, CRC(2503c7da) SHA1(2478bab8b19ab68ff01be8fae2e86e47894b3d7c), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 R)" )
+GAME_CUSTOM( 199?, m4rfym__t, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ap502y.p1", 0x0000, 0x010000, CRC(b868ef34) SHA1(a773503afd2f59b71e0b9a7e202d3e7120ec88ff), "Barcrest","Run For Your Money (Barcrest) (MPU4) (AP5 0.2 Y)" )
// "(C)1993 BARCREST" and "RU5 0.1"
-GAME_CUSTOM( 199?, m4rfym__af, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ru5s.p1", 0x0000, 0x010000, CRC(41795ea3) SHA1(6bfb6da6c0f7e762d628ce8a9dcdcbc3c0326ca6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1)" )
-GAME_CUSTOM( 199?, m4rfym__8, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ru5ad.p1", 0x0000, 0x010000, CRC(1c3e1f39) SHA1(a45cdaaa875e52cf5cd5adf986c98f4a22a14785), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 AD)" )
-GAME_CUSTOM( 199?, m4rfym__9, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ru5b.p1", 0x0000, 0x010000, CRC(41e44d37) SHA1(8eb409b96864fb0f7c3bf5c66a20a63c8cbc68af), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 B)" )
-GAME_CUSTOM( 199?, m4rfym__aa, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ru5bd.p1", 0x0000, 0x010000, CRC(8d4db415) SHA1(b023a13f89b7e5c2f72fd213179f723621871faf), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 BD)" )
-GAME_CUSTOM( 199?, m4rfym__ab, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ru5d.p1", 0x0000, 0x010000, CRC(fcb70a63) SHA1(df81c3c26c066c1326b20b9e0dda2863ee9635a6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 D)" )
-GAME_CUSTOM( 199?, m4rfym__ac, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ru5dk.p1", 0x0000, 0x010000, CRC(b4d83863) SHA1(02aebf94773d0a9454119b4ad663b6d8475fc8d3), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 KD)" )
-GAME_CUSTOM( 199?, m4rfym__ad, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ru5dy.p1", 0x0000, 0x010000, CRC(66375af5) SHA1(0a6d10357c163e5e27e7436f8190070e36e3ef90), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 YD)" )
-GAME_CUSTOM( 199?, m4rfym__ae, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ru5k.p1", 0x0000, 0x010000, CRC(7871c141) SHA1(e1e9d2972c87d2835b1e5a62502160cb4abb7736), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 K)" )
-GAME_CUSTOM( 199?, m4rfym__ag, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ru5y.p1", 0x0000, 0x010000, CRC(ee217541) SHA1(68474c2e430d95ded2856183b9a02be917d092d6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 Y)" )
+GAME_CUSTOM( 199?, m4rfym__af, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru5s.p1", 0x0000, 0x010000, CRC(41795ea3) SHA1(6bfb6da6c0f7e762d628ce8a9dcdcbc3c0326ca6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1)" )
+GAME_CUSTOM( 199?, m4rfym__8, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru5ad.p1", 0x0000, 0x010000, CRC(1c3e1f39) SHA1(a45cdaaa875e52cf5cd5adf986c98f4a22a14785), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 AD)" )
+GAME_CUSTOM( 199?, m4rfym__9, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru5b.p1", 0x0000, 0x010000, CRC(41e44d37) SHA1(8eb409b96864fb0f7c3bf5c66a20a63c8cbc68af), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 B)" )
+GAME_CUSTOM( 199?, m4rfym__aa, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru5bd.p1", 0x0000, 0x010000, CRC(8d4db415) SHA1(b023a13f89b7e5c2f72fd213179f723621871faf), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 BD)" )
+GAME_CUSTOM( 199?, m4rfym__ab, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru5d.p1", 0x0000, 0x010000, CRC(fcb70a63) SHA1(df81c3c26c066c1326b20b9e0dda2863ee9635a6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 D)" )
+GAME_CUSTOM( 199?, m4rfym__ac, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru5dk.p1", 0x0000, 0x010000, CRC(b4d83863) SHA1(02aebf94773d0a9454119b4ad663b6d8475fc8d3), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 KD)" )
+GAME_CUSTOM( 199?, m4rfym__ad, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru5dy.p1", 0x0000, 0x010000, CRC(66375af5) SHA1(0a6d10357c163e5e27e7436f8190070e36e3ef90), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 YD)" )
+GAME_CUSTOM( 199?, m4rfym__ae, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru5k.p1", 0x0000, 0x010000, CRC(7871c141) SHA1(e1e9d2972c87d2835b1e5a62502160cb4abb7736), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 K)" )
+GAME_CUSTOM( 199?, m4rfym__ag, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ru5y.p1", 0x0000, 0x010000, CRC(ee217541) SHA1(68474c2e430d95ded2856183b9a02be917d092d6), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RU5 0.1 Y)" )
// "(C)1993 BARCREST" and "RUT 0.1"
-GAME_CUSTOM( 199?, m4rfym__a0, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ruts.p1", 0x0000, 0x010000, CRC(efaf4e03) SHA1(da19d6e28a6727eb9afb69c23fd5685f0dbcc31a), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1)" )
-GAME_CUSTOM( 199?, m4rfym__at, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "rutad.p1", 0x0000, 0x010000, CRC(f27090c9) SHA1(28b7bb8046f67a3f8b90069de845b0b791b57078), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 AD)" )
-GAME_CUSTOM( 199?, m4rfym__au, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "rutb.p1", 0x0000, 0x010000, CRC(cb7a74bf) SHA1(24274c7e3b40642d698f5c3a9a10cfeb23faaf1b), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 B)" )
-GAME_CUSTOM( 199?, m4rfym__av, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "rutbd.p1", 0x0000, 0x010000, CRC(19aba8f2) SHA1(cb726130837149c25adb5d87718b72259cb63a63), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 BD)" )
-GAME_CUSTOM( 199?, m4rfym__aw, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "rutd.p1", 0x0000, 0x010000, CRC(16a872bd) SHA1(47ad5eb9b473805e2eb86e0d4d9ef4b2e6e3c926), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 D)" )
-GAME_CUSTOM( 199?, m4rfym__ax, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "rutdk.p1", 0x0000, 0x010000, CRC(a8259673) SHA1(443081395ea0c1b0a07e6cd4b17670b3e01bb50f), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 KD)" )
-GAME_CUSTOM( 199?, m4rfym__ay, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "rutdy.p1", 0x0000, 0x010000, CRC(6b799f68) SHA1(87482236f1116983e80a7f190710524d3809cd3a), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 YD)" )
-GAME_CUSTOM( 199?, m4rfym__az, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "rutk.p1", 0x0000, 0x010000, CRC(20962e5e) SHA1(0be43050d403750b67c796a007b503e132014f4c), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 K)" )
-GAME_CUSTOM( 199?, m4rfym__a1, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, init_m4default_lextender, "ruty.p1", 0x0000, 0x010000, CRC(abb708c5) SHA1(6fe3b52a0ba484576fc83ed35aefeda01d275aec), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 Y)" )
+GAME_CUSTOM( 199?, m4rfym__a0, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ruts.p1", 0x0000, 0x010000, CRC(efaf4e03) SHA1(da19d6e28a6727eb9afb69c23fd5685f0dbcc31a), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1)" )
+GAME_CUSTOM( 199?, m4rfym__at, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rutad.p1", 0x0000, 0x010000, CRC(f27090c9) SHA1(28b7bb8046f67a3f8b90069de845b0b791b57078), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 AD)" )
+GAME_CUSTOM( 199?, m4rfym__au, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rutb.p1", 0x0000, 0x010000, CRC(cb7a74bf) SHA1(24274c7e3b40642d698f5c3a9a10cfeb23faaf1b), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 B)" )
+GAME_CUSTOM( 199?, m4rfym__av, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rutbd.p1", 0x0000, 0x010000, CRC(19aba8f2) SHA1(cb726130837149c25adb5d87718b72259cb63a63), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 BD)" )
+GAME_CUSTOM( 199?, m4rfym__aw, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rutd.p1", 0x0000, 0x010000, CRC(16a872bd) SHA1(47ad5eb9b473805e2eb86e0d4d9ef4b2e6e3c926), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 D)" )
+GAME_CUSTOM( 199?, m4rfym__ax, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rutdk.p1", 0x0000, 0x010000, CRC(a8259673) SHA1(443081395ea0c1b0a07e6cd4b17670b3e01bb50f), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 KD)" )
+GAME_CUSTOM( 199?, m4rfym__ay, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rutdy.p1", 0x0000, 0x010000, CRC(6b799f68) SHA1(87482236f1116983e80a7f190710524d3809cd3a), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 YD)" )
+GAME_CUSTOM( 199?, m4rfym__az, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rutk.p1", 0x0000, 0x010000, CRC(20962e5e) SHA1(0be43050d403750b67c796a007b503e132014f4c), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 K)" )
+GAME_CUSTOM( 199?, m4rfym__a1, m4rfym, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "ruty.p1", 0x0000, 0x010000, CRC(abb708c5) SHA1(6fe3b52a0ba484576fc83ed35aefeda01d275aec), "Barcrest","Run For Your Money (Barcrest) (MPU4) (RUT 0.1 Y)" )
// bootlegs
// "(C)1996 B.W.B." and "RU4 1.1" (but hack?)
-GAME_CUSTOM( 199?, m4rfym__a4, m4rfym, mod4oki_bootleg_fixedret<0x2c>, mpu4, init_m4default_lextender, "rfym5.4", 0x0000, 0x010000, CRC(fe613006) SHA1(898b90893bfcb121575952c22c16570a27948bce), "hack","Run For Your Money (Barcrest) (MPU4) (RU4 1.1 K5, hack, set 1)" )
+GAME_CUSTOM( 199?, m4rfym__a4, m4rfym, mod4oki_bootleg_fixedret<0x2c>(R4, RT1, LPLB), mpu4, init_m4, "rfym5.4", 0x0000, 0x010000, CRC(fe613006) SHA1(898b90893bfcb121575952c22c16570a27948bce), "hack","Run For Your Money (Barcrest) (MPU4) (RU4 1.1 K5, hack, set 1)" )
// "1997 COCO" and "RU4 1.1" (hack)
-GAME_CUSTOM( 199?, m4rfym__7, m4rfym, mod4oki_bootleg_fixedret<0x28>, mpu4, init_m4default_lextender, "rfym55", 0x0000, 0x010000, CRC(b7d638d8) SHA1(6064ceffd94ff149d8bcb117fd823de52030ac64), "hack","Run For Your Money (Barcrest) (MPU4) (RU4 1.1 K5, hack, set 2)" )
+GAME_CUSTOM( 199?, m4rfym__7, m4rfym, mod4oki_bootleg_fixedret<0x28>(R4, RT1, LPLB), mpu4, init_m4, "rfym55", 0x0000, 0x010000, CRC(b7d638d8) SHA1(6064ceffd94ff149d8bcb117fd823de52030ac64), "hack","Run For Your Money (Barcrest) (MPU4) (RU4 1.1 K5, hack, set 2)" )
// different protection
// "(C)1996 B.W.B." and "RU8 1.2" (but hack?)
-GAME_CUSTOM( 199?, m4rfym__a5, m4rfym, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_lextender, "rfym5.8t", 0x0000, 0x010000, CRC(c600718a) SHA1(168fa558f1b5b91fb805d483f3f4351ac80f90ff), "hack","Run For Your Money (Barcrest) (MPU4) (RU8 1.2 K5, hack)" )
+GAME_CUSTOM( 199?, m4rfym__a5, m4rfym, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPLB), mpu4, init_m4, "rfym5.8t", 0x0000, 0x010000, CRC(c600718a) SHA1(168fa558f1b5b91fb805d483f3f4351ac80f90ff), "hack","Run For Your Money (Barcrest) (MPU4) (RU8 1.2 K5, hack)" )
// "(C)1996 B.W.B." and "RUC 1.3" (but hack?)
-GAME_CUSTOM( 199?, m4rfym__6, m4rfym, mod4oki_bootleg_fixedret<0x1c>, mpu4, init_m4default_lextender, "rfym510l", 0x0000, 0x010000, CRC(24af47f3) SHA1(3d1ec9b013f3f7b497cfb62b42fbb2fa914b24b6), "hack","Run For Your Money (Barcrest) (MPU4) (RUC 1.3 K5, hack, set 1)" )
-GAME_CUSTOM( 199?, m4rfym__a3, m4rfym, mod4oki_bootleg_fixedret<0x1c>, mpu4, init_m4default_lextender, "rfym5.10", 0x0000, 0x010000, CRC(c2ce2cc2) SHA1(d5633e01f669ee8772ed77befa90180c6aa0111c), "hack","Run For Your Money (Barcrest) (MPU4) (RUC 1.3 K5, hack, set 2)" )
+GAME_CUSTOM( 199?, m4rfym__6, m4rfym, mod4oki_bootleg_fixedret<0x1c>(R4, RT1, LPLB), mpu4, init_m4, "rfym510l", 0x0000, 0x010000, CRC(24af47f3) SHA1(3d1ec9b013f3f7b497cfb62b42fbb2fa914b24b6), "hack","Run For Your Money (Barcrest) (MPU4) (RUC 1.3 K5, hack, set 1)" )
+GAME_CUSTOM( 199?, m4rfym__a3, m4rfym, mod4oki_bootleg_fixedret<0x1c>(R4, RT1, LPLB), mpu4, init_m4, "rfym5.10", 0x0000, 0x010000, CRC(c2ce2cc2) SHA1(d5633e01f669ee8772ed77befa90180c6aa0111c), "hack","Run For Your Money (Barcrest) (MPU4) (RUC 1.3 K5, hack, set 2)" )
// "BILL AND BEN" and "V1 8 0.1" (hack)
-GAME_CUSTOM( 199?, m4rfym__4, m4rfym, mod4oki_bootleg_fixedret<0x1e>, mpu4, init_m4default_lextender, "rfym20", 0x0000, 0x010000, CRC(5e1d70e2) SHA1(2da1b8033a77d367c4b5c3d83a0e5def4e5e5d78), "hack","Run For Your Money (Barcrest) (MPU4) (V1 8 0.1 C, hack, set 1)" )
-GAME_CUSTOM( 199?, m4rfym__5, m4rfym, mod4oki_bootleg_fixedret<0x60>, mpu4, init_m4default_lextender, "rfym2010", 0x0000, 0x010000, CRC(ec440e7e) SHA1(21f8d4708b5d779dcefcc1e921a5efe17dd6f8c7), "hack","Run For Your Money (Barcrest) (MPU4) (V1 8 0.1 C, hack, set 2)" )
-GAME_CUSTOM( 199?, m4rfym__a2, m4rfym, mod4oki_bootleg_fixedret<0x1e>, mpu4, init_m4default_lextender, "rfym20.10", 0x0000, 0x010000, CRC(947d00d2) SHA1(2c99da689541de247e35ac39eadfe070ac3196b5), "hack","Run For Your Money (Barcrest) (MPU4) (V1 8 0.1 C, hack, set 3)" )
+GAME_CUSTOM( 199?, m4rfym__4, m4rfym, mod4oki_bootleg_fixedret<0x1e>(R4, RT1, LPLB), mpu4, init_m4, "rfym20", 0x0000, 0x010000, CRC(5e1d70e2) SHA1(2da1b8033a77d367c4b5c3d83a0e5def4e5e5d78), "hack","Run For Your Money (Barcrest) (MPU4) (V1 8 0.1 C, hack, set 1)" )
+GAME_CUSTOM( 199?, m4rfym__5, m4rfym, mod4oki_bootleg_fixedret<0x60>(R4, RT1, LPLB), mpu4, init_m4, "rfym2010", 0x0000, 0x010000, CRC(ec440e7e) SHA1(21f8d4708b5d779dcefcc1e921a5efe17dd6f8c7), "hack","Run For Your Money (Barcrest) (MPU4) (V1 8 0.1 C, hack, set 2)" )
+GAME_CUSTOM( 199?, m4rfym__a2, m4rfym, mod4oki_bootleg_fixedret<0x1e>(R4, RT1, LPLB), mpu4, init_m4, "rfym20.10", 0x0000, 0x010000, CRC(947d00d2) SHA1(2c99da689541de247e35ac39eadfe070ac3196b5), "hack","Run For Your Money (Barcrest) (MPU4) (V1 8 0.1 C, hack, set 3)" )
/*****************************************************************************************************************************************************************************
@@ -2567,7 +2542,7 @@ GAME_CUSTOM( 199?, m4rfym__a2, m4rfym, mod4oki_bootleg_fixedret<0x1e>, mpu4, i
ROM_LOAD( name, offset, length, hash ) \
M4PRZRFM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PRU 0.2"
GAME_CUSTOM( 199?, m4przrfm, 0, "prus.p1", 0x0000, 0x010000, CRC(d6c22253) SHA1(f9a25dd1c6f16849a6eb1febdc2da16080cc6838), "Barcrest","Prize Run For Your Money (Barcrest) (MPU4) (PRU 0.2)" )
@@ -2608,7 +2583,7 @@ GAME_CUSTOM( 199?, m4przrfm__o, m4przrfm, "rm8y.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4READY_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// all boot with tri98, hopper alarm, press Q to run open door
@@ -2715,7 +2690,7 @@ GAME_CUSTOM( 199?, m4ready__a1, m4ready, "rgt10dy.p1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4MAG7S_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::mag7s_characteriser_prot>, mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::mag7s_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(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)" )
@@ -2756,7 +2731,7 @@ GAME_CUSTOM( 199?, m4mag7s__n, m4mag7s, "ma715y.p1", 0x0000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4MAG7S_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(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)" )
@@ -2795,7 +2770,7 @@ GAME_CUSTOM( 199?, m4mag7s__au, m4mag7s, "mas13y.p1", 0x0000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4MAG7S_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::pfloot_characteriser_prot>, mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::pfloot_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(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)" )
@@ -2809,7 +2784,7 @@ GAME_CUSTOM( 199?, m4mag7s__ax, m4mag7s, "m7_sja_c.2r1", 0x0000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4MAG7S_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// different protection
@@ -2825,7 +2800,7 @@ GAME_CUSTOM( 199?, m4mag7s__2, m4mag7s, "mag715t", 0x0000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4MAG7S_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1, LPLB), mpu4jackpot8per, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// probably bad
@@ -2855,7 +2830,7 @@ GAME_CUSTOM( 199?, m4mag7s__av, m4mag7s, "mas10w.p1", 0x0000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4MAKMNT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "MAM 0.4"
GAME_CUSTOM( 199?, m4makmnt__k, m4makmnt, "mam04s.p1", 0x0000, 0x020000, CRC(08eac690) SHA1(e35793da266bd9dd8a018ba9773f368e36ce501d), "Barcrest","Make A Mint (Barcrest) (MPU4) (MAM 0.4)" )
@@ -2891,7 +2866,7 @@ GAME_CUSTOM( 199?, m4makmnt__am, m4makmnt, "mmg05y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4MAKMNT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "MAM 0.3"
GAME_CUSTOM( 199?, m4makmnt, 0, "mams.p1", 0x0000, 0x020000, CRC(af08e1e6) SHA1(c7e87d351f67592084d758ee53ba4d354bb28866), "Barcrest","Make A Mint (Barcrest) (MPU4) (MAM 0.3)" )
@@ -2930,7 +2905,7 @@ GAME_CUSTOM( 199?, m4makmnt__y, m4makmnt, "mint2010", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4MAKMNT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::mintalt_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::mintalt_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1997 B.W.B." and "MA_ 3.1"
GAME_CUSTOM( 199?, m4makmnt__an, m4makmnt, "ma_x6__5.3_1", 0x0000, 0x010000, CRC(2fe3c309) SHA1(5dba65b29ea5492a78866863629d89f9a8588959), "BWB","Make A Mint (Barcrest) (MPU4) (MA_ 3.1)" )
@@ -2949,7 +2924,7 @@ GAME_CUSTOM( 199?, m4makmnt__as, m4makmnt, "ma_x6a_c.3_1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4MAKMNT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// different protection
@@ -2982,83 +2957,83 @@ GAME_CUSTOM( 199?, m4makmnt__n, m4makmnt, "mam15t", 0x0000, 0x020000,
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "EP8 0.1"
-GAME_CUSTOM( 199?, m4vivaes, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8s.p1", 0x0000, 0x010000, CRC(51537f2d) SHA1(a837a525cd7da724f338c47e716be175c37070b0), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1)" )
-GAME_CUSTOM( 199?, m4vivaes__a, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8ad.p1", 0x0000, 0x010000, CRC(1591cc9b) SHA1(b7574b71955d7780f3f127670e458befad951383), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1AD)" )
-GAME_CUSTOM( 199?, m4vivaes__b, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8b.p1", 0x0000, 0x010000, CRC(33b085b3) SHA1(5fc22ee8ae2d597392c82b09a830893bb04e1014), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1B)" )
-GAME_CUSTOM( 199?, m4vivaes__c, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8bd.p1", 0x0000, 0x010000, CRC(d1eedaac) SHA1(9773fbb9b15dbbe313d76b0746698fbc12e26dd2), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1BD)" )
-GAME_CUSTOM( 199?, m4vivaes__d, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8c.p1", 0x0000, 0x010000, CRC(d2a8aaf5) SHA1(7aabe3e0522877700453068c30c74cbe2c058e9a), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1C)" )
-GAME_CUSTOM( 199?, m4vivaes__e, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8d.p1", 0x0000, 0x010000, CRC(06f87010) SHA1(636707d4077bee0ea2f221904fa0e187ea4a1e31), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1D)" )
-GAME_CUSTOM( 199?, m4vivaes__f, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8dk.p1", 0x0000, 0x010000, CRC(e87b56da) SHA1(f3de0ab0badc9bd14505822c63f110b9b2521d55), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1KD)" )
-GAME_CUSTOM( 199?, m4vivaes__g, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8dy.p1", 0x0000, 0x010000, CRC(d20ec7ed) SHA1(dffd4fcaf360b2b9f4b7241fe80bb6ee983b6d57), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1YD)" )
-GAME_CUSTOM( 199?, m4vivaes__h, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8k.p1", 0x0000, 0x010000, CRC(0a2509c5) SHA1(d0fd30953cbc36363a6d4941b4a0805f9663aebb), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1K)" )
-GAME_CUSTOM( 199?, m4vivaes__i, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "ep8y.p1", 0x0000, 0x010000, CRC(4cc454e4) SHA1(a08ec2a4a17600eba86300dcb6b150b1b5a7fc74), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1Y)" )
+GAME_CUSTOM( 199?, m4vivaes, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8s.p1", 0x0000, 0x010000, CRC(51537f2d) SHA1(a837a525cd7da724f338c47e716be175c37070b0), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1)" )
+GAME_CUSTOM( 199?, m4vivaes__a, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8ad.p1", 0x0000, 0x010000, CRC(1591cc9b) SHA1(b7574b71955d7780f3f127670e458befad951383), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1AD)" )
+GAME_CUSTOM( 199?, m4vivaes__b, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8b.p1", 0x0000, 0x010000, CRC(33b085b3) SHA1(5fc22ee8ae2d597392c82b09a830893bb04e1014), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1B)" )
+GAME_CUSTOM( 199?, m4vivaes__c, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8bd.p1", 0x0000, 0x010000, CRC(d1eedaac) SHA1(9773fbb9b15dbbe313d76b0746698fbc12e26dd2), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1BD)" )
+GAME_CUSTOM( 199?, m4vivaes__d, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8c.p1", 0x0000, 0x010000, CRC(d2a8aaf5) SHA1(7aabe3e0522877700453068c30c74cbe2c058e9a), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1C)" )
+GAME_CUSTOM( 199?, m4vivaes__e, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8d.p1", 0x0000, 0x010000, CRC(06f87010) SHA1(636707d4077bee0ea2f221904fa0e187ea4a1e31), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1D)" )
+GAME_CUSTOM( 199?, m4vivaes__f, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8dk.p1", 0x0000, 0x010000, CRC(e87b56da) SHA1(f3de0ab0badc9bd14505822c63f110b9b2521d55), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1KD)" )
+GAME_CUSTOM( 199?, m4vivaes__g, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8dy.p1", 0x0000, 0x010000, CRC(d20ec7ed) SHA1(dffd4fcaf360b2b9f4b7241fe80bb6ee983b6d57), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1YD)" )
+GAME_CUSTOM( 199?, m4vivaes__h, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8k.p1", 0x0000, 0x010000, CRC(0a2509c5) SHA1(d0fd30953cbc36363a6d4941b4a0805f9663aebb), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1K)" )
+GAME_CUSTOM( 199?, m4vivaes__i, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "ep8y.p1", 0x0000, 0x010000, CRC(4cc454e4) SHA1(a08ec2a4a17600eba86300dcb6b150b1b5a7fc74), "Barcrest","Viva Espana (Barcrest) (MPU4) (EP8 0.1Y)" )
// "(C)1993 BARCREST" and "ESP 0.3"
-GAME_CUSTOM( 199?, m4vivaes__k, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "espc.p1", 0x0000, 0x010000, CRC(9534d0d0) SHA1(8e4a1081821d472eb4d9aa01e38b6956a1388d28), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3C)" )
-GAME_CUSTOM( 199?, m4vivaes__l, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "espd.p1", 0x0000, 0x010000, CRC(012fbc14) SHA1(5e4a1cd7989f804ac52c7cbf46d7f9c1d7200336), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3D)" )
-GAME_CUSTOM( 199?, m4vivaes__m, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "espdy.p1", 0x0000, 0x010000, CRC(90efbb8e) SHA1(a7338c5d71719b86f524f35d7edd176f41383f15), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3YD)" )
-GAME_CUSTOM( 199?, m4vivaes__n, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "espk.p1", 0x0000, 0x010000, CRC(775a56d6) SHA1(b0e47b56315948a7162ae00c3f5197fbb7b81ec5), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3K)" )
-GAME_CUSTOM( 199?, m4vivaes__o, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "esps.p1", 0x0000, 0x010000, CRC(0c83b014) SHA1(e7cc513b66534b4fec89170d7b739c99a1ba3831), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3)" )
-GAME_CUSTOM( 199?, m4vivaes__p, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "espy.p1", 0x0000, 0x010000, CRC(020aa8bb) SHA1(497dae13fe9f9eba624db907e9f4a5bef1584a64), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3Y)" )
+GAME_CUSTOM( 199?, m4vivaes__k, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "espc.p1", 0x0000, 0x010000, CRC(9534d0d0) SHA1(8e4a1081821d472eb4d9aa01e38b6956a1388d28), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3C)" )
+GAME_CUSTOM( 199?, m4vivaes__l, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "espd.p1", 0x0000, 0x010000, CRC(012fbc14) SHA1(5e4a1cd7989f804ac52c7cbf46d7f9c1d7200336), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3D)" )
+GAME_CUSTOM( 199?, m4vivaes__m, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "espdy.p1", 0x0000, 0x010000, CRC(90efbb8e) SHA1(a7338c5d71719b86f524f35d7edd176f41383f15), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3YD)" )
+GAME_CUSTOM( 199?, m4vivaes__n, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "espk.p1", 0x0000, 0x010000, CRC(775a56d6) SHA1(b0e47b56315948a7162ae00c3f5197fbb7b81ec5), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3K)" )
+GAME_CUSTOM( 199?, m4vivaes__o, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "esps.p1", 0x0000, 0x010000, CRC(0c83b014) SHA1(e7cc513b66534b4fec89170d7b739c99a1ba3831), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3)" )
+GAME_CUSTOM( 199?, m4vivaes__p, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "espy.p1", 0x0000, 0x010000, CRC(020aa8bb) SHA1(497dae13fe9f9eba624db907e9f4a5bef1584a64), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.3Y)" )
// "(C)1993 BARCREST" and "ESP 0.2"
-GAME_CUSTOM( 199?, m4vivaes__aq, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, init_m4default, "vspa20st", 0x0000, 0x010000, CRC(267388eb) SHA1(2621724ebdd5031fc513692ff90989bf3b6115d1), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.2)" )
+GAME_CUSTOM( 199?, m4vivaes__aq, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, init_m4, "vspa20st", 0x0000, 0x010000, CRC(267388eb) SHA1(2621724ebdd5031fc513692ff90989bf3b6115d1), "Barcrest","Viva Espana (Barcrest) (MPU4) (ESP 0.2)" )
// "(C)1993 BARCREST" and "VE5 0.2"
-GAME_CUSTOM( 199?, m4vivaes__q, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "ve5ad.p1", 0x0000, 0x010000, CRC(c545d5f0) SHA1(6ad168d2c1f2da2fff85fe0e21a3191cba8f5838), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2AD)" )
-GAME_CUSTOM( 199?, m4vivaes__r, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "ve5b.p1", 0x0000, 0x010000, CRC(ed02fa94) SHA1(9980b2f78ea8f40715e77fd8fafe883739ac1165), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2B)" )
-GAME_CUSTOM( 199?, m4vivaes__s, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "ve5bd.p1", 0x0000, 0x010000, CRC(fce73b5c) SHA1(35e635ade9b4a7a992c568e317190d12576f78c9), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2BD)" )
-GAME_CUSTOM( 199?, m4vivaes__t, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "ve5d.p1", 0x0000, 0x010000, CRC(e739556d) SHA1(0816aa256cf8ac253ff37999595e981e90874d39), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2D)" )
-GAME_CUSTOM( 199?, m4vivaes__u, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "ve5dk.p1", 0x0000, 0x010000, CRC(64f174d0) SHA1(f51b28607715931a9d4c1c14fc71b4f8bb8e56fb), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2KD)" )
-GAME_CUSTOM( 199?, m4vivaes__v, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "ve5dy.p1", 0x0000, 0x010000, CRC(fe6339c6) SHA1(82f14d80e96b65eeea08f1029ffaebf2e505091e), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2YD)" )
-GAME_CUSTOM( 199?, m4vivaes__w, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "ve5k.p1", 0x0000, 0x010000, CRC(05428018) SHA1(b6884a1bfd2cf8268258d3d9a8d2c482ba92e5af), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2K)" )
-GAME_CUSTOM( 199?, m4vivaes__x, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "ve5s.p1", 0x0000, 0x010000, CRC(65df6cf1) SHA1(26eadbad30b93df6dfd37f984be2dec77f1d6442), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2)" )
-GAME_CUSTOM( 199?, m4vivaes__y, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "ve5y.p1", 0x0000, 0x010000, CRC(2fe06579) SHA1(9e11b371edd8fab78e9594ed864f8eb487112150), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2Y)" )
+GAME_CUSTOM( 199?, m4vivaes__q, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve5ad.p1", 0x0000, 0x010000, CRC(c545d5f0) SHA1(6ad168d2c1f2da2fff85fe0e21a3191cba8f5838), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2AD)" )
+GAME_CUSTOM( 199?, m4vivaes__r, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve5b.p1", 0x0000, 0x010000, CRC(ed02fa94) SHA1(9980b2f78ea8f40715e77fd8fafe883739ac1165), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2B)" )
+GAME_CUSTOM( 199?, m4vivaes__s, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve5bd.p1", 0x0000, 0x010000, CRC(fce73b5c) SHA1(35e635ade9b4a7a992c568e317190d12576f78c9), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2BD)" )
+GAME_CUSTOM( 199?, m4vivaes__t, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve5d.p1", 0x0000, 0x010000, CRC(e739556d) SHA1(0816aa256cf8ac253ff37999595e981e90874d39), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2D)" )
+GAME_CUSTOM( 199?, m4vivaes__u, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve5dk.p1", 0x0000, 0x010000, CRC(64f174d0) SHA1(f51b28607715931a9d4c1c14fc71b4f8bb8e56fb), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2KD)" )
+GAME_CUSTOM( 199?, m4vivaes__v, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve5dy.p1", 0x0000, 0x010000, CRC(fe6339c6) SHA1(82f14d80e96b65eeea08f1029ffaebf2e505091e), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2YD)" )
+GAME_CUSTOM( 199?, m4vivaes__w, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve5k.p1", 0x0000, 0x010000, CRC(05428018) SHA1(b6884a1bfd2cf8268258d3d9a8d2c482ba92e5af), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2K)" )
+GAME_CUSTOM( 199?, m4vivaes__x, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve5s.p1", 0x0000, 0x010000, CRC(65df6cf1) SHA1(26eadbad30b93df6dfd37f984be2dec77f1d6442), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2)" )
+GAME_CUSTOM( 199?, m4vivaes__y, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve5y.p1", 0x0000, 0x010000, CRC(2fe06579) SHA1(9e11b371edd8fab78e9594ed864f8eb487112150), "Barcrest","Viva Espana (Barcrest) (MPU4) (VE5 0.2Y)" )
// "(C)1993 BARCREST" and "VET 0.2"
-GAME_CUSTOM( 199?, m4vivaes__2, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "vetad.p1", 0x0000, 0x010000, CRC(fb9564dc) SHA1(9782d04eaec7d9c19138abf4f2dd3daa6c745c2a), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2AD)" )
-GAME_CUSTOM( 199?, m4vivaes__3, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "vetb.p1", 0x0000, 0x010000, CRC(2a8d7beb) SHA1(e503bdc388c2ab7551cc84dd9e45b85bd2420ef8), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2B)" )
-GAME_CUSTOM( 199?, m4vivaes__4, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "vetbd.p1", 0x0000, 0x010000, CRC(ebaffb7d) SHA1(b54a581927fc28ce14ab9efe6fe62e074831a42a), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2BD)" )
-GAME_CUSTOM( 199?, m4vivaes__5, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "vetd.p1", 0x0000, 0x010000, CRC(365dff45) SHA1(6ce756f1d6133e05c46e8e7b7ad554f9f512b722), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2D)" )
-GAME_CUSTOM( 199?, m4vivaes__6, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "vetdk.p1", 0x0000, 0x010000, CRC(5fb1ba90) SHA1(57a7f225d7bd8ed78c2ebf5d363e06b7694efc5f), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2KD)" )
-GAME_CUSTOM( 199?, m4vivaes__7, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "vetdy.p1", 0x0000, 0x010000, CRC(100261cb) SHA1(f834c5b848059673b9e9824854e6600dae6c4499), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2YD)" )
-GAME_CUSTOM( 199?, m4vivaes__8, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "vetk.p1", 0x0000, 0x010000, CRC(db48f34b) SHA1(013d84b27c4ea6d7b538011c22a3cd573f1d12cc), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2K)" )
-GAME_CUSTOM( 199?, m4vivaes__9, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "vets.p1", 0x0000, 0x010000, CRC(d7e00f9d) SHA1(df2d85ff9eae7adf662b7d8a9c6f874ec8c07183), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2)" )
-GAME_CUSTOM( 199?, m4vivaes__aa, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, init_m4default, "vety.p1", 0x0000, 0x010000, CRC(ba3b19c7) SHA1(6e9ee238ec6a272ef16ebfba0dc49bc076e741de), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2Y)" )
+GAME_CUSTOM( 199?, m4vivaes__2, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "vetad.p1", 0x0000, 0x010000, CRC(fb9564dc) SHA1(9782d04eaec7d9c19138abf4f2dd3daa6c745c2a), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2AD)" )
+GAME_CUSTOM( 199?, m4vivaes__3, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "vetb.p1", 0x0000, 0x010000, CRC(2a8d7beb) SHA1(e503bdc388c2ab7551cc84dd9e45b85bd2420ef8), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2B)" )
+GAME_CUSTOM( 199?, m4vivaes__4, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "vetbd.p1", 0x0000, 0x010000, CRC(ebaffb7d) SHA1(b54a581927fc28ce14ab9efe6fe62e074831a42a), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2BD)" )
+GAME_CUSTOM( 199?, m4vivaes__5, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "vetd.p1", 0x0000, 0x010000, CRC(365dff45) SHA1(6ce756f1d6133e05c46e8e7b7ad554f9f512b722), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2D)" )
+GAME_CUSTOM( 199?, m4vivaes__6, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "vetdk.p1", 0x0000, 0x010000, CRC(5fb1ba90) SHA1(57a7f225d7bd8ed78c2ebf5d363e06b7694efc5f), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2KD)" )
+GAME_CUSTOM( 199?, m4vivaes__7, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "vetdy.p1", 0x0000, 0x010000, CRC(100261cb) SHA1(f834c5b848059673b9e9824854e6600dae6c4499), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2YD)" )
+GAME_CUSTOM( 199?, m4vivaes__8, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "vetk.p1", 0x0000, 0x010000, CRC(db48f34b) SHA1(013d84b27c4ea6d7b538011c22a3cd573f1d12cc), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2K)" )
+GAME_CUSTOM( 199?, m4vivaes__9, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "vets.p1", 0x0000, 0x010000, CRC(d7e00f9d) SHA1(df2d85ff9eae7adf662b7d8a9c6f874ec8c07183), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2)" )
+GAME_CUSTOM( 199?, m4vivaes__aa, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, init_m4, "vety.p1", 0x0000, 0x010000, CRC(ba3b19c7) SHA1(6e9ee238ec6a272ef16ebfba0dc49bc076e741de), "Barcrest","Viva Espana (Barcrest) (MPU4) (VET 0.2Y)" )
// "(C)1995 B.W.B." and "VE105.0"
-GAME_CUSTOM( 199?, m4vivaes__ad, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::vivaalt_characteriser_prot>, mpu4, init_m4default, "ve_10a__.5_1", 0x0000, 0x010000, CRC(afdc0a2f) SHA1(ab8fec2c48db07c0aba31930893fe7211b306468), "BWB","Viva Espana (Barcrest) (MPU4) (VE105.0, set 4)" ) // boots
+GAME_CUSTOM( 199?, m4vivaes__ad, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::vivaalt_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve_10a__.5_1", 0x0000, 0x010000, CRC(afdc0a2f) SHA1(ab8fec2c48db07c0aba31930893fe7211b306468), "BWB","Viva Espana (Barcrest) (MPU4) (VE105.0, set 4)" ) // boots
// "(C)1995 B.W.B." and "VE5 4.0"
-GAME_CUSTOM( 199?, m4vivaes__ae, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::vivaalt_characteriser_prot>, mpu4, init_m4default, "vei05___.4_1", 0x0000, 0x010000, CRC(687a511b) SHA1(362e1d5557b6b7d551c9b9c5ef70d7944b44a3ce), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 4.0C, set 1)" ) // boots
+GAME_CUSTOM( 199?, m4vivaes__ae, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::vivaalt_characteriser_prot>(R4, RT1), mpu4, init_m4, "vei05___.4_1", 0x0000, 0x010000, CRC(687a511b) SHA1(362e1d5557b6b7d551c9b9c5ef70d7944b44a3ce), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 4.0C, set 1)" ) // boots
// "(C)1995 B.W.B." and "VE104.0"
-GAME_CUSTOM( 199?, m4vivaes__af, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::vivaalt_characteriser_prot>, mpu4, init_m4default, "vei10___.4_1", 0x0000, 0x010000, CRC(b9e2471f) SHA1(3fa561466332ed14e233d97bf9170ec08a019bd0), "BWB","Viva Espana (Barcrest) (MPU4) (VE104.0)" ) // boots
+GAME_CUSTOM( 199?, m4vivaes__af, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::vivaalt_characteriser_prot>(R4, RT1), mpu4, init_m4, "vei10___.4_1", 0x0000, 0x010000, CRC(b9e2471f) SHA1(3fa561466332ed14e233d97bf9170ec08a019bd0), "BWB","Viva Espana (Barcrest) (MPU4) (VE104.0)" ) // boots
// "(C)1995 B.W.B." and "VE5 3.0"
-GAME_CUSTOM( 199?, m4vivaes__ac, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "ve_05a__.3_1", 0x0000, 0x010000, CRC(92e0e121) SHA1(f32c8f1c8008794283bd32f9440e0a580f77b5b3), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 3.0)" ) // boots
+GAME_CUSTOM( 199?, m4vivaes__ac, m4vivaes, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "ve_05a__.3_1", 0x0000, 0x010000, CRC(92e0e121) SHA1(f32c8f1c8008794283bd32f9440e0a580f77b5b3), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 3.0)" ) // boots
// unprotected (possible hacks)
// "(C)1995 B.W.B." and "VE5 6.0"
-GAME_CUSTOM( 199?, m4vivaes__ai, m4vivaes, mod4oki, mpu4, init_m4default, "vesp510l", 0x0000, 0x010000, CRC(15c33530) SHA1(888625c383e52825c06cbf1e7022cd8b02bf549c), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 6.0C, set 1)" )
-GAME_CUSTOM( 199?, m4vivaes__aj, m4vivaes, mod4oki, mpu4, init_m4default, "vesp55", 0x0000, 0x010000, CRC(9cc395ef) SHA1(d62cb55664246e3fada3d971ee317eef51739018), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 6.0C, set 2)" )
-GAME_CUSTOM( 199?, m4vivaes__ag, m4vivaes, mod4oki, mpu4, init_m4default, "vesp5.8c", 0x0000, 0x010000, CRC(266d42cf) SHA1(b1e583652d6184db2a5f03cb7ae3f694627591c8), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 6.0C, set 3)" )
-GAME_CUSTOM( 199?, m4vivaes__ah, m4vivaes, mod4oki, mpu4, init_m4default, "vesp5.8t", 0x0000, 0x010000, CRC(bf8c9dfa) SHA1(69f28d3ce04efdb89db688dbc2341d19c27c5ba8), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 6.0)" ) // "(C)1995 B.W.B." and "VE5 5.0"
+GAME_CUSTOM( 199?, m4vivaes__ai, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp510l", 0x0000, 0x010000, CRC(15c33530) SHA1(888625c383e52825c06cbf1e7022cd8b02bf549c), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 6.0C, set 1)" )
+GAME_CUSTOM( 199?, m4vivaes__aj, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp55", 0x0000, 0x010000, CRC(9cc395ef) SHA1(d62cb55664246e3fada3d971ee317eef51739018), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 6.0C, set 2)" )
+GAME_CUSTOM( 199?, m4vivaes__ag, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp5.8c", 0x0000, 0x010000, CRC(266d42cf) SHA1(b1e583652d6184db2a5f03cb7ae3f694627591c8), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 6.0C, set 3)" )
+GAME_CUSTOM( 199?, m4vivaes__ah, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp5.8t", 0x0000, 0x010000, CRC(bf8c9dfa) SHA1(69f28d3ce04efdb89db688dbc2341d19c27c5ba8), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 6.0)" ) // "(C)1995 B.W.B." and "VE5 5.0"
// "(C)1995 B.W.B." and "VE5 5.0"
-GAME_CUSTOM( 199?, m4vivaes__z, m4vivaes, mod4oki, mpu4, init_m4default, "vesp05_11", 0x0000, 0x010000, CRC(32100a2e) SHA1(bb7324267708a0c0850fb77885df9868954d86cd), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 5.0, set 1)" )
-GAME_CUSTOM( 199?, m4vivaes__ao, m4vivaes, mod4oki, mpu4, init_m4default, "vesp_5.4", 0x0000, 0x010000, CRC(3b6762ce) SHA1(9dc53dce453a7b124ea2b65a590aff6c7d05831f), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 5.0, set 2)" )
-GAME_CUSTOM( 199?, m4vivaes__ap, m4vivaes, mod4oki, mpu4, init_m4default, "vesp_5.8", 0x0000, 0x010000, CRC(63abf642) SHA1(6b585147a771e4bd445b525aafc25293845f660b), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 5.0, set 3)" )
+GAME_CUSTOM( 199?, m4vivaes__z, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp05_11", 0x0000, 0x010000, CRC(32100a2e) SHA1(bb7324267708a0c0850fb77885df9868954d86cd), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 5.0, set 1)" )
+GAME_CUSTOM( 199?, m4vivaes__ao, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp_5.4", 0x0000, 0x010000, CRC(3b6762ce) SHA1(9dc53dce453a7b124ea2b65a590aff6c7d05831f), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 5.0, set 2)" )
+GAME_CUSTOM( 199?, m4vivaes__ap, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp_5.8", 0x0000, 0x010000, CRC(63abf642) SHA1(6b585147a771e4bd445b525aafc25293845f660b), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 5.0, set 3)" )
// "(C)1995 B.W.B." and "VE5 4.0"
-GAME_CUSTOM( 199?, m4vivaes__ak, m4vivaes, mod4oki, mpu4, init_m4default, "vesp58c", 0x0000, 0x010000, CRC(d8cc868d) SHA1(0b9fa8b61998badbd870827e32af4937548b583e), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 4.0C, set 2)" ) // boots
+GAME_CUSTOM( 199?, m4vivaes__ak, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp58c", 0x0000, 0x010000, CRC(d8cc868d) SHA1(0b9fa8b61998badbd870827e32af4937548b583e), "BWB","Viva Espana (Barcrest) (MPU4) (VE5 4.0C, set 2)" ) // boots
// "(C)1995 B.W.B." and "VE105.0"
-GAME_CUSTOM( 199?, m4vivaes__am, m4vivaes, mod4oki, mpu4, init_m4default, "vesp_10.8", 0x0000, 0x010000, CRC(8054766d) SHA1(8e7fd6f8cd74d2760e2923af32813ca93fbf98e6), "BWB","Viva Espana (Barcrest) (MPU4) (VE105.0, set 1)" )
-GAME_CUSTOM( 199?, m4vivaes__al, m4vivaes, mod4oki, mpu4, init_m4default, "vesp_10.4", 0x0000, 0x010000, CRC(95e95339) SHA1(59633b7c01da25237342bce7e989259bf723ba6f), "BWB","Viva Espana (Barcrest) (MPU4) (VE105.0, set 2)" )
-GAME_CUSTOM( 199?, m4vivaes__0, m4vivaes, mod4oki, mpu4, init_m4default, "vesp10_11", 0x0000, 0x010000, CRC(2a1dfcb2) SHA1(7d4ef072c41779554a2b8046688957585821e356), "BWB","Viva Espana (Barcrest) (MPU4) (VE105.0, set 3)" )
+GAME_CUSTOM( 199?, m4vivaes__am, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp_10.8", 0x0000, 0x010000, CRC(8054766d) SHA1(8e7fd6f8cd74d2760e2923af32813ca93fbf98e6), "BWB","Viva Espana (Barcrest) (MPU4) (VE105.0, set 1)" )
+GAME_CUSTOM( 199?, m4vivaes__al, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp_10.4", 0x0000, 0x010000, CRC(95e95339) SHA1(59633b7c01da25237342bce7e989259bf723ba6f), "BWB","Viva Espana (Barcrest) (MPU4) (VE105.0, set 2)" )
+GAME_CUSTOM( 199?, m4vivaes__0, m4vivaes, mod4oki(R4, RT1), mpu4, init_m4, "vesp10_11", 0x0000, 0x010000, CRC(2a1dfcb2) SHA1(7d4ef072c41779554a2b8046688957585821e356), "BWB","Viva Espana (Barcrest) (MPU4) (VE105.0, set 3)" )
// different protection
// no copyright string and "8V1 0.3"
-GAME_CUSTOM( 199?, m4vivaes__1, m4vivaes, mod4oki_bootleg_fixedret<0x1f>, mpu4, init_m4default, "vesp20_11", 0x0000, 0x010000, CRC(06233420) SHA1(06101dbe871617ae6ff098e070316ec98a15b704), "hack", "Viva Espana (Barcrest) (MPU4) (8V1 0.3, hack, set 1)" )
-GAME_CUSTOM( 199?, m4vivaes__an, m4vivaes, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default, "vesp_20_.8", 0x0000, 0x010000, CRC(35f90f05) SHA1(0013ff32c809603efdad782306140bd7086be965), "hack", "Viva Espana (Barcrest) (MPU4) (8V1 0.3, hack, set 2)" )
+GAME_CUSTOM( 199?, m4vivaes__1, m4vivaes, mod4oki_bootleg_fixedret<0x1f>(R4, RT1), mpu4, init_m4, "vesp20_11", 0x0000, 0x010000, CRC(06233420) SHA1(06101dbe871617ae6ff098e070316ec98a15b704), "hack", "Viva Espana (Barcrest) (MPU4) (8V1 0.3, hack, set 1)" )
+GAME_CUSTOM( 199?, m4vivaes__an, m4vivaes, mod4oki_bootleg_fixedret<0x2f>(R4, RT1), mpu4, init_m4, "vesp_20_.8", 0x0000, 0x010000, CRC(35f90f05) SHA1(0013ff32c809603efdad782306140bd7086be965), "hack", "Viva Espana (Barcrest) (MPU4) (8V1 0.3, hack, set 2)" )
// "(C)1997 CUCKOO" and "VE5 6.0" (hack)
-GAME_CUSTOM( 199?, m4vivaes__j, m4vivaes, mod4oki_bootleg_fixedret<0xb6>, mpu4, init_m4default, "5p5vivaespana6-0.bin", 0x0000, 0x010000, CRC(adf02a7b) SHA1(2c61e175b920a67098503eb4d80b07b828c9f91d), "hack", "Viva Espana (Barcrest) (MPU4) (VE5 6.0, hack)" )
+GAME_CUSTOM( 199?, m4vivaes__j, m4vivaes, mod4oki_bootleg_fixedret<0xb6>(R4, RT1), mpu4, init_m4, "5p5vivaespana6-0.bin", 0x0000, 0x010000, CRC(adf02a7b) SHA1(2c61e175b920a67098503eb4d80b07b828c9f91d), "hack", "Viva Espana (Barcrest) (MPU4) (VE5 6.0, hack)" )
@@ -3079,7 +3054,7 @@ GAME_CUSTOM( 199?, m4vivaes__j, m4vivaes, mod4oki_bootleg_fixedret<0xb6>, mpu
ROM_LOAD( name, offset, length, hash ) \
M4VIVESS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "SE8 0.1"
GAME_CUSTOM( 199?, m4vivess, 0, "se8s.p1", 0x0000, 0x010000, CRC(d5c261de) SHA1(5f70944ffe03109ad16f162370fd3653d131034d), "Barcrest","Viva Espana Showcase (Barcrest) (MPU4) (SE8 0.1)" )
@@ -3119,7 +3094,7 @@ GAME_CUSTOM( 199?, m4vivess__p, m4vivess, "sesy.p1", 0x0000, 0x010000, CRC
ROM_LOAD( name, offset, length, hash ) \
M4PRZVE_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PES 0.4"
GAME_CUSTOM( 199?, m4przve, 0, "pess.p1", 0x0000, 0x010000, CRC(d8e79833) SHA1(f68fd1bd057a353832c7de3e2818906ab2b844b7), "Barcrest","Prize Viva Espana (Barcrest) (MPU4) (PES 0.4)" )
@@ -3161,7 +3136,7 @@ GAME_CUSTOM( 199?, m4przve__k, m4przve, "pe8y.p1", 0x0000, 0x010000, CRC(c3
ROM_LOAD( name, offset, length, hash ) \
M4POTBLK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PBS 0.6"
GAME_CUSTOM( 199?, m4potblk__ar, m4potblk, "pbs06s.p1", 0x0000, 0x020000, CRC(d2b42b29) SHA1(a077605b1f9f3082a03882b4f5b360a530a97135), "Barcrest","Pot Black (Barcrest) (MPU4) (PBS 0.6)" )
@@ -3201,7 +3176,7 @@ GAME_CUSTOM( 199?, m4potblk__1, m4potblk, "pbg16y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4POTBLK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PBG 1.4"
GAME_CUSTOM( 199?, m4potblk__c, m4potblk, "pbg14s.p1", 0x0000, 0x020000, CRC(c9316c92) SHA1(d9248069c4702d4ce780ab82bdb783ba5aea034b), "Barcrest","Pot Black (Barcrest) (MPU4) (PBG 1.4)" )
@@ -3241,7 +3216,7 @@ GAME_CUSTOM( 199?, m4potblk__ae, m4potblk, "pbs04y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4POTBLK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// different protection
@@ -3259,7 +3234,7 @@ GAME_CUSTOM( 199?, m4potblk__b, m4potblk, "pb15t", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4POTBLK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fortune_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fortune_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1997 B.W.B." and "PO 1.2"
@@ -3292,7 +3267,7 @@ GAME_CUSTOM( 199?, m4potblk__ax, m4potblk, "po_x6a_t.1_1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4PLACBT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PYB 0.6"
GAME_CUSTOM( 199?, m4placbt__k, m4placbt, "pyb06s.p1", 0x0000, 0x020000, CRC(acd9d628) SHA1(93d8f0ffa3b9ebdd9fef39b2bc49bb85b2fac00f), "Barcrest","Place Your Bets (Barcrest) (MPU4) (PYB 0.6)" )
@@ -3332,7 +3307,7 @@ GAME_CUSTOM( 199?, m4placbt__x, m4placbt, "pyb10h", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4PLACBT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PYB 0.7"
GAME_CUSTOM( 199?, m4placbt, 0, "pyb07s.p1", 0x0000, 0x020000, CRC(ad02705a) SHA1(027bcbbd828e4fd23831af9554d582857e6784e1), "Barcrest","Place Your Bets (Barcrest) (MPU4) (PYB 0.7)" )
@@ -3368,7 +3343,7 @@ GAME_CUSTOM( 199?, m4placbt__ao, m4placbt, "pyh06y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4PLACBT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// different protection
@@ -3395,7 +3370,7 @@ GAME_CUSTOM( 199?, m4placbt__z, m4placbt, "pyb15t", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4C9_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "CT3 0.2"
GAME_CUSTOM( 199?, m4c9__a, m4c9, "c915.hex", 0x0000, 0x010000, CRC(dabfa3f3) SHA1(f507c78e61cba74e9b776bebaf0cc4fa40b6de95), "Barcrest","Cloud Nine (Barcrest) (MPU4) (CT3 0.2)" )
@@ -3444,7 +3419,7 @@ GAME_CUSTOM( 199?, m4c9__ax, m4c9, "ct502y.p1", 0x0000, 0x010000, CRC(f4c
ROM_LOAD( name, offset, length, hash ) \
M4C9_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "C92 1.1"
GAME_CUSTOM( 199?, m4c9, 0, "c9211.p1", 0x0000, 0x010000, CRC(44e5cc87) SHA1(36fca9493d36ee6988d02da1b4c575278c43748c), "Barcrest","Cloud Nine (Barcrest) (MPU4) (C92 1.1)" )
@@ -3501,85 +3476,85 @@ GAME_CUSTOM( 199?, m4c9__m, m4c9, "c9510y.p1", 0x0000, 0x010000, CRC(3a9
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "F1U 0.1"
-GAME_CUSTOM( 199?, m4tutfrt__u, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01s.p1", 0x0000, 0x010000, CRC(d69668d2) SHA1(86ea656a3a4d4e6701c70b5e730ae8402cd70342), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1)" )
-GAME_CUSTOM( 199?, m4tutfrt__k, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01ad.p1", 0x0000, 0x010000, CRC(7573d8cf) SHA1(fe1553ca8f588554fdd495dc2f048e50e00590bb), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 AD)" )
-GAME_CUSTOM( 199?, m4tutfrt__l, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01b.p1", 0x0000, 0x010000, CRC(158d1a3a) SHA1(da80334e9982f778a908a6fe89a593863e7c763e), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 B)" )
-GAME_CUSTOM( 199?, m4tutfrt__m, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01bd.p1", 0x0000, 0x010000, CRC(9844e568) SHA1(a580176338cdeed5fb4d1744b537bde1f499293e), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 BD)" )
-GAME_CUSTOM( 199?, m4tutfrt__n, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01c.p1", 0x0000, 0x010000, CRC(4709bd66) SHA1(c15f64767315ea0434a57b9e494a9e8090f1e05a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 C)" )
-GAME_CUSTOM( 199?, m4tutfrt__o, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01d.p1", 0x0000, 0x010000, CRC(3a3c6745) SHA1(f270bccb4bdedb5cfaf0130da6e480dc31889682), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 D)" )
-GAME_CUSTOM( 199?, m4tutfrt__p, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01dk.p1", 0x0000, 0x010000, CRC(4fa79f23) SHA1(ce9a0815d96a94d564edf5a775af94ea10070ff5), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 KD)" )
-GAME_CUSTOM( 199?, m4tutfrt__q, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01dr.p1", 0x0000, 0x010000, CRC(6fcc4d76) SHA1(27d8fdd5965ba565cb5b6113b7cba5e820650419), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 RD)" )
-GAME_CUSTOM( 199?, m4tutfrt__r, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01dy.p1", 0x0000, 0x010000, CRC(cdd43fc2) SHA1(6f4da20de3040675592b4338a1d72654800c20eb), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 YD)" )
-GAME_CUSTOM( 199?, m4tutfrt__s, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01k.p1", 0x0000, 0x010000, CRC(7e9c3110) SHA1(56ab6e5362ce8795c65d0cf11742e3ddb6d8b8a3), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 K)" )
-GAME_CUSTOM( 199?, m4tutfrt__t, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01r.p1", 0x0000, 0x010000, CRC(0e6b2132) SHA1(8757713677e2eb0400c69d3cdde6506662e0ef0b), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 R)" )
-GAME_CUSTOM( 199?, m4tutfrt__v, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f1u01y.p1", 0x0000, 0x010000, CRC(33e7d5fd) SHA1(96f53fbb228e98ce3a848b2c72bdb8876c9de160), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 Y)" )
+GAME_CUSTOM( 199?, m4tutfrt__u, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01s.p1", 0x0000, 0x010000, CRC(d69668d2) SHA1(86ea656a3a4d4e6701c70b5e730ae8402cd70342), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1)" )
+GAME_CUSTOM( 199?, m4tutfrt__k, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01ad.p1", 0x0000, 0x010000, CRC(7573d8cf) SHA1(fe1553ca8f588554fdd495dc2f048e50e00590bb), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 AD)" )
+GAME_CUSTOM( 199?, m4tutfrt__l, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01b.p1", 0x0000, 0x010000, CRC(158d1a3a) SHA1(da80334e9982f778a908a6fe89a593863e7c763e), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 B)" )
+GAME_CUSTOM( 199?, m4tutfrt__m, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01bd.p1", 0x0000, 0x010000, CRC(9844e568) SHA1(a580176338cdeed5fb4d1744b537bde1f499293e), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 BD)" )
+GAME_CUSTOM( 199?, m4tutfrt__n, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01c.p1", 0x0000, 0x010000, CRC(4709bd66) SHA1(c15f64767315ea0434a57b9e494a9e8090f1e05a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 C)" )
+GAME_CUSTOM( 199?, m4tutfrt__o, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01d.p1", 0x0000, 0x010000, CRC(3a3c6745) SHA1(f270bccb4bdedb5cfaf0130da6e480dc31889682), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 D)" )
+GAME_CUSTOM( 199?, m4tutfrt__p, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01dk.p1", 0x0000, 0x010000, CRC(4fa79f23) SHA1(ce9a0815d96a94d564edf5a775af94ea10070ff5), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 KD)" )
+GAME_CUSTOM( 199?, m4tutfrt__q, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01dr.p1", 0x0000, 0x010000, CRC(6fcc4d76) SHA1(27d8fdd5965ba565cb5b6113b7cba5e820650419), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 RD)" )
+GAME_CUSTOM( 199?, m4tutfrt__r, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01dy.p1", 0x0000, 0x010000, CRC(cdd43fc2) SHA1(6f4da20de3040675592b4338a1d72654800c20eb), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 YD)" )
+GAME_CUSTOM( 199?, m4tutfrt__s, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01k.p1", 0x0000, 0x010000, CRC(7e9c3110) SHA1(56ab6e5362ce8795c65d0cf11742e3ddb6d8b8a3), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 K)" )
+GAME_CUSTOM( 199?, m4tutfrt__t, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01r.p1", 0x0000, 0x010000, CRC(0e6b2132) SHA1(8757713677e2eb0400c69d3cdde6506662e0ef0b), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 R)" )
+GAME_CUSTOM( 199?, m4tutfrt__v, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f1u01y.p1", 0x0000, 0x010000, CRC(33e7d5fd) SHA1(96f53fbb228e98ce3a848b2c72bdb8876c9de160), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F1U 0.1 Y)" )
// "(C)1991 BARCREST" and "F2U 0.1" these were marked 'Tutti Fruity Classic' but appear to be revisions of these sets
-GAME_CUSTOM( 199?, m4tutcl, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01s.p1", 0x0000, 0x010000, CRC(25b68f22) SHA1(7f484dbc841e1e87d9f5e322cf497b6b68e4a096), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1)" )
-GAME_CUSTOM( 199?, m4tutcl__j, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01ad.p1", 0x0000, 0x010000, CRC(65537552) SHA1(b0a761dcc6e0a9f01cfb934b570356ca67fdd099), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 AD)" )
-GAME_CUSTOM( 199?, m4tutcl__a, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01b.p1", 0x0000, 0x010000, CRC(2cae37df) SHA1(5aed985476b7b747a99a4046b846ee4a359776af), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 B)" )
-GAME_CUSTOM( 199?, m4tutcl__b, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01bd.p1", 0x0000, 0x010000, CRC(0dd91ccf) SHA1(bcdfc39025d02e7a51f69757238dfa44fe9d3655), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 BD)" )
-GAME_CUSTOM( 199?, m4tutcl__c, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01c.p1", 0x0000, 0x010000, CRC(6b6d9bb9) SHA1(140e9cbb8b484116e5fb9a7670d41fb0bcb37ec0), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 C)" )
-GAME_CUSTOM( 199?, m4tutcl__d, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01d.p1", 0x0000, 0x010000, CRC(b477a20d) SHA1(51daf5e61a2ebcb3cb9884421b9e8f32df51ec07), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 D)" )
-GAME_CUSTOM( 199?, m4tutcl__e, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01dk.p1", 0x0000, 0x010000, CRC(ccd14dd3) SHA1(c93ff69e0534e8190c10e0c819ed439d4e61a472), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 KD)" )
-GAME_CUSTOM( 199?, m4tutcl__f, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01dr.p1", 0x0000, 0x010000, CRC(d4918506) SHA1(2081ead45ff744cafcf3c4164c86acf609e54632), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 RD)" )
-GAME_CUSTOM( 199?, m4tutcl__g, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01dy.p1", 0x0000, 0x010000, CRC(24dd0a73) SHA1(a75129e414dd8cbe5f6f44e39b1d3dc3d7dfafb2), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 YD)" )
-GAME_CUSTOM( 199?, m4tutcl__h, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01k.p1", 0x0000, 0x010000, CRC(b9cec403) SHA1(90a1f49202ea9b79e2ab097cf95cf94088c52926), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 K)" )
-GAME_CUSTOM( 199?, m4tutcl__i, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01r.p1", 0x0000, 0x010000, CRC(471e39d7) SHA1(874db6f2d04ed0b2c6756efba5fa1140d2fbfc58), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 R)" )
-GAME_CUSTOM( 199?, m4tutcl__k, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f2u01y.p1", 0x0000, 0x010000, CRC(5a583a6f) SHA1(0421d079de12a7379c13832108e8608c9a01f41d), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 Y)" )
+GAME_CUSTOM( 199?, m4tutcl, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01s.p1", 0x0000, 0x010000, CRC(25b68f22) SHA1(7f484dbc841e1e87d9f5e322cf497b6b68e4a096), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1)" )
+GAME_CUSTOM( 199?, m4tutcl__j, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01ad.p1", 0x0000, 0x010000, CRC(65537552) SHA1(b0a761dcc6e0a9f01cfb934b570356ca67fdd099), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 AD)" )
+GAME_CUSTOM( 199?, m4tutcl__a, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01b.p1", 0x0000, 0x010000, CRC(2cae37df) SHA1(5aed985476b7b747a99a4046b846ee4a359776af), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 B)" )
+GAME_CUSTOM( 199?, m4tutcl__b, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01bd.p1", 0x0000, 0x010000, CRC(0dd91ccf) SHA1(bcdfc39025d02e7a51f69757238dfa44fe9d3655), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 BD)" )
+GAME_CUSTOM( 199?, m4tutcl__c, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01c.p1", 0x0000, 0x010000, CRC(6b6d9bb9) SHA1(140e9cbb8b484116e5fb9a7670d41fb0bcb37ec0), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 C)" )
+GAME_CUSTOM( 199?, m4tutcl__d, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01d.p1", 0x0000, 0x010000, CRC(b477a20d) SHA1(51daf5e61a2ebcb3cb9884421b9e8f32df51ec07), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 D)" )
+GAME_CUSTOM( 199?, m4tutcl__e, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01dk.p1", 0x0000, 0x010000, CRC(ccd14dd3) SHA1(c93ff69e0534e8190c10e0c819ed439d4e61a472), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 KD)" )
+GAME_CUSTOM( 199?, m4tutcl__f, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01dr.p1", 0x0000, 0x010000, CRC(d4918506) SHA1(2081ead45ff744cafcf3c4164c86acf609e54632), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 RD)" )
+GAME_CUSTOM( 199?, m4tutcl__g, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01dy.p1", 0x0000, 0x010000, CRC(24dd0a73) SHA1(a75129e414dd8cbe5f6f44e39b1d3dc3d7dfafb2), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 YD)" )
+GAME_CUSTOM( 199?, m4tutcl__h, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01k.p1", 0x0000, 0x010000, CRC(b9cec403) SHA1(90a1f49202ea9b79e2ab097cf95cf94088c52926), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 K)" )
+GAME_CUSTOM( 199?, m4tutcl__i, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01r.p1", 0x0000, 0x010000, CRC(471e39d7) SHA1(874db6f2d04ed0b2c6756efba5fa1140d2fbfc58), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 R)" )
+GAME_CUSTOM( 199?, m4tutcl__k, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f2u01y.p1", 0x0000, 0x010000, CRC(5a583a6f) SHA1(0421d079de12a7379c13832108e8608c9a01f41d), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 Y)" )
// "(C)1991 BARCREST" and "F3U 0.1m4tutfrt
-GAME_CUSTOM( 199?, m4tutfrt__6, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01s.p1", 0x0000, 0x010000, CRC(dce2e5be) SHA1(3c218cdb939d5b7cc650c820737ae3ac653435ce), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1)" )
-GAME_CUSTOM( 199?, m4tutfrt__w, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01ad.p1", 0x0000, 0x010000, CRC(acb1bfb3) SHA1(8aa22c45d98ecec324fa031b46689496f9a2842c), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 AD)" )
-GAME_CUSTOM( 199?, m4tutfrt__x, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01b.p1", 0x0000, 0x010000, CRC(a0d14e25) SHA1(16f2444334608702748a3b0b2556ac1a7760615a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 B)" )
-GAME_CUSTOM( 199?, m4tutfrt__y, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01bd.p1", 0x0000, 0x010000, CRC(9aadd2f9) SHA1(4dbff4f6fd4d02778733eb846a354177f0e204a5), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 BD)" )
-GAME_CUSTOM( 199?, m4tutfrt__z, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01c.p1", 0x0000, 0x010000, CRC(a3ad34d5) SHA1(e8c435f80b4fd3f7af16f341e107a85a33f1fe1c), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 C)" )
-GAME_CUSTOM( 199?, m4tutfrt__0, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01d.p1", 0x0000, 0x010000, CRC(c6790301) SHA1(fb0b619e75e1227f4d293b613e80d8d653517eec), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 D)" )
-GAME_CUSTOM( 199?, m4tutfrt__1, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01dk.p1", 0x0000, 0x010000, CRC(ee0554fe) SHA1(12cd26d6205fec35590fd23682c578f06466eb01), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 KD)" )
-GAME_CUSTOM( 199?, m4tutfrt__2, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01dr.p1", 0x0000, 0x010000, CRC(32d761eb) SHA1(aa1098629d2a1c98c606a71a7cf0ae97f381aebe), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 RD)" )
-GAME_CUSTOM( 199?, m4tutfrt__3, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01dy.p1", 0x0000, 0x010000, CRC(3ad66969) SHA1(4c79edc52095cfa1fae8215caaaaf434cd38199d), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 YD)" )
-GAME_CUSTOM( 199?, m4tutfrt__4, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01k.p1", 0x0000, 0x010000, CRC(2b6c0f0f) SHA1(64e50adc6656225c9cdaaee64ae59cafcd1623ee), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 K)" )
-GAME_CUSTOM( 199?, m4tutfrt__5, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01r.p1", 0x0000, 0x010000, CRC(93cb1bfb) SHA1(e29439caed4a2f4512e50ff158427b61b5a9c4a9), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 R)" )
-GAME_CUSTOM( 199?, m4tutfrt__7, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "f3u01y.p1", 0x0000, 0x010000, CRC(9aae0ca2) SHA1(83192225d886848ee0320973fb9dbd85cf9045b8), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 Y)" )
+GAME_CUSTOM( 199?, m4tutfrt__6, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01s.p1", 0x0000, 0x010000, CRC(dce2e5be) SHA1(3c218cdb939d5b7cc650c820737ae3ac653435ce), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1)" )
+GAME_CUSTOM( 199?, m4tutfrt__w, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01ad.p1", 0x0000, 0x010000, CRC(acb1bfb3) SHA1(8aa22c45d98ecec324fa031b46689496f9a2842c), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 AD)" )
+GAME_CUSTOM( 199?, m4tutfrt__x, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01b.p1", 0x0000, 0x010000, CRC(a0d14e25) SHA1(16f2444334608702748a3b0b2556ac1a7760615a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 B)" )
+GAME_CUSTOM( 199?, m4tutfrt__y, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01bd.p1", 0x0000, 0x010000, CRC(9aadd2f9) SHA1(4dbff4f6fd4d02778733eb846a354177f0e204a5), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 BD)" )
+GAME_CUSTOM( 199?, m4tutfrt__z, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01c.p1", 0x0000, 0x010000, CRC(a3ad34d5) SHA1(e8c435f80b4fd3f7af16f341e107a85a33f1fe1c), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 C)" )
+GAME_CUSTOM( 199?, m4tutfrt__0, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01d.p1", 0x0000, 0x010000, CRC(c6790301) SHA1(fb0b619e75e1227f4d293b613e80d8d653517eec), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 D)" )
+GAME_CUSTOM( 199?, m4tutfrt__1, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01dk.p1", 0x0000, 0x010000, CRC(ee0554fe) SHA1(12cd26d6205fec35590fd23682c578f06466eb01), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 KD)" )
+GAME_CUSTOM( 199?, m4tutfrt__2, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01dr.p1", 0x0000, 0x010000, CRC(32d761eb) SHA1(aa1098629d2a1c98c606a71a7cf0ae97f381aebe), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 RD)" )
+GAME_CUSTOM( 199?, m4tutfrt__3, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01dy.p1", 0x0000, 0x010000, CRC(3ad66969) SHA1(4c79edc52095cfa1fae8215caaaaf434cd38199d), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 YD)" )
+GAME_CUSTOM( 199?, m4tutfrt__4, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01k.p1", 0x0000, 0x010000, CRC(2b6c0f0f) SHA1(64e50adc6656225c9cdaaee64ae59cafcd1623ee), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 K)" )
+GAME_CUSTOM( 199?, m4tutfrt__5, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01r.p1", 0x0000, 0x010000, CRC(93cb1bfb) SHA1(e29439caed4a2f4512e50ff158427b61b5a9c4a9), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 R)" )
+GAME_CUSTOM( 199?, m4tutfrt__7, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "f3u01y.p1", 0x0000, 0x010000, CRC(9aae0ca2) SHA1(83192225d886848ee0320973fb9dbd85cf9045b8), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F3U 0.1 Y)" )
// expects chr sequence starting 00 30 10 44 70 10 44 30 54 14 40 74 10 40 (cosmiccasino) (same as some 10 X 10 and Cosmic Casio sets?)
// "(C)1991 BARCREST" and "TF4 0.4" (TFT 0.4 on startup)
-GAME_CUSTOM( 199?, m4tutfrt, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04s.p1", 0x0000, 0x010000, CRC(c20c3589) SHA1(55d1bc5d5f4ae14acafb36bd640faaf4ffccc6eb), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__ai, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04ad.p1", 0x0000, 0x010000, CRC(2994aa14) SHA1(af0e618f24cdedd14e3a347701313360d9fc73d1), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 AD / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__aj, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04b.p1", 0x0000, 0x010000, CRC(e95eab06) SHA1(70e85e38493ac1fd30a79582bab45af5227d835a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 B / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__ak, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04bd.p1", 0x0000, 0x010000, CRC(060d3572) SHA1(e78b6248d3aef6cd08f4b30e0b00bd4cf254e630), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 BD / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__al, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04c.p1", 0x0000, 0x010000, CRC(3499fe77) SHA1(3f82ca6d856bddf82581790c46abf725963335a0), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 C / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__am, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04d.p1", 0x0000, 0x010000, CRC(10626059) SHA1(c7b2fd2b65946fe82950ff506a56bd08b7c2ef71), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 D / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__an, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04dk.p1", 0x0000, 0x010000, CRC(40700fe2) SHA1(1f121adae094c2d11a66b5e8ae4b026e85fc7f73), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 KD / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__ao, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04dr.p1", 0x0000, 0x010000, CRC(feeb4417) SHA1(e2f2c55c48067ad67188ff5a75caa08d8726cb77), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 RD / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__ap, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04dy.p1", 0x0000, 0x010000, CRC(63806cf9) SHA1(850c707c65b8dba6b6914389d573a8b7b7b12cdb), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 YD / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__aq, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04k.p1", 0x0000, 0x010000, CRC(ffbf53e1) SHA1(a003bb5d94b43d6ae9b45c599cccb0006bd8a89a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 K / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__ar, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04r.p1", 0x0000, 0x010000, CRC(cbf79555) SHA1(0aacb3f28984637919294a18f40858e8f46a18b3), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 R / TF4 0.4)" )
-GAME_CUSTOM( 199?, m4tutfrt__as, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tft04y.p1", 0x0000, 0x010000, CRC(569cbdbb) SHA1(8a978dfba876e5a2e12226f5fe55c29b5f079fad), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 Y / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04s.p1", 0x0000, 0x010000, CRC(c20c3589) SHA1(55d1bc5d5f4ae14acafb36bd640faaf4ffccc6eb), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__ai, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04ad.p1", 0x0000, 0x010000, CRC(2994aa14) SHA1(af0e618f24cdedd14e3a347701313360d9fc73d1), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 AD / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__aj, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04b.p1", 0x0000, 0x010000, CRC(e95eab06) SHA1(70e85e38493ac1fd30a79582bab45af5227d835a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 B / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__ak, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04bd.p1", 0x0000, 0x010000, CRC(060d3572) SHA1(e78b6248d3aef6cd08f4b30e0b00bd4cf254e630), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 BD / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__al, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04c.p1", 0x0000, 0x010000, CRC(3499fe77) SHA1(3f82ca6d856bddf82581790c46abf725963335a0), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 C / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__am, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04d.p1", 0x0000, 0x010000, CRC(10626059) SHA1(c7b2fd2b65946fe82950ff506a56bd08b7c2ef71), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 D / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__an, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04dk.p1", 0x0000, 0x010000, CRC(40700fe2) SHA1(1f121adae094c2d11a66b5e8ae4b026e85fc7f73), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 KD / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__ao, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04dr.p1", 0x0000, 0x010000, CRC(feeb4417) SHA1(e2f2c55c48067ad67188ff5a75caa08d8726cb77), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 RD / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__ap, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04dy.p1", 0x0000, 0x010000, CRC(63806cf9) SHA1(850c707c65b8dba6b6914389d573a8b7b7b12cdb), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 YD / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__aq, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04k.p1", 0x0000, 0x010000, CRC(ffbf53e1) SHA1(a003bb5d94b43d6ae9b45c599cccb0006bd8a89a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 K / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__ar, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04r.p1", 0x0000, 0x010000, CRC(cbf79555) SHA1(0aacb3f28984637919294a18f40858e8f46a18b3), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 R / TF4 0.4)" )
+GAME_CUSTOM( 199?, m4tutfrt__as, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tft04y.p1", 0x0000, 0x010000, CRC(569cbdbb) SHA1(8a978dfba876e5a2e12226f5fe55c29b5f079fad), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TFT 0.4 Y / TF4 0.4)" )
// "(C)1991 BARCREST" and "CTU 0.1"
-GAME_CUSTOM( 199?, m4tutfrt__i, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctus.p1", 0x0000, 0x010000, CRC(1b282170) SHA1(e3082aed6e96587de56c5593d32d0129c47fe667), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1)" )
-GAME_CUSTOM( 199?, m4tutfrt__a, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctuad.p1", 0x0000, 0x010000, CRC(0ec1661b) SHA1(162ddc30c341fd8eda8ce57a60edf06b4e39a24f), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 AD)" )
-GAME_CUSTOM( 199?, m4tutfrt__b, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctub.p1", 0x0000, 0x010000, CRC(f4289621) SHA1(a4078552146c88c05845cbdcd551e4564840fea4), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 B)" )
-GAME_CUSTOM( 199?, m4tutfrt__c, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctubd.p1", 0x0000, 0x010000, CRC(38dd0b51) SHA1(04df9511f366cc575a1a06d3a5d60ec0245f64a7), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 BD)" )
-GAME_CUSTOM( 199?, m4tutfrt__d, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctud.p1", 0x0000, 0x010000, CRC(6033fae5) SHA1(f5bdd1821344d4546eea8caa52d76e3bd509810e), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 D)" )
-GAME_CUSTOM( 199?, m4tutfrt__e, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctudk.p1", 0x0000, 0x010000, CRC(36dd1e41) SHA1(ad5ad7cae12634149d38e286e6873b81bda52871), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 KD)" )
-GAME_CUSTOM( 199?, m4tutfrt__f, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctudy.p1", 0x0000, 0x010000, CRC(58c02db6) SHA1(faf85caeaa0678b5771d801cf3d9645d7767767c), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 YD)" )
-GAME_CUSTOM( 199?, m4tutfrt__g, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctuk.p1", 0x0000, 0x010000, CRC(4c247447) SHA1(f5aebb4a75632c9a74dca1f3e9559399c89ac679), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 K)" )
-GAME_CUSTOM( 199?, m4tutfrt__h, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctur.p1", 0x0000, 0x010000, CRC(705a2b52) SHA1(40b0738146d073f93877a15f63830ff3e07814c1), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 R)" )
-GAME_CUSTOM( 199?, m4tutfrt__j, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "ctuy.p1", 0x0000, 0x010000, CRC(ed3103bc) SHA1(eefb72728e026fad3dd031665510ee0aba23e14b), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 Y)" )
+GAME_CUSTOM( 199?, m4tutfrt__i, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctus.p1", 0x0000, 0x010000, CRC(1b282170) SHA1(e3082aed6e96587de56c5593d32d0129c47fe667), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1)" )
+GAME_CUSTOM( 199?, m4tutfrt__a, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctuad.p1", 0x0000, 0x010000, CRC(0ec1661b) SHA1(162ddc30c341fd8eda8ce57a60edf06b4e39a24f), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 AD)" )
+GAME_CUSTOM( 199?, m4tutfrt__b, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctub.p1", 0x0000, 0x010000, CRC(f4289621) SHA1(a4078552146c88c05845cbdcd551e4564840fea4), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 B)" )
+GAME_CUSTOM( 199?, m4tutfrt__c, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctubd.p1", 0x0000, 0x010000, CRC(38dd0b51) SHA1(04df9511f366cc575a1a06d3a5d60ec0245f64a7), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 BD)" )
+GAME_CUSTOM( 199?, m4tutfrt__d, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctud.p1", 0x0000, 0x010000, CRC(6033fae5) SHA1(f5bdd1821344d4546eea8caa52d76e3bd509810e), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 D)" )
+GAME_CUSTOM( 199?, m4tutfrt__e, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctudk.p1", 0x0000, 0x010000, CRC(36dd1e41) SHA1(ad5ad7cae12634149d38e286e6873b81bda52871), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 KD)" )
+GAME_CUSTOM( 199?, m4tutfrt__f, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctudy.p1", 0x0000, 0x010000, CRC(58c02db6) SHA1(faf85caeaa0678b5771d801cf3d9645d7767767c), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 YD)" )
+GAME_CUSTOM( 199?, m4tutfrt__g, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctuk.p1", 0x0000, 0x010000, CRC(4c247447) SHA1(f5aebb4a75632c9a74dca1f3e9559399c89ac679), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 K)" )
+GAME_CUSTOM( 199?, m4tutfrt__h, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctur.p1", 0x0000, 0x010000, CRC(705a2b52) SHA1(40b0738146d073f93877a15f63830ff3e07814c1), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 R)" )
+GAME_CUSTOM( 199?, m4tutfrt__j, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "ctuy.p1", 0x0000, 0x010000, CRC(ed3103bc) SHA1(eefb72728e026fad3dd031665510ee0aba23e14b), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (CTU 0.1 Y)" )
// "(C)1991 BARCREST" and "TF4 0.2"
-GAME_CUSTOM( 199?, m4tutfrt__af, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tf4s.p1", 0x0000, 0x010000, CRC(2d298c58) SHA1(568c2babdb002da871df7a36d16e4f7810cac265), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2)" )
-GAME_CUSTOM( 199?, m4tutfrt__8, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tf4ad.p1", 0x0000, 0x010000, CRC(6ddc90a9) SHA1(76dd22c5e65fc46360123e200016d11a8946d2f3), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 AD)" )
-GAME_CUSTOM( 199?, m4tutfrt__9, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tf4b.p1", 0x0000, 0x010000, CRC(c3a70eac) SHA1(ea5a39e33af96e84ce0ea184850d5f580dbf19ce), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 B)" )
-GAME_CUSTOM( 199?, m4tutfrt__aa, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tf4bd.p1", 0x0000, 0x010000, CRC(54ae2498) SHA1(54a63a0de794eb2ce321f79b09a56485d9e77715), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 BD)" )
-GAME_CUSTOM( 199?, m4tutfrt__ab, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tf4d.p1", 0x0000, 0x010000, CRC(d8ff9045) SHA1(ae7307212614c6f1b4e3d72d3a1ae68ca1d0b470), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 D)" )
-GAME_CUSTOM( 199?, m4tutfrt__ac, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tf4dk.p1", 0x0000, 0x010000, CRC(a2e3b67f) SHA1(dea9958caba08b5cdec6eec9e4c17038ecb0ca55), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 KD)" )
-GAME_CUSTOM( 199?, m4tutfrt__ad, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tf4dy.p1", 0x0000, 0x010000, CRC(ff4f26c4) SHA1(21ef226bf92deeab15c9368d707bf75b7104e7c3), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 YD)" )
-GAME_CUSTOM( 199?, m4tutfrt__ae, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tf4k.p1", 0x0000, 0x010000, CRC(1a4eb247) SHA1(f6b4c85dd8b155b672bd96ea7ee6630df773c6ca), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 K)" )
-GAME_CUSTOM( 199?, m4tutfrt__ag, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, init_m4default, "tf4y.p1", 0x0000, 0x010000, CRC(06cd8b06) SHA1(92205e9edd42f80de67d5d6652de8ea80bc60af7), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 Y)" )
+GAME_CUSTOM( 199?, m4tutfrt__af, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tf4s.p1", 0x0000, 0x010000, CRC(2d298c58) SHA1(568c2babdb002da871df7a36d16e4f7810cac265), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2)" )
+GAME_CUSTOM( 199?, m4tutfrt__8, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tf4ad.p1", 0x0000, 0x010000, CRC(6ddc90a9) SHA1(76dd22c5e65fc46360123e200016d11a8946d2f3), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 AD)" )
+GAME_CUSTOM( 199?, m4tutfrt__9, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tf4b.p1", 0x0000, 0x010000, CRC(c3a70eac) SHA1(ea5a39e33af96e84ce0ea184850d5f580dbf19ce), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 B)" )
+GAME_CUSTOM( 199?, m4tutfrt__aa, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tf4bd.p1", 0x0000, 0x010000, CRC(54ae2498) SHA1(54a63a0de794eb2ce321f79b09a56485d9e77715), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 BD)" )
+GAME_CUSTOM( 199?, m4tutfrt__ab, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tf4d.p1", 0x0000, 0x010000, CRC(d8ff9045) SHA1(ae7307212614c6f1b4e3d72d3a1ae68ca1d0b470), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 D)" )
+GAME_CUSTOM( 199?, m4tutfrt__ac, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tf4dk.p1", 0x0000, 0x010000, CRC(a2e3b67f) SHA1(dea9958caba08b5cdec6eec9e4c17038ecb0ca55), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 KD)" )
+GAME_CUSTOM( 199?, m4tutfrt__ad, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tf4dy.p1", 0x0000, 0x010000, CRC(ff4f26c4) SHA1(21ef226bf92deeab15c9368d707bf75b7104e7c3), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 YD)" )
+GAME_CUSTOM( 199?, m4tutfrt__ae, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tf4k.p1", 0x0000, 0x010000, CRC(1a4eb247) SHA1(f6b4c85dd8b155b672bd96ea7ee6630df773c6ca), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 K)" )
+GAME_CUSTOM( 199?, m4tutfrt__ag, m4tutfrt, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1), mpu4, init_m4, "tf4y.p1", 0x0000, 0x010000, CRC(06cd8b06) SHA1(92205e9edd42f80de67d5d6652de8ea80bc60af7), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (TF4 0.2 Y)" )
// different protection
// "I.G.T SUCKS" and "F2U 0.1"
-GAME_CUSTOM( 199?, m4tutfrt__at, m4tutfrt, mod4oki_bootleg_fixedret<0x58>, mpu4, init_m4default, "tut25.bin", 0x0000, 0x010000, CRC(c98fb5bb) SHA1(1a3bc343a38b5978a919b454e9a2e806dce7a78a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 B, hack, set 1)" )
+GAME_CUSTOM( 199?, m4tutfrt__at, m4tutfrt, mod4oki_bootleg_fixedret<0x58>(R4, RT1), mpu4, init_m4, "tut25.bin", 0x0000, 0x010000, CRC(c98fb5bb) SHA1(1a3bc343a38b5978a919b454e9a2e806dce7a78a), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 B, hack, set 1)" )
// unprotected, doesn't read from chr
-GAME_CUSTOM( 199?, m4tutfrt__au, m4tutfrt, mod4oki, mpu4, init_m4default, "tut25patched.bin", 0x0000, 0x010000, CRC(b4443cf5) SHA1(e79ec52730146f1591140555b814cbd20b5dfe78), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 B, hack, set 2)" )
+GAME_CUSTOM( 199?, m4tutfrt__au, m4tutfrt, mod4oki(R4, RT1), mpu4, init_m4, "tut25patched.bin", 0x0000, 0x010000, CRC(b4443cf5) SHA1(e79ec52730146f1591140555b814cbd20b5dfe78), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (F2U 0.1 B, hack, set 2)" )
@@ -3604,7 +3579,7 @@ GAME_CUSTOM( 199?, m4tutfrt__au, m4tutfrt, mod4oki, mpu4, init_m4default, "tu
ROM_LOAD( name, offset, length, hash ) \
M4CASHAT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// boot to 'wrong sound, need v1' with tri98.chr, and can be started
// "(C)1993 BARCREST" and "CSA 1.2" // yes D comes first many times in these as the flag is earlier
@@ -3643,7 +3618,7 @@ GAME_CUSTOM( 199?, m4cashat__z, m4cashat, "caa23y.p1", 0x0000, 0x020
ROM_LOAD( name, offset, length, hash ) \
M4CASHAT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::milclb_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "CSA 1.1"
@@ -3682,7 +3657,7 @@ GAME_CUSTOM( 199?, m4cashat__m, m4cashat, "caa22y.p1", 0x0000, 0x020
ROM_LOAD( name, offset, length, hash ) \
M4CASHAT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// different protection
@@ -3699,7 +3674,7 @@ GAME_CUSTOM( 199?, m4cashat__2, m4cashat, "catt15t", 0x0000, 0x020
ROM_LOAD( name, offset, length, hash ) \
M4CASHAT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x68>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x68>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// no copyright string and "CAA 2.3"
GAME_CUSTOM( 199?, m4cashat__0, m4cashat, "casattack8.bin", 0x0000, 0x020000, CRC(e29ea247) SHA1(ad00ea3bfd2eab51b20fd786cb1ce84de0d98173), "hack","Cash Attack (Barcrest) (MPU4) (CAA 2.3, hack, set 1)" )
@@ -3733,128 +3708,128 @@ GAME_CUSTOM( 199?, m4cashat__0, m4cashat, "casattack8.bin", 0x0000, 0x020
//
// "(C)1991 BARCREST" and "CR4 0.2" (HHN 0.2 on startup)
-GAME_CUSTOM( 199?, m4rhr__i, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rhr15.hex", 0x0000, 0x010000, CRC(895ebbda) SHA1(f2117e743a30f3c9fc6af7fd7843bc333699db9d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.2 KD / CR4 0.2)" )
+GAME_CUSTOM( 199?, m4rhr__i, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhr15.hex", 0x0000, 0x010000, CRC(895ebbda) SHA1(f2117e743a30f3c9fc6af7fd7843bc333699db9d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.2 KD / CR4 0.2)" )
// "(C)1991 BARCREST" and "CRU 0.3" (CLD 0.3 on startup)
-GAME_CUSTOM( 199?, m4rhrc, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03s.p1", 0x0000, 0x010000, CRC(03f8a6bf) SHA1(29ee59fd60d89fca0f236be8b4c12c885db032e7), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__j, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03ad.p1", 0x0000, 0x010000, CRC(821fde63) SHA1(61f77eeb01331e735cc8c736526d09371e6bdf56), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 AD / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__a, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03b.p1", 0x0000, 0x010000, CRC(c67a2e82) SHA1(b76110c73d5bd0290fdd31d8300914f63a56c25e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 B / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__b, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03bd.p1", 0x0000, 0x010000, CRC(0995fd93) SHA1(c3cc84f78adc54f4698280bf7d0831bb54c3fc3f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 BD / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__c, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03c.p1", 0x0000, 0x010000, CRC(6e7b319f) SHA1(3da4feb72cb9d4ee24a8e0568f8d9c80a71caf9b), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 C / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__d, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03d.p1", 0x0000, 0x010000, CRC(dc46afb0) SHA1(c461ac2ef3fcffac96536b1b1c26abe052edf35c), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 D / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__e, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03dk.p1", 0x0000, 0x010000, CRC(f0b6b60f) SHA1(9addae6af20986c92c3ce71ce9756a6f3db5ebff), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 KD / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__f, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03dr.p1", 0x0000, 0x010000, CRC(703ab87b) SHA1(089597927f94bdacc4226900a944cbec85fe2286), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 RD / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__g, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03dy.p1", 0x0000, 0x010000, CRC(ed519095) SHA1(ac174166bf2cc6ab81f9782f1be4a9fbe226f34d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 YD / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__h, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03k.p1", 0x0000, 0x010000, CRC(3bad05a9) SHA1(1b00ac52f6c87b5c79088b6fc3e6d00f57876ebc), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 K / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__i, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03r.p1", 0x0000, 0x010000, CRC(2de70bdc) SHA1(d8d0170ca71fde4c79d0b465d09d4bb31acf40cf), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 R / CRU 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__k, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cld03y.p1", 0x0000, 0x010000, CRC(b08c2332) SHA1(1cdf7fc0e95a50766df2d1cd51cb803b922c30c8), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 Y / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03s.p1", 0x0000, 0x010000, CRC(03f8a6bf) SHA1(29ee59fd60d89fca0f236be8b4c12c885db032e7), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__j, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03ad.p1", 0x0000, 0x010000, CRC(821fde63) SHA1(61f77eeb01331e735cc8c736526d09371e6bdf56), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 AD / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__a, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03b.p1", 0x0000, 0x010000, CRC(c67a2e82) SHA1(b76110c73d5bd0290fdd31d8300914f63a56c25e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 B / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__b, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03bd.p1", 0x0000, 0x010000, CRC(0995fd93) SHA1(c3cc84f78adc54f4698280bf7d0831bb54c3fc3f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 BD / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__c, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03c.p1", 0x0000, 0x010000, CRC(6e7b319f) SHA1(3da4feb72cb9d4ee24a8e0568f8d9c80a71caf9b), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 C / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__d, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03d.p1", 0x0000, 0x010000, CRC(dc46afb0) SHA1(c461ac2ef3fcffac96536b1b1c26abe052edf35c), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 D / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__e, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03dk.p1", 0x0000, 0x010000, CRC(f0b6b60f) SHA1(9addae6af20986c92c3ce71ce9756a6f3db5ebff), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 KD / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__f, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03dr.p1", 0x0000, 0x010000, CRC(703ab87b) SHA1(089597927f94bdacc4226900a944cbec85fe2286), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 RD / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__g, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03dy.p1", 0x0000, 0x010000, CRC(ed519095) SHA1(ac174166bf2cc6ab81f9782f1be4a9fbe226f34d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 YD / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__h, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03k.p1", 0x0000, 0x010000, CRC(3bad05a9) SHA1(1b00ac52f6c87b5c79088b6fc3e6d00f57876ebc), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 K / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__i, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03r.p1", 0x0000, 0x010000, CRC(2de70bdc) SHA1(d8d0170ca71fde4c79d0b465d09d4bb31acf40cf), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 R / CRU 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__k, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cld03y.p1", 0x0000, 0x010000, CRC(b08c2332) SHA1(1cdf7fc0e95a50766df2d1cd51cb803b922c30c8), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.3 Y / CRU 0.3)" )
// "(C)1991 BARCREST" and "CR4 0.3" (HHN 0.3 on startup)
-GAME_CUSTOM( 199?, m4rhrc__v, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03s.p1", 0x0000, 0x010000, CRC(b531ae78) SHA1(87d043541c23b88b8ec4067c67be77812095faaa), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__l, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03ad.p1", 0x0000, 0x010000, CRC(e7da568e) SHA1(00f9eecd06131bc5770a6ab650b3548f5b7a8c15), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 AD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__m, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03b.p1", 0x0000, 0x010000, CRC(406e47cd) SHA1(193aed33ac62eb04d89cf63beb33e8e4e28e286e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 B / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__n, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03bd.p1", 0x0000, 0x010000, CRC(66aed369) SHA1(6c3151790292a277a1d44a1fceae985e52014749), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 BD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__o, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03c.p1", 0x0000, 0x010000, CRC(452e623c) SHA1(9350d7e30d8fc2b0f37528a7d0ce6797bab6f504), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 C / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__p, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03d.p1", 0x0000, 0x010000, CRC(e9ce4ee5) SHA1(45fe3832cc37e8ecbc5101b8b7b94f6243504e3f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 D / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__q, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03dk.p1", 0x0000, 0x010000, CRC(2d750f34) SHA1(1672d5a8b4a338cac87281e1329f111f468dc611), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 KD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__r, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03dr.p1", 0x0000, 0x010000, CRC(88a3895b) SHA1(3e2dcf6728712620724774c16a5d84dbec9c5ab3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 RD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__s, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03dy.p1", 0x0000, 0x010000, CRC(15c8a1b5) SHA1(5a2f28f290fa087b5010f778d4ad8d6c63a3d13e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 YD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__t, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03k.p1", 0x0000, 0x010000, CRC(95450230) SHA1(3c1c239e84a89ef6acd44ac9c81d33021ac6b0e3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 K / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__u, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03r.p1", 0x0000, 0x010000, CRC(d96d6825) SHA1(89c3f5494d97326369f10c982842310592456874), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 R / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__w, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "hhn03y.p1", 0x0000, 0x010000, CRC(440640cb) SHA1(de6b6edcdc99aaa0122ecd24a9a7437e6b44aad2), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 Y / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__v, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03s.p1", 0x0000, 0x010000, CRC(b531ae78) SHA1(87d043541c23b88b8ec4067c67be77812095faaa), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__l, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03ad.p1", 0x0000, 0x010000, CRC(e7da568e) SHA1(00f9eecd06131bc5770a6ab650b3548f5b7a8c15), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 AD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__m, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03b.p1", 0x0000, 0x010000, CRC(406e47cd) SHA1(193aed33ac62eb04d89cf63beb33e8e4e28e286e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 B / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__n, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03bd.p1", 0x0000, 0x010000, CRC(66aed369) SHA1(6c3151790292a277a1d44a1fceae985e52014749), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 BD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__o, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03c.p1", 0x0000, 0x010000, CRC(452e623c) SHA1(9350d7e30d8fc2b0f37528a7d0ce6797bab6f504), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 C / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__p, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03d.p1", 0x0000, 0x010000, CRC(e9ce4ee5) SHA1(45fe3832cc37e8ecbc5101b8b7b94f6243504e3f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 D / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__q, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03dk.p1", 0x0000, 0x010000, CRC(2d750f34) SHA1(1672d5a8b4a338cac87281e1329f111f468dc611), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 KD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__r, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03dr.p1", 0x0000, 0x010000, CRC(88a3895b) SHA1(3e2dcf6728712620724774c16a5d84dbec9c5ab3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 RD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__s, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03dy.p1", 0x0000, 0x010000, CRC(15c8a1b5) SHA1(5a2f28f290fa087b5010f778d4ad8d6c63a3d13e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 YD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__t, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03k.p1", 0x0000, 0x010000, CRC(95450230) SHA1(3c1c239e84a89ef6acd44ac9c81d33021ac6b0e3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 K / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__u, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03r.p1", 0x0000, 0x010000, CRC(d96d6825) SHA1(89c3f5494d97326369f10c982842310592456874), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 R / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__w, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "hhn03y.p1", 0x0000, 0x010000, CRC(440640cb) SHA1(de6b6edcdc99aaa0122ecd24a9a7437e6b44aad2), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (HHN 0.3 Y / CR4 0.3)" )
// "(C)1991 BARCREST" and "CR4 0.3" (RRD 0.3 on startup)
-GAME_CUSTOM( 199?, m4rhrc__7, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03s.p1", 0x0000, 0x010000, CRC(e59b79dd) SHA1(32e515bdc861a4d548caedd56a1825c91a318a34), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__x, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03ad.p1", 0x0000, 0x010000, CRC(6f49d7d1) SHA1(2195a3ad4836e8ffd2e7e6a90e94319d5a5a0ce8), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 AD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__y, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03b.p1", 0x0000, 0x010000, CRC(e8447a3d) SHA1(8bf5936782e0fbec25a8ef892b8df04b6543bc74), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 B / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__z, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03bd.p1", 0x0000, 0x010000, CRC(52cf0357) SHA1(ab4668df6d5ad9614410aede7ad4e030283b78ca), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 BD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__0, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03c.p1", 0x0000, 0x010000, CRC(b03e7b76) SHA1(0b2779b584f8fa0e25e2a5248ecb8fb88aa53413), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 AC/ CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__1, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03d.p1", 0x0000, 0x010000, CRC(44740c79) SHA1(ab1efb2090ef62795c17a685c7acb45820eb1a9d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 D / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__2, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03dk.p1", 0x0000, 0x010000, CRC(78f18187) SHA1(33764416c6e5cccd6ae5fdc5c0d679e1ef451785), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 KD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__3, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03dr.p1", 0x0000, 0x010000, CRC(039c2869) SHA1(2eb887b36d86295d0e6aacc74d0a6223d32baa5a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 RD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__4, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03dy.p1", 0x0000, 0x010000, CRC(b60b6e51) SHA1(eb6ed1de44d7c982ac8aa0621d4c1ed8e41db5de), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 YD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__5, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03k.p1", 0x0000, 0x010000, CRC(31adc6d6) SHA1(ea68d0d13978bf6cfa7fb9aa1cf91ddfd6258a3a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 K / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__6, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03r.p1", 0x0000, 0x010000, CRC(11c61483) SHA1(66cd30096bca2f4356acaaa15179c00301c8bc3a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 R / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhrc__8, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "rrd03y.p1", 0x0000, 0x010000, CRC(66fff07a) SHA1(586279533d6d85abf7e97124c9c5342a6a1b0496), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 Y / CR4 0.3)" )
-
-GAME_CUSTOM( 199?, m4rhrc__9, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "cru0_2.bin", 0x0000, 0x010000, CRC(e3c01944) SHA1(33a2b2c05686f53811349b2980e590fdc4b72756), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.2C)" )
+GAME_CUSTOM( 199?, m4rhrc__7, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03s.p1", 0x0000, 0x010000, CRC(e59b79dd) SHA1(32e515bdc861a4d548caedd56a1825c91a318a34), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__x, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03ad.p1", 0x0000, 0x010000, CRC(6f49d7d1) SHA1(2195a3ad4836e8ffd2e7e6a90e94319d5a5a0ce8), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 AD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__y, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03b.p1", 0x0000, 0x010000, CRC(e8447a3d) SHA1(8bf5936782e0fbec25a8ef892b8df04b6543bc74), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 B / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__z, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03bd.p1", 0x0000, 0x010000, CRC(52cf0357) SHA1(ab4668df6d5ad9614410aede7ad4e030283b78ca), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 BD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__0, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03c.p1", 0x0000, 0x010000, CRC(b03e7b76) SHA1(0b2779b584f8fa0e25e2a5248ecb8fb88aa53413), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 AC/ CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__1, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03d.p1", 0x0000, 0x010000, CRC(44740c79) SHA1(ab1efb2090ef62795c17a685c7acb45820eb1a9d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 D / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__2, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03dk.p1", 0x0000, 0x010000, CRC(78f18187) SHA1(33764416c6e5cccd6ae5fdc5c0d679e1ef451785), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 KD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__3, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03dr.p1", 0x0000, 0x010000, CRC(039c2869) SHA1(2eb887b36d86295d0e6aacc74d0a6223d32baa5a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 RD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__4, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03dy.p1", 0x0000, 0x010000, CRC(b60b6e51) SHA1(eb6ed1de44d7c982ac8aa0621d4c1ed8e41db5de), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 YD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__5, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03k.p1", 0x0000, 0x010000, CRC(31adc6d6) SHA1(ea68d0d13978bf6cfa7fb9aa1cf91ddfd6258a3a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 K / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__6, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03r.p1", 0x0000, 0x010000, CRC(11c61483) SHA1(66cd30096bca2f4356acaaa15179c00301c8bc3a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 R / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhrc__8, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "rrd03y.p1", 0x0000, 0x010000, CRC(66fff07a) SHA1(586279533d6d85abf7e97124c9c5342a6a1b0496), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RRD 0.3 Y / CR4 0.3)" )
+
+GAME_CUSTOM( 199?, m4rhrc__9, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "cru0_2.bin", 0x0000, 0x010000, CRC(e3c01944) SHA1(33a2b2c05686f53811349b2980e590fdc4b72756), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CLD 0.2C)" )
// "(C)1991 BARCREST" and "CR4 0.9"
-GAME_CUSTOM( 199?, m4rhr, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr4s.p1", 0x0000, 0x010000, CRC(836c3e49) SHA1(34dde2fd4fe82ab4a9e16dcf7915705f7b8a007f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9)" )
-GAME_CUSTOM( 199?, m4rhr__a, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr4ad.p1", 0x0000, 0x010000, CRC(b99b3d14) SHA1(2ff68b33881e9b3c2db48c335ccbad783013084a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 AD)" )
-GAME_CUSTOM( 199?, m4rhr__b, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr4b.p1", 0x0000, 0x010000, CRC(ae2691b8) SHA1(360c5c3d94bf85cf5ead114dd570ea6c61082aa9), "Barcrest","Red Hot