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 Roll (Barcrest) (MPU4) (CR4 0.9 B)" )
-GAME_CUSTOM( 199?, m4rhr__c, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr4bd.p1", 0x0000, 0x010000, CRC(9ba444bf) SHA1(adebf23827a5ac5e3a6d56e3352e0d3f3dc809c0), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 BD)" )
-GAME_CUSTOM( 199?, m4rhr__d, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr4d.p1", 0x0000, 0x010000, CRC(ad9fe2a6) SHA1(e490c5c949559cc222d8491989196b10373ff043), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 D)" )
-GAME_CUSTOM( 199?, m4rhr__e, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr4dk.p1", 0x0000, 0x010000, CRC(200486b4) SHA1(3916e131801c44985668ccd57dc3e812268f9417), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 KD)" )
-GAME_CUSTOM( 199?, m4rhr__f, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr4dy.p1", 0x0000, 0x010000, CRC(5b5ebe79) SHA1(6c72271258e6b951f2d6c815cfef5032e23cf7bc), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 YD)" )
-GAME_CUSTOM( 199?, m4rhr__g, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr4k.p1", 0x0000, 0x010000, CRC(2cc956e8) SHA1(37fad3d3b9460763ba4d8f569ee71778f9907853), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 K)" )
-GAME_CUSTOM( 199?, m4rhr__h, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr4y.p1", 0x0000, 0x010000, CRC(5a3588e8) SHA1(b25156f38fb67dc1f1e36a50af0a9b93882572d0), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 Y)" )
+GAME_CUSTOM( 199?, m4rhr, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "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>(R4, RT1), mpu4, init_m4, "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>(R4, RT1), mpu4, init_m4, "cr4b.p1", 0x0000, 0x010000, CRC(ae2691b8) SHA1(360c5c3d94bf85cf5ead114dd570ea6c61082aa9), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 B)" )
+GAME_CUSTOM( 199?, m4rhr__c, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cr4bd.p1", 0x0000, 0x010000, CRC(9ba444bf) SHA1(adebf23827a5ac5e3a6d56e3352e0d3f3dc809c0), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 BD)" )
+GAME_CUSTOM( 199?, m4rhr__d, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cr4d.p1", 0x0000, 0x010000, CRC(ad9fe2a6) SHA1(e490c5c949559cc222d8491989196b10373ff043), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 D)" )
+GAME_CUSTOM( 199?, m4rhr__e, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cr4dk.p1", 0x0000, 0x010000, CRC(200486b4) SHA1(3916e131801c44985668ccd57dc3e812268f9417), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 KD)" )
+GAME_CUSTOM( 199?, m4rhr__f, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cr4dy.p1", 0x0000, 0x010000, CRC(5b5ebe79) SHA1(6c72271258e6b951f2d6c815cfef5032e23cf7bc), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 YD)" )
+GAME_CUSTOM( 199?, m4rhr__g, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cr4k.p1", 0x0000, 0x010000, CRC(2cc956e8) SHA1(37fad3d3b9460763ba4d8f569ee71778f9907853), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 K)" )
+GAME_CUSTOM( 199?, m4rhr__h, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cr4y.p1", 0x0000, 0x010000, CRC(5a3588e8) SHA1(b25156f38fb67dc1f1e36a50af0a9b93882572d0), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CR4 0.9 Y)" )
// "(C)1991 BARCREST" and "CR4 0.3" (CRT 0.3 on startup)
-GAME_CUSTOM( 199?, m4rhr__t, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03s.p1", 0x0000, 0x010000, CRC(2b4c24d2) SHA1(94b19b0e8090dbbde2c67d5949f19d4050972fb1), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__j, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03ad.p1", 0x0000, 0x010000, CRC(5b779273) SHA1(b9a278cc6b4af622af35f7d4fdacdca54c94a47f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 AD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__k, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03b.p1", 0x0000, 0x010000, CRC(da5b3fa3) SHA1(66c570a193665ae0df4542112547fa6f5f9b7b79), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 B / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__l, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03bd.p1", 0x0000, 0x010000, CRC(6d6bff39) SHA1(08f4235bb2cadcc49c13991fe3e2c806c0be801d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 BD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__m, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03c.p1", 0x0000, 0x010000, CRC(a5b38945) SHA1(31351667d471c107ade58e97fe5657632d91be80), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 C / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__n, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03d.p1", 0x0000, 0x010000, CRC(7f39cf9d) SHA1(6f8a1660a253cf7f49ba589b3847ca3dc5a9b4ee), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 D / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__o, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03dk.p1", 0x0000, 0x010000, CRC(32933785) SHA1(0ae9b8823ed8c914da0a64913afdf3c348142804), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 KD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__p, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03dr.p1", 0x0000, 0x010000, CRC(2381792a) SHA1(514b9e580d156ec3cfeb460d0895143368e9a360), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 RD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__q, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03dy.p1", 0x0000, 0x010000, CRC(3439dc85) SHA1(092dcd36e2ea43ecf62cfc1bf1498ea7777213dc), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 YD / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__r, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03k.p1", 0x0000, 0x010000, CRC(0b841ae9) SHA1(5a78381122a3b718e3f212f30f76dc61e2e3ac5e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 K / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__s, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03r.p1", 0x0000, 0x010000, CRC(2a8bd767) SHA1(a9547ef37da9494bd4ffe5fbb68eca67fe63c3ba), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 R / CR4 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__u, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crt03y.p1", 0x0000, 0x010000, CRC(40c3a105) SHA1(7ad988f71a3523ad2b19fa7d6cdf74d4328fb3e1), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 Y / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__t, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03s.p1", 0x0000, 0x010000, CRC(2b4c24d2) SHA1(94b19b0e8090dbbde2c67d5949f19d4050972fb1), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__j, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03ad.p1", 0x0000, 0x010000, CRC(5b779273) SHA1(b9a278cc6b4af622af35f7d4fdacdca54c94a47f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 AD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__k, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03b.p1", 0x0000, 0x010000, CRC(da5b3fa3) SHA1(66c570a193665ae0df4542112547fa6f5f9b7b79), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 B / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__l, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03bd.p1", 0x0000, 0x010000, CRC(6d6bff39) SHA1(08f4235bb2cadcc49c13991fe3e2c806c0be801d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 BD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__m, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03c.p1", 0x0000, 0x010000, CRC(a5b38945) SHA1(31351667d471c107ade58e97fe5657632d91be80), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 C / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__n, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03d.p1", 0x0000, 0x010000, CRC(7f39cf9d) SHA1(6f8a1660a253cf7f49ba589b3847ca3dc5a9b4ee), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 D / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__o, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03dk.p1", 0x0000, 0x010000, CRC(32933785) SHA1(0ae9b8823ed8c914da0a64913afdf3c348142804), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 KD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__p, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03dr.p1", 0x0000, 0x010000, CRC(2381792a) SHA1(514b9e580d156ec3cfeb460d0895143368e9a360), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 RD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__q, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03dy.p1", 0x0000, 0x010000, CRC(3439dc85) SHA1(092dcd36e2ea43ecf62cfc1bf1498ea7777213dc), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 YD / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__r, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03k.p1", 0x0000, 0x010000, CRC(0b841ae9) SHA1(5a78381122a3b718e3f212f30f76dc61e2e3ac5e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 K / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__s, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03r.p1", 0x0000, 0x010000, CRC(2a8bd767) SHA1(a9547ef37da9494bd4ffe5fbb68eca67fe63c3ba), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 R / CR4 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__u, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crt03y.p1", 0x0000, 0x010000, CRC(40c3a105) SHA1(7ad988f71a3523ad2b19fa7d6cdf74d4328fb3e1), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRT 0.3 Y / CR4 0.3)" )
// "(C)1991 BARCREST" and "CRU 0.1"
-GAME_CUSTOM( 199?, m4rhr__2, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crus.p1", 0x0000, 0x010000, CRC(bf2ff034) SHA1(7ee7ef30da4283dbb2b1b040fdd3313cb2e1b7e5), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1)" )
-GAME_CUSTOM( 199?, m4rhr__v, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cruad.p1", 0x0000, 0x010000, CRC(3a680f14) SHA1(cd3c2bf77b148ee4f4ce76b2c1bc142491117890), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 AD)" )
-GAME_CUSTOM( 199?, m4rhr__w, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crub.p1", 0x0000, 0x010000, CRC(4cee9020) SHA1(b919ba28294c39b49e4fcfa54a75e852f9c873ed), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 B)" )
-GAME_CUSTOM( 199?, m4rhr__x, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crubd.p1", 0x0000, 0x010000, CRC(7184b193) SHA1(392cb5887ec988e3aa1cba2491885103da1e503a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 BD)" )
-GAME_CUSTOM( 199?, m4rhr__y, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crud.p1", 0x0000, 0x010000, CRC(2528047f) SHA1(0b07470ff756b003c03fd4a7ff3c1d5f79e8307f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 D)" )
-GAME_CUSTOM( 199?, m4rhr__z, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crudk.p1", 0x0000, 0x010000, CRC(73465d95) SHA1(3eddaee64a681727743b23fd0bec0285ed59a5ef), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 DK)" )
-GAME_CUSTOM( 199?, m4rhr__0, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "crudy.p1", 0x0000, 0x010000, CRC(e08696f9) SHA1(37c97bb22ae0d09657d7d589f76adfbe6fb642e0), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 DY)" )
-GAME_CUSTOM( 199?, m4rhr__1, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cruk.p1", 0x0000, 0x010000, CRC(168627f0) SHA1(c6c21f8442ff88736d3fd25860d815beb5a6b845), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 K)" )
-GAME_CUSTOM( 199?, m4rhr__3, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cruy.p1", 0x0000, 0x010000, CRC(edf1346b) SHA1(c250178991885a922f676424e70c637e11089efb), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 Y)" )
+GAME_CUSTOM( 199?, m4rhr__2, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crus.p1", 0x0000, 0x010000, CRC(bf2ff034) SHA1(7ee7ef30da4283dbb2b1b040fdd3313cb2e1b7e5), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1)" )
+GAME_CUSTOM( 199?, m4rhr__v, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cruad.p1", 0x0000, 0x010000, CRC(3a680f14) SHA1(cd3c2bf77b148ee4f4ce76b2c1bc142491117890), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 AD)" )
+GAME_CUSTOM( 199?, m4rhr__w, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crub.p1", 0x0000, 0x010000, CRC(4cee9020) SHA1(b919ba28294c39b49e4fcfa54a75e852f9c873ed), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 B)" )
+GAME_CUSTOM( 199?, m4rhr__x, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crubd.p1", 0x0000, 0x010000, CRC(7184b193) SHA1(392cb5887ec988e3aa1cba2491885103da1e503a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 BD)" )
+GAME_CUSTOM( 199?, m4rhr__y, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crud.p1", 0x0000, 0x010000, CRC(2528047f) SHA1(0b07470ff756b003c03fd4a7ff3c1d5f79e8307f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 D)" )
+GAME_CUSTOM( 199?, m4rhr__z, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crudk.p1", 0x0000, 0x010000, CRC(73465d95) SHA1(3eddaee64a681727743b23fd0bec0285ed59a5ef), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 DK)" )
+GAME_CUSTOM( 199?, m4rhr__0, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "crudy.p1", 0x0000, 0x010000, CRC(e08696f9) SHA1(37c97bb22ae0d09657d7d589f76adfbe6fb642e0), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 DY)" )
+GAME_CUSTOM( 199?, m4rhr__1, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cruk.p1", 0x0000, 0x010000, CRC(168627f0) SHA1(c6c21f8442ff88736d3fd25860d815beb5a6b845), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 K)" )
+GAME_CUSTOM( 199?, m4rhr__3, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cruy.p1", 0x0000, 0x010000, CRC(edf1346b) SHA1(c250178991885a922f676424e70c637e11089efb), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (CRU 0.1 Y)" )
// "(C)1991 BARCREST" and "RH8 0.1"
-GAME_CUSTOM( 199?, m4rhr__4, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "redhot8.bin", 0x0000, 0x010000, CRC(1dc62d7b) SHA1(640a5b29314a7dc67db271cce06c23c676d77eee), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RH8 0.1 K)" )
-GAME_CUSTOM( 1991, m4rhr__a4, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rh8c.p1", 0x0000, 0x010000, CRC(e36d7ca0) SHA1(73970761c5c7004669b02ba9f3a299f36f2d00e9), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RH8 0.1 C)" )
+GAME_CUSTOM( 199?, m4rhr__4, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "redhot8.bin", 0x0000, 0x010000, CRC(1dc62d7b) SHA1(640a5b29314a7dc67db271cce06c23c676d77eee), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RH8 0.1 K)" )
+GAME_CUSTOM( 1991, m4rhr__a4, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rh8c.p1", 0x0000, 0x010000, CRC(e36d7ca0) SHA1(73970761c5c7004669b02ba9f3a299f36f2d00e9), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RH8 0.1 C)" )
// "(C)1991 BARCREST" and "RHR 0.3"
-GAME_CUSTOM( 199?, m4rhr__af, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhrs.p1", 0x0000, 0x010000, CRC(a0e5d5b6) SHA1(c730e6319bbea6f035fb3e249991983783ef5743), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__aa, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhrb.p1", 0x0000, 0x010000, CRC(876fbe46) SHA1(1c7faf68ddef2ccbb8e3cd2cf5c709a7a4f4daef), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 B)" )
-GAME_CUSTOM( 199?, m4rhr__ab, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhrbd.p1", 0x0000, 0x010000, CRC(f0fa0c7b) SHA1(96bfce8ea54e392a36cb8d82a032438bff992f07), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 BD)" )
-GAME_CUSTOM( 199?, m4rhr__ac, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhrc.p1", 0x0000, 0x010000, CRC(76a0e556) SHA1(1a9bae286ca40d8e72022645d006a219f113e31a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 C)" )
-GAME_CUSTOM( 199?, m4rhr__ad, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhrd.p1", 0x0000, 0x010000, CRC(58a5dd6f) SHA1(3646b8cb3d49e8c530e321daad052f27cdf4bb3d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 D)" )
-GAME_CUSTOM( 199?, m4rhr__ae, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhrk.p1", 0x0000, 0x010000, CRC(2212cebb) SHA1(224e7e243b17f3ca90a6daa529984e9a879ff266), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 K)" )
-GAME_CUSTOM( 199?, m4rhr__5, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhr03.r", 0x0000, 0x010000, CRC(98d81b1e) SHA1(17ab0dced53be9755aada7954aff2dc2a6973190), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 R)" )
+GAME_CUSTOM( 199?, m4rhr__af, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhrs.p1", 0x0000, 0x010000, CRC(a0e5d5b6) SHA1(c730e6319bbea6f035fb3e249991983783ef5743), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__aa, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhrb.p1", 0x0000, 0x010000, CRC(876fbe46) SHA1(1c7faf68ddef2ccbb8e3cd2cf5c709a7a4f4daef), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 B)" )
+GAME_CUSTOM( 199?, m4rhr__ab, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhrbd.p1", 0x0000, 0x010000, CRC(f0fa0c7b) SHA1(96bfce8ea54e392a36cb8d82a032438bff992f07), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 BD)" )
+GAME_CUSTOM( 199?, m4rhr__ac, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhrc.p1", 0x0000, 0x010000, CRC(76a0e556) SHA1(1a9bae286ca40d8e72022645d006a219f113e31a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 C)" )
+GAME_CUSTOM( 199?, m4rhr__ad, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhrd.p1", 0x0000, 0x010000, CRC(58a5dd6f) SHA1(3646b8cb3d49e8c530e321daad052f27cdf4bb3d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 D)" )
+GAME_CUSTOM( 199?, m4rhr__ae, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhrk.p1", 0x0000, 0x010000, CRC(2212cebb) SHA1(224e7e243b17f3ca90a6daa529984e9a879ff266), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 K)" )
+GAME_CUSTOM( 199?, m4rhr__5, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhr03.r", 0x0000, 0x010000, CRC(98d81b1e) SHA1(17ab0dced53be9755aada7954aff2dc2a6973190), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHR 0.3 R)" )
// "(C)1991 BARCREST" and "RHT 0.3"
-GAME_CUSTOM( 199?, m4rhr__ap, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhts.p1", 0x0000, 0x010000, CRC(fecb7076) SHA1(43086c6bfd878d0ca1ec8d45285d3e941a62ac8e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3)" )
-GAME_CUSTOM( 199?, m4rhr__ag, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhtad.p1", 0x0000, 0x010000, CRC(ae3a31a0) SHA1(7e1f05a21cf5b3d2aceba755136c567b5d6ecfcd), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 AD)" )
-GAME_CUSTOM( 199?, m4rhr__ah, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhtb.p1", 0x0000, 0x010000, CRC(7ceb13c8) SHA1(f0f22149bd0fb12ef06c4c3ecba605df33f52c51), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 B)" )
-GAME_CUSTOM( 199?, m4rhr__ai, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhtbd.p1", 0x0000, 0x010000, CRC(e4b290fc) SHA1(bf16d06429d67936118264f6c4f1ae637753d5db), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 BD)" )
-GAME_CUSTOM( 199?, m4rhr__aj, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhtd.p1", 0x0000, 0x010000, CRC(a08d508c) SHA1(10efbfb4fc4820313b410ec73f9c32ed048e2228), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 D)" )
-GAME_CUSTOM( 199?, m4rhr__ak, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhtdk.p1", 0x0000, 0x010000, CRC(6495681a) SHA1(afd3451402e19c4c4bb8507447d6771323219e80), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 KD)" )
-GAME_CUSTOM( 199?, m4rhr__al, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhtdr.p1", 0x0000, 0x010000, CRC(df9e5c83) SHA1(88586852c0773de4ee1b4c627eabf3de27e5c2a1), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 RD)" )
-GAME_CUSTOM( 199?, m4rhr__am, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhtdy.p1", 0x0000, 0x010000, CRC(42f5746d) SHA1(964bd8801b44de9ea45c43b290b1cd6284e97578), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 YD)" )
-GAME_CUSTOM( 199?, m4rhr__an, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhtk.p1", 0x0000, 0x010000, CRC(c3bfb174) SHA1(2579bf17252988de17a1367546ae187420f95cc5), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 K)" )
-GAME_CUSTOM( 199?, m4rhr__ao, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhtr.p1", 0x0000, 0x010000, CRC(f53f4876) SHA1(feda495361d384c662554d445a95191a2c52a56a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 R)" )
-GAME_CUSTOM( 199?, m4rhr__aq, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhty.p1", 0x0000, 0x010000, CRC(68546098) SHA1(57981c06efcb44915d8c2d4b6e1cba377c4a8590), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 Y)" )
+GAME_CUSTOM( 199?, m4rhr__ap, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhts.p1", 0x0000, 0x010000, CRC(fecb7076) SHA1(43086c6bfd878d0ca1ec8d45285d3e941a62ac8e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3)" )
+GAME_CUSTOM( 199?, m4rhr__ag, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhtad.p1", 0x0000, 0x010000, CRC(ae3a31a0) SHA1(7e1f05a21cf5b3d2aceba755136c567b5d6ecfcd), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 AD)" )
+GAME_CUSTOM( 199?, m4rhr__ah, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhtb.p1", 0x0000, 0x010000, CRC(7ceb13c8) SHA1(f0f22149bd0fb12ef06c4c3ecba605df33f52c51), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 B)" )
+GAME_CUSTOM( 199?, m4rhr__ai, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhtbd.p1", 0x0000, 0x010000, CRC(e4b290fc) SHA1(bf16d06429d67936118264f6c4f1ae637753d5db), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 BD)" )
+GAME_CUSTOM( 199?, m4rhr__aj, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhtd.p1", 0x0000, 0x010000, CRC(a08d508c) SHA1(10efbfb4fc4820313b410ec73f9c32ed048e2228), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 D)" )
+GAME_CUSTOM( 199?, m4rhr__ak, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhtdk.p1", 0x0000, 0x010000, CRC(6495681a) SHA1(afd3451402e19c4c4bb8507447d6771323219e80), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 KD)" )
+GAME_CUSTOM( 199?, m4rhr__al, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhtdr.p1", 0x0000, 0x010000, CRC(df9e5c83) SHA1(88586852c0773de4ee1b4c627eabf3de27e5c2a1), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 RD)" )
+GAME_CUSTOM( 199?, m4rhr__am, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhtdy.p1", 0x0000, 0x010000, CRC(42f5746d) SHA1(964bd8801b44de9ea45c43b290b1cd6284e97578), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 YD)" )
+GAME_CUSTOM( 199?, m4rhr__an, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhtk.p1", 0x0000, 0x010000, CRC(c3bfb174) SHA1(2579bf17252988de17a1367546ae187420f95cc5), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 K)" )
+GAME_CUSTOM( 199?, m4rhr__ao, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhtr.p1", 0x0000, 0x010000, CRC(f53f4876) SHA1(feda495361d384c662554d445a95191a2c52a56a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 R)" )
+GAME_CUSTOM( 199?, m4rhr__aq, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhty.p1", 0x0000, 0x010000, CRC(68546098) SHA1(57981c06efcb44915d8c2d4b6e1cba377c4a8590), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 Y)" )
// "(C)1991 BARCREST" and "RHU 0.2"
-GAME_CUSTOM( 199?, m4rhr__a0, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhus.p1", 0x0000, 0x010000, CRC(31e776fc) SHA1(e51799e9db5a08cbfb0b6c5466a0a085c3d91db4), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2)" )
-GAME_CUSTOM( 199?, m4rhr__ar, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhuad.p1", 0x0000, 0x010000, CRC(2093126b) SHA1(942994793697cec730c461c87b24a1429e46cc02), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 AD)" )
-GAME_CUSTOM( 199?, m4rhr__as, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhub.p1", 0x0000, 0x010000, CRC(2be41a3a) SHA1(a50c7b5b93a619e541be480646517e278da8e579), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 B)" )
-GAME_CUSTOM( 199?, m4rhr__at, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhubd.p1", 0x0000, 0x010000, CRC(168f7f21) SHA1(9c9e09673bdadd146883a06a8db3c0ee4b304eab), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 BD)" )
-GAME_CUSTOM( 199?, m4rhr__au, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhud.p1", 0x0000, 0x010000, CRC(71932d29) SHA1(e92af5cced251eea2e31c4c1968e77087c64b824), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 D)" )
-GAME_CUSTOM( 199?, m4rhr__av, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhudk.p1", 0x0000, 0x010000, CRC(8de54a5d) SHA1(a275d8c67d38c09f19ffa41e97fbcbea3d297aa4), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 KD)" )
-GAME_CUSTOM( 199?, m4rhr__aw, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhudr.p1", 0x0000, 0x010000, CRC(ba01ac84) SHA1(d03b3b321abd220f619724e99cc396c38418f2d3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 RD)" )
-GAME_CUSTOM( 199?, m4rhr__ax, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhudy.p1", 0x0000, 0x010000, CRC(692bf4eb) SHA1(136f36073f236b48442a20e06aa51a978135f1b3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 YD)" )
-GAME_CUSTOM( 199?, m4rhr__ay, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhuk.p1", 0x0000, 0x010000, CRC(9e4e1e91) SHA1(f671858c41dc0e55189e9a86fff1846938b5c2e5), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 K)" )
-GAME_CUSTOM( 199?, m4rhr__az, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhur.p1", 0x0000, 0x010000, CRC(6e9425e5) SHA1(1e2827f3469af15e8d390d9af839c7b474ea95a7), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 R)" )
-GAME_CUSTOM( 199?, m4rhr__a1, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "rhuy.p1", 0x0000, 0x010000, CRC(5d12178a) SHA1(18525828fac1931bb8e11f96b79db143ed533771), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 Y)" )
+GAME_CUSTOM( 199?, m4rhr__a0, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhus.p1", 0x0000, 0x010000, CRC(31e776fc) SHA1(e51799e9db5a08cbfb0b6c5466a0a085c3d91db4), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2)" )
+GAME_CUSTOM( 199?, m4rhr__ar, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhuad.p1", 0x0000, 0x010000, CRC(2093126b) SHA1(942994793697cec730c461c87b24a1429e46cc02), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 AD)" )
+GAME_CUSTOM( 199?, m4rhr__as, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhub.p1", 0x0000, 0x010000, CRC(2be41a3a) SHA1(a50c7b5b93a619e541be480646517e278da8e579), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 B)" )
+GAME_CUSTOM( 199?, m4rhr__at, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhubd.p1", 0x0000, 0x010000, CRC(168f7f21) SHA1(9c9e09673bdadd146883a06a8db3c0ee4b304eab), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 BD)" )
+GAME_CUSTOM( 199?, m4rhr__au, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhud.p1", 0x0000, 0x010000, CRC(71932d29) SHA1(e92af5cced251eea2e31c4c1968e77087c64b824), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 D)" )
+GAME_CUSTOM( 199?, m4rhr__av, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhudk.p1", 0x0000, 0x010000, CRC(8de54a5d) SHA1(a275d8c67d38c09f19ffa41e97fbcbea3d297aa4), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 KD)" )
+GAME_CUSTOM( 199?, m4rhr__aw, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhudr.p1", 0x0000, 0x010000, CRC(ba01ac84) SHA1(d03b3b321abd220f619724e99cc396c38418f2d3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 RD)" )
+GAME_CUSTOM( 199?, m4rhr__ax, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhudy.p1", 0x0000, 0x010000, CRC(692bf4eb) SHA1(136f36073f236b48442a20e06aa51a978135f1b3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 YD)" )
+GAME_CUSTOM( 199?, m4rhr__ay, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhuk.p1", 0x0000, 0x010000, CRC(9e4e1e91) SHA1(f671858c41dc0e55189e9a86fff1846938b5c2e5), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 K)" )
+GAME_CUSTOM( 199?, m4rhr__az, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhur.p1", 0x0000, 0x010000, CRC(6e9425e5) SHA1(1e2827f3469af15e8d390d9af839c7b474ea95a7), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 R)" )
+GAME_CUSTOM( 199?, m4rhr__a1, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "rhuy.p1", 0x0000, 0x010000, CRC(5d12178a) SHA1(18525828fac1931bb8e11f96b79db143ed533771), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (RHU 0.2 Y)" )
// "(C)2000 BWB" and "RHR 5.0"
-GAME_CUSTOM( 199?, m4rhr__a2, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr__x__x.5_0", 0x0000, 0x010000, CRC(278fe91e) SHA1(dcfed3a7796d1ee365e535115b66c7d6cbe0ab74), "BWB","Red Hot Roll (Barcrest) (MPU4) (RHR 5.0, set 1)" )
-GAME_CUSTOM( 199?, m4rhrc__aa,m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr__x_dx.5_0", 0x0000, 0x010000, CRC(4bcf5c02) SHA1(603935880c87f86e7bc765c176266c1c08a6114f), "BWB","Red Hot Roll (Barcrest) (MPU4) (RHR 5.0, set 2)" )
+GAME_CUSTOM( 199?, m4rhr__a2, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cr__x__x.5_0", 0x0000, 0x010000, CRC(278fe91e) SHA1(dcfed3a7796d1ee365e535115b66c7d6cbe0ab74), "BWB","Red Hot Roll (Barcrest) (MPU4) (RHR 5.0, set 1)" )
+GAME_CUSTOM( 199?, m4rhrc__aa,m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cr__x_dx.5_0", 0x0000, 0x010000, CRC(4bcf5c02) SHA1(603935880c87f86e7bc765c176266c1c08a6114f), "BWB","Red Hot Roll (Barcrest) (MPU4) (RHR 5.0, set 2)" )
// "(C)1998 BWB" and "RHR 2.0"
-GAME_CUSTOM( 199?, m4rhr__a3, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default, "cr__x_dx.2_0", 0x0000, 0x010000, CRC(73fb120c) SHA1(4c0f39253dee9b528763a9cb609dec31e8529713), "BWB","Red Hot Roll (Barcrest) (MPU4) (RHR 2.0 D)" )
+GAME_CUSTOM( 199?, m4rhr__a3, m4rhr, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, init_m4, "cr__x_dx.2_0", 0x0000, 0x010000, CRC(73fb120c) SHA1(4c0f39253dee9b528763a9cb609dec31e8529713), "BWB","Red Hot Roll (Barcrest) (MPU4) (RHR 2.0 D)" )
// "RONNIE BARKER" and "RH8 0.1"
-GAME_CUSTOM( 199?, m4rhr__6, m4rhr, mod4oki_bootleg_fixedret<0x20>, mpu4, init_m4default, "rhr10", 0x0000, 0x010000, CRC(2a18a033) SHA1(add907c5ab155c28142dcee57825059715afd80d), "hack","Red Hot Roll (Barcrest) (MPU4) (RH8 0.1 C, hack, set 1)" )
-GAME_CUSTOM( 199?, m4rhr__7, m4rhr, mod4oki_bootleg_fixedret<0xde>, mpu4, init_m4default, "rhr2015", 0x0000, 0x010000, CRC(dbfd3b95) SHA1(4fc7ae32f7d76be3d3d07d627391884bd4d6de09), "hack","Red Hot Roll (Barcrest) (MPU4) (RH8 0.1 C, hack, set 2)" )
+GAME_CUSTOM( 199?, m4rhr__6, m4rhr, mod4oki_bootleg_fixedret<0x20>(R4, RT1), mpu4, init_m4, "rhr10", 0x0000, 0x010000, CRC(2a18a033) SHA1(add907c5ab155c28142dcee57825059715afd80d), "hack","Red Hot Roll (Barcrest) (MPU4) (RH8 0.1 C, hack, set 1)" )
+GAME_CUSTOM( 199?, m4rhr__7, m4rhr, mod4oki_bootleg_fixedret<0xde>(R4, RT1), mpu4, init_m4, "rhr2015", 0x0000, 0x010000, CRC(dbfd3b95) SHA1(4fc7ae32f7d76be3d3d07d627391884bd4d6de09), "hack","Red Hot Roll (Barcrest) (MPU4) (RH8 0.1 C, hack, set 2)" )
// no copyright and "RHT 0.3"
-GAME_CUSTOM( 199?, m4rhr__8, m4rhr, mod4oki_bootleg_fixedret<0x42>, mpu4, init_m4default, "rhr2515", 0x0000, 0x010000, CRC(e4554c23) SHA1(6d977beb282fd638de3457e467e842ce79b5be7c), "hack","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 C, hack)" )
+GAME_CUSTOM( 199?, m4rhr__8, m4rhr, mod4oki_bootleg_fixedret<0x42>(R4, RT1), mpu4, init_m4, "rhr2515", 0x0000, 0x010000, CRC(e4554c23) SHA1(6d977beb282fd638de3457e467e842ce79b5be7c), "hack","Red Hot Roll (Barcrest) (MPU4) (RHT 0.3 C, hack)" )
@@ -3879,7 +3854,7 @@ GAME_CUSTOM( 199?, m4rhr__8, m4rhr, mod4oki_bootleg_fixedret<0x42>, mpu4, init
ROM_LOAD( name, offset, length, hash ) \
M4UUAW_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 "UPS 2.2"
GAME_CUSTOM( 199?, m4uuaw__0, m4uuaw, "ups22s.p1", 0x0000, 0x020000, CRC(ac990aa9) SHA1(396c9eded9c18ab2bcb0f4066a890f6e239830f1), "Barcrest","Up Up and Away (Barcrest) (MPU4) (UPS 2.2)" )
@@ -3917,7 +3892,7 @@ GAME_CUSTOM( 199?, m4uuaw__aq, m4uuaw, "uua22y.p1", 0x0000, 0x020000, CRC(8
ROM_LOAD( name, offset, length, hash ) \
M4UUAW_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 "UPS 2.1"
GAME_CUSTOM( 199?, m4uuaw, 0, "ups21s.p1", 0x0000, 0x020000, CRC(c4a8a542) SHA1(61063d55c6017cf17d704df576cb62da5bd75820), "Barcrest","Up Up and Away (Barcrest) (MPU4) (UPS 2.1)" )
@@ -3955,7 +3930,7 @@ GAME_CUSTOM( 199?, m4uuaw__n, m4uuaw, "uua21h.p1", 0x0000, 0x020000, CRC(1
ROM_LOAD( name, offset, length, hash ) \
M4UUAW_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
//
@@ -3987,48 +3962,48 @@ GAME_CUSTOM( 199?, m4uuaw__b, m4uuaw, "upa15t", 0x0000, 0x020000, CRC(8
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "RFT 0.2"
-GAME_CUSTOM( 199?, m4richfm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rfts.p1", 0x0000, 0x010000, CRC(2a747164) SHA1(a4c8e160f09ebea4fca6dd32ff020d3f1a4f1a1c), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2)" )
-GAME_CUSTOM( 199?, m4richfm__r, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rftad.p1", 0x0000, 0x010000, CRC(8553386f) SHA1(ad834d52e51c7f375a370dc6d8586668921a9795), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 AD)" )
-GAME_CUSTOM( 199?, m4richfm__s, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rftb.p1", 0x0000, 0x010000, CRC(0189cc2f) SHA1(62ccc85c50c56aa2e0bcbb42b5c24d402f00d366), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 B)" )
-GAME_CUSTOM( 199?, m4richfm__t, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rftbd.p1", 0x0000, 0x010000, CRC(08351e03) SHA1(d08d38d46793828b147ccde8121fbb9bf422cd60), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 BD)" )
-GAME_CUSTOM( 199?, m4richfm__u, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rftd.p1", 0x0000, 0x010000, CRC(689f02ed) SHA1(1a30aac5454b0c477a698e9c573fe313bc1fe858), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 D)" )
-GAME_CUSTOM( 199?, m4richfm__v, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rftdk.p1", 0x0000, 0x010000, CRC(098b88f5) SHA1(4559b561380055c429a5b4741326f64ad89d8481), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 KD)" )
-GAME_CUSTOM( 199?, m4richfm__w, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rftdy.p1", 0x0000, 0x010000, CRC(26b912f8) SHA1(1719d63b4a25293199b0729235beb5b93c484490), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 YD)" )
-GAME_CUSTOM( 199?, m4richfm__x, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rftk.p1", 0x0000, 0x010000, CRC(6a48bd98) SHA1(2f17194869ca008f7a2eb622bd3725bc91950a17), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 K)" )
-GAME_CUSTOM( 199?, m4richfm__y, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rfty.p1", 0x0000, 0x010000, CRC(723fe46e) SHA1(51bb8aff358d527483eaf1b1e20606d94a937dc6), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 Y)" )
+GAME_CUSTOM( 199?, m4richfm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rfts.p1", 0x0000, 0x010000, CRC(2a747164) SHA1(a4c8e160f09ebea4fca6dd32ff020d3f1a4f1a1c), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2)" )
+GAME_CUSTOM( 199?, m4richfm__r, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rftad.p1", 0x0000, 0x010000, CRC(8553386f) SHA1(ad834d52e51c7f375a370dc6d8586668921a9795), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 AD)" )
+GAME_CUSTOM( 199?, m4richfm__s, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rftb.p1", 0x0000, 0x010000, CRC(0189cc2f) SHA1(62ccc85c50c56aa2e0bcbb42b5c24d402f00d366), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 B)" )
+GAME_CUSTOM( 199?, m4richfm__t, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rftbd.p1", 0x0000, 0x010000, CRC(08351e03) SHA1(d08d38d46793828b147ccde8121fbb9bf422cd60), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 BD)" )
+GAME_CUSTOM( 199?, m4richfm__u, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rftd.p1", 0x0000, 0x010000, CRC(689f02ed) SHA1(1a30aac5454b0c477a698e9c573fe313bc1fe858), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 D)" )
+GAME_CUSTOM( 199?, m4richfm__v, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rftdk.p1", 0x0000, 0x010000, CRC(098b88f5) SHA1(4559b561380055c429a5b4741326f64ad89d8481), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 KD)" )
+GAME_CUSTOM( 199?, m4richfm__w, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rftdy.p1", 0x0000, 0x010000, CRC(26b912f8) SHA1(1719d63b4a25293199b0729235beb5b93c484490), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 YD)" )
+GAME_CUSTOM( 199?, m4richfm__x, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rftk.p1", 0x0000, 0x010000, CRC(6a48bd98) SHA1(2f17194869ca008f7a2eb622bd3725bc91950a17), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 K)" )
+GAME_CUSTOM( 199?, m4richfm__y, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rfty.p1", 0x0000, 0x010000, CRC(723fe46e) SHA1(51bb8aff358d527483eaf1b1e20606d94a937dc6), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 Y)" )
// "(C)1993 BARCREST" and "RF5 0.2"
-GAME_CUSTOM( 199?, m4richfm__m, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rf5s.p1", 0x0000, 0x010000, CRC(8d1ed193) SHA1(a4ca973dac8a8fd550bf7e57a8cdc627c28da4b8), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2)" )
-GAME_CUSTOM( 199?, m4richfm__f, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rf5ad.p1", 0x0000, 0x010000, CRC(cd280292) SHA1(605d89608e106979229a00701a2e5b578df50d60), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 AD)" )
-GAME_CUSTOM( 199?, m4richfm__g, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rf5b.p1", 0x0000, 0x010000, CRC(e1edf753) SHA1(677f0397ec57422241f4669be610cffd33a9b44a), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 B)" )
-GAME_CUSTOM( 199?, m4richfm__h, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rf5bd.p1", 0x0000, 0x010000, CRC(2d698365) SHA1(7f91cee0d34550aba9ac0f4ee398df4de6fd6f7e), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 BD)" )
-GAME_CUSTOM( 199?, m4richfm__i, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rf5d.p1", 0x0000, 0x010000, CRC(034cab0b) SHA1(79eaeb84377dbb8e6bda1dd2ae29a1f79656b9e4), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 D)" )
-GAME_CUSTOM( 199?, m4richfm__j, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rf5dk.p1", 0x0000, 0x010000, CRC(14fc0f13) SHA1(a2b294da18c3f5bc9c81eb3f3af5ab5ca58c9cad), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 KD)" )
-GAME_CUSTOM( 199?, m4richfm__k, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rf5dy.p1", 0x0000, 0x010000, CRC(a2664c64) SHA1(2256b6e0d6472faa901348cb5be849ad012f1d16), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 YD)" )
-GAME_CUSTOM( 199?, m4richfm__l, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rf5k.p1", 0x0000, 0x010000, CRC(d8787b25) SHA1(885ac7ddd3de4cb475539d02aefbf38fed7c1f2c), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 K)" )
-GAME_CUSTOM( 199?, m4richfm__n, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, init_m4default_lextender, "rf5y.p1", 0x0000, 0x010000, CRC(ad288548) SHA1(a7222ab5bffe8e5e0844f8e6f13e09afe74b08a8), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 Y)" )
+GAME_CUSTOM( 199?, m4richfm__m, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf5s.p1", 0x0000, 0x010000, CRC(8d1ed193) SHA1(a4ca973dac8a8fd550bf7e57a8cdc627c28da4b8), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2)" )
+GAME_CUSTOM( 199?, m4richfm__f, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf5ad.p1", 0x0000, 0x010000, CRC(cd280292) SHA1(605d89608e106979229a00701a2e5b578df50d60), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 AD)" )
+GAME_CUSTOM( 199?, m4richfm__g, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf5b.p1", 0x0000, 0x010000, CRC(e1edf753) SHA1(677f0397ec57422241f4669be610cffd33a9b44a), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 B)" )
+GAME_CUSTOM( 199?, m4richfm__h, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf5bd.p1", 0x0000, 0x010000, CRC(2d698365) SHA1(7f91cee0d34550aba9ac0f4ee398df4de6fd6f7e), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 BD)" )
+GAME_CUSTOM( 199?, m4richfm__i, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf5d.p1", 0x0000, 0x010000, CRC(034cab0b) SHA1(79eaeb84377dbb8e6bda1dd2ae29a1f79656b9e4), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 D)" )
+GAME_CUSTOM( 199?, m4richfm__j, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf5dk.p1", 0x0000, 0x010000, CRC(14fc0f13) SHA1(a2b294da18c3f5bc9c81eb3f3af5ab5ca58c9cad), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 KD)" )
+GAME_CUSTOM( 199?, m4richfm__k, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf5dy.p1", 0x0000, 0x010000, CRC(a2664c64) SHA1(2256b6e0d6472faa901348cb5be849ad012f1d16), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 YD)" )
+GAME_CUSTOM( 199?, m4richfm__l, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf5k.p1", 0x0000, 0x010000, CRC(d8787b25) SHA1(885ac7ddd3de4cb475539d02aefbf38fed7c1f2c), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 K)" )
+GAME_CUSTOM( 199?, m4richfm__n, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf5y.p1", 0x0000, 0x010000, CRC(ad288548) SHA1(a7222ab5bffe8e5e0844f8e6f13e09afe74b08a8), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF5 0.2 Y)" )
// sequence 00 64 64 24 64 64 24 64 6c 9c bc bc (Winner Takes All)
// "(C)1993 BARCREST" and "RAF 0.3"
-GAME_CUSTOM( 199?, m4richfm__c, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "rafs.p1", 0x0000, 0x010000, CRC(f312b2e3) SHA1(8bf2cb7b73cfc320143d05d25e28c15fb4f26045), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RAF 0.3)" )
-GAME_CUSTOM( 199?, m4richfm__a, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "rafc.p1", 0x0000, 0x010000, CRC(d92f602f) SHA1(c93131138deb4018d499b9b45c07d4517c5072b7), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RAF 0.3 C)" )
-GAME_CUSTOM( 199?, m4richfm__b, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "rafd.p1", 0x0000, 0x010000, CRC(b0e9f470) SHA1(cad080a5d7f24968524fe10f6c43b088f35d7364), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RAF 0.3 D)" )
-GAME_CUSTOM( 199?, m4richfm__d, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "rafy.p1", 0x0000, 0x010000, CRC(a8812d45) SHA1(c0b89833f87ed90eb3e9c3299fcea362d501ed90), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RAF 0.3 Y)" )
+GAME_CUSTOM( 199?, m4richfm__c, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rafs.p1", 0x0000, 0x010000, CRC(f312b2e3) SHA1(8bf2cb7b73cfc320143d05d25e28c15fb4f26045), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RAF 0.3)" )
+GAME_CUSTOM( 199?, m4richfm__a, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rafc.p1", 0x0000, 0x010000, CRC(d92f602f) SHA1(c93131138deb4018d499b9b45c07d4517c5072b7), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RAF 0.3 C)" )
+GAME_CUSTOM( 199?, m4richfm__b, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rafd.p1", 0x0000, 0x010000, CRC(b0e9f470) SHA1(cad080a5d7f24968524fe10f6c43b088f35d7364), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RAF 0.3 D)" )
+GAME_CUSTOM( 199?, m4richfm__d, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rafy.p1", 0x0000, 0x010000, CRC(a8812d45) SHA1(c0b89833f87ed90eb3e9c3299fcea362d501ed90), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RAF 0.3 Y)" )
// "(C)1993 BARCREST" and "RF8 0.1"
-GAME_CUSTOM( 199?, m4richfm__o, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "rf8b.p1", 0x0000, 0x010000, CRC(105c24e1) SHA1(cb417976a74441bf2ca888198b57fed81d758c15), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF8 0.1 B)" )
-GAME_CUSTOM( 199?, m4richfm__p, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, init_m4default_lextender, "rf8c.p1", 0x0000, 0x010000, CRC(8924a706) SHA1(abb1a1f6cdeb15884dfa63fc04882f794453d4ec), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF8 0.1 C)" )
+GAME_CUSTOM( 199?, m4richfm__o, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf8b.p1", 0x0000, 0x010000, CRC(105c24e1) SHA1(cb417976a74441bf2ca888198b57fed81d758c15), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF8 0.1 B)" )
+GAME_CUSTOM( 199?, m4richfm__p, m4richfm, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "rf8c.p1", 0x0000, 0x010000, CRC(8924a706) SHA1(abb1a1f6cdeb15884dfa63fc04882f794453d4ec), "Barcrest","Rich & Famous (Barcrest) (MPU4) (RF8 0.1 C)" )
// none of these expect standard protection, they might be hacked
// "(C)1997 B.W.B." and "RFC 1.3"
-GAME_CUSTOM( 199?, m4richfm__0, m4richfm, mod4oki_bootleg_fixedret<0x1f>, mpu4, init_m4default_lextender, "r+f5.10", 0x0000, 0x010000, CRC(45d493d0) SHA1(9a549821a005fa65c2eb8b35c5f15659bd897519), "BWB","Rich & Famous (Barcrest) (MPU4) (RFC 1.3 K5)" )
+GAME_CUSTOM( 199?, m4richfm__0, m4richfm, mod4oki_bootleg_fixedret<0x1f>(R4, RT1, LPLB), mpu4, init_m4, "r+f5.10", 0x0000, 0x010000, CRC(45d493d0) SHA1(9a549821a005fa65c2eb8b35c5f15659bd897519), "BWB","Rich & Famous (Barcrest) (MPU4) (RFC 1.3 K5)" )
// "(C)1997 B.W.B." and "RF4 1.1"
-GAME_CUSTOM( 199?, m4richfm__1, m4richfm, mod4oki_bootleg_fixedret<0x2e>, mpu4, init_m4default_lextender, "r+f5.4", 0x0000, 0x010000, CRC(0441d833) SHA1(361910fd64bc7291f6200fe354c468d16e7d6c80), "BWB","Rich & Famous (Barcrest) (MPU4) (RF4 1.1 K5)" )
+GAME_CUSTOM( 199?, m4richfm__1, m4richfm, mod4oki_bootleg_fixedret<0x2e>(R4, RT1, LPLB), mpu4, init_m4, "r+f5.4", 0x0000, 0x010000, CRC(0441d833) SHA1(361910fd64bc7291f6200fe354c468d16e7d6c80), "BWB","Rich & Famous (Barcrest) (MPU4) (RF4 1.1 K5)" )
// "1997 COCO" and "RF4 1.1"
-GAME_CUSTOM( 199?, m4richfm__3, m4richfm, mod4oki_bootleg_fixedret<0x2a>, mpu4, init_m4default_lextender, "r+f55", 0x0000, 0x010000, CRC(6095a72b) SHA1(af25f7c2fb5241064ea995d35fe4fd2f242e3750), "hack","Rich & Famous (Barcrest) (MPU4) (RF4 1.1 K5, hack)" )
+GAME_CUSTOM( 199?, m4richfm__3, m4richfm, mod4oki_bootleg_fixedret<0x2a>(R4, RT1, LPLB), mpu4, init_m4, "r+f55", 0x0000, 0x010000, CRC(6095a72b) SHA1(af25f7c2fb5241064ea995d35fe4fd2f242e3750), "hack","Rich & Famous (Barcrest) (MPU4) (RF4 1.1 K5, hack)" )
// "(C)1997 B.W.B." and "RF8 1.2"
-GAME_CUSTOM( 199?, m4richfm__2, m4richfm, mod4oki_bootleg_fixedret<0x2e>, mpu4, init_m4default_lextender, "r+f5.8t", 0x0000, 0x010000, CRC(525e2520) SHA1(84b2ff86d6a54ebb3bcf0138930b2619a8733161), "BWB","Rich & Famous (Barcrest) (MPU4) (RF8 1.2 K5)" )
+GAME_CUSTOM( 199?, m4richfm__2, m4richfm, mod4oki_bootleg_fixedret<0x2e>(R4, RT1, LPLB), mpu4, init_m4, "r+f5.8t", 0x0000, 0x010000, CRC(525e2520) SHA1(84b2ff86d6a54ebb3bcf0138930b2619a8733161), "BWB","Rich & Famous (Barcrest) (MPU4) (RF8 1.2 K5)" )
// "(C)1993 BARCREST" and "RFT 0.2" but hack
-GAME_CUSTOM( 199?, m4richfm__q, m4richfm, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default_lextender, "rft20.10", 0x0000, 0x010000, CRC(41e6ef75) SHA1(d836fdea5a89b845687d2ff929365bd81737c760), "hack","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 P, hack, set 1)" )
-GAME_CUSTOM( 199?, m4richfm__z, m4richfm, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default_lextender, "rich2010", 0x0000, 0x010000, CRC(baecbdbc) SHA1(5fffecf3c91e832d3cfc13dbf5e6b74fc3d6a146), "hack","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 P, hack, set 2)" )
+GAME_CUSTOM( 199?, m4richfm__q, m4richfm, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, LPLB), mpu4, init_m4, "rft20.10", 0x0000, 0x010000, CRC(41e6ef75) SHA1(d836fdea5a89b845687d2ff929365bd81737c760), "hack","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 P, hack, set 1)" )
+GAME_CUSTOM( 199?, m4richfm__z, m4richfm, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, LPLB), mpu4, init_m4, "rich2010", 0x0000, 0x010000, CRC(baecbdbc) SHA1(5fffecf3c91e832d3cfc13dbf5e6b74fc3d6a146), "hack","Rich & Famous (Barcrest) (MPU4) (RFT 0.2 P, hack, set 2)" )
// bad dump (most of the rom is missing) but doesn't seem a 100% match for a set we have a complete dump of
-GAME_CUSTOM( 199?, m4richfm__e, m4richfm, mod4oki, mpu4, init_m4default_lextender, "rchfam8", 0x0000, 0x004000, BAD_DUMP CRC(55f16698) SHA1(9853b17bbb81371192a564376be7b3074908dbca), "Barcrest","Rich & Famous (Barcrest) (MPU4) (bad)" )
+GAME_CUSTOM( 199?, m4richfm__e, m4richfm, mod4oki(R4, RT1, LPLB), mpu4, init_m4, "rchfam8", 0x0000, 0x004000, BAD_DUMP CRC(55f16698) SHA1(9853b17bbb81371192a564376be7b3074908dbca), "Barcrest","Rich & Famous (Barcrest) (MPU4) (bad)" )
/*****************************************************************************************************************************************************************************
@@ -4048,7 +4023,7 @@ GAME_CUSTOM( 199?, m4richfm__e, m4richfm, mod4oki, mpu4, init_m4default_lexte
ROM_LOAD( name, offset, length, hash ) \
M4PRZRF_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_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::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PR8 0.1"
GAME_CUSTOM( 199?, m4przrf, 0, "pr8s.p1", 0x0000, 0x020000, CRC(bbbdd4f4) SHA1(72c2a8b3404384b524f49fc2d6507e2d8dab85cb), "Barcrest","Prize Rich & Famous (Barcrest) (MPU4) (PR8 0.1)" )
@@ -4088,40 +4063,40 @@ GAME_CUSTOM( 199?, m4przrf__j, m4przrf, "pr8y.p1", 0x0000, 0x020000, CRC(87
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "VIZ 0.6"
-GAME_CUSTOM( 199?, m4viz, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "vizs.p1", 0x0000, 0x010000, CRC(86b487dc) SHA1(62215752e1da1ca923e6b9e410c8445577be34dd), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6)" )
-GAME_CUSTOM( 199?, m4viz__d, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "vizb.p1", 0x0000, 0x010000, CRC(afdc6306) SHA1(4d35703267b3742dd7008c00ec525689c56bf227), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 B)" )
-GAME_CUSTOM( 199?, m4viz__e, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "vizc.p1", 0x0000, 0x010000, CRC(876c30fc) SHA1(f126496e87d7e84ca39d2921bf9f2be0fa2c7586), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 C)" )
-GAME_CUSTOM( 199?, m4viz__f, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "vizd.p1", 0x0000, 0x010000, CRC(46bee8cd) SHA1(4094651fd8954ca2f5cfc2bba4fc51d865c86098), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 D)" )
-GAME_CUSTOM( 199?, m4viz__g, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "vizdk.p1", 0x0000, 0x010000, CRC(24476360) SHA1(b5141a40f8c1ed3b3fbaf43ae539ae2f1aedbcca), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 DK)" )
-GAME_CUSTOM( 199?, m4viz__h, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "vizdy.p1", 0x0000, 0x010000, CRC(88807a1f) SHA1(dc1539a5e69b5f0b3f68ccf7360ff4f240f6b7c7), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 DY)" )
-GAME_CUSTOM( 199?, m4viz__i, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "vizk.p1", 0x0000, 0x010000, CRC(6647f592) SHA1(2ce7222bd9e173480ddc901f84859ca3ad7aded1), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 K)" )
-GAME_CUSTOM( 199?, m4viz__k, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "vizy.p1", 0x0000, 0x010000, CRC(0e12112d) SHA1(4a34832dd95246e80e616affe3eab3c8794ca769), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 Y)" )
+GAME_CUSTOM( 199?, m4viz, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "vizs.p1", 0x0000, 0x010000, CRC(86b487dc) SHA1(62215752e1da1ca923e6b9e410c8445577be34dd), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6)" )
+GAME_CUSTOM( 199?, m4viz__d, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "vizb.p1", 0x0000, 0x010000, CRC(afdc6306) SHA1(4d35703267b3742dd7008c00ec525689c56bf227), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 B)" )
+GAME_CUSTOM( 199?, m4viz__e, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "vizc.p1", 0x0000, 0x010000, CRC(876c30fc) SHA1(f126496e87d7e84ca39d2921bf9f2be0fa2c7586), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 C)" )
+GAME_CUSTOM( 199?, m4viz__f, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "vizd.p1", 0x0000, 0x010000, CRC(46bee8cd) SHA1(4094651fd8954ca2f5cfc2bba4fc51d865c86098), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 D)" )
+GAME_CUSTOM( 199?, m4viz__g, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "vizdk.p1", 0x0000, 0x010000, CRC(24476360) SHA1(b5141a40f8c1ed3b3fbaf43ae539ae2f1aedbcca), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 DK)" )
+GAME_CUSTOM( 199?, m4viz__h, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "vizdy.p1", 0x0000, 0x010000, CRC(88807a1f) SHA1(dc1539a5e69b5f0b3f68ccf7360ff4f240f6b7c7), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 DY)" )
+GAME_CUSTOM( 199?, m4viz__i, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "vizk.p1", 0x0000, 0x010000, CRC(6647f592) SHA1(2ce7222bd9e173480ddc901f84859ca3ad7aded1), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 K)" )
+GAME_CUSTOM( 199?, m4viz__k, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "vizy.p1", 0x0000, 0x010000, CRC(0e12112d) SHA1(4a34832dd95246e80e616affe3eab3c8794ca769), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.6 Y)" )
// "(C)1991 BARCREST" and "VIZ 0.3"
-GAME_CUSTOM( 199?, m4viz__l, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "vizzzvkn", 0x0000, 0x010000, CRC(cf5c41f5) SHA1(c9b7de0e73141833e5f8d23f0cb641b1c6094178), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.3 Y)" )
+GAME_CUSTOM( 199?, m4viz__l, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "vizzzvkn", 0x0000, 0x010000, CRC(cf5c41f5) SHA1(c9b7de0e73141833e5f8d23f0cb641b1c6094178), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.3 Y)" )
// "(C)1991 BARCREST" and "VIZ 0.2"
-GAME_CUSTOM( 199?, m4viz__b, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>, mpu4, init_m4default, "viz20pv2", 0x0000, 0x010000, CRC(7e56ff95) SHA1(83679b64881adbe547b43255374de061859e17ef), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.2 T)" )
+GAME_CUSTOM( 199?, m4viz__b, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viz_characteriser_prot>(R4, RT1), mpu4, init_m4, "viz20pv2", 0x0000, 0x010000, CRC(7e56ff95) SHA1(83679b64881adbe547b43255374de061859e17ef), "Barcrest","Viz (Barcrest) (MPU4) (VIZ 0.2 T)" )
// "(C)1994 B.W.B." and "VZ__1.0"
-GAME_CUSTOM( 199?, m4viz__m, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vi_05a__.1_1", 0x0000, 0x010000, CRC(56e0ea7a) SHA1(cbe979cdfceb2c1c7be5adaf8163b96bebbc4bb6), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 K, set 1)" )
-GAME_CUSTOM( 199?, m4viz__n, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vi_05s__.1_1", 0x0000, 0x010000, CRC(c6896e33) SHA1(7db1a5e08f1a307aac0818424fab274cd8141474), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0, set 1)" )
-GAME_CUSTOM( 199?, m4viz__o, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vi_05sb_.1_1", 0x0000, 0x010000, CRC(12fecbdf) SHA1(c0137aac536ec17c3b2ffa405f8400308f759590), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 DY, set 1)" )
-GAME_CUSTOM( 199?, m4viz__p, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vi_05sd_.1_1", 0x0000, 0x010000, CRC(9241fd92) SHA1(f3e58273089ee9b828e431a043802d4ec3948a64), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 D, set 1)" )
-GAME_CUSTOM( 199?, m4viz__u, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vii05___.1_1", 0x0000, 0x010000, CRC(22a10f78) SHA1(83411b77e5de441b0f5fa02f2b1dbc40755f41cb), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 C, set 1)" )
-
-GAME_CUSTOM( 199?, m4viz__q, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vi_10a__.1_1", 0x0000, 0x010000, CRC(e7c4e4d9) SHA1(9ac3bd60e6000e36cd2229284c48e009ea22cfdb), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 K, set 2)" )
-GAME_CUSTOM( 199?, m4viz__r, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vi_10s__.1_1", 0x0000, 0x010000, CRC(039a4620) SHA1(097335ba8846c8c8b28bf85f836ba76d22bc763d), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0, set 2)" )
-GAME_CUSTOM( 199?, m4viz__s, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vi_10sb_.1_1", 0x0000, 0x010000, CRC(4b7e6686) SHA1(97985f1ecd3a8e77f07a91c5171810e6aff13f4c), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 DY, set 2)" )
-GAME_CUSTOM( 199?, m4viz__t, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vi_10sd_.1_1", 0x0000, 0x010000, CRC(84da6fca) SHA1(8a42855b161619a56435da52dd24e8e60fb56bd8), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 D, set 2)" )
-GAME_CUSTOM( 199?, m4viz__v, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4, init_m4default, "vii10___.1_1", 0x0000, 0x010000, CRC(92e11e00) SHA1(2ebae74a39434269333ea0067163e9607926646d), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 C, set 2)" )
+GAME_CUSTOM( 199?, m4viz__m, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vi_05a__.1_1", 0x0000, 0x010000, CRC(56e0ea7a) SHA1(cbe979cdfceb2c1c7be5adaf8163b96bebbc4bb6), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 K, set 1)" )
+GAME_CUSTOM( 199?, m4viz__n, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vi_05s__.1_1", 0x0000, 0x010000, CRC(c6896e33) SHA1(7db1a5e08f1a307aac0818424fab274cd8141474), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0, set 1)" )
+GAME_CUSTOM( 199?, m4viz__o, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vi_05sb_.1_1", 0x0000, 0x010000, CRC(12fecbdf) SHA1(c0137aac536ec17c3b2ffa405f8400308f759590), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 DY, set 1)" )
+GAME_CUSTOM( 199?, m4viz__p, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vi_05sd_.1_1", 0x0000, 0x010000, CRC(9241fd92) SHA1(f3e58273089ee9b828e431a043802d4ec3948a64), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 D, set 1)" )
+GAME_CUSTOM( 199?, m4viz__u, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vii05___.1_1", 0x0000, 0x010000, CRC(22a10f78) SHA1(83411b77e5de441b0f5fa02f2b1dbc40755f41cb), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 C, set 1)" )
+
+GAME_CUSTOM( 199?, m4viz__q, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vi_10a__.1_1", 0x0000, 0x010000, CRC(e7c4e4d9) SHA1(9ac3bd60e6000e36cd2229284c48e009ea22cfdb), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 K, set 2)" )
+GAME_CUSTOM( 199?, m4viz__r, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vi_10s__.1_1", 0x0000, 0x010000, CRC(039a4620) SHA1(097335ba8846c8c8b28bf85f836ba76d22bc763d), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0, set 2)" )
+GAME_CUSTOM( 199?, m4viz__s, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vi_10sb_.1_1", 0x0000, 0x010000, CRC(4b7e6686) SHA1(97985f1ecd3a8e77f07a91c5171810e6aff13f4c), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 DY, set 2)" )
+GAME_CUSTOM( 199?, m4viz__t, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vi_10sd_.1_1", 0x0000, 0x010000, CRC(84da6fca) SHA1(8a42855b161619a56435da52dd24e8e60fb56bd8), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 D, set 2)" )
+GAME_CUSTOM( 199?, m4viz__v, m4viz, mod4oki_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R4, RT1), mpu4, init_m4, "vii10___.1_1", 0x0000, 0x010000, CRC(92e11e00) SHA1(2ebae74a39434269333ea0067163e9607926646d), "BWB","Viz (Barcrest) (MPU4) (VZ__1.0 C, set 2)" )
// different protection
//
// no copyright string and "8V1 0.6"
-GAME_CUSTOM( 199?, m4viz__j, m4viz, mod4oki_bootleg_fixedret<0x2e>, mpu4, init_m4default, "viz208c", 0x0000, 0x010000, CRC(00a65029) SHA1(8dfb68d1a9f4cd00f239ed87a1d330ccb655c35b), "hack","Viz (Barcrest) (MPU4) (8V1 0.6 C, hack, set 1)" )
-GAME_CUSTOM( 199?, m4viz__a, m4viz, mod4oki_bootleg_fixedret<0x1e>, mpu4, init_m4default, "viz20_101", 0x0000, 0x010000, CRC(0847b812) SHA1(6de9e9dad272932a22ebe457ac50da1126d931ea), "hack","Viz (Barcrest) (MPU4) (8V1 0.6 C, hack, set 2)" )
-GAME_CUSTOM( 199?, m4viz__w, m4viz, mod4oki_bootleg_fixedret<0x2e>, mpu4, init_m4default, "viz_20_.8", 0x0000, 0x010000, CRC(b4fbc43b) SHA1(4cce5e3a0c32a402b81dfd16e66d12e98704c4d2), "hack","Viz (Barcrest) (MPU4) (8V1 0.6, hack)" )
+GAME_CUSTOM( 199?, m4viz__j, m4viz, mod4oki_bootleg_fixedret<0x2e>(R4, RT1), mpu4, init_m4, "viz208c", 0x0000, 0x010000, CRC(00a65029) SHA1(8dfb68d1a9f4cd00f239ed87a1d330ccb655c35b), "hack","Viz (Barcrest) (MPU4) (8V1 0.6 C, hack, set 1)" )
+GAME_CUSTOM( 199?, m4viz__a, m4viz, mod4oki_bootleg_fixedret<0x1e>(R4, RT1), mpu4, init_m4, "viz20_101", 0x0000, 0x010000, CRC(0847b812) SHA1(6de9e9dad272932a22ebe457ac50da1126d931ea), "hack","Viz (Barcrest) (MPU4) (8V1 0.6 C, hack, set 2)" )
+GAME_CUSTOM( 199?, m4viz__w, m4viz, mod4oki_bootleg_fixedret<0x2e>(R4, RT1), mpu4, init_m4, "viz_20_.8", 0x0000, 0x010000, CRC(b4fbc43b) SHA1(4cce5e3a0c32a402b81dfd16e66d12e98704c4d2), "hack","Viz (Barcrest) (MPU4) (8V1 0.6, hack)" )
// "RICK LUVS BRIAN" and "8V1 1.0"
-GAME_CUSTOM( 199?, m4viz__c, m4viz, mod4oki_bootleg_fixedret<0x0c>, mpu4, init_m4default, "viz58c", 0x0000, 0x010000, CRC(95b8918b) SHA1(4ad4ff9098e98c2076e7058493c181da705acb52), "hack","Viz (Barcrest) (MPU4) (8V1 1.0 C, hack, set 3)" )
+GAME_CUSTOM( 199?, m4viz__c, m4viz, mod4oki_bootleg_fixedret<0x0c>(R4, RT1), mpu4, init_m4, "viz58c", 0x0000, 0x010000, CRC(95b8918b) SHA1(4ad4ff9098e98c2076e7058493c181da705acb52), "hack","Viz (Barcrest) (MPU4) (8V1 1.0 C, hack, set 3)" )
/*****************************************************************************************************************************************************************************
@@ -4145,7 +4120,7 @@ GAME_CUSTOM( 199?, m4viz__c, m4viz, mod4oki_bootleg_fixedret<0x0c>, mpu4, init
ROM_LOAD( name, offset, length, hash ) \
M4TAKEPK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4jackpot10_20p, 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), mpu4jackpot10_20p, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// boots with 8GBP Token set for Jackpot
@@ -4181,7 +4156,7 @@ GAME_CUSTOM( 199?, m4takepk__s, m4takepk, "tphy.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4TAKEPK_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
//
@@ -4198,7 +4173,7 @@ GAME_CUSTOM( 199?, m4takepk__t, m4takepk, "typ15f", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4TAKEPK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x60>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x60>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// below sets are all smaller (BWB sets / hacks of them?)
// "(C)1997 B.W.B." and "TAC 2.3"
@@ -4211,7 +4186,7 @@ GAME_CUSTOM( 199?, m4takepk__1, m4takepk, "typ5p10p.bin", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4TAKEPK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x1c>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x1c>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// no copyright string and "TAC 2.3"
@@ -4225,7 +4200,7 @@ GAME_CUSTOM( 199?, m4takepk__w, m4takepk, "typ510s", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4TAKEPK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0xa8>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0xa8>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// no copyright string and "TA4 2.1"
GAME_CUSTOM( 199?, m4takepk__x, m4takepk, "typ55", 0x0000, 0x010000, CRC(6837344f) SHA1(4d5c6ea005d0916f27a7f445b37ce9252549c61f), "hack","Take Your Pick (Barcrest) (MPU4) (TA4 2.1, hack, set 1)" )
@@ -4238,7 +4213,7 @@ GAME_CUSTOM( 199?, m4takepk__y, m4takepk, "typ55s", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4TAKEPK_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// MUX SELECTS ALARM
// no copyright string and "TA8 2.2"
@@ -4264,7 +4239,7 @@ GAME_CUSTOM( 199?, m4takepk__0, m4takepk, "typ58t", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4OVERMN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::otm_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::otm_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "OTT 0.2"
GAME_CUSTOM( 199?, m4overmn, 0, "otts.p1", 0x0000, 0x010000, CRC(6daf58a4) SHA1(e505a18b67dec54446e6d94a5d1c3bba13099619), "Barcrest","Over The Moon (Barcrest) (MPU4) (OTT 0.2)" )
@@ -4298,7 +4273,7 @@ GAME_CUSTOM( 199?, m4overmn__8, m4overmn, "otuy.p1", 0x0000, 0x010000, CRC
ROM_LOAD( name, offset, length, hash ) \
M4OVERMN_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 "OT8 0.1"
GAME_CUSTOM( 199?, m4overmn__f, m4overmn, "ot8s.p1", 0x0000, 0x010000, CRC(db1bacdb) SHA1(fc2257eedec532094f3c229bcf215a0fde430d2b), "Barcrest","Over The Moon (Barcrest) (MPU4) (OT8 0.1)" )
@@ -4346,42 +4321,42 @@ GAME_CUSTOM( 199?, m4overmn__n, m4overmn, "otny.p1", 0x0000, 0x010000, CRC
// "(C)1993 BARCREST" and "LUX 0.6"
-GAME_CUSTOM( 199?, m4luxor, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, mpu4, init_m4default_lextender, "luxs.p1", 0x0000, 0x010000, CRC(78d6f05a) SHA1(53de98b9248c67c83f255d33d5963bebb757d0af), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6)" )
-GAME_CUSTOM( 199?, m4luxor__f, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, mpu4, init_m4default_lextender, "luxc.p1", 0x0000, 0x010000, CRC(47d1c4dc) SHA1(0856fac4a7ec14dc1df24446e1355ed05bb5f1c1), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6 C)" )
-GAME_CUSTOM( 199?, m4luxor__g, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, mpu4, init_m4default_lextender, "luxd.p1", 0x0000, 0x010000, CRC(8f949379) SHA1(4f0a94d06b8e7036acaae5c0c42c91481837d3a1), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6 D)" )
-GAME_CUSTOM( 199?, m4luxor__h, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, mpu4, init_m4default_lextender, "luxk.p1", 0x0000, 0x010000, CRC(bd5eaf2d) SHA1(f9a3f3139d6b7ff4fcec805e0ca6e8ab1c3c10dd), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6 K)" )
-GAME_CUSTOM( 199?, m4luxor__i, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, mpu4, init_m4default_lextender, "luxor_std.bin", 0x0000, 0x010000, CRC(2c565bf7) SHA1(61612abbda037b63e2cda7746be8cf64b4563d43), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6 Y)" )
+GAME_CUSTOM( 199?, m4luxor, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "luxs.p1", 0x0000, 0x010000, CRC(78d6f05a) SHA1(53de98b9248c67c83f255d33d5963bebb757d0af), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6)" )
+GAME_CUSTOM( 199?, m4luxor__f, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "luxc.p1", 0x0000, 0x010000, CRC(47d1c4dc) SHA1(0856fac4a7ec14dc1df24446e1355ed05bb5f1c1), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6 C)" )
+GAME_CUSTOM( 199?, m4luxor__g, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "luxd.p1", 0x0000, 0x010000, CRC(8f949379) SHA1(4f0a94d06b8e7036acaae5c0c42c91481837d3a1), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6 D)" )
+GAME_CUSTOM( 199?, m4luxor__h, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "luxk.p1", 0x0000, 0x010000, CRC(bd5eaf2d) SHA1(f9a3f3139d6b7ff4fcec805e0ca6e8ab1c3c10dd), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6 K)" )
+GAME_CUSTOM( 199?, m4luxor__i, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "luxor_std.bin", 0x0000, 0x010000, CRC(2c565bf7) SHA1(61612abbda037b63e2cda7746be8cf64b4563d43), "Barcrest","Luxor (Barcrest) (MPU4) (LUX 0.6 Y)" )
// "(C)1995 B.W.B." and "LX5 1.0"
-GAME_CUSTOM( 199?, m4luxor__q, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lx_05a__.1o1", 0x0000, 0x010000, CRC(7b81f1b9) SHA1(412a8961571f279d70c05ef26c565b4b2a588060), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0 K)" )
-GAME_CUSTOM( 199?, m4luxor__r, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lx_05s__.1o1", 0x0000, 0x010000, CRC(2bf86940) SHA1(cf96a7a12db84fc028766da55ca06d2350f9d08f), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0)" )
-GAME_CUSTOM( 199?, m4luxor__s, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lx_05sb_.1o1", 0x0000, 0x010000, CRC(e210c1b6) SHA1(023b1e0b36c4d146af5e958be72575590588b3fd), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0 YD)" )
-GAME_CUSTOM( 199?, m4luxor__t, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lx_05sd_.1o1", 0x0000, 0x010000, CRC(8727963a) SHA1(4585c0e3fb14f54684ff199be9010ed7b5cb97c3), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0 D)" )
-GAME_CUSTOM( 199?, m4luxor__y, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lxi05a__.1o1", 0x0000, 0x010000, CRC(7a5fe065) SHA1(c44b41d01175c10051ae4cd1453be3411842825e), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0 CK)" )
+GAME_CUSTOM( 199?, m4luxor__q, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lx_05a__.1o1", 0x0000, 0x010000, CRC(7b81f1b9) SHA1(412a8961571f279d70c05ef26c565b4b2a588060), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0 K)" )
+GAME_CUSTOM( 199?, m4luxor__r, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lx_05s__.1o1", 0x0000, 0x010000, CRC(2bf86940) SHA1(cf96a7a12db84fc028766da55ca06d2350f9d08f), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0)" )
+GAME_CUSTOM( 199?, m4luxor__s, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lx_05sb_.1o1", 0x0000, 0x010000, CRC(e210c1b6) SHA1(023b1e0b36c4d146af5e958be72575590588b3fd), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0 YD)" )
+GAME_CUSTOM( 199?, m4luxor__t, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lx_05sd_.1o1", 0x0000, 0x010000, CRC(8727963a) SHA1(4585c0e3fb14f54684ff199be9010ed7b5cb97c3), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0 D)" )
+GAME_CUSTOM( 199?, m4luxor__y, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lxi05a__.1o1", 0x0000, 0x010000, CRC(7a5fe065) SHA1(c44b41d01175c10051ae4cd1453be3411842825e), "BWB","Luxor (Barcrest) (MPU4) (LX5 1.0 CK)" )
// "(C)1994 B.W.B." and "LX101.0"
-GAME_CUSTOM( 199?, m4luxor__u, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lx_10a__.1o1", 0x0000, 0x010000, CRC(ce8e6c05) SHA1(b48bc01d1a069881e9b9db1a4959c7b57e80f28a), "BWB","Luxor (Barcrest) (MPU4) (LX101.0 K)" )
-GAME_CUSTOM( 199?, m4luxor__v, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lx_10s__.1o1", 0x0000, 0x010000, CRC(9f0f5b6b) SHA1(9f67500d62921dd680bd864856206306adc3f2f6), "BWB","Luxor (Barcrest) (MPU4) (LX101.0)" )
-GAME_CUSTOM( 199?, m4luxor__w, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lx_10sb_.1o1", 0x0000, 0x010000, CRC(bd020920) SHA1(a6b5c11c82344afc1cdd350b9f31d1257be72615), "BWB","Luxor (Barcrest) (MPU4) (LX101.0 YD)" )
-GAME_CUSTOM( 199?, m4luxor__x, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lx_10sd_.1o1", 0x0000, 0x010000, CRC(cc59d370) SHA1(a428d93c005b629e86810c85ea91630a354e170b), "BWB","Luxor (Barcrest) (MPU4) (LX101.0 D)" )
-GAME_CUSTOM( 199?, m4luxor__z, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_lextender, "lxi10a__.1o1", 0x0000, 0x010000, CRC(17989464) SHA1(67aa9cc01d89ed4caeb33885f53dcaee762ccb6d), "BWB","Luxor (Barcrest) (MPU4) (LX101.0 CK)" )
+GAME_CUSTOM( 199?, m4luxor__u, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lx_10a__.1o1", 0x0000, 0x010000, CRC(ce8e6c05) SHA1(b48bc01d1a069881e9b9db1a4959c7b57e80f28a), "BWB","Luxor (Barcrest) (MPU4) (LX101.0 K)" )
+GAME_CUSTOM( 199?, m4luxor__v, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lx_10s__.1o1", 0x0000, 0x010000, CRC(9f0f5b6b) SHA1(9f67500d62921dd680bd864856206306adc3f2f6), "BWB","Luxor (Barcrest) (MPU4) (LX101.0)" )
+GAME_CUSTOM( 199?, m4luxor__w, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lx_10sb_.1o1", 0x0000, 0x010000, CRC(bd020920) SHA1(a6b5c11c82344afc1cdd350b9f31d1257be72615), "BWB","Luxor (Barcrest) (MPU4) (LX101.0 YD)" )
+GAME_CUSTOM( 199?, m4luxor__x, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lx_10sd_.1o1", 0x0000, 0x010000, CRC(cc59d370) SHA1(a428d93c005b629e86810c85ea91630a354e170b), "BWB","Luxor (Barcrest) (MPU4) (LX101.0 D)" )
+GAME_CUSTOM( 199?, m4luxor__z, m4luxor, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPLB), mpu4, init_m4, "lxi10a__.1o1", 0x0000, 0x010000, CRC(17989464) SHA1(67aa9cc01d89ed4caeb33885f53dcaee762ccb6d), "BWB","Luxor (Barcrest) (MPU4) (LX101.0 CK)" )
// different protection
// no copyright string and "V1 0.6" hacked to say 'From EGYPT' rather than the manufacturer
-GAME_CUSTOM( 199?, m4luxor__j, m4luxor, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default_lextender, "luxor.rom", 0x0000, 0x010000, CRC(55277510) SHA1(9a866c36a398df52c54b554cd8085078c1f1954b), "hack","Luxor (Barcrest) (MPU4) (V1 0.6, hack, set 1)" )
-GAME_CUSTOM( 199?, m4luxor__c, m4luxor, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_lextender, "lux208c", 0x0000, 0x010000, CRC(f57bae67) SHA1(3a2523a2121948480381f49e26e870b10d541304), "hack","Luxor (Barcrest) (MPU4) (V1 0.6, hack, set 2)" )
-GAME_CUSTOM( 199?, m4luxor__o, m4luxor, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_lextender, "lux_20.4", 0x0000, 0x010000, CRC(50b3e5cc) SHA1(ff08095c01d8eeff320b5a04fe9f7e1888690cf8), "hack","Luxor (Barcrest) (MPU4) (V1 0.6, hack, set 3)" )
-GAME_CUSTOM( 199?, m4luxor__p, m4luxor, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_lextender, "lux_20_8", 0x0000, 0x010000, CRC(6c9a7152) SHA1(e38e8452e0d3f5b0e8ac51da272ab9f2e57e1d89), "hack","Luxor (Barcrest) (MPU4) (V1 0.6, hack, set 4)" )
+GAME_CUSTOM( 199?, m4luxor__j, m4luxor, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, LPLB), mpu4, init_m4, "luxor.rom", 0x0000, 0x010000, CRC(55277510) SHA1(9a866c36a398df52c54b554cd8085078c1f1954b), "hack","Luxor (Barcrest) (MPU4) (V1 0.6, hack, set 1)" )
+GAME_CUSTOM( 199?, m4luxor__c, m4luxor, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPLB), mpu4, init_m4, "lux208c", 0x0000, 0x010000, CRC(f57bae67) SHA1(3a2523a2121948480381f49e26e870b10d541304), "hack","Luxor (Barcrest) (MPU4) (V1 0.6, hack, set 2)" )
+GAME_CUSTOM( 199?, m4luxor__o, m4luxor, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPLB), mpu4, init_m4, "lux_20.4", 0x0000, 0x010000, CRC(50b3e5cc) SHA1(ff08095c01d8eeff320b5a04fe9f7e1888690cf8), "hack","Luxor (Barcrest) (MPU4) (V1 0.6, hack, set 3)" )
+GAME_CUSTOM( 199?, m4luxor__p, m4luxor, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPLB), mpu4, init_m4, "lux_20_8", 0x0000, 0x010000, CRC(6c9a7152) SHA1(e38e8452e0d3f5b0e8ac51da272ab9f2e57e1d89), "hack","Luxor (Barcrest) (MPU4) (V1 0.6, hack, set 4)" )
// "ROBIN HOOD" and "LX5 1.0"
-GAME_CUSTOM( 199?, m4luxor__a, m4luxor, mod4oki_bootleg_fixedret<0x1f>, mpu4, init_m4default_lextender, "lux05_101", 0x0000, 0x010000, CRC(8f4dc4f4) SHA1(c9743a1b79b377313504296a060dff3f413a7a9d), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 1)" )
-GAME_CUSTOM( 199?, m4luxor__d, m4luxor, mod4oki_bootleg_fixedret<0x2b>, mpu4, init_m4default_lextender, "lux55", 0x0000, 0x010000, CRC(997419ab) SHA1(c616a5d6cb347963e7e5c5b88912c248bae184ca), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 2)" )
-GAME_CUSTOM( 199?, m4luxor__e, m4luxor, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_lextender, "lux58c", 0x0000, 0x010000, CRC(da408721) SHA1(971413620d1f304a026d3adc68f6ac5c1d104e20), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 3)" )
-GAME_CUSTOM( 199?, m4luxor__k, m4luxor, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_lextender, "lux_05_4", 0x0000, 0x010000, CRC(335503ec) SHA1(dd03096aa98e4cac9fade6e77f9f8a8ad9a64287), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 4)" )
-GAME_CUSTOM( 199?, m4luxor__l, m4luxor, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_lextender, "lux_05_8", 0x0000, 0x010000, CRC(43a15814) SHA1(694c8c6ee695bb746391f5269f540c995fc18002), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 5)" )
+GAME_CUSTOM( 199?, m4luxor__a, m4luxor, mod4oki_bootleg_fixedret<0x1f>(R4, RT1, LPLB), mpu4, init_m4, "lux05_101", 0x0000, 0x010000, CRC(8f4dc4f4) SHA1(c9743a1b79b377313504296a060dff3f413a7a9d), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 1)" )
+GAME_CUSTOM( 199?, m4luxor__d, m4luxor, mod4oki_bootleg_fixedret<0x2b>(R4, RT1, LPLB), mpu4, init_m4, "lux55", 0x0000, 0x010000, CRC(997419ab) SHA1(c616a5d6cb347963e7e5c5b88912c248bae184ca), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 2)" )
+GAME_CUSTOM( 199?, m4luxor__e, m4luxor, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPLB), mpu4, init_m4, "lux58c", 0x0000, 0x010000, CRC(da408721) SHA1(971413620d1f304a026d3adc68f6ac5c1d104e20), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 3)" )
+GAME_CUSTOM( 199?, m4luxor__k, m4luxor, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPLB), mpu4, init_m4, "lux_05_4", 0x0000, 0x010000, CRC(335503ec) SHA1(dd03096aa98e4cac9fade6e77f9f8a8ad9a64287), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 4)" )
+GAME_CUSTOM( 199?, m4luxor__l, m4luxor, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPLB), mpu4, init_m4, "lux_05_8", 0x0000, 0x010000, CRC(43a15814) SHA1(694c8c6ee695bb746391f5269f540c995fc18002), "hack","Luxor (Barcrest) (MPU4) (LX5 1.0, hack, set 5)" )
// these are unusual in that they do both the initial check and secondary check at 0x812, rather than the secondary check as the usual characteriser address
// both checks must pass to avoid scrambled lamps
-GAME_CUSTOM( 199?, m4luxor__b, m4luxor, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default_lextender, "lux10_101", 0x0000, 0x010000, CRC(8965c7be) SHA1(ca05803bc7d7a96e25dc0b025c2683b4679789fb), "Bwb / hack?","Luxor (Barcrest) (MPU4) (LX101.0, hack?, set 1)" )
-GAME_CUSTOM( 199?, m4luxor__m, m4luxor, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_lextender, "lux_10_4", 0x0000, 0x010000, CRC(122461d9) SHA1(a347c834b27a00abc1864a1e00316a491d04d84b), "Bwb / hack?","Luxor (Barcrest) (MPU4) (LX101.0, hack?, set 2)" )
-GAME_CUSTOM( 199?, m4luxor__n, m4luxor, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_lextender, "lux_10_8", 0x0000, 0x010000, CRC(544208e7) SHA1(85e2ff663b7500ee6bb0a900ee5ef48f7bf1934a), "Bwb / hack?","Luxor (Barcrest) (MPU4) (LX101.0, hack?, set 3)" )
+GAME_CUSTOM( 199?, m4luxor__b, m4luxor, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, LPLB), mpu4, init_m4, "lux10_101", 0x0000, 0x010000, CRC(8965c7be) SHA1(ca05803bc7d7a96e25dc0b025c2683b4679789fb), "Bwb / hack?","Luxor (Barcrest) (MPU4) (LX101.0, hack?, set 1)" )
+GAME_CUSTOM( 199?, m4luxor__m, m4luxor, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPLB), mpu4, init_m4, "lux_10_4", 0x0000, 0x010000, CRC(122461d9) SHA1(a347c834b27a00abc1864a1e00316a491d04d84b), "Bwb / hack?","Luxor (Barcrest) (MPU4) (LX101.0, hack?, set 2)" )
+GAME_CUSTOM( 199?, m4luxor__n, m4luxor, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPLB), mpu4, init_m4, "lux_10_8", 0x0000, 0x010000, CRC(544208e7) SHA1(85e2ff663b7500ee6bb0a900ee5ef48f7bf1934a), "Bwb / hack?","Luxor (Barcrest) (MPU4) (LX101.0, hack?, set 3)" )
/*****************************************************************************************************************************************************************************
@@ -4403,7 +4378,7 @@ GAME_CUSTOM( 199?, m4luxor__n, m4luxor, mod4oki_bootleg_fixedret<0x2d>, mpu4, i
ROM_LOAD( name, offset, length, hash ) \
M4PRZLUX_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "PLX 0.2"
GAME_CUSTOM( 199?, m4przlux, 0, "plxs.p1", 0x0000, 0x010000, CRC(0aea0339) SHA1(28da52924fe2bf00799ef466143103e08399f5f5), "Barcrest","Prize Luxor (Barcrest) (MPU4) (PLX 0.2)" )
@@ -4434,7 +4409,7 @@ GAME_CUSTOM( 199?, m4przlux__f, m4przlux, "plxy.p1", 0x0000, 0x010000, CRC
ROM_LOAD( name, offset, length, hash ) \
M4HIJINX_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 )
// boots
// "(C)1993 BARCREST" and "JNX 1.0"
@@ -4466,7 +4441,7 @@ GAME_CUSTOM( 199?, m4hijinx__1, m4hijinx, "jns03y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4HIJINX_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m407_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::m407_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "JNS 0.2"
GAME_CUSTOM( 199?, m4hijinx__n, m4hijinx, "jns02s.p1", 0x0000, 0x020000, CRC(42df2639) SHA1(8ed6addfc85cfeab4c5f03c24a692a9c392a8bc2), "Barcrest","Hi Jinx (Barcrest) (MPU4) (JNS 0.2)" )
@@ -4496,7 +4471,7 @@ GAME_CUSTOM( 199?, m4hijinx__5, m4hijinx, "jnx05h.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4HIJINX_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
@@ -4528,7 +4503,7 @@ GAME_CUSTOM( 199?, m4hijinx__b, m4hijinx, "hij15t", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4CASHLN_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 "CLS 0.4"
GAME_CUSTOM( 199?, m4cashln, 0, "cls04s.p1", 0x0000, 0x020000, CRC(c8b7f355) SHA1(437324bf499ba49ecbb3854f5f787da5f575f7f5), "Barcrest","Cash Lines (Barcrest) (MPU4) (CLS 0.4)" )
@@ -4567,7 +4542,7 @@ GAME_CUSTOM( 199?, m4cashln__2, m4cashln, "cli12y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4CASHLN_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 )
// "(C)1993 BARCREST" and "CLS 0.3"
GAME_CUSTOM( 199?, m4cashln__af, m4cashln, "cls03s.p1", 0x0000, 0x020000, CRC(cb9a86b2) SHA1(2b4aee61c0070d295ba81ffa5739ceb8e05dc0e8), "Barcrest","Cash Lines (Barcrest) (MPU4) (CLS 0.3)" )
@@ -4636,7 +4611,7 @@ GAME_CUSTOM( 199?, m4cashln__a6, m4cashln, "ncc10y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4CASHLN_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 )
// these have different protection
@@ -4665,7 +4640,7 @@ GAME_CUSTOM( 199?, m4cashln__b, m4cashln, "cl15t", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4LUCKLV_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 )
// "(C)1991 BARCREST" and "LLV 0.2"
GAME_CUSTOM( 199?, m4lucklv, 0, "llvs.p1", 0x0000, 0x010000, CRC(30727bc9) SHA1(c32112d0181f629540b31ce9959834111dbf7e0e), "Barcrest","Lucky Las Vegas (Barcrest) (MPU4) (LLV 0.2)" )
@@ -4692,7 +4667,7 @@ GAME_CUSTOM( 199?, m4lucklv__s, m4lucklv, "ll8y.p1", 0x0000, 0x010000, CRC
ROM_LOAD( name, offset, length, hash ) \
M4LUCKLV_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)1991 BARCREST" and "LL3 0.1"
GAME_CUSTOM( 199?, m4lucklv__h, m4lucklv, "ll3s.p1", 0x0000, 0x010000, CRC(fdda2e78) SHA1(f68b274b6af7b44347b8f684f6e8a9342d222590), "Barcrest","Lucky Las Vegas (Barcrest) (MPU4) (LL3 0.1)" )
@@ -4748,7 +4723,7 @@ GAME_CUSTOM( 199?, m4lucklv__ae, m4lucklv, "lluy.p1", 0x0000, 0x010000, CRC
ROM_LOAD( name, offset, length, hash ) \
M4LVLCL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cashencounters_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cashencounters_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1998 BWB" and "LLU 0.1" // the LLU code is also used by some of the Barcrest sets, these are not the same version!
GAME_CUSTOM( 199?, m4lvlcl, 0, "ll__x__x.1_1", 0x0000, 0x010000, CRC(1ef1c5b4) SHA1(455c147f158f8a36a9add9b984abc22af78258cf), "BWB","Lucky Las Vegas Classic (Barcrest) (MPU4) (LLU 0.1)" )
@@ -4780,7 +4755,7 @@ GAME_CUSTOM( 199?, m4lvlcl__f, m4lvlcl, "ll__xgdx.3_1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4LUCKST_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 "LSS 0.7"
GAME_CUSTOM( 199?, m4luckst__2, m4luckst, "lss07s.p1", 0x0000, 0x020000, CRC(f4546d1a) SHA1(fed65704693e11087825b1dfda4df28ee6d2d3be), "Barcrest","Lucky Strike (Barcrest) (MPU4) (LSS 0.7)" )
@@ -4819,7 +4794,7 @@ GAME_CUSTOM( 199?, m4luckst__at, m4luckst, "lst10y.p1", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4LUCKST_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::luckystrike_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::luckystrike_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "LSS 0.6" // doesn't show the extension codes on startup
GAME_CUSTOM( 199?, m4luckst, 0, "lss06s.p1", 0x0000, 0x020000, CRC(b6a69478) SHA1(6b05b7f9af94a83adfdff328d4132f72a1dfb19f), "Barcrest","Lucky Strike (Barcrest) (MPU4) (LSS 0.6)" )
@@ -4858,7 +4833,7 @@ GAME_CUSTOM( 199?, m4luckst__ag, m4luckst, "lst09y.p1", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4LUCKST_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::luckystrikealt_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::luckystrikealt_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1998 BWB" and "LSS 1.0"
GAME_CUSTOM( 199?, m4luckst__aw, m4luckst, "ls__xa_x.1_1", 0x0000, 0x020000, CRC(a9642503) SHA1(2765c4d8943678446c516918035d7a888a812aae), "BWB","Lucky Strike (Barcrest) (MPU4) (LSS 1.0 K)" )
@@ -4871,7 +4846,7 @@ GAME_CUSTOM( 199?, m4luckst__aw, m4luckst, "ls__xa_x.1_1", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4LUCKST_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x29>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x29>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1998 BWB" and "LSS 1.0" but non-standard protection check, so hack
GAME_CUSTOM( 199?, m4luckst__av, m4luckst, "ls55", 0x0000, 0x020000, CRC(823e805b) SHA1(17f09fd53188950a8d98ac04cd94785947b52b01), "hack","Lucky Strike (Barcrest) (MPU4) (LSS 1.0 K, hack)" )
@@ -4883,7 +4858,7 @@ GAME_CUSTOM( 199?, m4luckst__av, m4luckst, "ls55", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4LUCKST_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x1c>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x1c>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// no copyright string and "LSS 0.6"
GAME_CUSTOM( 199?, m4luckst__au, m4luckst, "lstrikegame10-8t.bin", 0x0000, 0x020000, CRC(709c2dbf) SHA1(bba8d7af9502911ffa1c086b993484ab78ad38ac), "hack","Lucky Strike (Barcrest) (MPU4) (LSS 0.6 C, hack, set 1)" )
@@ -4895,7 +4870,7 @@ GAME_CUSTOM( 199?, m4luckst__au, m4luckst, "lstrikegame10-8t.bin", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4LUCKST_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 and "LST 0.9"
GAME_CUSTOM( 199?, m4luckst__a, m4luckst, "ls15g", 0x0000, 0x020000, CRC(b942ac91) SHA1(e77b2acd07cac9b747731f9e0637112fc6bf94c7), "hack","Lucky Strike (Barcrest) (MPU4) (LST 0.9, hack)" )
@@ -4907,7 +4882,7 @@ GAME_CUSTOM( 199?, m4luckst__a, m4luckst, "ls15g", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4LUCKST_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x72>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x72>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// no copyright string and "LSS 0.6"
GAME_CUSTOM( 199?, m4luckst__b, m4luckst, "ls15t", 0x0000, 0x020000, CRC(20447a20) SHA1(ca2ba566317ca87afcc2501e551c1326b9712526), "hack","Lucky Strike (Barcrest) (MPU4) (LSS 0.6 C, hack, set 2)" )
@@ -4923,39 +4898,32 @@ GAME_CUSTOM( 199?, m4luckst__b, m4luckst, "ls15t", 0x0000, 0
// gives Wrong Sound Need V1
// ALM17, use Q to open door to run anyway
-void mpu4mod4oki_machines_state::init_m4tenten()
-{
- init_m4default();
-// init_m4default();
- //Derived from 10_x_10_(Barcrest)_[C01_v1-0_1024_10jp].gam
- use_m4_hopper_duart_a();
- use_m4_standard_reels();
- //PCKEY =9
- //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=true
- //DIP2_6=false
- //DIP2_7=false
- //Sound barcrest1
- //Standard
- //Volume 0 Stereo= 1
- //Sample rate 16000 LVD= 0
- //Front door code 39 Cash door code 38
-}
+//Derived from 10_x_10_(Barcrest)_[C01_v1-0_1024_10jp].gam
+//PCKEY =9
+//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=true
+//DIP2_6=false
+//DIP2_7=false
+//Sound barcrest1
+//Standard
+//Volume 0 Stereo= 1
+//Sample rate 16000 LVD= 0
+//Front door code 39 Cash door code 38
#define M4TENTEN_EXTRA_ROMS \
ROM_REGION( 0x080000, "msm6376", 0 ) \
@@ -4968,7 +4936,7 @@ void mpu4mod4oki_machines_state::init_m4tenten()
ROM_LOAD( name, offset, length, hash ) \
M4TENTEN_EXTRA_ROMS \
ROM_END \
- GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4tenten, ROT0, company, title, GAME_FLAGS, layout_m4tenten )
+ GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, HDA), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS, layout_m4tenten )
// "(C)1991 BARCREST" and "T2T 0.1"
GAME_CUSTOM( 199?, m4tenten__af, m4tenten, "t2t01s.p1", 0x0000, 0x010000, CRC(75b421e3) SHA1(d5de7485180baf9d8458a895edbfd65310fed2cc), "Barcrest","10 X 10 (Barcrest) (MPU4) (T2T 0.1)" )
@@ -5014,7 +4982,7 @@ GAME_CUSTOM( 199?, m4tenten__a2, m4tenten, "tst01y.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4TENTEN_EXTRA_ROMS \
ROM_END \
- GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4tenten, ROT0, company, title, GAME_FLAGS, layout_m4tenten )
+ GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1, HDA), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS, layout_m4tenten )
// "(C)1991 BARCREST" and "T20 0.2"
GAME_CUSTOM( 199?, m4tenten, 0, "t2002s.p1", 0x0000, 0x010000, CRC(6cd9fa10) SHA1(8efe36e3fc5b709fa4363194634686d62b5d6609), "Barcrest","10 X 10 (Barcrest) (MPU4) (T20 0.2)" )
@@ -5062,38 +5030,32 @@ GAME_CUSTOM( 199?, m4tenten__5, m4tenten, "t2504y.p1", 0x0000, 0x010000,
*****************************************************************************************************************************************************************************/
-void mpu4mod4oki_machines_state::init_m4andyfh()
-{
- //Derived from Andy's_Full_House_(Barcrest)_[C01_800_10jp].gam
- init_m4default();
- use_m4_hopper_tubes();
- use_m4_standard_reels();
- //PCKEY =b
- //STKEY =2
- //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=true
- //DIP2_1=true
- //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 Andy's_Full_House_(Barcrest)_[C01_800_10jp].gam
+//PCKEY =b
+//STKEY =2
+//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=true
+//DIP2_1=true
+//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
#define M4ANDYFH_EXTRA_ROMS \
ROM_REGION( 0x100000, "msm6376", 0 ) \
@@ -5107,7 +5069,7 @@ void mpu4mod4oki_machines_state::init_m4andyfh()
ROM_LOAD( name, offset, length, hash ) \
M4ANDYFH_EXTRA_ROMS \
ROM_END \
- GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4andyfh, ROT0, company, title, GAME_FLAGS, layout_m4andyfh )
+ GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1, HT), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS, layout_m4andyfh )
// "(C)1991 BARCREST" and "AFH 0.1"
@@ -5182,7 +5144,7 @@ GAME_CUSTOM( 199?, m4andyfh__a4, m4andyfh, "cauy.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4ANDYFH_EXTRA_ROMS \
ROM_END \
- GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::saynomore_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4andyfh, ROT0, company, title, GAME_FLAGS, layout_m4andyfh )
+ GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::saynomore_characteriser_prot>(R4, RT1, HT), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS, layout_m4andyfh )
// "(C)1991 BARCREST" and "AFU 0.2"
GAME_CUSTOM( 199?, m4andyfh__ac, m4andyfh, "afus.p1", 0x0000, 0x010000, CRC(efbde76c) SHA1(abad98f2affb46e449a50f5a43729160b275294b), "Barcrest","Andy's Full House (Barcrest) (MPU4) (AFU 0.2)" )
@@ -5215,7 +5177,7 @@ GAME_CUSTOM( 199?, m4andyfh__ad, m4andyfh, "afuy.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4BDASH_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 "BLD 1.0"
GAME_CUSTOM( 199?, m4bdash__2, m4bdash, "bld10s.p1", 0x0000, 0x020000, CRC(c59c186b) SHA1(83f16e15a215fe1cf3c07fac7268b00c55e0ff5b), "Barcrest","Boulder Dash (Barcrest) (MPU4) (BLD 1.0)" )
@@ -5255,7 +5217,7 @@ GAME_CUSTOM( 199?, m4bdash__au, m4bdash, "bls02y.p1", 0x0000, 0x020000, CR
ROM_LOAD( name, offset, length, hash ) \
M4BDASH_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bdash_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::bdash_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// many of the sets below won't show the BAD CHR error in the display if it's incorrect
@@ -5299,7 +5261,7 @@ GAME_CUSTOM( 199?, m4bdash__p, m4bdash, "bld07y.p1", 0x0000, 0x020000, CR
ROM_LOAD( name, offset, length, hash ) \
M4BDASH_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::tictak_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::tictak_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1999 BWB" and "BO_ 2.0"
GAME_CUSTOM( 199?, m4bdash__ax, m4bdash, "bo__x__x.2_0", 0x0000, 0x020000, CRC(7e54982f) SHA1(c5187d2f6a5b202af5fd6326d52451d3b3f48f33), "BWB","Boulder Dash (Barcrest) (MPU4) (BO_ 2.0)" )
@@ -5319,7 +5281,7 @@ GAME_CUSTOM( 199?, m4bdash__a4, m4bdash, "bo__xb_x.2_1", 0x0000, 0x020000, CR
ROM_LOAD( name, offset, length, hash ) \
M4BDASH_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 and "BLD 0.7"
@@ -5334,7 +5296,7 @@ GAME_CUSTOM( 199?, m4bdash__aw, m4bdash, "bold15t", 0x0000, 0x020000, CR
ROM_LOAD( name, offset, length, hash ) \
M4BDASH_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 "BLD 1.0"
GAME_CUSTOM( 199?, m4bdash__a, m4bdash, "bdvarg.bin", 0x0000, 0x020000, CRC(99d579e7) SHA1(afc47144e0a8d464d8547b1ad14b0a3a1c15c027), "hack","Boulder Dash (Barcrest) (MPU4) (BLD 1.0, hack)" )
@@ -5358,7 +5320,7 @@ GAME_CUSTOM( 199?, m4bdash__a, m4bdash, "bdvarg.bin", 0x0000, 0x020000, CR
ROM_LOAD( name, offset, length, hash ) \
M4PRZMON_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_six_alt, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>(R6A, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "FP8 0.1"
GAME_CUSTOM( 199?, m4przmon, 0, "fp8s.p1", 0x0000, 0x010000, CRC(b43eef89) SHA1(15991ad9223ddce77277f5451b5557ff59e2647c), "Barcrest","Prize Money (Barcrest) (MPU4) (FP8 0.1)" )
@@ -5399,7 +5361,7 @@ GAME_CUSTOM( 199?, m4przmon__p, m4przmon, "fpmy.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4PRZMNS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_six_alt, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>(R6A, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "SPM 0.2"
GAME_CUSTOM( 199?, m4przmns, 0, "spms.p1", 0x0000, 0x010000, CRC(7d684358) SHA1(b07b13d6827e5ea4127eb763f4233a3d35ea99e6), "Barcrest","Prize Money Showcase (Barcrest) (MPU4) (SPM 0.2)" )
@@ -5438,7 +5400,7 @@ GAME_CUSTOM( 199?, m4przmns__i, m4przmns, "sm8y.p1", 0x0000, 0x010000, CRC
ROM_LOAD( name, offset, length, hash ) \
M4PRZHR_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::take2_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "PRL 0.3"
GAME_CUSTOM( 199?, m4przhr, 0, "prls.p1", 0x0000, 0x010000, CRC(8cc08272) SHA1(8b25b99291a288f198573272d705c3592c7c60e6), "Barcrest","Prize High Roller (Barcrest) (MPU4) (PRL 0.3)" )
@@ -5457,7 +5419,7 @@ GAME_CUSTOM( 199?, m4przhr__o, m4przhr, "prlk.p1", 0x0000, 0x010000, CRC(f2
ROM_LOAD( name, offset, length, hash ) \
M4PRZHR_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "PR3 0.1"
GAME_CUSTOM( 199?, m4przhr__h, m4przhr, "pr3s.p1", 0x0000, 0x010000, CRC(e4968894) SHA1(92b4b930f3bf370b213a72ad8328f19d5ebbd471), "Barcrest","Prize High Roller (Barcrest) (MPU4) (PR3 0.1)" )
@@ -5492,7 +5454,7 @@ GAME_CUSTOM( 199?, m4przhr__i, m4przhr, "pr3y.p1", 0x0000, 0x010000, CRC(81
ROM_LOAD( name, offset, length, hash ) \
M4GCLUE_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 "C20 0.2"
GAME_CUSTOM( 199?, m4gclue, 0, "c2002s.p1", 0x0000, 0x010000, CRC(fe640d18) SHA1(598e5a92bd26457cbd0cbd1f73cddb56054ff826), "Barcrest","Give Us A Clue (Barcrest) (MPU4) (C20 0.2)" )
@@ -5541,7 +5503,7 @@ GAME_CUSTOM( 199?, m4gclue__w, m4gclue, "c2504y.p1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4VEGAST_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_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::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "UVS 0.3"
GAME_CUSTOM( 199?, m4vegast, 0, "uvss.p1", 0x0000, 0x020000, CRC(8b5b120f) SHA1(90749c4f986a248252661b8e4157871330673ecd), "Barcrest","Las Vegas Strip (Barcrest) (MPU4) (UVS 0.3)" )
@@ -5562,7 +5524,7 @@ GAME_CUSTOM( 199?, m4vegast__i, m4vegast, "uvsy.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4VEGAST_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::jewelcrown_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::jewelcrown_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "VSG 0.4"
GAME_CUSTOM( 199?, m4vegast__t, m4vegast, "vsg04s.p1", 0x0000, 0x020000, CRC(aff47295) SHA1(d249f280b721c96b7c36329e2c2bb955fa91aa59), "Barcrest","Las Vegas Strip (Barcrest) (MPU4) (VSG 0.4)" )
@@ -5588,7 +5550,7 @@ GAME_CUSTOM( 199?, m4vegast__x, m4vegast, "vstr2010", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4VEGAST_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 and VSG 0.4
@@ -5621,37 +5583,37 @@ GAME_CUSTOM( 199?, m4vegast__1, m4vegast, "vegas15t", 0
GAME( year, setname, parent, machine, inputs, mpu4mod4oki_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "ROD 0.4"
-GAME_CUSTOM( 199?, m4hotrod, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default_sextender, "rodk.p1", 0x0000, 0x010000, CRC(298d85ff) SHA1(3c9374be1f6b5e58a1b9004f74f3a33d0fff4214), "Barcrest","Hot Rod (Barcrest) (MPU4) (ROD 0.4K)" )
-GAME_CUSTOM( 199?, m4hotrod__h, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default_sextender, "rodc.p1", 0x0000, 0x010000, CRC(2f6b53d3) SHA1(fa4df1e6a2f6158cbc099d7e2d5ec96355079f36), "Barcrest","Hot Rod (Barcrest) (MPU4) (ROD 0.4C)" ) // 6.00 GBP Jackpot strings
-GAME_CUSTOM( 199?, m4hotrod__i, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default_sextender, "roddy.p1", 0x0000, 0x010000, CRC(53e508ac) SHA1(24df8b949211e7bc5c7b8d704562b36e52cb8d5c), "Barcrest","Hot Rod (Barcrest) (MPU4) (ROD 0.4YD)" )
-GAME_CUSTOM( 199?, m4hotrod__j, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default_sextender, "rods.p1", 0x0000, 0x010000, CRC(93d73857) SHA1(dcfd1dbf368f68ba3e7aa163eedd89c68aaccec8), "Barcrest","Hot Rod (Barcrest) (MPU4) (ROD 0.4)" )
+GAME_CUSTOM( 199?, m4hotrod, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rodk.p1", 0x0000, 0x010000, CRC(298d85ff) SHA1(3c9374be1f6b5e58a1b9004f74f3a33d0fff4214), "Barcrest","Hot Rod (Barcrest) (MPU4) (ROD 0.4K)" )
+GAME_CUSTOM( 199?, m4hotrod__h, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rodc.p1", 0x0000, 0x010000, CRC(2f6b53d3) SHA1(fa4df1e6a2f6158cbc099d7e2d5ec96355079f36), "Barcrest","Hot Rod (Barcrest) (MPU4) (ROD 0.4C)" ) // 6.00 GBP Jackpot strings
+GAME_CUSTOM( 199?, m4hotrod__i, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "roddy.p1", 0x0000, 0x010000, CRC(53e508ac) SHA1(24df8b949211e7bc5c7b8d704562b36e52cb8d5c), "Barcrest","Hot Rod (Barcrest) (MPU4) (ROD 0.4YD)" )
+GAME_CUSTOM( 199?, m4hotrod__j, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "rods.p1", 0x0000, 0x010000, CRC(93d73857) SHA1(dcfd1dbf368f68ba3e7aa163eedd89c68aaccec8), "Barcrest","Hot Rod (Barcrest) (MPU4) (ROD 0.4)" )
// "(C)1994 B.W.B." and "HR__1.0"
-GAME_CUSTOM( 199?, m4hotrod__k, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_sextender, "hr_05___.1o1", 0x0000, 0x010000, CRC(abdb0a16) SHA1(5db2721326a22b9d8653773ec8de8a845d147eee), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0, set 1)" )
-GAME_CUSTOM( 199?, m4hotrod__l, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_sextender, "hr_05_d_.1o1", 0x0000, 0x010000, CRC(8a14fa8d) SHA1(8d64a75514d0a58fcdc2d5a81c0b85a49ab8322b), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0D, set 1)" )
-GAME_CUSTOM( 199?, m4hotrod__o, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_sextender, "hri05___.101", 0x0000, 0x010000, CRC(43e5e86e) SHA1(8bf00b1af1f86f1a361537a1117d857fa8fa7af4), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0C, set 1)" )
-GAME_CUSTOM( 199?, m4hotrod__m, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_sextender, "hr_10___.1o1", 0x0000, 0x010000, CRC(5e09202f) SHA1(06991f5fd451fff77ef7ab0b866543613c3dcc02), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0, set 2)" )
-GAME_CUSTOM( 199?, m4hotrod__n, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_sextender, "hr_10_d_.1o1", 0x0000, 0x010000, CRC(329409c5) SHA1(e9ba0f36048f46a381c8a408b9c1e10acea0bde3), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0D, set 2)" )
-GAME_CUSTOM( 199?, m4hotrod__p, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>, mpu4, init_m4default_sextender, "hri10___.1o1", 0x0000, 0x010000, CRC(a855f93c) SHA1(2b63aa7c632f14457c2ae0312cef7b22bbf1df22), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0C, set 2)" )
+GAME_CUSTOM( 199?, m4hotrod__k, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "hr_05___.1o1", 0x0000, 0x010000, CRC(abdb0a16) SHA1(5db2721326a22b9d8653773ec8de8a845d147eee), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0, set 1)" )
+GAME_CUSTOM( 199?, m4hotrod__l, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "hr_05_d_.1o1", 0x0000, 0x010000, CRC(8a14fa8d) SHA1(8d64a75514d0a58fcdc2d5a81c0b85a49ab8322b), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0D, set 1)" )
+GAME_CUSTOM( 199?, m4hotrod__o, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "hri05___.101", 0x0000, 0x010000, CRC(43e5e86e) SHA1(8bf00b1af1f86f1a361537a1117d857fa8fa7af4), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0C, set 1)" )
+GAME_CUSTOM( 199?, m4hotrod__m, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "hr_10___.1o1", 0x0000, 0x010000, CRC(5e09202f) SHA1(06991f5fd451fff77ef7ab0b866543613c3dcc02), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0, set 2)" )
+GAME_CUSTOM( 199?, m4hotrod__n, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "hr_10_d_.1o1", 0x0000, 0x010000, CRC(329409c5) SHA1(e9ba0f36048f46a381c8a408b9c1e10acea0bde3), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0D, set 2)" )
+GAME_CUSTOM( 199?, m4hotrod__p, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::hotrodalt_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "hri10___.1o1", 0x0000, 0x010000, CRC(a855f93c) SHA1(2b63aa7c632f14457c2ae0312cef7b22bbf1df22), "BWB","Hot Rod (Barcrest) (MPU4) (HR__1.0C, set 2)" )
// "(C)1995 B.W.B." and "HRC_1.0"
-GAME_CUSTOM( 199?, m4hotrod__a, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::buc_characteriser_prot>, mpu4, init_m4default_sextender, "hot rod 5p 4 p1,27512", 0x0000, 0x010000, CRC(b6212af8) SHA1(9453c4424244895b3ad15d5fba45fe8822e7ff2b), "BWB","Hot Rod (Barcrest) (MPU4) (HRC_1.0C)" )
+GAME_CUSTOM( 199?, m4hotrod__a, m4hotrod, mod4oki_cheatchr_pal<mpu4_characteriser_pal::buc_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "hot rod 5p 4 p1,27512", 0x0000, 0x010000, CRC(b6212af8) SHA1(9453c4424244895b3ad15d5fba45fe8822e7ff2b), "BWB","Hot Rod (Barcrest) (MPU4) (HRC_1.0C)" )
// no copyright string and "HR__1.0", different protection
-GAME_CUSTOM( 199?, m4hotrod__b, m4hotrod, mod4oki_bootleg_fixedret<0x45>, mpu4, init_m4default_sextender, "hr056c", 0x0000, 0x010000, CRC(c062f285) SHA1(917e82cadf242aa815c525ff435cd4b04ea87e39), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 1)" )
-GAME_CUSTOM( 199?, m4hotrod__c, m4hotrod, mod4oki_bootleg_fixedret<0x1d>, mpu4, init_m4default_sextender, "hrod05_11", 0x0000, 0x010000, CRC(61f35723) SHA1(743b71ecde4923c359a1202eaad7e4d74b0d1611), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 2)" )
-GAME_CUSTOM( 199?, m4hotrod__d, m4hotrod, mod4oki_bootleg_fixedret<0x1f>, mpu4, init_m4default_sextender, "hrod10_11", 0x0000, 0x010000, CRC(5b924a86) SHA1(6b86dce6ba3789750de05dca996202c000ecfbae), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 3)" )
-GAME_CUSTOM( 199?, m4hotrod__f, m4hotrod, mod4oki_bootleg_fixedret<0x29>, mpu4, init_m4default_sextender, "hrod55", 0x0000, 0x010000, CRC(dd6d3153) SHA1(27f3324b43c026abf2ae4c584afeb6971a3fe57a), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 4)" )
-GAME_CUSTOM( 199?, m4hotrod__g, m4hotrod, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_sextender, "hrod58c", 0x0000, 0x010000, CRC(079474db) SHA1(257b1086277cd0b8398b80a4b95cf1212c10c4c3), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 5)" )
-GAME_CUSTOM( 199?, m4hotrod__q, m4hotrod, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_sextender, "hrod_05_.4", 0x0000, 0x010000, CRC(c58aa0e8) SHA1(8a2b5a9bd4e93a7a12cae4e92e0faf35e2ebbe4c), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 6)" )
-GAME_CUSTOM( 199?, m4hotrod__r, m4hotrod, mod4oki_bootleg_fixedret<0x2d>, mpu4, init_m4default_sextender, "hrod_05_.8", 0x0000, 0x010000, CRC(b3c9e0c9) SHA1(4a549876121dd7fc5c11d3b03322d1e5f90eaa86), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 7)" )
-GAME_CUSTOM( 199?, m4hotrod__s, m4hotrod, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_sextender, "hrod_10_.4", 0x0000, 0x010000, CRC(b9e84451) SHA1(7566aef1604992376010758cb079fe9da67ad454), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 8)" )
-GAME_CUSTOM( 199?, m4hotrod__t, m4hotrod, mod4oki_bootleg_fixedret<0x2f>, mpu4, init_m4default_sextender, "hrod_10_.8", 0x0000, 0x010000, CRC(62ac8057) SHA1(d2085ec0f29ff85251ef2c576e828f502420839d), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 9)" )
+GAME_CUSTOM( 199?, m4hotrod__b, m4hotrod, mod4oki_bootleg_fixedret<0x45>(R4, RT1, LPS), mpu4, init_m4, "hr056c", 0x0000, 0x010000, CRC(c062f285) SHA1(917e82cadf242aa815c525ff435cd4b04ea87e39), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 1)" )
+GAME_CUSTOM( 199?, m4hotrod__c, m4hotrod, mod4oki_bootleg_fixedret<0x1d>(R4, RT1, LPS), mpu4, init_m4, "hrod05_11", 0x0000, 0x010000, CRC(61f35723) SHA1(743b71ecde4923c359a1202eaad7e4d74b0d1611), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 2)" )
+GAME_CUSTOM( 199?, m4hotrod__d, m4hotrod, mod4oki_bootleg_fixedret<0x1f>(R4, RT1, LPS), mpu4, init_m4, "hrod10_11", 0x0000, 0x010000, CRC(5b924a86) SHA1(6b86dce6ba3789750de05dca996202c000ecfbae), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 3)" )
+GAME_CUSTOM( 199?, m4hotrod__f, m4hotrod, mod4oki_bootleg_fixedret<0x29>(R4, RT1, LPS), mpu4, init_m4, "hrod55", 0x0000, 0x010000, CRC(dd6d3153) SHA1(27f3324b43c026abf2ae4c584afeb6971a3fe57a), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 4)" )
+GAME_CUSTOM( 199?, m4hotrod__g, m4hotrod, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPS), mpu4, init_m4, "hrod58c", 0x0000, 0x010000, CRC(079474db) SHA1(257b1086277cd0b8398b80a4b95cf1212c10c4c3), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 5)" )
+GAME_CUSTOM( 199?, m4hotrod__q, m4hotrod, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPS), mpu4, init_m4, "hrod_05_.4", 0x0000, 0x010000, CRC(c58aa0e8) SHA1(8a2b5a9bd4e93a7a12cae4e92e0faf35e2ebbe4c), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 6)" )
+GAME_CUSTOM( 199?, m4hotrod__r, m4hotrod, mod4oki_bootleg_fixedret<0x2d>(R4, RT1, LPS), mpu4, init_m4, "hrod_05_.8", 0x0000, 0x010000, CRC(b3c9e0c9) SHA1(4a549876121dd7fc5c11d3b03322d1e5f90eaa86), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 7)" )
+GAME_CUSTOM( 199?, m4hotrod__s, m4hotrod, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPS), mpu4, init_m4, "hrod_10_.4", 0x0000, 0x010000, CRC(b9e84451) SHA1(7566aef1604992376010758cb079fe9da67ad454), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 8)" )
+GAME_CUSTOM( 199?, m4hotrod__t, m4hotrod, mod4oki_bootleg_fixedret<0x2f>(R4, RT1, LPS), mpu4, init_m4, "hrod_10_.8", 0x0000, 0x010000, CRC(62ac8057) SHA1(d2085ec0f29ff85251ef2c576e828f502420839d), "hack","Hot Rod (Barcrest) (MPU4) (HR__1.0, hack, set 9)" )
// these don't want the protection device mapped
-GAME_CUSTOM( 199?, m4hotrod__e, m4hotrod, mod4oki, mpu4, init_m4default_sextender, "hrod20_11", 0x0000, 0x010000, CRC(b81a57b6) SHA1(442c119b9ed70d4da2f9082ec01e410cfee76102), "hack", "Hot Rod (Barcrest) (MPU4) (ROD 0.4C, hack?, set 1)" ) // 10.00 GBP Jackpot strings
-GAME_CUSTOM( 199?, m4hotrod__u, m4hotrod, mod4oki, mpu4, init_m4default_sextender, "hrod_20_.4", 0x0000, 0x010000, CRC(c58bb470) SHA1(7bb831d7b647d17eff896ccce0ab7c8cfa8179b8), "hack", "Hot Rod (Barcrest) (MPU4) (ROD 0.4C, hack?, set 2)" ) // 4.00 GBP Jackpot strings
-GAME_CUSTOM( 199?, m4hotrod__v, m4hotrod, mod4oki, mpu4, init_m4default_sextender, "hrod_20_.8", 0x0000, 0x010000, CRC(a2d20781) SHA1(3f1b33374ae0a61815b38ad0e57856ae16047adc), "hack", "Hot Rod (Barcrest) (MPU4) (ROD 0.4, hack?, set 3)" )
+GAME_CUSTOM( 199?, m4hotrod__e, m4hotrod, mod4oki(R4, RT1, LPS), mpu4, init_m4, "hrod20_11", 0x0000, 0x010000, CRC(b81a57b6) SHA1(442c119b9ed70d4da2f9082ec01e410cfee76102), "hack", "Hot Rod (Barcrest) (MPU4) (ROD 0.4C, hack?, set 1)" ) // 10.00 GBP Jackpot strings
+GAME_CUSTOM( 199?, m4hotrod__u, m4hotrod, mod4oki(R4, RT1, LPS), mpu4, init_m4, "hrod_20_.4", 0x0000, 0x010000, CRC(c58bb470) SHA1(7bb831d7b647d17eff896ccce0ab7c8cfa8179b8), "hack", "Hot Rod (Barcrest) (MPU4) (ROD 0.4C, hack?, set 2)" ) // 4.00 GBP Jackpot strings
+GAME_CUSTOM( 199?, m4hotrod__v, m4hotrod, mod4oki(R4, RT1, LPS), mpu4, init_m4, "hrod_20_.8", 0x0000, 0x010000, CRC(a2d20781) SHA1(3f1b33374ae0a61815b38ad0e57856ae16047adc), "hack", "Hot Rod (Barcrest) (MPU4) (ROD 0.4, hack?, set 3)" )
/*****************************************************************************************************************************************************************************
@@ -5673,7 +5635,7 @@ GAME_CUSTOM( 199?, m4hotrod__v, m4hotrod, mod4oki, mpu4, init_m4default_sext
ROM_LOAD( name, offset, length, hash ) \
M4BUC_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 "BUG 0.5"
GAME_CUSTOM( 199?, m4buc__0, m4buc, "bug05s.p1", 0x000000, 0x020000, CRC(99ce7ada) SHA1(6cdb17d8dfd759ceb2d7acd5f6b15952106f3178), "Barcrest","Buccaneer (Barcrest) (MPU4) (BUG 0.5)" )
@@ -5711,7 +5673,7 @@ GAME_CUSTOM( 199?, m4buc__ar, m4buc, "bus02y.p1", 0x000000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4BUC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::buc_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::buc_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "BUG 0.4"
GAME_CUSTOM( 199?, m4buc, 0, "bug04s.p1", 0x000000, 0x020000, CRC(0f76cf1d) SHA1(e0081f88e23958564a87346082629c4fdc0cc147), "Barcrest","Buccaneer (Barcrest) (MPU4) (BUG 0.4)" )
@@ -5749,7 +5711,7 @@ GAME_CUSTOM( 199?, m4buc__ae, m4buc, "bus01y.p1", 0x000000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4BUC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bucalt_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::bucalt_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1999 BWB" and "BR_ 1.0"
GAME_CUSTOM( 199?, m4buc__as, m4buc, "br_sj___.1_1", 0x000000, 0x020000, CRC(02c30d48) SHA1(8e5d09d721bf6e1876d672b6c84f46666cf42b90), "BWB","Buccaneer (Barcrest) (MPU4) (BR_ 1.0)" )
@@ -5769,7 +5731,7 @@ GAME_CUSTOM( 199?, m4buc__n, m4buc, "buccaneer5-15sw.bin", 0x000000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4BUC_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 "BUG 0.4"
@@ -5800,7 +5762,7 @@ GAME_CUSTOM( 199?, m4buc__b, m4buc, "bucc15t", 0x000000, 0x020000
ROM_LOAD( name, offset, length, hash ) \
M4JWLCWN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::jewelcrown_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::jewelcrown_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "CJE 1.0"
GAME_CUSTOM( 199?, m4jwlcwn, 0, "cje10s.p1", 0x0000, 0x020000, CRC(5f3b72b7) SHA1(8faf0de0282a67c88170c13856b8816c38396e19), "Barcrest","Jewel In the Crown (Barcrest) (MPU4) (CJE 1.0)" )
@@ -5840,7 +5802,7 @@ GAME_CUSTOM( 199?, m4jwlcwn__0, m4jwlcwn, "jitc2010", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4JWLCWN_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 "JC8 4.4"
GAME_CUSTOM( 199?, m4jwlcwn__1, m4jwlcwn, "jc__x___.4_1", 0x0000, 0x020000, CRC(5bf060ca) SHA1(a13795b145ff230437764f5414ec443e8fe4d783), "BWB","Jewel In the Crown (Barcrest) (MPU4) (JC8 4.4)" )
@@ -5863,7 +5825,7 @@ GAME_CUSTOM( 199?, m4jwlcwn__6, m4jwlcwn, "jc_xx__c.3_1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4JWLCWN_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 and "CJH 1.0"
GAME_CUSTOM( 199?, m4jwlcwn__y, m4jwlcwn, "jewel15g", 0x0000, 0x020000, CRC(bf3b8b63) SHA1(1ee91745438b9458ffbd43380bf9c6fd784fd054), "hack","Jewel In the Crown (Barcrest) (MPU4) (CJH 1.0 C, hack)" )
@@ -5890,7 +5852,7 @@ GAME_CUSTOM( 199?, m4jwlcwn__z, m4jwlcwn, "jewel15t", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4BAGTEL_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 "EL1 0.1"
GAME_CUSTOM( 199?, m4bagtel__r, m4bagtel, "el101s.p1", 0x0000, 0x010000, CRC(2035faf2) SHA1(1b640fee2f0ace25dfaa702ab2602cdec5ab6018), "Barcrest","Bagatelle (Barcrest) (MPU4) (EL1 0.1)" )
@@ -5939,7 +5901,7 @@ GAME_CUSTOM( 199?, m4bagtel__ag, m4bagtel, "el310y.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4BAGTEL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bagtel_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bagtel_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "BGT 0.5"
GAME_CUSTOM( 199?, m4bagtel, 0, "bgt05s.p1", 0x0000, 0x010000, CRC(ddf1c7dc) SHA1(a786e5e04538ce498493795fc4054bb5de57ffd2), "Barcrest","Bagatelle (Barcrest) (MPU4) (BGT 0.5)" )
@@ -5970,7 +5932,7 @@ GAME_CUSTOM( 199?, m4bagtel__b, m4bagtel, "bg201dy.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4BERSER_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "BES 0.6"
GAME_CUSTOM( 199?, m4berser, 0, "bess.p1", 0x0000, 0x010000, CRC(b95bafbe) SHA1(034c80ef5fd0a12fad918c9b01bafb9a99c2e991), "Barcrest","Berserk (Barcrest) (MPU4) (BES 0.6)" )
@@ -6001,7 +5963,7 @@ GAME_CUSTOM( 199?, m4berser__t, m4berser, "be8y.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4BERSER_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::berseralt_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::berseralt_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "BE3 0.1"
GAME_CUSTOM( 199?, m4berser__h, m4berser, "be3s.p1", 0x0000, 0x010000, CRC(1a66772e) SHA1(e604315cea3db5f3859f1756e84b37b805f1f995), "Barcrest","Berserk (Barcrest) (MPU4) (BE3 0.1)" )
@@ -6021,7 +5983,7 @@ GAME_CUSTOM( 199?, m4berser__i, m4berser, "be3y.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4BERSER_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::berseralt2_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::berseralt2_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1996 B.W.B." and "BE4 1.1"
GAME_CUSTOM( 199?, m4berser__1, m4berser, "be_05a_4.1_1", 0x0000, 0x010000, CRC(e4ec1624) SHA1(e6241edb729796dd248abca6bf67281379c39af2), "BWB","Berserk (Barcrest) (MPU4) (BE4 1.1 KS)" )
@@ -6047,7 +6009,7 @@ GAME_CUSTOM( 199?, m4berser__1, m4berser, "be_05a_4.1_1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4TTDIA_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::tentendia_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::tentendia_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "TDA 0.4"
GAME_CUSTOM( 199?, m4ttdia, 0, "tda04s.p1", 0x0000, 0x020000, CRC(1240642e) SHA1(7eaf02d5c00707a0a6d98d247c293cad1ca87108), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (TDA 0.4)" )
@@ -6073,38 +6035,32 @@ GAME_CUSTOM( 199?, m4ttdia__m, m4ttdia, "tda04y.p1", 0x0000, 0x020000, CR
*
*****************************************************************************************************************************************************************************/
-void mpu4mod4oki_machines_state::init_m4actbnk()
-{
- //Derived from Action_Bank_(Barcrest)_[C04_1024_8jp].gam
- init_m4default();
- use_m4_hopper_tubes();
- use_m4_standard_reels();
- //PCKEY =a
- //STKEY =2
- //JPKEY =6
- //JPSET =1
- //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 barcrest1
- //Standard
- //Volume 0 Stereo= 1
- //Sample rate 16000
- //Front door code 39 Cash door code 38
-}
+//Derived from Action_Bank_(Barcrest)_[C04_1024_8jp].gam
+//PCKEY =a
+//STKEY =2
+//JPKEY =6
+//JPSET =1
+//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 barcrest1
+//Standard
+//Volume 0 Stereo= 1
+//Sample rate 16000
+//Front door code 39 Cash door code 38
#define M4ACTBNK_EXTRA_ROMS \
ROM_REGION( 0x100000, "msm6376", 0 ) \
@@ -6118,7 +6074,7 @@ void mpu4mod4oki_machines_state::init_m4actbnk()
ROM_LOAD( name, offset, length, hash ) \
M4ACTBNK_EXTRA_ROMS \
ROM_END \
- GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>, mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4actbnk, ROT0, company, title, GAME_FLAGS, layout_m4actbnk )
+ GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actionbank_characteriser_prot>(R4, RT1, HT), mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS, layout_m4actbnk )
// these require a jackpot key to be inserted
@@ -6157,7 +6113,7 @@ GAME_CUSTOM( 199?, m4actbnk__i, m4actbnk, "actad.p1", 0x0000, 0x010000, CRC
ROM_LOAD( name, offset, length, hash ) \
M4CRDOME_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, inputs, 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), inputs, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "CD2 1.2"
@@ -6186,7 +6142,7 @@ GAME_CUSTOM( 199?, m4crdome__n, m4crdome, mpu4jackpot8tkn20p, "cdome8ac"
ROM_LOAD( name, offset, length, hash ) \
M4CRDOME_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>, inputs, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_bootleg_fixedret<0x70>(R4, RT1, LPLB), inputs, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// different protection
@@ -6215,7 +6171,7 @@ GAME_CUSTOM( 199?, m4crdome__l, m4crdome, mpu4jackpot8tkn20p, "cdom15r",
ROM_LOAD( name, offset, length, hash ) \
M4ROCKMN_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rockmn_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::rockmn_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot8tkn, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// boots with 20p / 8 GBP Token setup
@@ -6254,7 +6210,7 @@ GAME_CUSTOM( 199?, m4rockmn__k, m4rockmn, "rok06y.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4MADHSE_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "MH5 0.2"
GAME_CUSTOM( 199?, m4madhse, 0, "mh502s.p1", 0x0000, 0x010000, CRC(063cc07b) SHA1(0b43a5cf6094bd8c99e4395f31ff073389dd56ce), "Barcrest","Mad House (Barcrest) (MPU4) (MH5 0.2)" )
@@ -6310,7 +6266,7 @@ GAME_CUSTOM( 199?, m4madhse__b, m4madhse, "mhty.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4NHTT_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 )
// "(C)1991 BARCREST" and "NHT 0.1"
GAME_CUSTOM( 199?, m4nhtt, 0, "nht01s.p1", 0x0000, 0x010000, CRC(a4a44ddf) SHA1(e64953f3cd2559a8ebdacb2b0c12c84fd5c4b836), "Barcrest","New Hit the Top (Barcrest) (MPU4) (NHT 0.1)" )
@@ -6346,7 +6302,7 @@ GAME_CUSTOM( 199?, m4nhtt__j, m4nhtt, "nht01y.p1", 0x0000, 0x010000, CRC(5
ROM_LOAD( name, offset, length, hash ) \
M4PRZFRT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::pfloot_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::pfloot_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "PFR 0.3"
GAME_CUSTOM( 199?, m4przfrt, 0, "pfr03s.p1", 0x0000, 0x010000, CRC(0ea80adb) SHA1(948a23fe8ccf6f423957a478a57bb875cc7b2cc2), "Barcrest","Prize Fruit & Loot (Barcrest) (MPU4) (PFR 0.3)" )
@@ -6385,7 +6341,7 @@ GAME_CUSTOM( 199?, m4przfrt__l, m4przfrt, "pfr03o.p1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4PRZWO_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 "PWO 0.5"
GAME_CUSTOM( 199?, m4przwo, 0, "pwos.p1", 0x0000, 0x010000, CRC(6a87aa68) SHA1(3dc8c006de3adcada43c3581be0ff921081ecff0), "Barcrest","Prize What's On (Barcrest) (MPU4) (PWO 0.5)" )
@@ -6418,7 +6374,7 @@ GAME_CUSTOM( 199?, m4przwo__f, m4przwo, "pwoy.p1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4RHOG2_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_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::m462_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1993 BARCREST" and "2RH 0.6"
GAME_CUSTOM( 199?, m4rhog2, 0, "2rh06s.p1", 0x0000, 0x020000, CRC(2ea10eed) SHA1(825bd6a53100b389f7d67ec49e4535c1de0ece74), "Barcrest","Road Hog 2 - I'm Back (Barcrest) (MPU4) (2RH 0.6)" )
@@ -6456,7 +6412,7 @@ GAME_CUSTOM( 199?, m4rhog2__m, m4rhog2, "2rh06y.p1", 0x0000, 0x020000, CR
ROM_LOAD( name, offset, length, hash ) \
M4LUCKSC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_five_rev_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R5R, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1996 BARCREST" and "CLU 1.4"
GAME_CUSTOM( 199?, m4lucksc, 0, "clu14s.p1", 0x0000, 0x020000, CRC(5f66d7cc) SHA1(bd8a832739d7aef4d04b89a94dd2886e89a6e0c2), "Barcrest","Lucky Strike Club (Barcrest) (MPU4) (CLU 1.4)" )
@@ -6482,7 +6438,7 @@ GAME_CUSTOM( 199?, m4lucksc__j, m4lucksc, "ls301f.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4LUCKSC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_five_rev_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R5R, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1998 BWB" and "LSC 1.0"
GAME_CUSTOM( 199?, m4lucksc__l, m4lucksc, "lsc_.1_1", 0x0000, 0x020000, CRC(79ce3db0) SHA1(409e9d3b08284dee3af696fb7c839c0ca35eddee), "BWB","Lucky Strike Club (Barcrest) (MPU4) (LSC 1.0)" )
@@ -6506,7 +6462,7 @@ GAME_CUSTOM( 199?, m4lucksc__l, m4lucksc, "lsc_.1_1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4TOPDOG_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::copycat_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::copycat_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1997 B.W.B." and "TD 7.1" (Td4 in the 7-segs)
GAME_CUSTOM( 199?, m4topdog, 0, "td_20_b4.7_1", 0x0000, 0x010000, CRC(fe864f25) SHA1(b9f97aaf0425b4987b5bfa0b793e9226fdffe58f), "BWB","Top Dog (Barcrest) (MPU4) (TD4 7.1 YD / TD 7.1)" )
@@ -6561,7 +6517,7 @@ GAME_CUSTOM( 199?, m4topdog__z, m4topdog, "td_30btc.1_1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4KINGQ_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::kingqn_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::kingqn_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1996 B.W.B." and "EE 2.1" (EE4 in 7-seg)
GAME_CUSTOM( 199?, m4kingq, 0, "ee_05a_4.2_1", 0x0000, 0x010000, CRC(8dd842b6) SHA1(1c1bcaae355ceee4d7b1572b0fa1a8b23a8afdbf), "BWB","Kings & Queens (Barcrest) (MPU4) (EE4 2.1 K/ EE 2.1)" )
@@ -6575,7 +6531,7 @@ GAME_CUSTOM( 199?, m4kingq__a, m4kingq, "ee_05a__.2_1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4KINGQ_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::luckystrike_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::luckystrike_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1995 B.W.B." and "EE_ 2.0" (EE in 7-seg)
GAME_CUSTOM( 199?, m4kingq__b, m4kingq, "ee_20a__.2_1", 0x0000, 0x010000, CRC(2c61341f) SHA1(76d68ae2a44087414be8be12b3824c62311721dd), "BWB","Kings & Queens (Barcrest) (MPU4) (EE 2.0 K / EE_ 2.0)" )
@@ -6598,7 +6554,7 @@ GAME_CUSTOM( 199?, m4kingq__j, m4kingq, "ee_20s_c.1_1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4KINGQ_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::kqee_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::kqee_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1995 B.W.B." and "EE_ 2.0" (EE' in 7-seg)
GAME_CUSTOM( 199?, m4kingq__l, m4kingq, "ee_25a_c.3_1", 0x0000, 0x010000, CRC(4dc25083) SHA1(b754b4003f73bd74d1670a36a70985ce5e48794d), "BWB","Kings & Queens (Barcrest) (MPU4) (EE' 2.0 K / EE_ 2.0)" )
@@ -6615,7 +6571,7 @@ GAME_CUSTOM( 199?, m4kingq__r, m4kingq, "ee_25sbc.3_1", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4KINGQ_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::kqee2_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::kqee2_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1998 B.W.B." and "EE2 1.0" (EE2 in 7-seg)
GAME_CUSTOM( 199?, m4kingq__t, m4kingq, "knq2pprg.bin", 0x0000, 0x010000, CRC(23b22f79) SHA1(3d8b9cbffb9b427897548981ddacf724215336a4), "BWB","Kings & Queens (Barcrest) (MPU4) (EE2 1.0 / EE2 1.0)" )
@@ -6642,7 +6598,7 @@ GAME_CUSTOM( 199?, m4kingq__t, m4kingq, "knq2pprg.bin", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4KINGQC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1996 B.W.B." and "CN4 6.0"
GAME_CUSTOM( 199?, m4kingqc, 0, "cn_20_b4.6_1", 0x0000, 0x010000, CRC(22d0b20c) SHA1(a7a4f60017cf62247339c9b23420d29845657895), "BWB","Kings & Queens Classic (Barcrest) (MPU4) (CN4 / CN4 6.0 YD)" )
@@ -6703,7 +6659,7 @@ GAME_CUSTOM( 199?, m4kingqc__5, m4kingqc, "cn_30btc.1_1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4TYPCL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_five_rev_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R5R, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1996 BARCREST" and "CTP 1.2"
GAME_CUSTOM( 199?, m4typcl, 0, "ctp12s.p1", 0x0000, 0x020000, CRC(5f0bbd2a) SHA1(ba1fa09ea7b4713a99b2033bdbbf6b15f973dcca), "Barcrest","Take Your Pick Club (Barcrest) (MPU4) (CTP 1.2)" )
@@ -6756,20 +6712,6 @@ INPUT_PORTS_START( m4andybt )
PORT_DIPSETTING( 0x07, "25p / 250 GBP (duplicate 2)" )
INPUT_PORTS_END
-void mpu4mod4oki_machines_state::init_m4andybt()
-{
- init_m4default_big();
- use_m4_hopper_tubes();
- use_m4_large_extender_b();
- use_m4_five_reel_rev();
-
- m_use_simplecard_leds = true;
- m_simplecard_leds_base = 0;
-
- m_use_pia4_porta_leds = true;
- m_pia4_porta_leds_base = 8;
-}
-
#define M4ANDYBT_EXTRA_ROMS \
ROM_REGION( 0x100000, "msm6376", 0 ) \
@@ -6783,7 +6725,7 @@ void mpu4mod4oki_machines_state::init_m4andybt()
ROM_LOAD( name, offset, length, hash ) \
M4ANDYBT_EXTRA_ROMS \
ROM_END \
- GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, m4andybt, mpu4mod4oki_machines_state, init_m4andybt, ROT0, company, title, GAME_FLAGS, layout_m4andybt )
+ GAMEL( year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R5R, RT1, HT, LPLB, P4L, SCARDL), m4andybt, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS, layout_m4andybt )
// "(C)1991 BARCREST" and "ABT 1.8"
GAME_CUSTOM( 199?, m4andybt, 0, "abt18s.p1", 0x0000, 0x020000, CRC(625263e4) SHA1(23fa0547164cc1f9b7c6cd26e06b0d779bf0329d), "Barcrest","Andy's Big Time Club (Barcrest) (MPU4) (ABT 1.8)" )
@@ -6813,7 +6755,7 @@ GAME_CUSTOM( 199?, m4andybt__c, m4andybt, "abt1.5", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4THESTR_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::thestreak_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::thestreak_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// versioning here makes no sense, why do the higher revision numbers have earlier years?
@@ -6869,7 +6811,7 @@ GAME_CUSTOM( 199?, m4thestr__y, m4thestr, "ts_39b_c.1_1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4CPYCAT_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::copycat_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::copycat_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1997 B.W.B." and "CO 1.1"
GAME_CUSTOM( 199?, m4cpycat, 0, "co_20_bc.1_1", 0x0000, 0x010000, CRC(c9d3cdc1) SHA1(28265b0f95a8829efc4e346269a7af17a6abe345), "BWB","Copy Cat (Barcrest) (MPU4) (CO 1.1 YD)" )
@@ -6936,7 +6878,7 @@ GAME_CUSTOM( 199?, m4cpycat__3, m4cpycat, "co_30_kp.4_1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4BNKROL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::bankrollerclub_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_six_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bankrollerclub_characteriser_prot>(R6, RT2, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1996 BARCREST" and "CBR 0.5"
GAME_CUSTOM( 199?, m4bnkrol, 0, "cbr05s.p1", 0x0000, 0x020000, CRC(a8b53a0d) SHA1(661ab61aa8f427b92fdee02539f19e5dd2243da7), "Barcrest","Bank Roller Club (Barcrest) (MPU4) (CBR 0.5)" )
@@ -6970,7 +6912,7 @@ GAME_CUSTOM( 199?, m4bnkrol__b, m4bnkrol, "br301f.p1", 0x0000, 0x020000, CR
ROM_LOAD( name, offset, length, hash ) \
M4RHRCL_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "RH2 1.1"
GAME_CUSTOM( 199?, m4rhrcl, 0, "rh2s.p1", 0x0000, 0x010000, CRC(aa15e8a8) SHA1(243e7562a4cf938527afebbd99581acea1ab4134), "Barcrest","Red Hot Roll Club (Barcrest) (MPU4) (RH2 1.1)" )
@@ -7000,7 +6942,7 @@ GAME_CUSTOM( 199?, m4rhrcl__c, m4rhrcl, "rhrc.hex", 0x0000, 0x010000, CRC(e4
ROM_LOAD( name, offset, length, hash ) \
M4RHOGC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>, mpu4jackpot8tkn20p, mpu4mod4oki_machines_state, init_m4default_five_rev_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m441_characteriser_prot>(R5R, RT1, LPLB), mpu4jackpot8tkn20p, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "RHC 0.5"
GAME_CUSTOM( 199?, m4rhogc, 0, "rhcs.p1", 0x0000, 0x010000, CRC(d1541050) SHA1(ef1ee3b9319e2a357540cf0de902de439267c3e2), "Barcrest","Road Hog Club (Barcrest) (MPU4) (RHC 0.5)" )
@@ -7029,7 +6971,7 @@ GAME_CUSTOM( 199?, m4rhogc__b, m4rhogc, "rhcd.p1", 0x0000, 0x010000, CRC(7a7
ROM_LOAD( name, offset, length, hash ) \
M4GB006_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)1993 BARCREST" and "006 0.6"
GAME_CUSTOM( 199?, m4gb006, 0, "006s.p1", 0x0000, 0x010000, CRC(6e750ab9) SHA1(2e1f08df7991efe450633e0bcec201e6fa7fdbaa), "Barcrest","Games Bond 006 (Barcrest) (MPU4) (006 0.6)" )
@@ -7059,7 +7001,7 @@ GAME_CUSTOM( 199?, m4gb006__c, m4gb006, "bond20_11", 0x0000, 0x010000, CR
ROM_LOAD( name, offset, length, hash ) \
M4CSHENC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cashencounters_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::cashencounters_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1997 BWB" and "CA_ 5.0"
GAME_CUSTOM( 199?, m4cshenc, 0, "ca_sj__c.5_1", 0x0000, 0x020000, CRC(d9131b39) SHA1(4af89a7bc10de1406f401bede41e1bc452dbb159), "BWB","Cash Encounters (Barcrest) (MPU4) (CA_ 5.0 C)" )
@@ -7092,7 +7034,7 @@ GAME_CUSTOM( 199?, m4cshenc__d, m4cshenc, "ca_sjb_c.5_1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4RHS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::rhs_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::rhs_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1998 B.W.B." and "RH__4.0"
GAME_CUSTOM( 199?, m4rhs, 0, "rh_sj___.4s1", 0x0000, 0x020000, CRC(be6179cd) SHA1(8aefffdffb25bc4dd7d083c7027be746181c2ff9), "BWB","Rocky Horror Show (Barcrest) (MPU4) (RH__4.0)" )
@@ -7115,7 +7057,7 @@ GAME_CUSTOM( 199?, m4rhs__g, m4rhs, "rh_sja_c.6_1", 0x0000, 0x020000, CRC(b7b7
ROM_LOAD( name, offset, length, hash ) \
M4RHS_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 handling
@@ -7145,7 +7087,7 @@ GAME_CUSTOM( 199?, m4rhs__l, m4rhs, "rocky15t", 0x0000, 0x020000, CRC(3fba
ROM_LOAD( name, offset, length, hash ) \
M4OADRAC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::oad_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::oad_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1999 BWB" and "DR_ 2.0"
GAME_CUSTOM( 199?, m4oadrac, 0, "dr__x__x.2_0", 0x0000, 0x020000, CRC(4ca65bd9) SHA1(deb0a7d3596647210061b69a10fc6cdfc066538e), "BWB","Ooh Aah Dracula (Barcrest) (MPU4) (DR_ 2.0, set 1)" )
@@ -7180,7 +7122,7 @@ GAME_CUSTOM( 199?, m4oadrac__g, m4oadrac, "dr__xb_x.2_1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4TIC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::ttt_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::ttt_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1995 B.W.B." and "TT_ 2.0"
GAME_CUSTOM( 199?, m4tic, 0, "tt_20s__.2_1", 0x0000, 0x010000, CRC(53dfefe9) SHA1(0f9fc1d65ebd7e370de6001f594616b79b2aa57e), "BWB","Tic Tac Toe (Barcrest) (MPU4) (TT_ 2.0)" )
@@ -7205,7 +7147,7 @@ GAME_CUSTOM( 199?, m4tic__i, m4tic, "tt_20s_c.1_1", 0x0000, 0x010000, CRC(65a3
ROM_LOAD( name, offset, length, hash ) \
M4TIC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m470_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m470_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1995 B.W.B." and "TT_ 3.0"
GAME_CUSTOM( 199?, m4tic__l, m4tic, "tt_25a_c.3_1", 0x0000, 0x010000, CRC(2e44c6db) SHA1(ffc96dafbcfae719c3971882e066971540fafe78), "BWB","Tic Tac Toe (Barcrest) (MPU4) (TT_ 3.0 K)" )
@@ -7236,7 +7178,7 @@ GAME_CUSTOM( 199?, m4tic__r, m4tic, "tt_25sbc.3_1", 0x0000, 0x010000, CRC(11c0
ROM_LOAD( name, offset, length, hash ) \
M4TICCLA_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::topaction_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::topaction_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1996 B.W.B." and "CT4 7.0"
@@ -7294,7 +7236,7 @@ GAME_CUSTOM( 199?, m4ticcla__0, m4ticcla, "ct_30btc.2_1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4TICGLC_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::topaction_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::topaction_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1998 B.W.B." and "TG 3.3"
GAME_CUSTOM( 199?, m4ticglc, 0, "tg_25a_c.3_1", 0x0000, 0x010000, CRC(44b2b6b0) SHA1(c2caadd68659bd474df534101e3bc13b15a43694), "BWB","Tic Tac Toe Gold (Barcrest) (MPU4) (TG 3.3 K)" )
@@ -7325,7 +7267,7 @@ GAME_CUSTOM( 199?, m4ticglc__d, m4ticglc, "tg_30bgc.4_1", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4SSCLAS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::oad_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::oad_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)2000 BWB" and "CSS 6.0"
GAME_CUSTOM( 199?, m4ssclas, 0, "cs__x__x.6_0", 0x0000, 0x010000, CRC(3230284d) SHA1(bca3b4c43859ed424956c4119fa6a91a2e7d6eec), "BWB","Super Streak Classic (Barcrest) (MPU4) (CSS 6.0)" )
@@ -7358,7 +7300,7 @@ GAME_CUSTOM( 199?, m4ssclas__a, m4ssclas, "cs__x_dx.2_0", 0x0000, 0x010000,
ROM_LOAD( name, offset, length, hash ) \
M4SQUID_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::squids_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::squids_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1999 BWB" and "SQ_ 2.0"
GAME_CUSTOM( 199?, m4squid, 0, "squidsin.bin", 0x0000, 0x020000, CRC(be369b43) SHA1(e5c7b7a858b264db2f8f726396ddeb42004d7cb9), "BWB","Squids In (Barcrest) (MPU4) (SQ_ 2.0 C)" )
@@ -7387,7 +7329,7 @@ GAME_CUSTOM( 199?, m4squid__c, m4squid, "sq__xb_x.2_0", 0x0000, 0x020000, CR
ROM_LOAD( name, offset, length, hash ) \
M4CALAMA_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_five_rev_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R5R, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1996 BARCREST" and "CAC 0.3"
GAME_CUSTOM( 199?, m4calama, 0, "cac03s.p1", 0x0000, 0x020000, CRC(edc97795) SHA1(58fb91809c7f475fbceacfc1c3bda41b86dff54b), "Barcrest","Calamari Club (Barcrest) (MPU4) (CAC 0.3)" )
@@ -7405,7 +7347,7 @@ GAME_CUSTOM( 199?, m4calama__b, m4calama, "ca301f.p1", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4CALAMA_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_five_rev_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R5R, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1996 BARCREST" and "BC3 0.2"
GAME_CUSTOM( 199?, m4calama__g, m4calama, "bc302s.p1", 0x0000, 0x020000, CRC(b349bd2d) SHA1(9b026bece40584c4f53c30f3dacc91942c871a9f), "Barcrest","Calamari Club (Barcrest) (MPU4) (BC3 0.2)" )
@@ -7436,7 +7378,7 @@ GAME_CUSTOM( 199?, m4calama__h, m4calama, "calamari.cl", 0x0000, 0x020000,
ROM_LOAD( name, offset, length, hash ) \
M4COSCAS_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>, mpu4jackpot10_20p, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::cosmiccasino_characteriser_prot>(R4, RT1, LPLB), mpu4jackpot10_20p, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1998 B.W.B." and "CC__3.0"
GAME_CUSTOM( 199?, m4coscas, 0, "cc_sj___.3s1", 0x0000, 0x020000, CRC(52c312b0) SHA1(bd5381d58b1acb7adf6857c142eae4a253081fbd), "BWB","Cosmic Casinos (Barcrest) (MPU4) (CC__3.0)" )
@@ -7469,7 +7411,7 @@ GAME_CUSTOM( 199?, m4coscas__b, m4coscas, "cosmiccasinos15.bin", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4COSCAS_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 )
// need different protection handling
@@ -7500,7 +7442,7 @@ GAME_CUSTOM( 199?, m4coscas__a, m4coscas, "cosm15g", 0x0000, 0
ROM_LOAD( name, offset, length, hash ) \
M4DBLDM_EXTRA_ROMS \
ROM_END \
- GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::doublediamond_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, mod4oki_cheatchr_pal<mpu4_characteriser_pal::doublediamond_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, company, title, GAME_FLAGS )
// "(C)1996 BARCREST" and "CDD 0.5"
GAME_CUSTOM( 199?, m4dbldm, 0, "cdd05s.p1", 0x0000, 0x020000, CRC(fc14771f) SHA1(f418af9fed331560195a694f20ef2fea27ed04b0), "Barcrest","Double Diamond Club (Barcrest) (MPU4) (CDD 0.5)" )
@@ -7556,11 +7498,11 @@ ROM_START( m4supbjcd )
ROM_END
// protecton confirmed as m574, but doesn't read from lamp scramble, require stake set
-GAME(199?, m4supbjc, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu420p, mpu4mod4oki_machines_state, init_m4default_sextender, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 3.1, set 1)",GAME_FLAGS )
-GAME(199?, m4supbjca, m4supbjc, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu420p, mpu4mod4oki_machines_state, init_m4default_sextender, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 3.1, set 2)",GAME_FLAGS )
-GAME(199?, m4supbjcb, m4supbjc, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu420p, mpu4mod4oki_machines_state, init_m4default_sextender, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 3.1, set 3)",GAME_FLAGS )
-GAME(199?, m4supbjcc, m4supbjc, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu420p, mpu4mod4oki_machines_state, init_m4default_sextender, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 3.1, set 4)",GAME_FLAGS )
-GAME(199?, m4supbjcd, m4supbjc, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu420p, mpu4mod4oki_machines_state, init_m4default_sextender, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 2.0)",GAME_FLAGS )
+GAME(199?, m4supbjc, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1, LPS), mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 3.1, set 1)",GAME_FLAGS )
+GAME(199?, m4supbjca, m4supbjc, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1, LPS), mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 3.1, set 2)",GAME_FLAGS )
+GAME(199?, m4supbjcb, m4supbjc, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1, LPS), mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 3.1, set 3)",GAME_FLAGS )
+GAME(199?, m4supbjcc, m4supbjc, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1, LPS), mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 3.1, set 4)",GAME_FLAGS )
+GAME(199?, m4supbjcd, m4supbjc, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1, LPS), mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (SBJ 2.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -7617,14 +7559,14 @@ ROM_START( m4crjwlc )
ROM_END
// these don't read from the lamp scramble, is this really a 'club' machine, it only has 3 primary reels + 1 secondary
-GAME(199?, m4crjwl2, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (CJ2 1.4, set 1)",GAME_FLAGS )
-GAME(199?, m4crjwl2a, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (CJ2 1.4, set 2)",GAME_FLAGS )
-GAME(199?, m4crjwl2b, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (CJ2 1.4, set 3)",GAME_FLAGS )
+GAME(199?, m4crjwl2, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (CJ2 1.4, set 1)",GAME_FLAGS )
+GAME(199?, m4crjwl2a, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (CJ2 1.4, set 2)",GAME_FLAGS )
+GAME(199?, m4crjwl2b, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (CJ2 1.4, set 3)",GAME_FLAGS )
// these do read from lamp scramble
-GAME(199?, m4crjwl, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (CJC 1.5, set 1)",GAME_FLAGS )
-GAME(199?, m4crjwla, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (CJC 1.5, set 2)",GAME_FLAGS )
-GAME(199?, m4crjwlb, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (CJC 1.5, set 3)",GAME_FLAGS )
-GAME(199?, m4crjwlc, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_lextender, ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (CJN 0.2)",GAME_FLAGS )
+GAME(199?, m4crjwl, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (CJC 1.5, set 1)",GAME_FLAGS )
+GAME(199?, m4crjwla, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (CJC 1.5, set 2)",GAME_FLAGS )
+GAME(199?, m4crjwlb, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (CJC 1.5, set 3)",GAME_FLAGS )
+GAME(199?, m4crjwlc, m4crjwl2, mod4oki_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (CJN 0.2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -7658,9 +7600,9 @@ ROM_START( m4lazyb )
ROM_END
// runs
-GAME(199?, m4lazy, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"BWB","Lazy Bones (BWB) (MPU4) (LBD 1.0)",GAME_FLAGS )
-GAME(199?, m4lazya, m4lazy, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"BWB","Lazy Bones (BWB) (MPU4) (LBD 1.2, set 1)",GAME_FLAGS )
-GAME(199?, m4lazyb, m4lazy, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"BWB","Lazy Bones (BWB) (MPU4) (LBD 1.2, set 2)",GAME_FLAGS )
+GAME(199?, m4lazy, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0,"BWB","Lazy Bones (BWB) (MPU4) (LBD 1.0)",GAME_FLAGS )
+GAME(199?, m4lazya, m4lazy, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0,"BWB","Lazy Bones (BWB) (MPU4) (LBD 1.2, set 1)",GAME_FLAGS )
+GAME(199?, m4lazyb, m4lazy, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wta_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0,"BWB","Lazy Bones (BWB) (MPU4) (LBD 1.2, set 2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -7679,7 +7621,7 @@ ROM_START( m4brook )
ROM_END
// has (c)1998 BARCREST Development BV4 in the ROM
-GAME(1998, m4brook, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>,mpu4, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Turbo Play / Brooklyn (Barcrest) (MPU4) (PFT 1.8)",GAME_FLAGS )
+GAME(1998, m4brook, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::pzmoney_characteriser_prot>(R6, RT2),mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Turbo Play / Brooklyn (Barcrest) (MPU4) (PFT 1.8)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -7737,14 +7679,14 @@ ROM_START( m4chaseig )
M4CHASEI_EXTRAS
ROM_END
-GAME(199?, m4chasei, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_five_std_sextender, ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (CI2 0.1, set 1)",GAME_FLAGS )
-GAME(199?, m4chaseic, m4chasei, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_five_std_sextender, ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (CI2 0.1, set 2)",GAME_FLAGS )
-GAME(199?, m4chaseid, m4chasei, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_five_std_sextender, ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (CI2 0.1, set 3)",GAME_FLAGS )
-GAME(199?, m4chaseie, m4chasei, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_five_std_sextender, ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (CI2 0.1, set 4)",GAME_FLAGS )
+GAME(199?, m4chasei, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R5, RT2, LPS), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (CI2 0.1, set 1)",GAME_FLAGS )
+GAME(199?, m4chaseic, m4chasei, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R5, RT2, LPS), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (CI2 0.1, set 2)",GAME_FLAGS )
+GAME(199?, m4chaseid, m4chasei, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R5, RT2, LPS), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (CI2 0.1, set 3)",GAME_FLAGS )
+GAME(199?, m4chaseie, m4chasei, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R5, RT2, LPS), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (CI2 0.1, set 4)",GAME_FLAGS )
// different protection, not original
-GAME(199?, m4chaseia, m4chasei, mod4oki_alt_bootleg_fixedret<0x24>, mpu4, mpu4mod4oki_machines_state, init_m4default_five_std_sextender, ROT0, "hack","Chase Invaders (Barcrest) (MPU4) (8V1 0.1, hack, set 1)",GAME_FLAGS )
-GAME(199?, m4chaseib, m4chasei, mod4oki_alt_bootleg_fixedret<0x1d>, mpu4, mpu4mod4oki_machines_state, init_m4default_five_std_sextender, ROT0, "hack","Chase Invaders (Barcrest) (MPU4) (8V1 0.1, hack, set 2)",GAME_FLAGS )
-GAME(199?, m4chaseig, m4chasei, mod4oki_alt_bootleg_fixedret<0x1d>, mpu4, mpu4mod4oki_machines_state, init_m4default_five_std_sextender, ROT0, "hack","Chase Invaders (Barcrest) (MPU4) (8V1 0.1, hack, set 3)",GAME_FLAGS ) // copyright removed
+GAME(199?, m4chaseia, m4chasei, mod4oki_bootleg_fixedret<0x24>(R5, RT2, LPS), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "hack","Chase Invaders (Barcrest) (MPU4) (8V1 0.1, hack, set 1)",GAME_FLAGS )
+GAME(199?, m4chaseib, m4chasei, mod4oki_bootleg_fixedret<0x1d>(R5, RT2, LPS), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "hack","Chase Invaders (Barcrest) (MPU4) (8V1 0.1, hack, set 2)",GAME_FLAGS )
+GAME(199?, m4chaseig, m4chasei, mod4oki_bootleg_fixedret<0x1d>(R5, RT2, LPS), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "hack","Chase Invaders (Barcrest) (MPU4) (8V1 0.1, hack, set 3)",GAME_FLAGS ) // copyright removed
/*****************************************************************************************************************************************************************************
*
@@ -7778,9 +7720,9 @@ ROM_START( m4fortcbb )
M4FORTCB_EXTRAS
ROM_END
-GAME(199?, m4fortcb, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fortune_characteriser_prot>,mpu420p, mpu4mod4oki_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (CFO 1.2, set 1)",GAME_FLAGS ) // INVALID ALARM
-GAME(199?, m4fortcba, m4fortcb, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fortune_characteriser_prot>,mpu420p, mpu4mod4oki_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (CFO 1.2, set 2)",GAME_FLAGS ) // INVALID ALARM
-GAME(199?, m4fortcbb, m4fortcb, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fortune_characteriser_prot>,mpu420p, mpu4mod4oki_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (CFO 1.2, set 3)",GAME_FLAGS ) // INVALID ALARM
+GAME(199?, m4fortcb, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fortune_characteriser_prot>(R5R, RT1),mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (CFO 1.2, set 1)",GAME_FLAGS ) // INVALID ALARM
+GAME(199?, m4fortcba, m4fortcb, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fortune_characteriser_prot>(R5R, RT1),mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (CFO 1.2, set 2)",GAME_FLAGS ) // INVALID ALARM
+GAME(199?, m4fortcbb, m4fortcb, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fortune_characteriser_prot>(R5R, RT1),mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (CFO 1.2, set 3)",GAME_FLAGS ) // INVALID ALARM
/*****************************************************************************************************************************************************************************
*
@@ -7818,10 +7760,10 @@ ROM_START( m4clbvegc )
M4CLBVEG_EXTRAS
ROM_END
-GAME(199?, m4clbveg, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu420p, mpu4mod4oki_machines_state, init_m4default_five_rev_lextender, ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (CLA 2.4, set 1)",GAME_FLAGS )
-GAME(199?, m4clbvega, m4clbveg, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu420p, mpu4mod4oki_machines_state, init_m4default_five_rev_lextender, ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (CLA 2.4, set 2)",GAME_FLAGS )
-GAME(199?, m4clbvegb, m4clbveg, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu420p, mpu4mod4oki_machines_state, init_m4default_five_rev_lextender, ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (CLA 2.4, set 3)",GAME_FLAGS )
-GAME(199?, m4clbvegc, m4clbveg, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu420p, mpu4mod4oki_machines_state, init_m4default_five_rev_lextender, ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (CLA 2.4, set 4)",GAME_FLAGS )
+GAME(199?, m4clbveg, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R5R, RT2, LPLB), mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (CLA 2.4, set 1)",GAME_FLAGS )
+GAME(199?, m4clbvega, m4clbveg, mod4oki_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R5R, RT2, LPLB), mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (CLA 2.4, set 2)",GAME_FLAGS )
+GAME(199?, m4clbvegb, m4clbveg, mod4oki_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R5R, RT2, LPLB), mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (CLA 2.4, set 3)",GAME_FLAGS )
+GAME(199?, m4clbvegc, m4clbveg, mod4oki_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R5R, RT2, LPLB), mpu420p, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (CLA 2.4, set 4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -7853,9 +7795,9 @@ ROM_START( m4clbxb )
M4CLBX_EXTRAS
ROM_END
-GAME(199?, m4clbx, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_six_lextender,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (CLX 1.2, set 1)",GAME_FLAGS )
-GAME(199?, m4clbxa, m4clbx, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_six_lextender,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (CLX 1.2, set 2)",GAME_FLAGS )
-GAME(199?, m4clbxb, m4clbx, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_six_lextender,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (CLX 1.2, set 3)",GAME_FLAGS )
+GAME(199?, m4clbx, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R6, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (CLX 1.2, set 1)",GAME_FLAGS )
+GAME(199?, m4clbxa, m4clbx, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R6, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (CLX 1.2, set 2)",GAME_FLAGS )
+GAME(199?, m4clbxb, m4clbx, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R6, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (CLX 1.2, set 3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -7920,15 +7862,15 @@ ROM_START( m4crzjwlg )
M4CRZJWL_EXTRAS
ROM_END
-GAME(199?, m4crzjwl, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (GCN 1.1)",GAME_FLAGS )
-GAME(199?, m4crzjwlc, m4crzjwl, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (GCN 0.9)",GAME_FLAGS )
+GAME(199?, m4crzjwl, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (GCN 1.1)",GAME_FLAGS )
+GAME(199?, m4crzjwlc, m4crzjwl, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1, LPLB), mpu4_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (GCN 0.9)",GAME_FLAGS )
// not standard protection
-GAME(199?, m4crzjwle, m4crzjwl, mod4oki_bootleg_fixedret<0x46>, mpu4_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 1.1, set 1)",GAME_FLAGS )
-GAME(199?, m4crzjwld, m4crzjwl, mod4oki_bootleg_fixedret<0x28>, mpu4_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 1.1, set 2)",GAME_FLAGS )
-GAME(199?, m4crzjwla, m4crzjwl, mod4oki_bootleg_fixedret<0x46>, mpu4_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 0.9, set 1)",GAME_FLAGS )
-GAME(199?, m4crzjwlf, m4crzjwl, mod4oki_bootleg_fixedret<0x66>, mpu4_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 0.9, set 2)",GAME_FLAGS )
-GAME(199?, m4crzjwlg, m4crzjwl, mod4oki_bootleg_fixedret<0x76>, mpu4_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 0.9, set 3)",GAME_FLAGS )
-GAME(199?, m4crzjwlb, m4crzjwl, mod4oki_bootleg_fixedret<0x46>, mpu4_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 0.9, set 4)",GAME_FLAGS )
+GAME(199?, m4crzjwle, m4crzjwl, mod4oki_bootleg_fixedret<0x46>(R4, RT1, LPLB), mpu4_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 1.1, set 1)",GAME_FLAGS )
+GAME(199?, m4crzjwld, m4crzjwl, mod4oki_bootleg_fixedret<0x28>(R4, RT1, LPLB), mpu4_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 1.1, set 2)",GAME_FLAGS )
+GAME(199?, m4crzjwla, m4crzjwl, mod4oki_bootleg_fixedret<0x46>(R4, RT1, LPLB), mpu4_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 0.9, set 1)",GAME_FLAGS )
+GAME(199?, m4crzjwlf, m4crzjwl, mod4oki_bootleg_fixedret<0x66>(R4, RT1, LPLB), mpu4_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 0.9, set 2)",GAME_FLAGS )
+GAME(199?, m4crzjwlg, m4crzjwl, mod4oki_bootleg_fixedret<0x76>(R4, RT1, LPLB), mpu4_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 0.9, set 3)",GAME_FLAGS )
+GAME(199?, m4crzjwlb, m4crzjwl, mod4oki_bootleg_fixedret<0x46>(R4, RT1, LPLB), mpu4_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"bootleg","Crown Jewels (Barcrest) (bootleg) (German) (MPU4) (GCN 0.9, set 4)",GAME_FLAGS )
ROM_START( m4cjdlx )
ROM_REGION( 0x20000, "maincpu", 0 )
@@ -7937,7 +7879,7 @@ ROM_START( m4cjdlx )
ROM_END
// doesn't require inverted coins, runs, has Deluxe in the title
-GAME(199?, m4cjdlx, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"Barcrest","Crown Jewels Deluxe (Barcrest) (German) (MPU4) (CJG 0.4)",GAME_FLAGS )
+GAME(199?, m4cjdlx, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Crown Jewels Deluxe (Barcrest) (German) (MPU4) (CJG 0.4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -7966,8 +7908,8 @@ ROM_START( m4sunsetb )
ROM_END
// these are NOT Mod 2 like the m4sunset sets, so could be misidentified
-GAME(199?, m4sunseta, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 1)",GAME_FLAGS )
-GAME(199?, m4sunsetb, m4sunseta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 2)",GAME_FLAGS )
+GAME(199?, m4sunseta, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 1)",GAME_FLAGS )
+GAME(199?, m4sunsetb, m4sunseta, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8017,7 +7959,7 @@ INPUT_PORTS_START( m4magtbo )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
-GAME(199?, m4magtbo, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::tricolor_characteriser_prot>, m4magtbo, mpu4mod4oki_machines_state, init_m4default_six, ROT0, "Barcrest","Star Play / Magic Turbo (Barcrest) (MPU4) (XST 0.4)",GAME_FLAGS )
+GAME(199?, m4magtbo, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::tricolor_characteriser_prot>(R6, RT1), m4magtbo, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Star Play / Magic Turbo (Barcrest) (MPU4) (XST 0.4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8050,9 +7992,9 @@ ROM_START( m4brnzeb )
M4BRNZE_EXTRAS
ROM_END
-GAME(199?, m4brnze, 0, mod4oki, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "bootleg?","Bronze Voyage (BWB) (bootleg?) (MPU4) (BV5 2.1, set 1)",GAME_FLAGS )
-GAME(199?, m4brnzea, m4brnze, mod4oki, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "bootleg?","Bronze Voyage (BWB) (bootleg?) (MPU4) (BV5 2.1, set 2)",GAME_FLAGS )
-GAME(199?, m4brnzeb, m4brnze, mod4oki, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "bootleg?","Bronze Voyage (BWB) (bootleg?) (MPU4) (BV5 2.1, set 3)",GAME_FLAGS )
+GAME(199?, m4brnze, 0, mod4oki(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "bootleg?","Bronze Voyage (BWB) (bootleg?) (MPU4) (BV5 2.1, set 1)",GAME_FLAGS )
+GAME(199?, m4brnzea, m4brnze, mod4oki(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "bootleg?","Bronze Voyage (BWB) (bootleg?) (MPU4) (BV5 2.1, set 2)",GAME_FLAGS )
+GAME(199?, m4brnzeb, m4brnze, mod4oki(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "bootleg?","Bronze Voyage (BWB) (bootleg?) (MPU4) (BV5 2.1, set 3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8068,7 +8010,7 @@ ROM_START( m4prem )
ROM_LOAD( "dpms.bin", 0x0000, 0x080000, CRC(93fd4253) SHA1(69feda7ffc56defd515c9cd1ce204af3d9731a3f) )
ROM_END
-GAME(199?, m4prem, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::premier_characteriser_prot> ,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Premier (Barcrest) (Dutch) (MPU4) (DPM 1.4)",GAME_FLAGS )
+GAME(199?, m4prem, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::premier_characteriser_prot>(R6A, RT1) ,mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Premier (Barcrest) (Dutch) (MPU4) (DPM 1.4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8084,7 +8026,7 @@ ROM_START( m4rdht )
ROM_LOAD( "drh_1.snd", 0x0000, 0x080000, CRC(f652cd0c) SHA1(9ce986bc12bcf22a57e065329e82671d19cc96d7) ) // aka gn.snd
ROM_END
-GAME(199?, m4rdht, 0, mod4oki_7reel_cheatchr_pal<mpu4_characteriser_pal::redheat_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_seven, ROT0, "Barcrest","Red Heat (Barcrest) (Dutch) (MPU4) (DRH 1.2)",GAME_FLAGS )
+GAME(199?, m4rdht, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::redheat_characteriser_prot>(R7, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Red Heat (Barcrest) (Dutch) (MPU4) (DRH 1.2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8101,7 +8043,7 @@ ROM_START( m4rwb )
ROM_LOAD( "rwb_2.snd", 0x080000, 0x080000, CRC(54a2b2fd) SHA1(25875ff873bf22df510e7a4c56c336fbabcbdedb) )
ROM_END
-GAME(199?, m4rwb, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::redwhite_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Red White & Blue (Barcrest) (Dutch) (MPU4) (DRW 1.4)",GAME_FLAGS )
+GAME(199?, m4rwb, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::redwhite_characteriser_prot>(R6A, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Red White & Blue (Barcrest) (Dutch) (MPU4) (DRW 1.4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8118,7 +8060,7 @@ ROM_START( m4amhiwy )
ROM_LOAD( "sdr6_2.snd", 0x080000, 0x080000, CRC(48d2ace5) SHA1(ada0180cc60266c0a6d981a019d66bbedbced21a) )
ROM_END
-GAME(199?, m4amhiwy, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_five_rev, ROT0, "Barcrest","American Highway (Barcrest) (Dutch) (MPU4) (DAH 2.0)",GAME_FLAGS )
+GAME(199?, m4amhiwy, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m462_characteriser_prot>(R5R, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","American Highway (Barcrest) (Dutch) (MPU4) (DAH 2.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8136,7 +8078,7 @@ ROM_START( m4roadrn )
ROM_LOAD( "dro_2.snd", 0x080000, 0x080000, CRC(1d5c8d4f) SHA1(15c18ae7286807cdc0feb825b958eae808445690) )
ROM_END
-GAME(199?, m4roadrn, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Road Runner (Barcrest) (Dutch) (MPU4) (DRO 1.9)",GAME_FLAGS )
+GAME(199?, m4roadrn, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R6, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Road Runner (Barcrest) (Dutch) (MPU4) (DRO 1.9)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8152,7 +8094,7 @@ ROM_START( m4salsa )
ROM_LOAD( "dsa_1@97c2.snd", 0x0000, 0x080000, CRC(0281a6dd) SHA1(a35a8cd0da32c51f77856ea3eeff7c58fd032333) )
ROM_END
-GAME(199?, m4salsa, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::salsa_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Salsa (Barcrest) (Dutch) (MPU4) (DSA 1.5)",GAME_FLAGS )
+GAME(199?, m4salsa, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::salsa_characteriser_prot>(R6A, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Salsa (Barcrest) (Dutch) (MPU4) (DSA 1.5)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8170,7 +8112,7 @@ ROM_START( m4ceptr )
ROM_LOAD( "cepsnd.p2", 0x080000, 0x080000, BAD_DUMP CRC(a82f0096) SHA1(45b6b5a2ae06b45add9cdbb9f5e6f834687b4902) )
ROM_END
-GAME(199?, m4ceptr, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::salsa_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Ceptor (Barcrest) (Dutch) (MPU4) (DCE 1.0)",GAME_FLAGS )
+GAME(199?, m4ceptr, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::salsa_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Ceptor (Barcrest) (Dutch) (MPU4) (DCE 1.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8186,7 +8128,7 @@ ROM_START( m4blkwhd )
ROM_LOAD( "generic_dutch_sound1.bin", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) )
ROM_END
-GAME(199?, m4blkwhd, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::blackwhite_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_six, ROT0, "Barcrest","Black & White (Barcrest) (Dutch) (MPU4) (DBW 1.1)",GAME_FLAGS ) // Reel Error
+GAME(199?, m4blkwhd, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::blackwhite_characteriser_prot>(R6, RT2), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Black & White (Barcrest) (Dutch) (MPU4) (DBW 1.1)",GAME_FLAGS ) // Reel Error
/*****************************************************************************************************************************************************************************
*
@@ -8204,7 +8146,7 @@ ROM_START( m4frtgm )
ROM_LOAD( "generic_dutch_sound1.bin", 0x0000, 0x080000, BAD_DUMP CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) )
ROM_END
-GAME(199?, m4frtgm, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Fruit Game (Barcrest) (MPU4) (FRU 2.0)",GAME_FLAGS )
+GAME(199?, m4frtgm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R6, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Fruit Game (Barcrest) (MPU4) (FRU 2.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8222,7 +8164,7 @@ ROM_START( m4exgam )
ROM_LOAD( "generic_dutch_sound2.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) )
ROM_END
-GAME(199?, m4exgam, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Extra Game (Fairplay - Barcrest) (MPU4) (CEG 2.0)",GAME_FLAGS )
+GAME(199?, m4exgam, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R6, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Extra Game (Fairplay - Barcrest) (MPU4) (CEG 2.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8240,7 +8182,7 @@ ROM_START( m4ringfr )
ROM_END
// Alarm 17
-GAME(199?, m4ringfr, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0, "Barcrest","Ring Of Fire (Barcrest) (German) (MPU4) (ROF 0.3)",GAME_FLAGS )
+GAME(199?, m4ringfr, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0, "Barcrest","Ring Of Fire (Barcrest) (German) (MPU4) (ROF 0.3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8257,7 +8199,7 @@ ROM_START( m4bluedm )
ROM_LOAD( "bdsnd.bin", 0x0000, 0x080000, BAD_DUMP CRC(8ac4aae6) SHA1(70dba43b398010a8bd0d82cf91553d3f5e0921f0) ) // also on m4hpyjok, probably wrong here?
ROM_END
-GAME(199?, m4bluedm, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::bluediamond_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Blue Diamond (Barcrest) (Dutch) (MPU4) (DBD 1.0)",GAME_FLAGS )
+GAME(199?, m4bluedm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bluediamond_characteriser_prot>(R6A, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Blue Diamond (Barcrest) (Dutch) (MPU4) (DBD 1.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8273,7 +8215,7 @@ ROM_START( m4hpyjok )
ROM_LOAD( "dhjsnd", 0x0000, 0x080000, CRC(8ac4aae6) SHA1(70dba43b398010a8bd0d82cf91553d3f5e0921f0) )
ROM_END
-GAME(199?, m4hpyjok, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::redheat_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Happy Joker (Barcrest) (Dutch) (MPU4) (DHJ 1.2)",GAME_FLAGS )
+GAME(199?, m4hpyjok, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::redheat_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Happy Joker (Barcrest) (Dutch) (MPU4) (DHJ 1.2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8293,7 +8235,7 @@ ROM_START( m4gnsmk )
ROM_LOAD( "sdgu01.s4", 0x180000, 0x080000, CRC(a6160bef) SHA1(807f7d470728a479a55c782fca3df1eacd0b594c) )
ROM_END
-GAME(199?, m4gnsmk, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Gun Smoke (Barcrest) (Dutch) (MPU4) (DGU 1.6)",GAME_FLAGS )
+GAME(199?, m4gnsmk, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Gun Smoke (Barcrest) (Dutch) (MPU4) (DGU 1.6)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8311,7 +8253,7 @@ ROM_START( m4oldtmr )
ROM_LOAD( "generic_dutch_sound1.bin", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) )
ROM_END
-GAME(199?, m4oldtmr, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::m470_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_six, ROT0, "Barcrest","Old Timer (Barcrest) (Dutch) (MPU4) (DOT 1.1)",GAME_FLAGS )
+GAME(199?, m4oldtmr, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m470_characteriser_prot>(R6, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Old Timer (Barcrest) (Dutch) (MPU4) (DOT 1.1)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8327,7 +8269,7 @@ ROM_START( m4twintm )
ROM_LOAD( "generic_dutch_sound2.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) )
ROM_END
-GAME(199?, m4twintm, 0, mod4oki_7reel_cheatchr_pal<mpu4_characteriser_pal::m533_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_seven, ROT0, "Barcrest","Twin Timer (Barcrest) (MPU4) (D2T 1.1)",GAME_FLAGS )
+GAME(199?, m4twintm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m533_characteriser_prot>(R7, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Twin Timer (Barcrest) (MPU4) (D2T 1.1)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8343,7 +8285,7 @@ ROM_START( m4holdtm )
ROM_LOAD( "generic_dutch_sound2.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) )
ROM_END
-GAME(199?, m4holdtm, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Hold Timer (Barcrest) (Dutch) (MPU4) (DHT 1.0)",GAME_FLAGS )
+GAME(199?, m4holdtm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R6, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Hold Timer (Barcrest) (Dutch) (MPU4) (DHT 1.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8359,7 +8301,7 @@ ROM_START( m4showtm )
ROM_LOAD( "generic_dutch_sound1.bin", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) )
ROM_END
-GAME(199?, m4showtm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Show Timer (Barcrest) (Dutch) (MPU4) (DSH 1.3)",GAME_FLAGS )
+GAME(199?, m4showtm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::andybt_characteriser_prot>(R6, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Show Timer (Barcrest) (Dutch) (MPU4) (DSH 1.3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8375,7 +8317,7 @@ ROM_START( m4steptm )
ROM_LOAD( "generic_dutch_sound2.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) )
ROM_END
-GAME(199?, m4steptm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Step Timer (Barcrest) (Dutch) (MPU4) (DST 1.1)",GAME_FLAGS )
+GAME(199?, m4steptm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::phr_characteriser_prot>(R6, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Step Timer (Barcrest) (Dutch) (MPU4) (DST 1.1)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8391,7 +8333,7 @@ ROM_START( m4wildtm )
ROM_LOAD( "generic_dutch_sound2.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) )
ROM_END
-GAME(199?, m4wildtm, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::wildtime_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Wild Timer (Barcrest) (Dutch) (MPU4) (DWT 1.3)",GAME_FLAGS )
+GAME(199?, m4wildtm, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::wildtime_characteriser_prot>(R6, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Wild Timer (Barcrest) (Dutch) (MPU4) (DWT 1.3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8415,8 +8357,8 @@ ROM_START( m4toptima )
M4TOPTIM_EXTRAS
ROM_END
-GAME(199?, m4toptim, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Top Timer (Barcrest) (Dutch) (MPU4) (DTT 1.8, set 1)",GAME_FLAGS )
-GAME(199?, m4toptima, m4toptim, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Top Timer (Barcrest) (Dutch) (MPU4) (DTT 1.8, set 2)",GAME_FLAGS )
+GAME(199?, m4toptim, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R6, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Top Timer (Barcrest) (Dutch) (MPU4) (DTT 1.8, set 1)",GAME_FLAGS )
+GAME(199?, m4toptima, m4toptim, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R6, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Top Timer (Barcrest) (Dutch) (MPU4) (DTT 1.8, set 2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8433,7 +8375,7 @@ ROM_START( m4maglin )
ROM_LOAD( "mlsound2.p2", 0x080000, 0x080000, CRC(c8165b6c) SHA1(7c5059ee8630da31fc3ad50d84a4730297757d46) )
ROM_END
-GAME(199?, m4maglin, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_six_alt, ROT0, "Barcrest","Magic Liner (Barcrest) (Dutch) (MPU4) (DMA 2.1)",GAME_FLAGS )
+GAME(199?, m4maglin, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R6A, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Magic Liner (Barcrest) (Dutch) (MPU4) (DMA 2.1)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8449,7 +8391,7 @@ ROM_START( m4magrep )
ROM_LOAD( "mrdsound.bin", 0x000000, 0x080000, CRC(9b035fa6) SHA1(51b7e5bc3abdf4f1beba2347146a91a2b3f4de35) ) // also in m4luckdvd
ROM_END
-GAME(199?, m4magrep, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::turboplay_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Magic Replay (Barcrest) (Dutch) (MPU4) (DMR 1.3)",GAME_FLAGS )
+GAME(199?, m4magrep, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::turboplay_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Magic Replay (Barcrest) (Dutch) (MPU4) (DMR 1.3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8465,7 +8407,7 @@ ROM_START( m4univ )
ROM_LOAD( "generic_dutch_sound2.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) )
ROM_END
-GAME(199?, m4univ, 0, mod4oki_alt_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4altreels, ROT0, "Barcrest","Universe (Barcrest) (Dutch) (MPU4) (DUN 2.0)",GAME_FLAGS )
+GAME(199?, m4univ, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m400_characteriser_prot>(R6, RT2),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Universe (Barcrest) (Dutch) (MPU4) (DUN 2.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8482,7 +8424,7 @@ ROM_START( m4vivalvd )
ROM_LOAD( "dpms.bin", 0x0000, 0x080000, BAD_DUMP CRC(93fd4253) SHA1(69feda7ffc56defd515c9cd1ce204af3d9731a3f) ) // same as m4prem (incorrect?)
ROM_END
-GAME(199?, m4vivalvd, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::premier_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Viva Las Vegas (Barcrest) (Dutch) (MPU4) (DLV 1.1)",GAME_FLAGS )
+GAME(199?, m4vivalvd, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::premier_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Viva Las Vegas (Barcrest) (Dutch) (MPU4) (DLV 1.1)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -8509,8 +8451,8 @@ ROM_START( m4technoa )
M4TECHNO_EXTRAS
ROM_END
-GAME(199?, m4techno, 0, mod4oki_7reel_cheatchr_pal<mpu4_characteriser_pal::techno_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_seven, ROT0, "Barcrest","Techno Reel (Barcrest) (Dutch) (MPU4) (DTE 1.3, set 1)",GAME_FLAGS )
-GAME(199?, m4technoa, m4techno, mod4oki_7reel_cheatchr_pal<mpu4_characteriser_pal::techno_characteriser_prot>,mpu4_dutch, mpu4mod4oki_machines_state, init_m4default_seven, ROT0, "Barcrest","Techno Reel (Barcrest) (Dutch) (MPU4) (DTE 1.3, set 2, hack?)",GAME_FLAGS )
+GAME(199?, m4techno, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::techno_characteriser_prot>(R7, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Techno Reel (Barcrest) (Dutch) (MPU4) (DTE 1.3, set 1)",GAME_FLAGS )
+GAME(199?, m4technoa, m4techno, mod4oki_cheatchr_pal<mpu4_characteriser_pal::techno_characteriser_prot>(R7, RT1),mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Techno Reel (Barcrest) (Dutch) (MPU4) (DTE 1.3, set 2, hack?)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8554,13 +8496,13 @@ ROM_START( m4tbplayd )
M4TBPLAY_EXTRAS
ROM_END
-GAME(199?, m4tbplay, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::turboplay_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Turbo Play (Barcrest) (Dutch) (MPU4) (DTP 1.3)",GAME_FLAGS )
+GAME(199?, m4tbplay, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::turboplay_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Turbo Play (Barcrest) (Dutch) (MPU4) (DTP 1.3)",GAME_FLAGS )
// NO METERS
-GAME(199?, m4tbplaya, m4tbplay, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Turbo Play (Barcrest) (MPU4) (CTP 0.4)",GAME_FLAGS )
-GAME(199?, m4tbplayb, m4tbplay, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Turbo Play (Barcrest) (MPU4) (ZTP 0.7)",GAME_FLAGS )
+GAME(199?, m4tbplaya, m4tbplay, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Turbo Play (Barcrest) (MPU4) (CTP 0.4)",GAME_FLAGS )
+GAME(199?, m4tbplayb, m4tbplay, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Turbo Play (Barcrest) (MPU4) (ZTP 0.7)",GAME_FLAGS )
// NO METERS, non-standard protection
-GAME(199?, m4tbplayc, m4tbplay, mod4oki_bootleg_fixedret<0x6a>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "bootleg", "Turbo Play (Barcrest) (bootleg) (MPU4) (CTP 0.4)",GAME_FLAGS )
-GAME(199?, m4tbplayd, m4tbplay, mod4oki_bootleg_fixedret<0x19>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "bootleg", "Turbo Play (Barcrest) (bootleg) (MPU4) (ZTP 0.7)",GAME_FLAGS )
+GAME(199?, m4tbplayc, m4tbplay, mod4oki_bootleg_fixedret<0x6a>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "bootleg", "Turbo Play (Barcrest) (bootleg) (MPU4) (CTP 0.4)",GAME_FLAGS )
+GAME(199?, m4tbplayd, m4tbplay, mod4oki_bootleg_fixedret<0x19>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "bootleg", "Turbo Play (Barcrest) (bootleg) (MPU4) (ZTP 0.7)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8577,7 +8519,7 @@ ROM_START( m4luckdvd )
ROM_LOAD( "sdld01.snd", 0x000000, 0x080000, BAD_DUMP CRC(9b035fa6) SHA1(51b7e5bc3abdf4f1beba2347146a91a2b3f4de35) ) // also in m4magrep
ROM_END
-GAME(199?, m4luckdvd, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::salsa_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Lucky Devil (Barcrest) (Dutch) (MPU4) (DLD 1.3)",GAME_FLAGS )
+GAME(199?, m4luckdvd, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::salsa_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Lucky Devil (Barcrest) (Dutch) (MPU4) (DLD 1.3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -8595,7 +8537,7 @@ ROM_START( m4gldjok )
ROM_END
// boots but will give HOPPER JAM after a credit
-GAME(199?, m4gldjok, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::goljok_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Golden Joker (Barcrest) (Dutch) (MPU4) (DGJ 1.2)",GAME_FLAGS )
+GAME(199?, m4gldjok, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::goljok_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Golden Joker (Barcrest) (Dutch) (MPU4) (DGJ 1.2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8615,7 +8557,7 @@ ROM_START( m4blkcat )
ROM_END
// similar to m4gldjok, only accepts a single credit with '8' (coin lock issues?)
-GAME(199?, m4blkcat, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::blkcat_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Black Cat (Barcrest) (Dutch) (MPU4) (DBL 1.4)",GAME_FLAGS )
+GAME(199?, m4blkcat, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::blkcat_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Black Cat (Barcrest) (Dutch) (MPU4) (DBL 1.4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8632,7 +8574,7 @@ ROM_START( m4riotrp )
ROM_END
// runs, coins don't work, Dutch?
-GAME(199?, m4riotrp, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::blkcat_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Rio Tropico (Barcrest) (Dutch) (MPU4) (DRT 1.0)",GAME_FLAGS )
+GAME(199?, m4riotrp, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::blkcat_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Rio Tropico (Barcrest) (Dutch) (MPU4) (DRT 1.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8653,7 +8595,7 @@ ROM_END
// was the CHR replaced with something else that just happens to give this seuqence, or is this valid somehow?
// runs, coins don't work
// fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc 6c dc bc 7c fc fc fc fc fc fc fc fc fc 00 04 0c 1c 3c 7c fc fc fc fc fc fc fc fc d4 ac 5c bc 7c fc fc fc fc fc fc fc fc fc fc fc fc 00
-GAME(199?, m4luck7, 0, mod4oki_cheatchr, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Lucky 7 (Barcrest) (Dutch) (MPU4)",GAME_FLAGS )
+GAME(199?, m4luck7, 0, mod4oki_cheatchr(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Lucky 7 (Barcrest) (Dutch) (MPU4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -8673,7 +8615,7 @@ ROM_START( m4royjwl )
ROM_LOAD( "rj_sound2.bin", 0x080000, 0x080000, CRC(9456523e) SHA1(ea1b6bf16b7d1015c188ad83760336d9851de391) )
ROM_END
-GAME(199?, m4royjwl, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::jewelcrown_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big_lextender, ROT0, "Barcrest","Royal Jewels (Barcrest) (German) (MPU4) (GRJ 1.4)",GAME_FLAGS )
+GAME(199?, m4royjwl, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::jewelcrown_characteriser_prot>(R4, RT1, LPLB), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, "Barcrest","Royal Jewels (Barcrest) (German) (MPU4) (GRJ 1.4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8692,7 +8634,7 @@ ROM_START( m4nile )
ROM_LOAD( "gjnsnd.p4", 0x180000, 0x080000, CRC(da785b0a) SHA1(63358ab197eb1de8e489a9fd6ffbc2039efc9536) )
ROM_END
-GAME(199?, m4nile, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"Barcrest","Nile Jewels (Barcrest) (German) (MPU4) (GJN 0.8)",GAME_FLAGS ) // DM1 SW ALM
+GAME(199?, m4nile, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1, LPLB), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Nile Jewels (Barcrest) (German) (MPU4) (GJN 0.8)",GAME_FLAGS ) // DM1 SW ALM
/*****************************************************************************************************************************************************************************
*
@@ -8709,7 +8651,7 @@ ROM_START( m4vegastg )
ROM_END
-GAME(199?, m4vegastg, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big,ROT0,"Barcrest","Vegas Strip (Barcrest) (German) (MPU4)",GAME_FLAGS ) // 1 DM SW ALM
+GAME(199?, m4vegastg, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Vegas Strip (Barcrest) (German) (MPU4)",GAME_FLAGS ) // 1 DM SW ALM
/*****************************************************************************************************************************************************************************
*
@@ -8728,7 +8670,7 @@ ROM_START( m4ordmnd )
ROM_END
// bwb/nova?
-GAME(199?, m4ordmnd, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big,ROT0,"Barcrest","Oriental Diamonds (Barcrest) (German) (MPU4) (RAB 0.1)",GAME_FLAGS )
+GAME(199?, m4ordmnd, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::actclba_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Oriental Diamonds (Barcrest) (German) (MPU4) (RAB 0.1)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8745,7 +8687,7 @@ ROM_START( m4vivan )
ROM_LOAD( "vlvsound2.bin", 0x080000, 0x080000, CRC(571c00d1) SHA1(5e7be40d3caae88dc3a580415f8ab796f6efd67f) )
ROM_END
-GAME( 199?, m4vivan, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::premier_characteriser_prot>, mpu4_dutch, mpu4mod4oki_machines_state, init_m4default, 0, "Nova", "Viva Las Vegas (Nova) (German) (MPU4) (GLV 1.2)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+GAME( 199?, m4vivan, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::premier_characteriser_prot>(R4, RT1), mpu4_dutch, mpu4mod4oki_machines_state, init_m4, 0, "Nova", "Viva Las Vegas (Nova) (German) (MPU4) (GLV 1.2)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
/*****************************************************************************************************************************************************************************
*
@@ -8761,7 +8703,7 @@ ROM_START( m4spotln )
ROM_END
// runs
-GAME( 199?, m4spotln, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big, 0, "Barcrest / Nova", "Spotlight (Nova) (German) (MPU4) (GSP 0.1)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+GAME( 199?, m4spotln, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4big, 0, "Barcrest / Nova", "Spotlight (Nova) (German) (MPU4) (GSP 0.1)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
/*****************************************************************************************************************************************************************************
*
@@ -8780,7 +8722,7 @@ ROM_START( m4goldnn )
ROM_END
// runs
-GAME( 199?, m4goldnn, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big, 0, "Nova", "Golden Years (Nova) (German) (MPU4) (TGY 0.1)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+GAME( 199?, m4goldnn, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::alf_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4big, 0, "Nova", "Golden Years (Nova) (German) (MPU4) (TGY 0.1)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
/*****************************************************************************************************************************************************************************
*
@@ -8798,7 +8740,7 @@ ROM_START( m4hilonv )
ROM_END
// KEINE TOKENROEHR, runs open door
-GAME(199?, m4hilonv, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bagtel_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big, ROT0, "Nova","Hi Lo Casino (Nova) (German) (MPU4) (HNC 0.2)",GAME_FLAGS )
+GAME(199?, m4hilonv, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bagtel_characteriser_prot>(R4, RT1), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big, ROT0, "Nova","Hi Lo Casino (Nova) (German) (MPU4) (HNC 0.2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8815,7 +8757,7 @@ ROM_START( m4octo )
ROM_LOAD( "oct03.snd", 0x000000, 0x080000, NO_DUMP )
ROM_END
-GAME(199?, m4octo, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big, ROT0, "Nova","Octopus (Nova) (German) (MPU4) (OCT 0.3)",GAME_FLAGS )
+GAME(199?, m4octo, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::fruitfall_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, "Nova","Octopus (Nova) (German) (MPU4) (OCT 0.3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8832,7 +8774,7 @@ ROM_START( m4bigban )
ROM_LOAD( "big04.snd", 0x000000, 0x080000, NO_DUMP )
ROM_END
-GAME(199?, m4bigban, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big, ROT0, "Nova","Big Bandit (Nova) (German) (MPU4) (BIG 0.4)",GAME_FLAGS ) // DM1 SW ALM
+GAME(199?, m4bigban, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big, ROT0, "Nova","Big Bandit (Nova) (German) (MPU4) (BIG 0.4)",GAME_FLAGS ) // DM1 SW ALM
/*****************************************************************************************************************************************************************************
*
@@ -8849,7 +8791,7 @@ ROM_START( m4crzcsn )
ROM_LOAD( "crz03.snd", 0x000000, 0x080000, NO_DUMP )
ROM_END
-GAME(199?, m4crzcsn, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::mag7s_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big, ROT0, "Nova","Crazy Casino (Nova) (German) (MPU4) (CRZ 0.3)",GAME_FLAGS )
+GAME(199?, m4crzcsn, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::mag7s_characteriser_prot>(R4, RT1), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big, ROT0, "Nova","Crazy Casino (Nova) (German) (MPU4) (CRZ 0.3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8866,7 +8808,7 @@ ROM_START( m4crzcav )
ROM_LOAD( "gcv05.snd", 0x000000, 0x080000, NO_DUMP )
ROM_END
-GAME(199?, m4crzcav, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bdash_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default_big, ROT0, "Nova","Crazy Cavern (Nova) (MPU4) (GCV 0.5)",GAME_FLAGS )
+GAME(199?, m4crzcav, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bdash_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4big, ROT0, "Nova","Crazy Cavern (Nova) (MPU4) (GCV 0.5)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8883,7 +8825,7 @@ ROM_START( m4dragon )
ROM_LOAD( "dgl01.snd", 0x000000, 0x080000, NO_DUMP )
ROM_END
-GAME(199?, m4dragon, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big, ROT0, "Nova","Dragon (Nova) (MPU4) (DGL 0.1)",GAME_FLAGS )
+GAME(199?, m4dragon, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big, ROT0, "Nova","Dragon (Nova) (MPU4) (DGL 0.1)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8918,9 +8860,9 @@ ROM_START( m4dracb )
M4DRAC_EXTRAS
ROM_END
-GAME(199?, m4drac, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bankrollerclub_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (DRA 2.1)",GAME_FLAGS ) // DM1 SW ALM
-GAME(199?, m4draca, m4drac, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bankrollerclub_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (DRA 2.4)",GAME_FLAGS ) // DM1 SW ALM
-GAME(199?, m4dracb, m4drac, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bankrollerclub_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (DRA 2.7)",GAME_FLAGS ) // DM1 SW ALM
+GAME(199?, m4drac, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bankrollerclub_characteriser_prot>(R4, RT1, LPLB), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (DRA 2.1)",GAME_FLAGS ) // DM1 SW ALM
+GAME(199?, m4draca, m4drac, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bankrollerclub_characteriser_prot>(R4, RT1, LPLB), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (DRA 2.4)",GAME_FLAGS ) // DM1 SW ALM
+GAME(199?, m4dracb, m4drac, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bankrollerclub_characteriser_prot>(R4, RT1, LPLB), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (DRA 2.7)",GAME_FLAGS ) // DM1 SW ALM
/*****************************************************************************************************************************************************************************
@@ -8939,7 +8881,7 @@ ROM_START( m4joljokh )
ROM_END
// gives an "IMD ?" message if you attempt to coin it up
-GAME(199?, m4joljokh, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::salsa_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Jolly Joker (Barcrest) (Hungarian) (MPU4) (HJJ 1.4)",GAME_FLAGS )
+GAME(199?, m4joljokh, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::salsa_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Jolly Joker (Barcrest) (Hungarian) (MPU4) (HJJ 1.4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -8966,8 +8908,8 @@ ROM_START( m4jok300 )
ROM_LOAD( "generic_dutch_sound1.bin", 0x0000, 0x080000, BAD_DUMP CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) )
ROM_END
-GAME(199?, m4jok300, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"Barcrest","Jokers Millenium 300 (Barcrest) (German) (MPU4) (DJO 0.1, set 1)",GAME_FLAGS ) // DM1 SW ALM
-GAME(199?, m4jok300a, m4jok300, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4default_big_lextender,ROT0,"Barcrest","Jokers Millenium 300 (Barcrest) (German) (MPU4) (DJO 0.1, set 2)",GAME_FLAGS ) // DM1 SW ALM
+GAME(199?, m4jok300, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1, LPLB), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Jokers Millenium 300 (Barcrest) (German) (MPU4) (DJO 0.1, set 1)",GAME_FLAGS ) // DM1 SW ALM
+GAME(199?, m4jok300a, m4jok300, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1, LPLB), mpu4_dutch_invcoin, mpu4mod4oki_machines_state, init_m4big,ROT0,"Barcrest","Jokers Millenium 300 (Barcrest) (German) (MPU4) (DJO 0.1, set 2)",GAME_FLAGS ) // DM1 SW ALM
/*****************************************************************************************************************************************************************************
*
@@ -8986,7 +8928,7 @@ ROM_START( m4mgpn )
ROM_LOAD( "mgpsnd.p4", 0x180000, 0x080000, CRC(d74b4b03) SHA1(a35c99040a72485a6c2d4a4fdfc203634f6a9ad0) )
ROM_END
-GAME( 199?, m4mgpn, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4_dutch_alt_invcoin, mpu4mod4oki_machines_state, init_m4default, 0, "Nova", "Monaco Grand Prix (Nova) (German) (MPU4) (MGP 1.4)",GAME_FLAGS )
+GAME( 199?, m4mgpn, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4_dutch_alt_invcoin, mpu4mod4oki_machines_state, init_m4, 0, "Nova", "Monaco Grand Prix (Nova) (German) (MPU4) (MGP 1.4)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -9003,7 +8945,7 @@ ROM_START( m4luckdv )
ROM_LOAD( "generic_dutch_sound2.bin", 0x080000, 0x080000, BAD_DUMP CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) )
ROM_END
-GAME(199?, m4luckdv, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bluediamond_characteriser_prot>, mpu4_dutch_alt_invcoin, mpu4mod4oki_machines_state, init_m4default, ROT0, "Barcrest","Lucky Devil (Barcrest) (Czech) (MPU4) (CLD 3.0)",GAME_FLAGS )
+GAME(199?, m4luckdv, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bluediamond_characteriser_prot>(R4, RT1), mpu4_dutch_alt_invcoin, mpu4mod4oki_machines_state, init_m4, ROT0, "Barcrest","Lucky Devil (Barcrest) (Czech) (MPU4) (CLD 3.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -9020,7 +8962,7 @@ ROM_START( m4sctagt )
ROM_LOAD( "generic_dutch_sound1.bin", 0x000000, 0x080000, BAD_DUMP CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) )
ROM_END
-GAME(199?, m4sctagt, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bluediamond_characteriser_prot>, mpu4_dutch_alt_invcoin, mpu4mod4oki_machines_state, init_m4default, ROT0, "Nova","Secret Agent (Nova) (German) (MPU4) (GSE 3.0)",GAME_FLAGS )
+GAME(199?, m4sctagt, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::bluediamond_characteriser_prot>(R4, RT1), mpu4_dutch_alt_invcoin, mpu4mod4oki_machines_state, init_m4, ROT0, "Nova","Secret Agent (Nova) (German) (MPU4) (GSE 3.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -9087,6 +9029,82 @@ ROM_START( m4esctbgb )
ROM_END
// NETWORK FAIL ALARM (reel comms?)
-GAME(1994, m4esctbg, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Vifico", "Escalera Tobogan (Spain) (MPU4) (ESC1, set 1)", GAME_FLAGS )
-GAME(1994, m4esctbga, m4esctbg, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Vifico", "Escalera Tobogan (Spain) (MPU4) (ESC1, set 2)", GAME_FLAGS )
-GAME(1994, m4esctbgb, m4esctbg, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>, mpu4, mpu4mod4oki_machines_state, init_m4default, ROT0, "Vifico", "Escalera Tobogan (Spain) (MPU4) (ESC1, set 3)", GAME_FLAGS )
+GAME(1994, m4esctbg, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Vifico", "Escalera Tobogan (Spain) (MPU4) (ESC1, set 1)", GAME_FLAGS )
+GAME(1994, m4esctbga, m4esctbg, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Vifico", "Escalera Tobogan (Spain) (MPU4) (ESC1, set 2)", GAME_FLAGS )
+GAME(1994, m4esctbgb, m4esctbg, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "Vifico", "Escalera Tobogan (Spain) (MPU4) (ESC1, set 3)", GAME_FLAGS )
+
+
+
+ROM_START( m4nod )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "nod.bin", 0x0000, 0x010000, CRC(bc738af5) SHA1(8df436139554ccfb48c4db0a32e3333dbf3c4f46) )
+ ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 )
+ ROM_LOAD( "nodsnd.bin", 0x0000, 0x080000, CRC(2134494a) SHA1(3b665bf79567a71195b20e76c50b02707d15b78d) )
+ROM_END
+
+// just spins wheels badly
+GAME( 199?, m4nod, 0, mod4oki(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, 0, "Eurotech", "Nod And A Wink (Eurotech) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+
+
+
+
+#define M4LUCKWB_EXTRAS \
+ ROM_REGION( 0x100000, "msm6376", 0 ) /* these are all different sound roms... */ \
+ ROM_LOAD( "lwbs3.bin", 0x0000, 0x07dc89, CRC(ee102376) SHA1(3fed581a4654acf285dd430fbfbac33cd67411b8) ) \
+ ROM_LOAD( "lwbs7.bin", 0x0000, 0x080000, CRC(5d4177c7) SHA1(e13f145885bb719b0021ae4ce289261a3eaa2e18) ) \
+ ROM_LOAD( "lwbs8.bin", 0x0000, 0x080000, CRC(187cdf5b) SHA1(87ec189af27c95f278a7531ec13df53a08889af8) ) \
+ ROM_LOAD( "lwbs9.bin", 0x0000, 0x080000, CRC(2e02b617) SHA1(2502a1d2cff155a7fc5148e23a4723d4d60e9d42) )
+
+ROM_START( m4luckwb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lwb10.bin", 0x0000, 0x010000, CRC(6d43a14e) SHA1(267aba1a01bfd5f0eaa7683d041d5fcb2d301934) )
+ M4LUCKWB_EXTRAS
+ROM_END
+
+ROM_START( m4luckwba )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lwb15.bin", 0x0000, 0x010000, CRC(b5af8cb2) SHA1(474975b83803627ad3ac4217d8cecb2d2db16fec) )
+ M4LUCKWB_EXTRAS
+ROM_END
+
+ROM_START( m4luckwbb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lwb21.bin", 0x0000, 0x010000, CRC(6c570733) SHA1(7488318ca9689371e4f80be0a0fddd8ad141733e) )
+ M4LUCKWB_EXTRAS
+ROM_END
+
+ROM_START( m4luckwbc )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lwb22.bin", 0x0000, 0x010000, CRC(05b952a7) SHA1(952e328b280a18c1ffe253b6a56f2b5e893b1b72) )
+ M4LUCKWB_EXTRAS
+ROM_END
+
+ROM_START( m4luckwbd )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lwb27.bin", 0x0000, 0x010000, CRC(9d6b6637) SHA1(65bad12cd08de128ca31c9488e32e3cebfb8eedb) )
+ M4LUCKWB_EXTRAS
+ROM_END
+
+ROM_START( m4luckwbe )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lwb6.bin", 0x0000, 0x010000, CRC(8e7d4594) SHA1(4824a9a4628585a170c41e00f7b3fcb8a2330c02) )
+ M4LUCKWB_EXTRAS
+ROM_END
+
+ROM_START( m4luckwbf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lwb7.bin", 0x0000, 0x010000, CRC(8e651705) SHA1(bd4d09d586d14759a17d4d7d4016c427f3eef015) )
+ M4LUCKWB_EXTRAS
+ROM_END
+
+
+
+// doesn't use standard Barcrest protection, maybe Coinworld?
+// reads a jump offset from 0x800 (where protection would usually map), masking out 3 lowest bits; only 0xb0 seems to be valid here
+GAME(199?, m4luckwb, 0, mod4oki_bootleg_fixedret<0xb0>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4luckwba, m4luckwb, mod4oki_bootleg_fixedret<0xb0>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4luckwbb, m4luckwb, mod4oki_bootleg_fixedret<0xb0>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 3)",GAME_FLAGS )
+GAME(199?, m4luckwbc, m4luckwb, mod4oki_bootleg_fixedret<0xb0>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 4)",GAME_FLAGS )
+GAME(199?, m4luckwbd, m4luckwb, mod4oki(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 5, unprotected)",GAME_FLAGS )
+GAME(199?, m4luckwbe, m4luckwb, mod4oki_bootleg_fixedret<0xb0>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 6)",GAME_FLAGS )
+GAME(199?, m4luckwbf, m4luckwb, mod4oki_bootleg_fixedret<0xb0>(R4, RT1), mpu4, mpu4mod4oki_machines_state, init_m4, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 7)",GAME_FLAGS )
diff --git a/src/mame/barcrest/mpu4mod4yam.cpp b/src/mame/barcrest/mpu4mod4yam.cpp
index 90a30242743..a41b0261848 100644
--- a/src/mame/barcrest/mpu4mod4yam.cpp
+++ b/src/mame/barcrest/mpu4mod4yam.cpp
@@ -5,33 +5,261 @@
#include "emu.h"
#include "mpu4.h"
+#include "sound/ymopl.h"
+
namespace {
class mpu4mod4yam_machines_state : public mpu4_state
{
public:
-
- mpu4mod4yam_machines_state(const machine_config &mconfig, device_type type, const char *tag) :
- mpu4_state(mconfig, type, tag)
+ mpu4mod4yam_machines_state(const machine_config &mconfig, device_type type, const char *tag)
+ : mpu4_state(mconfig, type, tag)
+ , m_ym2413(*this, "ym2413")
{
}
- void init_m4addr();
- void init_m4test4();
+ void base_f(machine_config &config);
+ void no_bacta_f(machine_config &config);
+ template<const uint8_t* Table> void cheatchr_pal_f(machine_config &config);
+ template<uint8_t Fixed> void bootleg_fixedret_f(machine_config &config);
+ void cheatchr_gambal_f(machine_config &config);
+
+ template<typename... T>
+ auto base(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod4yam_machines_state::base_f, traits...);
+ }
+ template<typename... T>
+ auto no_bacta(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod4yam_machines_state::no_bacta_f, traits...);
+ }
+ template<const uint8_t* Table, typename... T>
+ auto cheatchr_pal(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod4yam_machines_state::cheatchr_pal_f<Table>, traits...);
+ }
+ template<uint8_t Fixed, typename... T>
+ auto bootleg_fixedret(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod4yam_machines_state::bootleg_fixedret_f<Fixed>, traits...);
+ }
+ template<typename... T>
+ auto cheatchr_gambal(T... traits)
+ {
+ return trait_wrapper(this, &mpu4mod4yam_machines_state::cheatchr_gambal_f, traits...);
+ }
- void mod4yam_cheatchr_gambal(machine_config &config);
+ void init_m4_806prot();
private:
+ void add_ym2413(machine_config& config);
+
+ void memmap_ym2413(address_map &map);
+ void memmap_characteriser_ym2413(address_map &map);
+ void memmap_bootleg_characteriser_ym2413(address_map &map);
+
+ DECLARE_MACHINE_START(mpu4yam);
+
void pia_ic5_porta_gambal_w(uint8_t data);
+
+ required_device<ym2413_device> m_ym2413;
};
#include "gamball.lh"
#include "m4addr.lh"
-} // anonymous namespace
-#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
+/***********************************************************************************************
+
+ Configs for Mod4 with YM
+
+***********************************************************************************************/
+
+void mpu4mod4yam_machines_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 mpu4mod4yam_machines_state::base_f(machine_config &config)
+{
+ mpu4base(config);
+ MCFG_MACHINE_START_OVERRIDE(mpu4mod4yam_machines_state,mpu4yam)
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4mod4yam_machines_state::memmap_ym2413);
+
+ add_ym2413(config);
+}
+
+void mpu4mod4yam_machines_state::no_bacta_f(machine_config &config)
+{
+ base_f(config);
+ config.device_remove("dataport");
+ m_pia5->ca2_handler().set(m_pia4, FUNC(pia6821_device::cb1_w));
+}
+
+template<const uint8_t* Table> void mpu4mod4yam_machines_state::cheatchr_pal_f(machine_config &config)
+{
+ base_f(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4mod4yam_machines_state::memmap_characteriser_ym2413);
+
+ 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 mpu4mod4yam_machines_state::bootleg_fixedret_f(machine_config &config)
+{
+ base_f(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4mod4yam_machines_state::memmap_bootleg_characteriser_ym2413);
+
+ MPU4_CHARACTERISER_BL(config, m_characteriser_bl, 0);
+ m_characteriser_bl->set_bl_fixed_return(Fixed);
+}
+
+void mpu4mod4yam_machines_state::cheatchr_gambal_f(machine_config &config)
+{
+ cheatchr_pal_f<mpu4_characteriser_pal::gambal_characteriser_prot>(config);
+
+ // custom hookup for gambal feature
+ m_pia5->writepa_handler().set(FUNC(mpu4mod4yam_machines_state::pia_ic5_porta_gambal_w));
+}
+
+
+
+
+MACHINE_START_MEMBER(mpu4mod4yam_machines_state,mpu4yam)
+{
+ mpu4_config_common();
+
+ m_link7a_connected=false;
+}
+
+void mpu4mod4yam_machines_state::memmap_ym2413(address_map &map)
+{
+ mpu4_memmap(map);
+ map(0x0880, 0x0881).w(m_ym2413, FUNC(ym2413_device::write));
+}
+
+void mpu4mod4yam_machines_state::memmap_characteriser_ym2413(address_map &map)
+{
+ mpu4_memmap_characteriser(map);
+ map(0x0880, 0x0881).w(m_ym2413, FUNC(ym2413_device::write));
+}
+
+void mpu4mod4yam_machines_state::memmap_bootleg_characteriser_ym2413(address_map &map)
+{
+ mpu4_memmap_bootleg_characteriser(map);
+ map(0x0880, 0x0881).w(m_ym2413, FUNC(ym2413_device::write));
+}
+
+
+void mpu4mod4yam_machines_state::pia_ic5_porta_gambal_w(uint8_t data)
+{
+ pia_ic5_porta_w(data);
+
+ /* The 'Gamball' device is a unique piece of mechanical equipment, designed to
+ provide a truly fair hi-lo gamble for an AWP. Functionally, it consists of
+ a ping-pong ball or similar enclosed in the machine's backbox, on a platform with 12
+ holes. When the low 4 bytes of AUX1 are triggered, this fires the ball out from the
+ hole it's currently in, to land in another. Landing in the same hole causes the machine to
+ refire the ball. The ball detection is done by the high 4 bytes of AUX1.
+ Here we call the MAME RNG, once to pick a row, once to pick from the four pockets within it. We
+ then trigger the switches corresponding to the correct number. This appears to be the best way
+ of making the game fair, short of simulating the physics of a bouncing ball ;)*/
+ if (data & 0x0f)
+ {
+ switch ((machine().rand()>>5) % 0x3)
+ {
+ case 0x00: //Top row
+ switch (machine().rand() & 0x3)
+ {
+ case 0x00: //7
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0xa0;
+ break;
+
+ case 0x01://4
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0xb0;
+ break;
+
+ case 0x02://9
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0xc0;
+ break;
+
+ case 0x03://8
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0xd0;
+ break;
+ }
+ break;
+
+ case 0x01: //Middle row - note switches don't match pattern
+ switch (machine().rand() & 0x3)
+ {
+ case 0x00://12
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x40;
+ break;
+
+ case 0x01://1
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x50;
+ break;
+
+ case 0x02://11
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x80;
+ break;
+
+ case 0x03://2
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x90;
+ break;
+ }
+ break;
+
+ case 0x02: //Bottom row
+ switch (machine().rand() & 0x3)
+ {
+ case 0x00://5
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x00;
+ break;
+
+ case 0x01://10
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x10;
+ break;
+
+ case 0x02://3
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x20;
+ break;
+
+ case 0x03://6
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x30;
+ break;
+ }
+ break;
+ }
+ }
+}
+
+void mpu4mod4yam_machines_state::init_m4_806prot()
+{
+ init_m4();
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0806, 0x0806, read8smo_delegate(*this, []() -> uint8_t { return 0x6a; }, "806"));
+}
/*****************************************************************************************************************************************************************************
@@ -41,49 +269,35 @@ private:
*****************************************************************************************************************************************************************************/
-void mpu4mod4yam_machines_state::init_m4addr()
-{
- //Derived from Adders_&_Ladders_(Barcrest)_[C03_800_6jp].gam
- init_m4default();
- use_m4_hopper_tubes();
- use_m4_standard_reels();
-
- m_use_pia4_porta_leds = true;
- m_pia4_porta_leds_base = 0;
- // uint8_t m_pia4_porta_leds_strobe = 0;
-
- //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 barcrest1
- //Standard
- //Volume 0 Stereo= 1
- //Sample rate 16000
- //Front door code 0 Cash door code 0
-}
+//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 barcrest1
+//Standard
+//Volume 0 Stereo= 1
+//Sample rate 16000
+//Front door code 0 Cash door code 0
-void mpu4mod4yam_machines_state::init_m4test4()
-{
- init_m4default();
- m_overcurrent_detect = true;
-}
+} // anonymous namespace
+
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
INPUT_PORTS_START( m4addr )
@@ -111,8 +325,7 @@ INPUT_PORTS_START( m4addr )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
-
-
+using namespace mpu4_traits;
#undef GAME_CUSTOM
#define GAME_CUSTOM(year, setname,parent, machine, inputs, init, name,offset,length,hash,company,title, flags) \
@@ -123,73 +336,73 @@ INPUT_PORTS_END
GAMEL( year, setname, parent, machine, inputs, mpu4mod4yam_machines_state, init, ROT0, company, title, flags, layout_m4addr )
// "(C)1991 BARCREST" and "A6L 0.1"
-GAME_CUSTOM( 1991, m4addr, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, m4addr, init_m4addr, "a6ls.p1", 0x0000, 0x010000, CRC(9f97f57b) SHA1(402d1518bb78fdc489b06c2aabc771e5ce151847), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1, set 1)", 0 )
-GAME_CUSTOM( 199?, m4addrc__d, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, m4addr, init_m4addr, "alddr20", 0x0000, 0x010000, CRC(19cf4437) SHA1(b528823c476bebd1a9a6c720a4144294743693d2), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1, set 2)", 0 ) // hack?
-GAME_CUSTOM( 1991, m4addr6ld, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, m4addr, init_m4addr, "a6ld.p1", 0x0000, 0x010000, CRC(de555e12) SHA1(2233160f1c734c889c1c00dee202a928f18ad763), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 D)", 0 )
-GAME_CUSTOM( 1991, m4addr6lc, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, m4addr, init_m4addr, "a6lc.p1", 0x0000, 0x010000, CRC(1e75fe67) SHA1(4497b19d4c512c934d445b4acf607dc2dc080d44), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 C)", 0 )
-GAME_CUSTOM( 1991, m4addr6lk, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, m4addr, init_m4addr, "a6lk.p1", 0x0000, 0x010000, CRC(af5ae5c4) SHA1(20e40cf996c2c3b7b18ec104a374be1da193b94e), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 K)", 0 )
-GAME_CUSTOM( 1991, m4addr6ly, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, m4addr, init_m4addr, "adders ladders 20p 6.bin", 0x0000, 0x010000, CRC(62abeb34) SHA1(8069e6fde0673fdbc124a1a172dc988bb3205ff6), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 Y)", 0 )
-GAME_CUSTOM( 1991, m4addr6lyd, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, m4addr, init_m4addr, "a6ldy.p1", 0x0000, 0x010000, CRC(82f060a5) SHA1(2e8474e6c17def07e35448b5bf8d453cce0f292c), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 YD)", 0 )
-GAME_CUSTOM( 1991, m4addr6lybd, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>, m4addr, init_m4addr, "a6lbdy.p1", 0x0000, 0x010000, CRC(28064099) SHA1(c916f73911974440d4c79ecb51b343aad78f115b), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 YBD)", 0 )
+GAME_CUSTOM( 1991, m4addr, 0, cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "a6ls.p1", 0x0000, 0x010000, CRC(9f97f57b) SHA1(402d1518bb78fdc489b06c2aabc771e5ce151847), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1, set 1)", 0 )
+GAME_CUSTOM( 199?, m4addrc__d, m4addr, cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "alddr20", 0x0000, 0x010000, CRC(19cf4437) SHA1(b528823c476bebd1a9a6c720a4144294743693d2), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1, set 2)", 0 ) // hack?
+GAME_CUSTOM( 1991, m4addr6ld, m4addr, cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "a6ld.p1", 0x0000, 0x010000, CRC(de555e12) SHA1(2233160f1c734c889c1c00dee202a928f18ad763), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 D)", 0 )
+GAME_CUSTOM( 1991, m4addr6lc, m4addr, cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "a6lc.p1", 0x0000, 0x010000, CRC(1e75fe67) SHA1(4497b19d4c512c934d445b4acf607dc2dc080d44), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 C)", 0 )
+GAME_CUSTOM( 1991, m4addr6lk, m4addr, cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "a6lk.p1", 0x0000, 0x010000, CRC(af5ae5c4) SHA1(20e40cf996c2c3b7b18ec104a374be1da193b94e), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 K)", 0 )
+GAME_CUSTOM( 1991, m4addr6ly, m4addr, cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "adders ladders 20p 6.bin", 0x0000, 0x010000, CRC(62abeb34) SHA1(8069e6fde0673fdbc124a1a172dc988bb3205ff6), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 Y)", 0 )
+GAME_CUSTOM( 1991, m4addr6lyd, m4addr, cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "a6ldy.p1", 0x0000, 0x010000, CRC(82f060a5) SHA1(2e8474e6c17def07e35448b5bf8d453cce0f292c), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 YD)", 0 )
+GAME_CUSTOM( 1991, m4addr6lybd, m4addr, cheatchr_pal<mpu4_characteriser_pal::addr_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "a6lbdy.p1", 0x0000, 0x010000, CRC(28064099) SHA1(c916f73911974440d4c79ecb51b343aad78f115b), "Barcrest","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1 YBD)", 0 )
// "(C)1993 B.W.B." and "ADD 1.0"
-GAME_CUSTOM( 199?, m4addrc__l, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "al10", 0x0000, 0x010000, CRC(3c3c82b6) SHA1(cc5ffdd0837c9af31d5737a70430a01d1989cdcc), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0, 1993)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc__l, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "al10", 0x0000, 0x010000, CRC(3c3c82b6) SHA1(cc5ffdd0837c9af31d5737a70430a01d1989cdcc), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0, 1993)", GAME_FLAGS )
// "(C)1994 B.W.B." and "ADD 1.0" (actually version 10?)
-GAME_CUSTOM( 1994, m4addr10, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05___.1o3", 0x0000, 0x010000, CRC(8d9e0f5d) SHA1(fecc844908876e161d0134ce3cc098e79e74e0b1), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr10d, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_d_.1o3", 0x0000, 0x010000, CRC(2d29040f) SHA1(ee2bdd5da1a7e4146419ffd8bad521a9c1b49aa2), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 D, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr10c, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "adi05___.1o3", 0x0000, 0x010000, CRC(050764b1) SHA1(364c50e4887c9fdd7ff62e63a6be4513336b4814), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr10yd, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_b_.1o3", 0x0000, 0x010000, CRC(b10b194a) SHA1(4dc3f14ff3b903c49829f4a91136f9b03a5cb1ae), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 YD, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr10_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_10___.1o3", 0x0000, 0x010000, CRC(d587cb00) SHA1(6574c42402f13e5f9cb8f951e0f59b499b2d025d), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr10d_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_10_d_.1o3", 0x0000, 0x010000, CRC(d7670d32) SHA1(09dfe2a7fe267f485efed234411efc92d9cce414), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 D, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr10c_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "adi10___.1o3", 0x0000, 0x010000, CRC(005caaa1) SHA1(b4b421c045012b5fbeaca95fa09d087a9c5e6b5b), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr10yd_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_10_b_.1o3", 0x0000, 0x010000, CRC(e2b5c0db) SHA1(9e1716186bb049c61dddaef2465fb1e55d2d93fd), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 YD, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr10, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05___.1o3", 0x0000, 0x010000, CRC(8d9e0f5d) SHA1(fecc844908876e161d0134ce3cc098e79e74e0b1), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr10d, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_d_.1o3", 0x0000, 0x010000, CRC(2d29040f) SHA1(ee2bdd5da1a7e4146419ffd8bad521a9c1b49aa2), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 D, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr10c, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "adi05___.1o3", 0x0000, 0x010000, CRC(050764b1) SHA1(364c50e4887c9fdd7ff62e63a6be4513336b4814), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr10yd, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_b_.1o3", 0x0000, 0x010000, CRC(b10b194a) SHA1(4dc3f14ff3b903c49829f4a91136f9b03a5cb1ae), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 YD, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr10_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_10___.1o3", 0x0000, 0x010000, CRC(d587cb00) SHA1(6574c42402f13e5f9cb8f951e0f59b499b2d025d), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr10d_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_10_d_.1o3", 0x0000, 0x010000, CRC(d7670d32) SHA1(09dfe2a7fe267f485efed234411efc92d9cce414), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 D, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr10c_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "adi10___.1o3", 0x0000, 0x010000, CRC(005caaa1) SHA1(b4b421c045012b5fbeaca95fa09d087a9c5e6b5b), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr10yd_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_10_b_.1o3", 0x0000, 0x010000, CRC(e2b5c0db) SHA1(9e1716186bb049c61dddaef2465fb1e55d2d93fd), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 YD, set 2)", GAME_FLAGS )
// "(C)1993 B.W.B." and "ADD 3.0"
-GAME_CUSTOM( 1993, m4addr3, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05___.3q3", 0x0000, 0x010000, CRC(ec6ed7ce) SHA1(dfad04b5f6c4ff0fd784ad20471f1cf84586f2cd), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3d, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_d_.3q3", 0x0000, 0x010000, CRC(8d05fba9) SHA1(9c69d7eec7ce0d647d4f8b8b0a6b7e54daa7a79f), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 D, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3yd, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_b_.3q3", 0x0000, 0x010000, CRC(d4c06db1) SHA1(dacb66b98f9d1d51eddc48b6946d517c277e588e), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 YD, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_20___.3a3", 0x0000, 0x010000, CRC(c2431657) SHA1(b2b7541207eb3c898f9cf3df520bff396213b78a), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3d_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_20_d_.3a3", 0x0000, 0x010000, CRC(62304025) SHA1(59b7815bf1b5337f46083cef186fedd078a4ad37), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 D, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3yd_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_20_b_.3a3", 0x0000, 0x010000, CRC(19990a19) SHA1(ab1031513fb1e499da4a3001b5b26ff1e86cc628), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 YD, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3_b, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_20___.3n3", 0x0000, 0x010000, CRC(883ff001) SHA1(50540270dba31820ad99a4a4034c69d4a58d87c5), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 3)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3d_b, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_20_d_.3n3", 0x0000, 0x010000, CRC(cf254a00) SHA1(1e430b652e4023e28b5648b8bea63e778c6dafc9), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 D, set 3)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3yd_b, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_20_b_.3n3", 0x0000, 0x010000, CRC(65f9946f) SHA1(6bf6f315ed2dc6f603381d36dd408e951ace76bc), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 YD, set 3)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3_c, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_20___.3s3", 0x0000, 0x010000, CRC(b1d54cb6) SHA1(35205975ccdaccd5bf3c1b7bf9a26c5ef30050b3), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 4)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3d_c, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_20_d_.3s3", 0x0000, 0x010000, CRC(89d2301b) SHA1(62ad1a9e008063eb16442b50af806f061669dba7), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 D, set 4)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3yd_c, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_20_b_.3s3", 0x0000, 0x010000, CRC(86982248) SHA1(a6d876333777a29eb0504fa3636727ebcc104f0a), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 YD, set 4)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr3_d, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "adl5pv2", 0x0000, 0x010000, CRC(09c39527) SHA1(16af3e552a7d6c6b802d2b1923523e9aa9de766a), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 5)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05___.3q3", 0x0000, 0x010000, CRC(ec6ed7ce) SHA1(dfad04b5f6c4ff0fd784ad20471f1cf84586f2cd), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3d, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_d_.3q3", 0x0000, 0x010000, CRC(8d05fba9) SHA1(9c69d7eec7ce0d647d4f8b8b0a6b7e54daa7a79f), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 D, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3yd, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_b_.3q3", 0x0000, 0x010000, CRC(d4c06db1) SHA1(dacb66b98f9d1d51eddc48b6946d517c277e588e), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 YD, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_20___.3a3", 0x0000, 0x010000, CRC(c2431657) SHA1(b2b7541207eb3c898f9cf3df520bff396213b78a), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3d_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_20_d_.3a3", 0x0000, 0x010000, CRC(62304025) SHA1(59b7815bf1b5337f46083cef186fedd078a4ad37), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 D, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3yd_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_20_b_.3a3", 0x0000, 0x010000, CRC(19990a19) SHA1(ab1031513fb1e499da4a3001b5b26ff1e86cc628), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 YD, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3_b, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_20___.3n3", 0x0000, 0x010000, CRC(883ff001) SHA1(50540270dba31820ad99a4a4034c69d4a58d87c5), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 3)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3d_b, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_20_d_.3n3", 0x0000, 0x010000, CRC(cf254a00) SHA1(1e430b652e4023e28b5648b8bea63e778c6dafc9), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 D, set 3)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3yd_b, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_20_b_.3n3", 0x0000, 0x010000, CRC(65f9946f) SHA1(6bf6f315ed2dc6f603381d36dd408e951ace76bc), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 YD, set 3)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3_c, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_20___.3s3", 0x0000, 0x010000, CRC(b1d54cb6) SHA1(35205975ccdaccd5bf3c1b7bf9a26c5ef30050b3), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 4)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3d_c, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_20_d_.3s3", 0x0000, 0x010000, CRC(89d2301b) SHA1(62ad1a9e008063eb16442b50af806f061669dba7), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 D, set 4)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3yd_c, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_20_b_.3s3", 0x0000, 0x010000, CRC(86982248) SHA1(a6d876333777a29eb0504fa3636727ebcc104f0a), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0 YD, set 4)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr3_d, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "adl5pv2", 0x0000, 0x010000, CRC(09c39527) SHA1(16af3e552a7d6c6b802d2b1923523e9aa9de766a), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 3.0, set 5)", GAME_FLAGS )
// "(C)1994 B.W.B." and "ADD 5.0"
-GAME_CUSTOM( 1994, m4addr5, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05___.5a3", 0x0000, 0x010000, CRC(9821a988) SHA1(2be85a0b68e5e31401a5c753b40f3cf803589444), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr5d, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_d_.5a3", 0x0000, 0x010000, CRC(b5be8114) SHA1(28dfe1d1cc1d9fc2bcc13fd6437602a6e8c90de2), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 D, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr5c, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "adi05___.5a3", 0x0000, 0x010000, CRC(03777f8c) SHA1(9e3fddc2130600f343df0531bf3e636b82c2f108), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 C, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr5yd, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_b_.5a3", 0x0000, 0x010000, CRC(592cb1ae) SHA1(5696ecb3e9e6419f73087120b6a832fde606bacc), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 YD, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr5_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05___.5n3", 0x0000, 0x010000, CRC(86ac3564) SHA1(1dd9cf39d2aee11a3e1bbc68460c12f10e62aeaf), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr5d_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_d_.5n3", 0x0000, 0x010000, CRC(ca2653d5) SHA1(30cd35627be8fb4fff2f0d61a6ab43cf3e4c1742), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 D, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr5c_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "adi05___.5n3", 0x0000, 0x010000, CRC(13003560) SHA1(aabad24748f9b1b09f1820bf1af932160e64fe3e), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 C, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr5yd_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_b_.5n3", 0x0000, 0x010000, CRC(cdc8ca39) SHA1(33fdeef8ab8908f6908120aedf501ec3e9d7d23e), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 YD, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr5, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05___.5a3", 0x0000, 0x010000, CRC(9821a988) SHA1(2be85a0b68e5e31401a5c753b40f3cf803589444), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr5d, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_d_.5a3", 0x0000, 0x010000, CRC(b5be8114) SHA1(28dfe1d1cc1d9fc2bcc13fd6437602a6e8c90de2), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 D, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr5c, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "adi05___.5a3", 0x0000, 0x010000, CRC(03777f8c) SHA1(9e3fddc2130600f343df0531bf3e636b82c2f108), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 C, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr5yd, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_b_.5a3", 0x0000, 0x010000, CRC(592cb1ae) SHA1(5696ecb3e9e6419f73087120b6a832fde606bacc), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 YD, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr5_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05___.5n3", 0x0000, 0x010000, CRC(86ac3564) SHA1(1dd9cf39d2aee11a3e1bbc68460c12f10e62aeaf), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr5d_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_d_.5n3", 0x0000, 0x010000, CRC(ca2653d5) SHA1(30cd35627be8fb4fff2f0d61a6ab43cf3e4c1742), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 D, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr5c_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "adi05___.5n3", 0x0000, 0x010000, CRC(13003560) SHA1(aabad24748f9b1b09f1820bf1af932160e64fe3e), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 C, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr5yd_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_b_.5n3", 0x0000, 0x010000, CRC(cdc8ca39) SHA1(33fdeef8ab8908f6908120aedf501ec3e9d7d23e), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 5.0 YD, set 2)", GAME_FLAGS )
// "(C)1993 B.W.B." and "ADD 4.0"
-GAME_CUSTOM( 1993, m4addr4, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05___.4s3", 0x0000, 0x010000, CRC(6d1a3c51) SHA1(0e4b985173c7c3bd5804573d99913d66a05d54fb), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr4c, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "adi05___.4s3", 0x0000, 0x010000, CRC(a4343a89) SHA1(cef67bbe03e6f535b530fc099f1b9a8bc7a2f864), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 C, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr4d, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_d_.4s3", 0x0000, 0x010000, CRC(e672baf0) SHA1(bae2e2fe9f51b3b8da20fcefb145f6d35fa2d604), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 D, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 1993, m4addr4yd, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_05_b_.4s3", 0x0000, 0x010000, CRC(6bd6fdb6) SHA1(7ee1e80da5833b3eaf4b23035690a09379781584), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 YD, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr4, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05___.4s3", 0x0000, 0x010000, CRC(6d1a3c51) SHA1(0e4b985173c7c3bd5804573d99913d66a05d54fb), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr4c, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "adi05___.4s3", 0x0000, 0x010000, CRC(a4343a89) SHA1(cef67bbe03e6f535b530fc099f1b9a8bc7a2f864), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 C, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr4d, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_d_.4s3", 0x0000, 0x010000, CRC(e672baf0) SHA1(bae2e2fe9f51b3b8da20fcefb145f6d35fa2d604), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 D, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 1993, m4addr4yd, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_05_b_.4s3", 0x0000, 0x010000, CRC(6bd6fdb6) SHA1(7ee1e80da5833b3eaf4b23035690a09379781584), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 YD, set 1)", GAME_FLAGS )
// "(C)1994 B.W.B." and "ADD 4.0"
-GAME_CUSTOM( 1994, m4addr4_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "ad_10___.4a3", 0x0000, 0x010000, CRC(9151dac3) SHA1(bf1c065a62e84a8073f8f9854981bedad60805be), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr4c_a, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "adi10___.4a3", 0x0000, 0x010000, CRC(2d2aa3cc) SHA1(21a7690c3fb7d158f4b4e6da63663778246ac902), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 C, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr4c_b, m4addr, mod4yam_cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>, m4addr, init_m4addr, "adi10___.4n3", 0x0000, 0x010000, CRC(af9aad00) SHA1(09729e73f27d9ac5d6ac7171191ed76aeaac3e3d), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 C, set 3)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr4_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "ad_10___.4a3", 0x0000, 0x010000, CRC(9151dac3) SHA1(bf1c065a62e84a8073f8f9854981bedad60805be), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr4c_a, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "adi10___.4a3", 0x0000, 0x010000, CRC(2d2aa3cc) SHA1(21a7690c3fb7d158f4b4e6da63663778246ac902), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 C, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr4c_b, m4addr, cheatchr_pal<mpu4_characteriser_pal::squids_characteriser_prot>(R4, RT1, HT, P4L), m4addr, init_m4, "adi10___.4n3", 0x0000, 0x010000, CRC(af9aad00) SHA1(09729e73f27d9ac5d6ac7171191ed76aeaac3e3d), "BWB","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 4.0 C, set 3)", GAME_FLAGS )
// These have different protection
// "(C)1991 BARCREST" and "A6L 0.1" (but hack?)
-GAME_CUSTOM( 199?, m4addrc__b, m4addr, mod4yam_bootleg_fixedret<0x43>, m4addr, init_m4addr, "add20_101", 0x0000, 0x010000, CRC(361b7173) SHA1(dea2b1b0f5910e2fd3f45d220554f0e712dedada), "hack","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1, hack, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 199?, m4addrc__k, m4addr, mod4yam_bootleg_fixedret<0x63>, m4addr, init_m4addr, "addl_20_.8", 0x0000, 0x010000, CRC(43c98f46) SHA1(0ca4a093b38fc04639e3f4bb742a8923b90d2ed1), "hack","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1, hack, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc__b, m4addr, bootleg_fixedret<0x43>(R4, RT1, HT, P4L), m4addr, init_m4, "add20_101", 0x0000, 0x010000, CRC(361b7173) SHA1(dea2b1b0f5910e2fd3f45d220554f0e712dedada), "hack","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1, hack, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc__k, m4addr, bootleg_fixedret<0x63>(R4, RT1, HT, P4L), m4addr, init_m4, "addl_20_.8", 0x0000, 0x010000, CRC(43c98f46) SHA1(0ca4a093b38fc04639e3f4bb742a8923b90d2ed1), "hack","Classic Adders & Ladders (Barcrest) (MPU4) (A6L 0.1, hack, set 2)", GAME_FLAGS )
// "BIG DIPPER" and ADD 1.0
-GAME_CUSTOM( 199?, m4addrc__h, m4addr, mod4yam_bootleg_fixedret<0x1d>, m4addr, init_m4addr, "adders classic.bin", 0x0000, 0x010000, CRC(6bc1d2aa) SHA1(cf17e697ff0cfba999f6511f24051dbc3d0384ef), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0, hack)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr_h1, m4addr, mod4yam_bootleg_fixedret<0x1d>, m4addr, init_m4addr, "5p4addersladders.bin", 0x0000, 0x010000, CRC(03fc43da) SHA1(cf2fdb0d1ad702331ba004fd39072484b05e2b97), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 1)", GAME_FLAGS )
-GAME_CUSTOM( 199?, m4addrc__m, m4addr, mod4yam_bootleg_fixedret<0x1d>, m4addr, init_m4addr, "alad58c", 0x0000, 0x010000, CRC(df9c46b8) SHA1(439ea1ce17aa89e19cedb78465b4388b72c8c5ed), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 5)", GAME_FLAGS )
-GAME_CUSTOM( 1994, m4addr_h2, m4addr, mod4yam_bootleg_fixedret<0x61>, m4addr, init_m4addr, "ad05.6c", 0x0000, 0x010000, CRC(0940e4aa) SHA1(e8e7f7249a18386af990999a4c06f001db7003c5), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 2)", GAME_FLAGS )
-GAME_CUSTOM( 199?, m4addrc, m4addr, mod4yam_bootleg_fixedret<0x2d>, m4addr, init_m4addr, "add05_101", 0x0000, 0x010000, CRC(4b3fb104) SHA1(9dba619019a476ce317122a3553965b279c684ba), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 3)", GAME_FLAGS )
-GAME_CUSTOM( 199?, m4addrc__c, m4addr, mod4yam_bootleg_fixedret<0x25>, m4addr, init_m4addr, "add55", 0x0000, 0x010000, CRC(48c5bc73) SHA1(18c9f70bad6141cca95b6bbcb4fc621e71f87700), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 4)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc__h, m4addr, bootleg_fixedret<0x1d>(R4, RT1, HT, P4L), m4addr, init_m4, "adders classic.bin", 0x0000, 0x010000, CRC(6bc1d2aa) SHA1(cf17e697ff0cfba999f6511f24051dbc3d0384ef), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0, hack)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr_h1, m4addr, bootleg_fixedret<0x1d>(R4, RT1, HT, P4L), m4addr, init_m4, "5p4addersladders.bin", 0x0000, 0x010000, CRC(03fc43da) SHA1(cf2fdb0d1ad702331ba004fd39072484b05e2b97), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 1)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc__m, m4addr, bootleg_fixedret<0x1d>(R4, RT1, HT, P4L), m4addr, init_m4, "alad58c", 0x0000, 0x010000, CRC(df9c46b8) SHA1(439ea1ce17aa89e19cedb78465b4388b72c8c5ed), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 5)", GAME_FLAGS )
+GAME_CUSTOM( 1994, m4addr_h2, m4addr, bootleg_fixedret<0x61>(R4, RT1, HT, P4L), m4addr, init_m4, "ad05.6c", 0x0000, 0x010000, CRC(0940e4aa) SHA1(e8e7f7249a18386af990999a4c06f001db7003c5), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 2)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc, m4addr, bootleg_fixedret<0x2d>(R4, RT1, HT, P4L), m4addr, init_m4, "add05_101", 0x0000, 0x010000, CRC(4b3fb104) SHA1(9dba619019a476ce317122a3553965b279c684ba), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 3)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc__c, m4addr, bootleg_fixedret<0x25>(R4, RT1, HT, P4L), m4addr, init_m4, "add55", 0x0000, 0x010000, CRC(48c5bc73) SHA1(18c9f70bad6141cca95b6bbcb4fc621e71f87700), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 4)", GAME_FLAGS )
// "DADS ARMY" and "ADD 1.0"
-GAME_CUSTOM( 199?, m4addrc__a, m4addr, mod4yam_bootleg_fixedret<0x2b>, m4addr, init_m4addr, "add10_101", 0x0000, 0x010000, CRC(af8f8b4e) SHA1(712c33ed0f425dc10b79780b0cfce0ac5768e2d5), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 6)", GAME_FLAGS )
-GAME_CUSTOM( 199?, m4addrc__i, m4addr, mod4yam_bootleg_fixedret<0x5f>, m4addr, init_m4addr, "addl_10_.4", 0x0000, 0x010000, CRC(c2d11126) SHA1(0eafe9dc30013ed5817ac303a4eea5ea82d62715), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 7)", GAME_FLAGS )
-GAME_CUSTOM( 199?, m4addrc__j, m4addr, mod4yam_bootleg_fixedret<0x5f>, m4addr, init_m4addr, "addl_10_.8", 0x0000, 0x010000, CRC(9fc82c47) SHA1(0f56afc33f09fe22afc5ec74aeb496c32f9e623c), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 8)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc__a, m4addr, bootleg_fixedret<0x2b>(R4, RT1, HT, P4L), m4addr, init_m4, "add10_101", 0x0000, 0x010000, CRC(af8f8b4e) SHA1(712c33ed0f425dc10b79780b0cfce0ac5768e2d5), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 6)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc__i, m4addr, bootleg_fixedret<0x5f>(R4, RT1, HT, P4L), m4addr, init_m4, "addl_10_.4", 0x0000, 0x010000, CRC(c2d11126) SHA1(0eafe9dc30013ed5817ac303a4eea5ea82d62715), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 7)", GAME_FLAGS )
+GAME_CUSTOM( 199?, m4addrc__j, m4addr, bootleg_fixedret<0x5f>(R4, RT1, HT, P4L), m4addr, init_m4, "addl_10_.8", 0x0000, 0x010000, CRC(9fc82c47) SHA1(0f56afc33f09fe22afc5ec74aeb496c32f9e623c), "hack","Classic Adders & Ladders (BWB / Barcrest) (MPU4) (ADD 1.0 C, hack, set 8)", GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -205,7 +418,7 @@ GAME_CUSTOM( 199?, m4addrc__j, m4addr, mod4yam_bootleg_fixedret<0x5f>, m4addr,
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::m578_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "ADC 1.1"
GAME_CUSTOM( 199?, m4addrcc, 0, "adcs.p1", 0x0000, 0x010000, CRC(7247de78) SHA1(e390b4e912d7bc8c1ca5e42bf2e2753d4c2b4d17), "Barcrest","Adders & Ladders Classic Club (Barcrest) (MPU4) (ADC 1.1)" )
@@ -229,7 +442,7 @@ GAME_CUSTOM( 199?, m4addrcc__d, m4addrcc, "adrscfm", 0x0000, 0x010000, CRC(
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4cojok, 0, "cojx.p1", 0x0000, 0x010000, CRC(a9c0aefb) SHA1(c5b367a01ddee2cb90e266f1e62459b9b96eb3e3), "Barcrest","Carry On Joker (Barcrest) (MPU4) (COJ 2.1, set 1)" )
GAME_CUSTOM( 199?, m4cojok__a, m4cojok, "cojxb.p1", 0x0000, 0x010000, CRC(2680c84a) SHA1(6cf9bb72df41ea1389334597a772fd197aba4fc4), "Barcrest","Carry On Joker (Barcrest) (MPU4) (COJ 2.1, set 2)" )
@@ -389,118 +602,13 @@ INPUT_PORTS_START( m4gambal )
INPUT_PORTS_END
-void mpu4mod4yam_machines_state::pia_ic5_porta_gambal_w(uint8_t data)
-{
- pia_ic5_porta_w(data);
-
- /* The 'Gamball' device is a unique piece of mechanical equipment, designed to
- provide a truly fair hi-lo gamble for an AWP. Functionally, it consists of
- a ping-pong ball or similar enclosed in the machine's backbox, on a platform with 12
- holes. When the low 4 bytes of AUX1 are triggered, this fires the ball out from the
- hole it's currently in, to land in another. Landing in the same hole causes the machine to
- refire the ball. The ball detection is done by the high 4 bytes of AUX1.
- Here we call the MAME RNG, once to pick a row, once to pick from the four pockets within it. We
- then trigger the switches corresponding to the correct number. This appears to be the best way
- of making the game fair, short of simulating the physics of a bouncing ball ;)*/
- if (data & 0x0f)
- {
- switch ((machine().rand()>>5) % 0x3)
- {
- case 0x00: //Top row
- switch (machine().rand() & 0x3)
- {
- case 0x00: //7
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0xa0;
- break;
-
- case 0x01://4
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0xb0;
- break;
-
- case 0x02://9
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0xc0;
- break;
-
- case 0x03://8
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0xd0;
- break;
- }
- break;
-
- case 0x01: //Middle row - note switches don't match pattern
- switch (machine().rand() & 0x3)
- {
- case 0x00://12
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0x40;
- break;
-
- case 0x01://1
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0x50;
- break;
-
- case 0x02://11
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0x80;
- break;
-
- case 0x03://2
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0x90;
- break;
- }
- break;
-
- case 0x02: //Bottom row
- switch (machine().rand() & 0x3)
- {
- case 0x00://5
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0x00;
- break;
-
- case 0x01://10
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0x10;
- break;
-
- case 0x02://3
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0x20;
- break;
-
- case 0x03://6
- m_aux1_input = (m_aux1_input & 0x0f);
- m_aux1_input|= 0x30;
- break;
- }
- break;
- }
- }
-}
-
-
-void mpu4mod4yam_machines_state::mod4yam_cheatchr_gambal(machine_config &config)
-{
- mod4yam_cheatchr_pal<mpu4_characteriser_pal::gambal_characteriser_prot>(config);
-
- // custom hookup for gambal feature
- m_pia5->writepa_handler().set(FUNC(mpu4mod4yam_machines_state::pia_ic5_porta_gambal_w));
-}
-
-
#undef GAME_CUSTOM
#define GAME_CUSTOM(year, setname,parent,name,offset,length,hash,company,title) \
ROM_START( setname ) \
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAMEL( year, setname, parent, mod4yam_cheatchr_gambal, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, MACHINE_REQUIRES_ARTWORK | MACHINE_MECHANICAL, layout_gamball )
+ GAMEL( year, setname, parent, cheatchr_gambal(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, MACHINE_REQUIRES_ARTWORK | MACHINE_MECHANICAL, layout_gamball )
GAME_CUSTOM( 199?, m4gambal, 0, "gbbx.p1", 0x0000, 0x010000, CRC(0b5adcd0) SHA1(1a198bd4a1e7d6bf4cf025c43d35aaef351415fc), "Barcrest","Gamball (Barcrest) (MPU4) (GBB 2.0)" )
GAME_CUSTOM( 199?, m4gambal__a, m4gambal, "gabcx.p1", 0x0000, 0x010000, CRC(52c35266) SHA1(bda49005de88094fbc84621f63b33f0e0a9c0bd3), "Barcrest","Gamball (Barcrest) (MPU4) (GAB 2.0, set 1)" )
@@ -521,7 +629,7 @@ GAME_CUSTOM( 199?, m4gambal__c, m4gambal, "gbll20-6", 0x0000, 0x010000, CRC
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4graff, 0, "graffo6", 0x0000, 0x010000, CRC(7349c9ca) SHA1(2744035d6c7897394c8fead27f48779047590fba), "Barcrest","Graffiti (Barcrest) (MPU4) (GRA 2.0X)" )
GAME_CUSTOM( 199?, m4graff__a, m4graff, "grax.p1", 0x0000, 0x010000, CRC(2e03a7d8) SHA1(333373fe15ae165dd24d5c11fef23f2e9b0388bf), "Barcrest","Graffiti (Barcrest) (MPU4) (GRA 2.1X)" )
@@ -541,7 +649,7 @@ GAME_CUSTOM( 199?, m4graff__b, m4graff, "graxc.p1", 0x0000, 0x010000, CRC(76
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m435_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_sextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::m435_characteriser_prot>(R4, RT1, LPS), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// 'with 8GBP Jackpot' sets
GAME_CUSTOM( 199?, m4monte, 0, "nm8b.p1", 0x0000, 0x010000, CRC(1632080e) SHA1(9ca2cd8f00e49c29f4a216d3c9eacba221ada6ce), "Barcrest","Monte Carlo (NM8 0.1 B) (Barcrest) (MPU4)" )
@@ -566,7 +674,7 @@ GAME_CUSTOM( 199?, m4monte__m, m4monte, "nmns.p1", 0x0000, 0x010000, CRC(48
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::toplot_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_sextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::toplot_characteriser_prot>(R4, RT1, LPS), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// Bwb sets
GAME_CUSTOM( 1995, m4monteza, m4monte, "mx_05a__.2_1", 0x0000, 0x010000, CRC(a1a03e03) SHA1(bf49b516e6824a47cd9bf1408bf676f9f1e43d62), "BWB","Monte Carlo (MX052.0 K) (BWB) (MPU4)" )
@@ -580,7 +688,7 @@ GAME_CUSTOM( 1995, m4montezj, m4monte, "mxi10___.2_1", 0x0000, 0x010000, CR
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::montealt_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_sextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::montealt_characteriser_prot>(R4, RT1, LPS), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 1996, m4montezc, m4monte, "mx_20__c.1_1", 0x0000, 0x010000, CRC(a753798d) SHA1(ae1f5f14a37dead66f6b2d075a5bfc019d59f806), "BWB","Monte Carlo (MC 2.0 C) (BWB) (MPU4)" )
GAME_CUSTOM( 1996, m4montezd, m4monte, "mx_20a_c.1_1", 0x0000, 0x010000, CRC(9ec6f5fb) SHA1(ee181a64557053349cc8bff86bba937b191cab01), "BWB","Monte Carlo (MC 2.0 K) (BWB) (MPU4)" )
@@ -601,7 +709,7 @@ GAME_CUSTOM( 1996, m4montezg, m4monte, "mx_25_bc.3_1", 0x0000, 0x010000, CR
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m435_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_sextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::m435_characteriser_prot>(R4, RT1, LPS), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4przmc, 0, "mssb.p1", 0x0000, 0x010000, CRC(5210dae0) SHA1(cc9916718249505e031ccdbc126f3fa1e6675f27), "Barcrest","Prize Monte Carlo (MSS 1.6 B) (Barcrest) (MPU4)" )
GAME_CUSTOM( 199?, m4przmc__a, m4przmc, "mssad.p1", 0x0000, 0x010000, CRC(e3690c35) SHA1(fdaacda0d03ce8d54841525feff2529b1ee1f970), "Barcrest","Prize Monte Carlo (MSS 1.6 AD) (Barcrest) (MPU4)" )
@@ -630,7 +738,7 @@ GAME_CUSTOM( 199?, m4przmc__o, m4przmc, "mt_10sd_.3o3", 0x0000, 0x010000, C
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::przmontealt_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_sextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::przmontealt_characteriser_prot>(R4, RT1, LPS), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1995 B.W.B." and "MT054.0"
GAME_CUSTOM( 199?, m4przmc__p, m4przmc, "mt_05a__.4o1", 0x0000, 0x010000, CRC(637fecee) SHA1(8c970bdf703177c71dde5c774c75929ac42b6eb0), "BWB","Prize Monte Carlo (MT054.0 K) (Barcrest) (MPU4)" )
@@ -654,7 +762,7 @@ GAME_CUSTOM( 199?, m4przmc__s, m4przmc, "mti10___.4o1", 0x0000, 0x010000, C
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::clbveg_characteriser_prot>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// (C)1991 BARCREST and SBN 2.0
GAME_CUSTOM( 199?, m4nudbnk, 0, "nb6", 0x0000, 0x010000, CRC(010dd3fc) SHA1(645cbe54200a6c3327e10909b1ef3a80579e96e5), "Barcrest","Nudge Banker (Barcrest) (MPU4) (SBN 2.0X)" )
@@ -682,21 +790,21 @@ GAME_CUSTOM( 199?, m4nudbnk__d, m4nudbnk, "sbnx.p1", 0x0000, 0x010000, CRC
GAME(year, setname, parent, machine, inputs, mpu4mod4yam_machines_state, init, ROT0, company, title, GAME_FLAGS )
// (C)1995 B.W.B. and SP5 1.0
-GAME_CUSTOM( 199?, m4sss, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4,init_m4default_sextender, "sp_05a__.1o3", 0x0000, 0x010000, CRC(044a0133) SHA1(7cf85cf19f5c3f588daf5c0d7efe4204d67161a2), "BWB","Spend Spend Spend (BWB) (MPU4) (SP5 1.0, set 1)" )
-GAME_CUSTOM( 199?, m4sss__b, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4,init_m4default_sextender, "sp_05s__.1o3", 0x0000, 0x010000, CRC(2e000a62) SHA1(e60390a383388e385bbde79ca14c63e5d69a8869), "BWB","Spend Spend Spend (BWB) (MPU4) (SP5 1.0, set 2)" )
-GAME_CUSTOM( 199?, m4sss__c, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4,init_m4default_sextender, "sp_05sb_.1o3", 0x0000, 0x010000, CRC(c6380ef5) SHA1(673044aae9998dfe52205a5e4a3d26361f01c518), "BWB","Spend Spend Spend (BWB) (MPU4) (SP5 1.0, set 3)" )
-GAME_CUSTOM( 199?, m4sss__d, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4,init_m4default_sextender, "sp_05sd_.1o3", 0x0000, 0x010000, CRC(31f818e1) SHA1(bbfa45ef63a73aa726a8223be234fb8ffba45e24), "BWB","Spend Spend Spend (BWB) (MPU4) (SP5 1.0, set 4)" )
+GAME_CUSTOM( 199?, m4sss, 0, cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sp_05a__.1o3", 0x0000, 0x010000, CRC(044a0133) SHA1(7cf85cf19f5c3f588daf5c0d7efe4204d67161a2), "BWB","Spend Spend Spend (BWB) (MPU4) (SP5 1.0, set 1)" )
+GAME_CUSTOM( 199?, m4sss__b, m4sss, cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sp_05s__.1o3", 0x0000, 0x010000, CRC(2e000a62) SHA1(e60390a383388e385bbde79ca14c63e5d69a8869), "BWB","Spend Spend Spend (BWB) (MPU4) (SP5 1.0, set 2)" )
+GAME_CUSTOM( 199?, m4sss__c, m4sss, cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sp_05sb_.1o3", 0x0000, 0x010000, CRC(c6380ef5) SHA1(673044aae9998dfe52205a5e4a3d26361f01c518), "BWB","Spend Spend Spend (BWB) (MPU4) (SP5 1.0, set 3)" )
+GAME_CUSTOM( 199?, m4sss__d, m4sss, cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sp_05sd_.1o3", 0x0000, 0x010000, CRC(31f818e1) SHA1(bbfa45ef63a73aa726a8223be234fb8ffba45e24), "BWB","Spend Spend Spend (BWB) (MPU4) (SP5 1.0, set 4)" )
// (C)1995 B.W.B. and SP101.0
-GAME_CUSTOM( 199?, m4sss__e, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4,init_m4default_sextender, "sp_10a__.1o3", 0x0000, 0x010000, CRC(918c038c) SHA1(608062dc4e39c15967e16d95945b65ef7feabea2), "BWB","Spend Spend Spend (BWB) (MPU4) (SP101.0, set 1)" )
-GAME_CUSTOM( 199?, m4sss__f, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4,init_m4default_sextender, "sp_10s__.1o3", 0x0000, 0x010000, CRC(1bc5780a) SHA1(df1b5d0d6f4751a480aef77be40fb2cfd153bf18), "BWB","Spend Spend Spend (BWB) (MPU4) (SP101.0, set 2)" )
-GAME_CUSTOM( 199?, m4sss__g, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4,init_m4default_sextender, "sp_10sb_.1o3", 0x0000, 0x010000, CRC(2dfc3926) SHA1(b6b201c65c182f9b18a590910183ce88b245af2b), "BWB","Spend Spend Spend (BWB) (MPU4) (SP101.0, set 3)" )
-GAME_CUSTOM( 199?, m4sss__h, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>, mpu4,init_m4default_sextender, "sp_10sd_.1o3", 0x0000, 0x010000, CRC(fe5c7e3e) SHA1(f5066f1f0c2220da874cbac0ce510cbac6fff8e7), "BWB","Spend Spend Spend (BWB) (MPU4) (SP101.0, set 4)" )
+GAME_CUSTOM( 199?, m4sss__e, m4sss, cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sp_10a__.1o3", 0x0000, 0x010000, CRC(918c038c) SHA1(608062dc4e39c15967e16d95945b65ef7feabea2), "BWB","Spend Spend Spend (BWB) (MPU4) (SP101.0, set 1)" )
+GAME_CUSTOM( 199?, m4sss__f, m4sss, cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sp_10s__.1o3", 0x0000, 0x010000, CRC(1bc5780a) SHA1(df1b5d0d6f4751a480aef77be40fb2cfd153bf18), "BWB","Spend Spend Spend (BWB) (MPU4) (SP101.0, set 2)" )
+GAME_CUSTOM( 199?, m4sss__g, m4sss, cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sp_10sb_.1o3", 0x0000, 0x010000, CRC(2dfc3926) SHA1(b6b201c65c182f9b18a590910183ce88b245af2b), "BWB","Spend Spend Spend (BWB) (MPU4) (SP101.0, set 3)" )
+GAME_CUSTOM( 199?, m4sss__h, m4sss, cheatchr_pal<mpu4_characteriser_pal::viva_sss_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sp_10sd_.1o3", 0x0000, 0x010000, CRC(fe5c7e3e) SHA1(f5066f1f0c2220da874cbac0ce510cbac6fff8e7), "BWB","Spend Spend Spend (BWB) (MPU4) (SP101.0, set 4)" )
// (C)1995 B.W.B. and SX5 2.0
-GAME_CUSTOM( 199?, m4sss__i, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4,init_m4default_sextender, "sx_05a__.2_1", 0x0000, 0x010000, CRC(ceb830a1) SHA1(c9bef44d64a64872460ae3c450533fd14c92ca43), "BWB","Spend Spend Spend (BWB) (MPU4) (SX5 2.0, set 1)" )
-GAME_CUSTOM( 199?, m4sss__k, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4,init_m4default_sextender, "sxi05___.2_1", 0x0000, 0x010000, CRC(a804a20b) SHA1(477d2a750c0c252ffa215c3cf89916cb3a296b92), "BWB","Spend Spend Spend (BWB) (MPU4) (SX5 2.0, set 2)" )
+GAME_CUSTOM( 199?, m4sss__i, m4sss, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sx_05a__.2_1", 0x0000, 0x010000, CRC(ceb830a1) SHA1(c9bef44d64a64872460ae3c450533fd14c92ca43), "BWB","Spend Spend Spend (BWB) (MPU4) (SX5 2.0, set 1)" )
+GAME_CUSTOM( 199?, m4sss__k, m4sss, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sxi05___.2_1", 0x0000, 0x010000, CRC(a804a20b) SHA1(477d2a750c0c252ffa215c3cf89916cb3a296b92), "BWB","Spend Spend Spend (BWB) (MPU4) (SX5 2.0, set 2)" )
// (C)1995 B.W.B. and SX102.0
-GAME_CUSTOM( 199?, m4sss__j, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4,init_m4default_sextender, "sx_10a__.2_1", 0x0000, 0x010000, CRC(73e3bc13) SHA1(004097cc9cd62b8fa4c584fcb9874cf998c7b89d), "BWB","Spend Spend Spend (BWB) (MPU4) (SX102.0, set 1)" )
-GAME_CUSTOM( 199?, m4sss__l, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4,init_m4default_sextender, "sxi10___.2_1", 0x0000, 0x010000, CRC(bbb23438) SHA1(2cc4376f6393c69c1e18ad06be18933592b6bdae), "BWB","Spend Spend Spend (BWB) (MPU4) (SX102.0, set 2)" )
+GAME_CUSTOM( 199?, m4sss__j, m4sss, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sx_10a__.2_1", 0x0000, 0x010000, CRC(73e3bc13) SHA1(004097cc9cd62b8fa4c584fcb9874cf998c7b89d), "BWB","Spend Spend Spend (BWB) (MPU4) (SX102.0, set 1)" )
+GAME_CUSTOM( 199?, m4sss__l, m4sss, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1, LPS), mpu4,init_m4, "sxi10___.2_1", 0x0000, 0x010000, CRC(bbb23438) SHA1(2cc4376f6393c69c1e18ad06be18933592b6bdae), "BWB","Spend Spend Spend (BWB) (MPU4) (SX102.0, set 2)" )
/*****************************************************************************************************************************************************************************
@@ -712,7 +820,7 @@ GAME_CUSTOM( 199?, m4sss__l, m4sss, mod4yam_cheatchr_pal<mpu4_characteriser_pal
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_sextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::duty_characteriser_prot>(R4, RT1, LPS), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// (C)1991 BARCREST and PS3 0.2
GAME_CUSTOM( 199?, m4przsss, 0, "ps302b.p1", 0x0000, 0x010000, CRC(1749ae18) SHA1(f04f91a1d534f2d2dc844862bb21160c5903d1df), "Barcrest","Prize Spend Spend Spend (Barcrest) (MPU4) (set 1)" )
@@ -731,7 +839,7 @@ GAME_CUSTOM( 199?, m4przsss__h, m4przsss, "ps302y.p1", 0x0000, 0x010000,
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_sextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1, LPS), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// (C)1991 BARCREST and PS8 0.1
GAME_CUSTOM( 199?, m4przsss__i, m4przsss, "ps8ad.p1", 0x0000, 0x010000, CRC(48917a87) SHA1(d32ac9e30ebddb6ca1d6a7d6c38026338c6df2cd), "Barcrest","Prize Spend Spend Spend (Barcrest) (MPU4) (set 10)" )
@@ -774,32 +882,32 @@ GAME_CUSTOM( 199?, m4przsss__1, m4przsss, "sspc.p1", 0x0000, 0x010000,
GAME(year, setname, parent, machine, inputs, mpu4mod4yam_machines_state, init, ROT0, company, title, GAME_FLAGS )
// (C)1991 BARCREST and R2T 3.3
-GAME_CUSTOM( 199?, m4ra, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, init_m4default, "r2tx.p1", 0x0000, 0x010000, CRC(7efffe3d) SHA1(5472bc76f4450726fc49fce281a6ec69693d0923), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 1)" )
-GAME_CUSTOM( 199?, m4ra__a, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, init_m4default, "r2txr.p1", 0x0000, 0x010000, CRC(9ff95e34) SHA1(79d19602b88e1c9d23e910332a968e6b820a39f5), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 2)" )
-GAME_CUSTOM( 199?, m4ra__b, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, init_m4default, "ra2s.p1", 0x0000, 0x010000, CRC(cd0fd068) SHA1(a347372f7f737ca87f44e692015338831465f123), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 3)" )
-GAME_CUSTOM( 199?, m4ra__c, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, init_m4default, "ra2x.p1", 0x0000, 0x010000, CRC(8217e235) SHA1(e17483afea2a9d9e70e88687f899e1b98b982b63), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 4)" )
-GAME_CUSTOM( 199?, m4ra__d, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, init_m4default, "ra2xa.p1", 0x0000, 0x010000, CRC(0e6b2123) SHA1(af7c5ddddbfffef6fa5746a7b7927845457d02f8), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 5)" )
-GAME_CUSTOM( 199?, m4ra__e, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, init_m4default, "ra2xb.p1", 0x0000, 0x010000, CRC(97fe4933) SHA1(201860b64577828547adb8a216a6a205c4a4f34b), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 6)" )
-GAME_CUSTOM( 199?, m4ra__f, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, init_m4default, "ra2xr.p1", 0x0000, 0x010000, CRC(12e8eb9b) SHA1(2bcd2c911626a2cb2419f9540649e99d7f335b3b), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 7)" )
+GAME_CUSTOM( 199?, m4ra, 0, cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4, init_m4, "r2tx.p1", 0x0000, 0x010000, CRC(7efffe3d) SHA1(5472bc76f4450726fc49fce281a6ec69693d0923), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 1)" )
+GAME_CUSTOM( 199?, m4ra__a, m4ra, cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4, init_m4, "r2txr.p1", 0x0000, 0x010000, CRC(9ff95e34) SHA1(79d19602b88e1c9d23e910332a968e6b820a39f5), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 2)" )
+GAME_CUSTOM( 199?, m4ra__b, m4ra, cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra2s.p1", 0x0000, 0x010000, CRC(cd0fd068) SHA1(a347372f7f737ca87f44e692015338831465f123), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 3)" )
+GAME_CUSTOM( 199?, m4ra__c, m4ra, cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra2x.p1", 0x0000, 0x010000, CRC(8217e235) SHA1(e17483afea2a9d9e70e88687f899e1b98b982b63), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 4)" )
+GAME_CUSTOM( 199?, m4ra__d, m4ra, cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra2xa.p1", 0x0000, 0x010000, CRC(0e6b2123) SHA1(af7c5ddddbfffef6fa5746a7b7927845457d02f8), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 5)" )
+GAME_CUSTOM( 199?, m4ra__e, m4ra, cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra2xb.p1", 0x0000, 0x010000, CRC(97fe4933) SHA1(201860b64577828547adb8a216a6a205c4a4f34b), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 6)" )
+GAME_CUSTOM( 199?, m4ra__f, m4ra, cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra2xr.p1", 0x0000, 0x010000, CRC(12e8eb9b) SHA1(2bcd2c911626a2cb2419f9540649e99d7f335b3b), "Barcrest","Red Alert (Barcrest) (MPU4) (R2T 3.3, set 7)" )
// different protection, also reads from 811 at start, but check doesn't matter?
// (C)1991 BARCREST and R2T 3.1
-GAME_CUSTOM( 199?, m4ra__q, m4ra, mod4yam_bootleg_fixedret<0x11>, mpu4, init_m4default, "reda_20_.8", 0x0000, 0x010000, CRC(915aff5b) SHA1(e8e58c263e2bdb64a80e9355ac5e114fff1d59f8), "bootleg","Red Alert (Barcrest) (bootleg) (MPU4) (R2T 3.1)" )
+GAME_CUSTOM( 199?, m4ra__q, m4ra, bootleg_fixedret<0x11>(R4, RT1), mpu4, init_m4, "reda_20_.8", 0x0000, 0x010000, CRC(915aff5b) SHA1(e8e58c263e2bdb64a80e9355ac5e114fff1d59f8), "bootleg","Red Alert (Barcrest) (bootleg) (MPU4) (R2T 3.1)" )
// This appears to be a very different type of game based on the lamping
// (C)1991 BARCREST and RAH 3.3
-GAME_CUSTOM( 199?, m4ra__p, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>, mpu4, init_m4default, "rahx.p1", 0x0000, 0x010000, CRC(6887014e) SHA1(25e4c008588a219895c1b326314fd11e1f0ad35f), "Barcrest","Red Alert (Barcrest) (MPU4) (RAH 3.3)" )
+GAME_CUSTOM( 199?, m4ra__p, m4ra, cheatchr_pal<mpu4_characteriser_pal::m683_characteriser_prot>(R4, RT1), mpu4, init_m4, "rahx.p1", 0x0000, 0x010000, CRC(6887014e) SHA1(25e4c008588a219895c1b326314fd11e1f0ad35f), "Barcrest","Red Alert (Barcrest) (MPU4) (RAH 3.3)" )
// This also appears to be a very different type of game based on the lamping
// (C)1991 BARCREST and RA3 0.2
-GAME_CUSTOM( 199?, m4ra__g, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, init_m4default, "ra3xad.p1", 0x0000, 0x010000, CRC(75957d43) SHA1(f7d00842b8390f5464733a6fe1d61d7431a16817), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 1)" )
-GAME_CUSTOM( 199?, m4ra__h, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, init_m4default, "ra3xb.p1", 0x0000, 0x010000, CRC(f37e9bd5) SHA1(584a1f6f1bfb35de813466448e35fc1251fa90bc), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 2)" )
-GAME_CUSTOM( 199?, m4ra__i, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, init_m4default, "ra3xbd.p1", 0x0000, 0x010000, CRC(43891009) SHA1(5d9ebe9d48a39f0a121ae7b832b277910bfd0ad6), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 3)" )
-GAME_CUSTOM( 199?, m4ra__j, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, init_m4default, "ra3xd.p1", 0x0000, 0x010000, CRC(bc59a07a) SHA1(3a8fc99690759ea376660feaf65bfda5386dcf0d), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 4)" )
-GAME_CUSTOM( 199?, m4ra__k, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, init_m4default, "ra3xdr.p1", 0x0000, 0x010000, CRC(036950ba) SHA1(f0a534352b41c2762330762c3c7024d9a6d49cd4), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 5)" )
-GAME_CUSTOM( 199?, m4ra__l, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, init_m4default, "ra3xdy.p1", 0x0000, 0x010000, CRC(468508d4) SHA1(ba6db1e1f7bca13b9c40173fb68418f319e2a9d8), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 6)" )
-GAME_CUSTOM( 199?, m4ra__m, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, init_m4default, "ra3xr.p1", 0x0000, 0x010000, CRC(1a2b813d) SHA1(5d3b5d4ab31dd1848b3d0b2a5ff5798cc01e0c6f), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 7)" )
-GAME_CUSTOM( 199?, m4ra__n, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, init_m4default, "ra3xs.p1", 0x0000, 0x010000, CRC(a1ba9673) SHA1(7d5441522e8676805f7e75a3d445acae83d8a03b), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 8)" )
-GAME_CUSTOM( 199?, m4ra__o, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>, mpu4, init_m4default, "ra3xy.p1", 0x0000, 0x010000, CRC(3e2287de) SHA1(ba0861a0bfb6eb76f9786c0a4c098db362117618), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 9)" )
+GAME_CUSTOM( 199?, m4ra__g, m4ra, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra3xad.p1", 0x0000, 0x010000, CRC(75957d43) SHA1(f7d00842b8390f5464733a6fe1d61d7431a16817), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 1)" )
+GAME_CUSTOM( 199?, m4ra__h, m4ra, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra3xb.p1", 0x0000, 0x010000, CRC(f37e9bd5) SHA1(584a1f6f1bfb35de813466448e35fc1251fa90bc), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 2)" )
+GAME_CUSTOM( 199?, m4ra__i, m4ra, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra3xbd.p1", 0x0000, 0x010000, CRC(43891009) SHA1(5d9ebe9d48a39f0a121ae7b832b277910bfd0ad6), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 3)" )
+GAME_CUSTOM( 199?, m4ra__j, m4ra, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra3xd.p1", 0x0000, 0x010000, CRC(bc59a07a) SHA1(3a8fc99690759ea376660feaf65bfda5386dcf0d), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 4)" )
+GAME_CUSTOM( 199?, m4ra__k, m4ra, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra3xdr.p1", 0x0000, 0x010000, CRC(036950ba) SHA1(f0a534352b41c2762330762c3c7024d9a6d49cd4), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 5)" )
+GAME_CUSTOM( 199?, m4ra__l, m4ra, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra3xdy.p1", 0x0000, 0x010000, CRC(468508d4) SHA1(ba6db1e1f7bca13b9c40173fb68418f319e2a9d8), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 6)" )
+GAME_CUSTOM( 199?, m4ra__m, m4ra, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra3xr.p1", 0x0000, 0x010000, CRC(1a2b813d) SHA1(5d3b5d4ab31dd1848b3d0b2a5ff5798cc01e0c6f), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 7)" )
+GAME_CUSTOM( 199?, m4ra__n, m4ra, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra3xs.p1", 0x0000, 0x010000, CRC(a1ba9673) SHA1(7d5441522e8676805f7e75a3d445acae83d8a03b), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 8)" )
+GAME_CUSTOM( 199?, m4ra__o, m4ra, cheatchr_pal<mpu4_characteriser_pal::graff_characteriser_prot>(R4, RT1), mpu4, init_m4, "ra3xy.p1", 0x0000, 0x010000, CRC(3e2287de) SHA1(ba0861a0bfb6eb76f9786c0a4c098db362117618), "Barcrest","Red Alert (Barcrest) (MPU4) (RA3 0.2, set 9)" )
/*****************************************************************************************************************************************************************************
@@ -815,7 +923,7 @@ GAME_CUSTOM( 199?, m4ra__o, m4ra, mod4yam_cheatchr_pal<mpu4_characteriser_pal
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::saynomore_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::saynomore_characteriser_prot>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// (C)1991 BARCREST and SNM 2.0
GAME_CUSTOM( 199?, m4sayno, 0, "snms.p1", 0x0000, 0x010000, CRC(be1f2222) SHA1(7d8319796e1d45a3d0246bf13b6d818f20796db3), "Barcrest","Say No More (Barcrest) (MPU4) (SNM 2.0)" )
@@ -827,7 +935,7 @@ GAME_CUSTOM( 199?, m4sayno__d, m4sayno, "snmx.p1", 0x0000, 0x01
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_bootleg_fixedret<0x08>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, bootleg_fixedret<0x08>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// no copyright string and SNM 0.5, different protection, hack?
GAME_CUSTOM( 199?, m4sayno__a, m4sayno, "snm 5p.bin", 0x0000, 0x010000, CRC(4fba5c0a) SHA1(85438c531d4122bc31f59127a577dc6d71a4ba9d), "hack?","Say No More (Barcrest) (MPU4) (SNM 0.5, hack, set 1)" )
@@ -839,7 +947,7 @@ GAME_CUSTOM( 199?, m4sayno__b, m4sayno, "say no more 425b.bin", 0x0000, 0x01
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_bootleg_fixedret<0xb0>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, bootleg_fixedret<0xb0>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// no copyright string and SNM 0.4, different protection, hack?
GAME_CUSTOM( 199?, m4sayno__c, m4sayno, "snm 6.bin", 0x0000, 0x010000, CRC(0d14730b) SHA1(2a35d72bdcc9402b00153621ec852f902720c104), "hack?","Say No More (Barcrest) (MPU4) (SNM 0.4, hack)" )
@@ -858,7 +966,7 @@ GAME_CUSTOM( 199?, m4sayno__c, m4sayno, "snm 6.bin", 0x0000, 0x01
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::rr6_characteriser_prot>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// (C)1995 B.W.B. and AE5 3.0
GAME_CUSTOM( 199?, m4acechs__a, m4acechs, "ae_05a__.3_1", 0x0000, 0x010000, CRC(900e1789) SHA1(dbb13f1728d8527a7de5d257c866732adb0a95b5), "BWB","Ace Chase (BWB) (MPU4) (AE5 3.0, set 1)" )
@@ -883,7 +991,7 @@ GAME_CUSTOM( 199?, m4acechs__u, m4acechs, "aei20___.3_1", 0x0000, 0x010000,
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::acechasealt_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::acechasealt_characteriser_prot>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// (C)1994 B.W.B. and AE5 2.0
GAME_CUSTOM( 199?, m4acechs, 0, "ae_05a__.2_3", 0x0000, 0x010000, CRC(c9a03623) SHA1(8daf7e71057528c481915eb8506e03ce9cf372c8), "BWB","Ace Chase (BWB) (MPU4) (AE5 2.0, set 1)" )
@@ -915,152 +1023,152 @@ GAME_CUSTOM( 199?, m4acechs__s, m4acechs, "aei10___.2_3", 0x0000, 0x010000,
GAME(year, setname, parent, machine, inputs, mpu4mod4yam_machines_state, init, ROT0, company, title, GAME_FLAGS )
// boot
-GAME_CUSTOM( 199?, m4supst__au, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "sp8b.p1", 0x0000, 0x010000, CRC(3b12d7e8) SHA1(92a15e5f8391d74c192e8386abdb8853a76bff05), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 1)" )
-GAME_CUSTOM( 199?, m4supst__av, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "sp8bd.p1", 0x0000, 0x010000, CRC(e0d7f789) SHA1(f6157469e43059adb44e7f2eff5bf73861d5636c), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 2)" )
-GAME_CUSTOM( 199?, m4supst__aw, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "sp8c.p1", 0x0000, 0x010000, CRC(da0af8ae) SHA1(91042506050967c508b30c3dc2bfa6f6a6e8b532), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 3)" )
-GAME_CUSTOM( 199?, m4supst__ax, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "sp8dk.p1", 0x0000, 0x010000, CRC(92432e8f) SHA1(5e6df963ccf92a89c71ae1edd7b71ec1e3f97522), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 4)" )
-GAME_CUSTOM( 199?, m4supst__ay, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "sp8k.p1", 0x0000, 0x010000, CRC(e39f74d8) SHA1(9d776e7d67859f4514c69fc4f9f43160da9a2ca1), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 5)" )
-GAME_CUSTOM( 199?, m4supst__az, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "sp8s.p1", 0x0000, 0x010000, CRC(fab99461) SHA1(82f8ca06bb04396f86124dfe4de46265b2edc393), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 6)" )
+GAME_CUSTOM( 199?, m4supst__au, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "sp8b.p1", 0x0000, 0x010000, CRC(3b12d7e8) SHA1(92a15e5f8391d74c192e8386abdb8853a76bff05), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 1)" )
+GAME_CUSTOM( 199?, m4supst__av, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "sp8bd.p1", 0x0000, 0x010000, CRC(e0d7f789) SHA1(f6157469e43059adb44e7f2eff5bf73861d5636c), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 2)" )
+GAME_CUSTOM( 199?, m4supst__aw, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "sp8c.p1", 0x0000, 0x010000, CRC(da0af8ae) SHA1(91042506050967c508b30c3dc2bfa6f6a6e8b532), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 3)" )
+GAME_CUSTOM( 199?, m4supst__ax, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "sp8dk.p1", 0x0000, 0x010000, CRC(92432e8f) SHA1(5e6df963ccf92a89c71ae1edd7b71ec1e3f97522), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 4)" )
+GAME_CUSTOM( 199?, m4supst__ay, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "sp8k.p1", 0x0000, 0x010000, CRC(e39f74d8) SHA1(9d776e7d67859f4514c69fc4f9f43160da9a2ca1), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 5)" )
+GAME_CUSTOM( 199?, m4supst__az, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "sp8s.p1", 0x0000, 0x010000, CRC(fab99461) SHA1(82f8ca06bb04396f86124dfe4de46265b2edc393), "Barcrest","Super Streak (Barcrest) (MPU4) (SP8 0.1, set 6)" )
// boot
-GAME_CUSTOM( 199?, m4supst__a0, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "spsbd.p1", 0x0000, 0x010000, CRC(b621b32d) SHA1(9aab0e074c120cb12beac585f9c513053502955c), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 1)" )
-GAME_CUSTOM( 199?, m4supst__a1, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "spsc.p1", 0x0000, 0x010000, CRC(8c7a24f5) SHA1(f86be164e05235281fb275e950cedaf6f630d29a), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 2)" )
-GAME_CUSTOM( 199?, m4supst__a2, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "spsd.p1", 0x0000, 0x010000, CRC(d34d3617) SHA1(5373335557e4bbb21264bbd9d0fbaf3640f9ab35), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 3)" )
-GAME_CUSTOM( 199?, m4supst__a3, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "spsdk.p1", 0x0000, 0x010000, CRC(cf2fd3e7) SHA1(50d3c0851bec90037cd65a5c55654b0e688b96ca), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 4)" )
-GAME_CUSTOM( 199?, m4supst__a4, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "spsk.p1", 0x0000, 0x010000, CRC(873a1414) SHA1(47b2bbef168382112cd12ace2d6a58695f4b0254), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 5)" )
-GAME_CUSTOM( 199?, m4supst__a5, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "spss.p1", 0x0000, 0x010000, CRC(5e28bdb7) SHA1(3865c891178feb744ad11b2dea491350efc48bea), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 6)" )
+GAME_CUSTOM( 199?, m4supst__a0, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "spsbd.p1", 0x0000, 0x010000, CRC(b621b32d) SHA1(9aab0e074c120cb12beac585f9c513053502955c), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 1)" )
+GAME_CUSTOM( 199?, m4supst__a1, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "spsc.p1", 0x0000, 0x010000, CRC(8c7a24f5) SHA1(f86be164e05235281fb275e950cedaf6f630d29a), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 2)" )
+GAME_CUSTOM( 199?, m4supst__a2, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "spsd.p1", 0x0000, 0x010000, CRC(d34d3617) SHA1(5373335557e4bbb21264bbd9d0fbaf3640f9ab35), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 3)" )
+GAME_CUSTOM( 199?, m4supst__a3, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "spsdk.p1", 0x0000, 0x010000, CRC(cf2fd3e7) SHA1(50d3c0851bec90037cd65a5c55654b0e688b96ca), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 4)" )
+GAME_CUSTOM( 199?, m4supst__a4, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "spsk.p1", 0x0000, 0x010000, CRC(873a1414) SHA1(47b2bbef168382112cd12ace2d6a58695f4b0254), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 5)" )
+GAME_CUSTOM( 199?, m4supst__a5, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "spss.p1", 0x0000, 0x010000, CRC(5e28bdb7) SHA1(3865c891178feb744ad11b2dea491350efc48bea), "Barcrest","Super Streak (Barcrest) (MPU4) (SPS 0.8, set 6)" )
// Hopper error
-GAME_CUSTOM( 199?, m4supst, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cs4b.p1", 0x0000, 0x010000, CRC(fb0aac20) SHA1(3a40be78f7add7905afa8d1226ad41bf0041a2ec), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 1)" )
-GAME_CUSTOM( 199?, m4supst__a, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cs4ad.p1", 0x0000, 0x010000, CRC(c0e81dfd) SHA1(2da922df6c102f8d0f1678e974df9e4d356e5133), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 2)" )
-GAME_CUSTOM( 199?, m4supst__b, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cs4bd.p1", 0x0000, 0x010000, CRC(dafc7ed6) SHA1(3e92d5557d2f587132f4b3b633978ab7d4333fcc), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 3)" )
-GAME_CUSTOM( 199?, m4supst__c, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cs4d.p1", 0x0000, 0x010000, CRC(c1fcda65) SHA1(11f2a45f3f821eac6b98b1988824d77aada3d759), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 4)" )
-GAME_CUSTOM( 199?, m4supst__d, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cs4dk.p1", 0x0000, 0x010000, CRC(30a46171) SHA1(ef1f2951b478ba2b2d42dfb0ec4ed59f28d79972), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 5)" )
-GAME_CUSTOM( 199?, m4supst__e, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cs4dy.p1", 0x0000, 0x010000, CRC(72b15ce7) SHA1(c451ac552ffe9bcde1990b97a60b0ed8918bf8c8), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 6)" )
-GAME_CUSTOM( 199?, m4supst__f, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cs4k.p1", 0x0000, 0x010000, CRC(f252f9ea) SHA1(251998ea752deb4f4a05c833b19e89d334334fac), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 7)" )
-GAME_CUSTOM( 199?, m4supst__g, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cs4s.p1", 0x0000, 0x010000, CRC(10f7b88d) SHA1(0aac0ebbe0ce04db49fc7de4325eea9abdfd74b5), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 8)" )
-GAME_CUSTOM( 199?, m4supst__h, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cs4y.p1", 0x0000, 0x010000, CRC(a464d09d) SHA1(d38c0f8c7c9b7f560b685781a7dcf82bc031a191), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 9)" )
+GAME_CUSTOM( 199?, m4supst, 0, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cs4b.p1", 0x0000, 0x010000, CRC(fb0aac20) SHA1(3a40be78f7add7905afa8d1226ad41bf0041a2ec), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 1)" )
+GAME_CUSTOM( 199?, m4supst__a, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cs4ad.p1", 0x0000, 0x010000, CRC(c0e81dfd) SHA1(2da922df6c102f8d0f1678e974df9e4d356e5133), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 2)" )
+GAME_CUSTOM( 199?, m4supst__b, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cs4bd.p1", 0x0000, 0x010000, CRC(dafc7ed6) SHA1(3e92d5557d2f587132f4b3b633978ab7d4333fcc), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 3)" )
+GAME_CUSTOM( 199?, m4supst__c, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cs4d.p1", 0x0000, 0x010000, CRC(c1fcda65) SHA1(11f2a45f3f821eac6b98b1988824d77aada3d759), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 4)" )
+GAME_CUSTOM( 199?, m4supst__d, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cs4dk.p1", 0x0000, 0x010000, CRC(30a46171) SHA1(ef1f2951b478ba2b2d42dfb0ec4ed59f28d79972), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 5)" )
+GAME_CUSTOM( 199?, m4supst__e, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cs4dy.p1", 0x0000, 0x010000, CRC(72b15ce7) SHA1(c451ac552ffe9bcde1990b97a60b0ed8918bf8c8), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 6)" )
+GAME_CUSTOM( 199?, m4supst__f, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cs4k.p1", 0x0000, 0x010000, CRC(f252f9ea) SHA1(251998ea752deb4f4a05c833b19e89d334334fac), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 7)" )
+GAME_CUSTOM( 199?, m4supst__g, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cs4s.p1", 0x0000, 0x010000, CRC(10f7b88d) SHA1(0aac0ebbe0ce04db49fc7de4325eea9abdfd74b5), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 8)" )
+GAME_CUSTOM( 199?, m4supst__h, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cs4y.p1", 0x0000, 0x010000, CRC(a464d09d) SHA1(d38c0f8c7c9b7f560b685781a7dcf82bc031a191), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.7, set 9)" )
// Hopper error
// CS4 0.4 in header, CST 0.4 on boot
-GAME_CUSTOM( 199?, m4supst__u, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04ad.p1", 0x0000, 0x010000, CRC(b946d40d) SHA1(c03fa48f8b64c3cf4504f472f21a38f8a55f12e6), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 1)" )
-GAME_CUSTOM( 199?, m4supst__v, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04b.p1", 0x0000, 0x010000, CRC(45333d45) SHA1(d6ccb39ee9b316772052f856f79424c34ff273c5), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 2)" )
-GAME_CUSTOM( 199?, m4supst__w, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04bd.p1", 0x0000, 0x010000, CRC(03b56b07) SHA1(903b24ab93f9584f228278729b5a99451b8e81f7), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 3)" )
-GAME_CUSTOM( 199?, m4supst__x, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04c.p1", 0x0000, 0x010000, CRC(9c000883) SHA1(da0a9f1afc218c14a57a46fe2ea63e166f4e3739), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 4)" )
-GAME_CUSTOM( 199?, m4supst__y, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04d.p1", 0x0000, 0x010000, CRC(32281bec) SHA1(a043fb615c2a66d23d85ae80cb0b1705523f411c), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 5)" )
-GAME_CUSTOM( 199?, m4supst__z, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04dk.p1", 0x0000, 0x010000, CRC(9345e7b7) SHA1(8bff80d2b847fbae050f77215efe3e55b98a4657), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 6)" )
-GAME_CUSTOM( 199?, m4supst__0, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04dr.p1", 0x0000, 0x010000, CRC(8d397063) SHA1(45642de2629e89e2495d1cbd5aed90cf2a4cf1c1), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 7)" )
-GAME_CUSTOM( 199?, m4supst__1, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04dy.p1", 0x0000, 0x010000, CRC(4a303ced) SHA1(6c12b956358753c8bf99bd3316646721c9ec2585), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 8)" )
-GAME_CUSTOM( 199?, m4supst__2, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04k.p1", 0x0000, 0x010000, CRC(a59584f5) SHA1(8cfcf069ad905277f1925e682602e129e97e619b), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 9)" )
-GAME_CUSTOM( 199?, m4supst__3, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04r.p1", 0x0000, 0x010000, CRC(c9771997) SHA1(ed98650c0d73f2db0fe380777d10404ccabced31), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 10)" )
-GAME_CUSTOM( 199?, m4supst__4, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04s.p1", 0x0000, 0x010000, CRC(cd5b848d) SHA1(4dd3dd1c883552c7b5c475156308604b12eff75a), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 11)" )
-GAME_CUSTOM( 199?, m4supst__5, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "cst04y.p1", 0x0000, 0x010000, CRC(7adc00ae) SHA1(5688f0876c18faf474a6d8487fdd85f20f9fc144), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 12)" )
+GAME_CUSTOM( 199?, m4supst__u, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04ad.p1", 0x0000, 0x010000, CRC(b946d40d) SHA1(c03fa48f8b64c3cf4504f472f21a38f8a55f12e6), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 1)" )
+GAME_CUSTOM( 199?, m4supst__v, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04b.p1", 0x0000, 0x010000, CRC(45333d45) SHA1(d6ccb39ee9b316772052f856f79424c34ff273c5), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 2)" )
+GAME_CUSTOM( 199?, m4supst__w, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04bd.p1", 0x0000, 0x010000, CRC(03b56b07) SHA1(903b24ab93f9584f228278729b5a99451b8e81f7), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 3)" )
+GAME_CUSTOM( 199?, m4supst__x, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04c.p1", 0x0000, 0x010000, CRC(9c000883) SHA1(da0a9f1afc218c14a57a46fe2ea63e166f4e3739), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 4)" )
+GAME_CUSTOM( 199?, m4supst__y, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04d.p1", 0x0000, 0x010000, CRC(32281bec) SHA1(a043fb615c2a66d23d85ae80cb0b1705523f411c), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 5)" )
+GAME_CUSTOM( 199?, m4supst__z, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04dk.p1", 0x0000, 0x010000, CRC(9345e7b7) SHA1(8bff80d2b847fbae050f77215efe3e55b98a4657), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 6)" )
+GAME_CUSTOM( 199?, m4supst__0, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04dr.p1", 0x0000, 0x010000, CRC(8d397063) SHA1(45642de2629e89e2495d1cbd5aed90cf2a4cf1c1), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 7)" )
+GAME_CUSTOM( 199?, m4supst__1, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04dy.p1", 0x0000, 0x010000, CRC(4a303ced) SHA1(6c12b956358753c8bf99bd3316646721c9ec2585), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 8)" )
+GAME_CUSTOM( 199?, m4supst__2, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04k.p1", 0x0000, 0x010000, CRC(a59584f5) SHA1(8cfcf069ad905277f1925e682602e129e97e619b), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 9)" )
+GAME_CUSTOM( 199?, m4supst__3, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04r.p1", 0x0000, 0x010000, CRC(c9771997) SHA1(ed98650c0d73f2db0fe380777d10404ccabced31), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 10)" )
+GAME_CUSTOM( 199?, m4supst__4, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04s.p1", 0x0000, 0x010000, CRC(cd5b848d) SHA1(4dd3dd1c883552c7b5c475156308604b12eff75a), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 11)" )
+GAME_CUSTOM( 199?, m4supst__5, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "cst04y.p1", 0x0000, 0x010000, CRC(7adc00ae) SHA1(5688f0876c18faf474a6d8487fdd85f20f9fc144), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.4 / CST 0.4, set 12)" )
// Hopper error
// CS4 0.3 in header, CSU 0.3 on boot
-GAME_CUSTOM( 199?, m4supst__6, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03ad.p1", 0x0000, 0x010000, CRC(5d7b6393) SHA1(19c24f4113efb6a1499936e5f89a8ad859ff8df0), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 1)" )
-GAME_CUSTOM( 199?, m4supst__7, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03b.p1", 0x0000, 0x010000, CRC(57826c2a) SHA1(b835eb3066fec468ab55851d1dd023484e2d57e3), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 2)" )
-GAME_CUSTOM( 199?, m4supst__8, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03bd.p1", 0x0000, 0x010000, CRC(092e7039) SHA1(36a7c18872e4012e3acce0d01d2cc2c201a3c867), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 3)" )
-GAME_CUSTOM( 199?, m4supst__9, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03c.p1", 0x0000, 0x010000, CRC(b30a3c00) SHA1(066b0007092720a6f89edf8eafffe2f8fd83edbc), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 4)" )
-GAME_CUSTOM( 199?, m4supst__aa, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03d.p1", 0x0000, 0x010000, CRC(03ff9d99) SHA1(390087c136e4c314de9086adb7b020e8adabe34a), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 5)" )
-GAME_CUSTOM( 199?, m4supst__ab, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03dk.p1", 0x0000, 0x010000, CRC(cf7e61ff) SHA1(0e328ce5ff86770fabaf91d48a8de039323d112a), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 6)" )
-GAME_CUSTOM( 199?, m4supst__ac, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03dr.p1", 0x0000, 0x010000, CRC(00d700d1) SHA1(8bcc3c470c42780b1f1404fc6ff53e6ec7d89ad0), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 7)" )
-GAME_CUSTOM( 199?, m4supst__ad, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03dy.p1", 0x0000, 0x010000, CRC(8ec77c04) SHA1(64708460439a7e124f90eef6b9628e57f7d78ebc), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 8)" )
-GAME_CUSTOM( 199?, m4supst__ae, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03k.p1", 0x0000, 0x010000, CRC(701a0837) SHA1(31237fd108b354fb2afc449efa3a53dee2cf7be8), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 9)" )
-GAME_CUSTOM( 199?, m4supst__af, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03r.p1", 0x0000, 0x010000, CRC(d86a6895) SHA1(2c42bcf5de739f01e18bd1b766eec26a6da5aa52), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 10)" )
-GAME_CUSTOM( 199?, m4supst__ag, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03s.p1", 0x0000, 0x010000, CRC(197bb032) SHA1(06e98713ff5fc72bffccde1cc92fc8cb63665fad), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 11)" )
-GAME_CUSTOM( 199?, m4supst__ah, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>, mpu4, init_m4default, "csu03y.p1", 0x0000, 0x010000, CRC(bee0e7e1) SHA1(6a1ab766af9147f0d4a7c1d2a95c9a6e3e3f4986), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 12)" )
+GAME_CUSTOM( 199?, m4supst__6, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03ad.p1", 0x0000, 0x010000, CRC(5d7b6393) SHA1(19c24f4113efb6a1499936e5f89a8ad859ff8df0), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 1)" )
+GAME_CUSTOM( 199?, m4supst__7, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03b.p1", 0x0000, 0x010000, CRC(57826c2a) SHA1(b835eb3066fec468ab55851d1dd023484e2d57e3), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 2)" )
+GAME_CUSTOM( 199?, m4supst__8, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03bd.p1", 0x0000, 0x010000, CRC(092e7039) SHA1(36a7c18872e4012e3acce0d01d2cc2c201a3c867), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 3)" )
+GAME_CUSTOM( 199?, m4supst__9, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03c.p1", 0x0000, 0x010000, CRC(b30a3c00) SHA1(066b0007092720a6f89edf8eafffe2f8fd83edbc), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 4)" )
+GAME_CUSTOM( 199?, m4supst__aa, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03d.p1", 0x0000, 0x010000, CRC(03ff9d99) SHA1(390087c136e4c314de9086adb7b020e8adabe34a), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 5)" )
+GAME_CUSTOM( 199?, m4supst__ab, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03dk.p1", 0x0000, 0x010000, CRC(cf7e61ff) SHA1(0e328ce5ff86770fabaf91d48a8de039323d112a), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 6)" )
+GAME_CUSTOM( 199?, m4supst__ac, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03dr.p1", 0x0000, 0x010000, CRC(00d700d1) SHA1(8bcc3c470c42780b1f1404fc6ff53e6ec7d89ad0), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 7)" )
+GAME_CUSTOM( 199?, m4supst__ad, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03dy.p1", 0x0000, 0x010000, CRC(8ec77c04) SHA1(64708460439a7e124f90eef6b9628e57f7d78ebc), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 8)" )
+GAME_CUSTOM( 199?, m4supst__ae, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03k.p1", 0x0000, 0x010000, CRC(701a0837) SHA1(31237fd108b354fb2afc449efa3a53dee2cf7be8), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 9)" )
+GAME_CUSTOM( 199?, m4supst__af, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03r.p1", 0x0000, 0x010000, CRC(d86a6895) SHA1(2c42bcf5de739f01e18bd1b766eec26a6da5aa52), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 10)" )
+GAME_CUSTOM( 199?, m4supst__ag, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03s.p1", 0x0000, 0x010000, CRC(197bb032) SHA1(06e98713ff5fc72bffccde1cc92fc8cb63665fad), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 11)" )
+GAME_CUSTOM( 199?, m4supst__ah, m4supst, cheatchr_pal<mpu4_characteriser_pal::m574_characteriser_prot>(R4, RT1), mpu4, init_m4, "csu03y.p1", 0x0000, 0x010000, CRC(bee0e7e1) SHA1(6a1ab766af9147f0d4a7c1d2a95c9a6e3e3f4986), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.3 / CSU 0.3, set 12)" )
// different CHR - boots
-GAME_CUSTOM( 199?, m4supst__bi, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "sttad.p1", 0x0000, 0x010000, CRC(af615f05) SHA1(b2c1b8ba086a4d33f1269c28d4caa7286a27f085), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 1)" )
-GAME_CUSTOM( 199?, m4supst__bj, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "sttb.p1", 0x0000, 0x010000, CRC(3119149f) SHA1(e749fcc5f95ccd29f42bfd0b140cf3cbb84d9599), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 2)" )
-GAME_CUSTOM( 199?, m4supst__bk, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "sttbd.p1", 0x0000, 0x010000, CRC(cfddaf39) SHA1(0f24b5e691e1d43f6604087f0b3bc2571d2c4002), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 3)" )
-GAME_CUSTOM( 199?, m4supst__bl, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "sttd.p1", 0x0000, 0x010000, CRC(8bc2498c) SHA1(a9cd3a6968186818a8c4033b1f304eac152244cf), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 4)" )
-GAME_CUSTOM( 199?, m4supst__bm, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "sttdk.p1", 0x0000, 0x010000, CRC(39903dde) SHA1(f92c4380051ada7bbc5739550c8dfdd6ddaaa3fe), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 5)" )
-GAME_CUSTOM( 199?, m4supst__bn, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "sttdr.p1", 0x0000, 0x010000, CRC(866f69f0) SHA1(ef9717f89b9718f1bcf8d3592f240ec9cf48bca3), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 6)" )
-GAME_CUSTOM( 199?, m4supst__bo, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "sttdy.p1", 0x0000, 0x010000, CRC(74ebd933) SHA1(b308c8cae2c74e4e07c6e4afb505068220714824), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 7)" )
-GAME_CUSTOM( 199?, m4supst__bp, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "sttk.p1", 0x0000, 0x010000, CRC(461db2f5) SHA1(8b97342d7ebfb33aa6aff246e8d799f4435788b7), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 8)" )
-GAME_CUSTOM( 199?, m4supst__bq, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "sttr.p1", 0x0000, 0x010000, CRC(2591f6ec) SHA1(3d83d930e41e164e71d67b529967320e1eee8354), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 9)" )
-GAME_CUSTOM( 199?, m4supst__br, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stts.p1", 0x0000, 0x010000, CRC(a5e29c32) SHA1(8ba2f76505c2f40493c918b9d9524fa67999f7c1), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 10)" )
-GAME_CUSTOM( 199?, m4supst__bs, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stty.p1", 0x0000, 0x010000, CRC(7306fab9) SHA1(0da1612490fcff9b7a17f97190b6b561016c3b18), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 11)" )
+GAME_CUSTOM( 199?, m4supst__bi, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "sttad.p1", 0x0000, 0x010000, CRC(af615f05) SHA1(b2c1b8ba086a4d33f1269c28d4caa7286a27f085), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 1)" )
+GAME_CUSTOM( 199?, m4supst__bj, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "sttb.p1", 0x0000, 0x010000, CRC(3119149f) SHA1(e749fcc5f95ccd29f42bfd0b140cf3cbb84d9599), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 2)" )
+GAME_CUSTOM( 199?, m4supst__bk, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "sttbd.p1", 0x0000, 0x010000, CRC(cfddaf39) SHA1(0f24b5e691e1d43f6604087f0b3bc2571d2c4002), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 3)" )
+GAME_CUSTOM( 199?, m4supst__bl, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "sttd.p1", 0x0000, 0x010000, CRC(8bc2498c) SHA1(a9cd3a6968186818a8c4033b1f304eac152244cf), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 4)" )
+GAME_CUSTOM( 199?, m4supst__bm, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "sttdk.p1", 0x0000, 0x010000, CRC(39903dde) SHA1(f92c4380051ada7bbc5739550c8dfdd6ddaaa3fe), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 5)" )
+GAME_CUSTOM( 199?, m4supst__bn, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "sttdr.p1", 0x0000, 0x010000, CRC(866f69f0) SHA1(ef9717f89b9718f1bcf8d3592f240ec9cf48bca3), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 6)" )
+GAME_CUSTOM( 199?, m4supst__bo, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "sttdy.p1", 0x0000, 0x010000, CRC(74ebd933) SHA1(b308c8cae2c74e4e07c6e4afb505068220714824), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 7)" )
+GAME_CUSTOM( 199?, m4supst__bp, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "sttk.p1", 0x0000, 0x010000, CRC(461db2f5) SHA1(8b97342d7ebfb33aa6aff246e8d799f4435788b7), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 8)" )
+GAME_CUSTOM( 199?, m4supst__bq, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "sttr.p1", 0x0000, 0x010000, CRC(2591f6ec) SHA1(3d83d930e41e164e71d67b529967320e1eee8354), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 9)" )
+GAME_CUSTOM( 199?, m4supst__br, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stts.p1", 0x0000, 0x010000, CRC(a5e29c32) SHA1(8ba2f76505c2f40493c918b9d9524fa67999f7c1), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 10)" )
+GAME_CUSTOM( 199?, m4supst__bs, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stty.p1", 0x0000, 0x010000, CRC(7306fab9) SHA1(0da1612490fcff9b7a17f97190b6b561016c3b18), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.3, set 11)" )
// different CHR - boots
-GAME_CUSTOM( 199?, m4supst__bt, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stuad.p1", 0x0000, 0x010000, CRC(e7a01b7b) SHA1(3db08800a35d440f012ca69d84c30465818b4993), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 1)" )
-GAME_CUSTOM( 199?, m4supst__bu, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stub.p1", 0x0000, 0x010000, CRC(9044badf) SHA1(af8e218e3dc457bb5f24e3f2d74a8639466c3f11), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 2)" )
-GAME_CUSTOM( 199?, m4supst__bv, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stubd.p1", 0x0000, 0x010000, CRC(438e1687) SHA1(5e0f27e95bf861d4edc55709efc79496c7353e8b), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 3)" )
-GAME_CUSTOM( 199?, m4supst__bw, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stud.p1", 0x0000, 0x010000, CRC(1cbe3bec) SHA1(005dde84e57c5517fc6d6b975cc882dae11cbf63), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 4)" )
-GAME_CUSTOM( 199?, m4supst__bx, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "studk.p1", 0x0000, 0x010000, CRC(0931d501) SHA1(afa078248230cbc0acc9d3af641ec63ed0424a75), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 5)" )
-GAME_CUSTOM( 199?, m4supst__by, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "studr.p1", 0x0000, 0x010000, CRC(e06e1c59) SHA1(f4454f640335dbf6f9b8154d7805102253f605b4), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 6)" )
-GAME_CUSTOM( 199?, m4supst__bz, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "study.p1", 0x0000, 0x010000, CRC(8b4275e0) SHA1(267a9d2eddf41b8838eeaee06bba45f0a8b8451f), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 7)" )
-GAME_CUSTOM( 199?, m4supst__b0, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stuk.p1", 0x0000, 0x010000, CRC(a66fb54f) SHA1(4351edbf6c5de817cf6972885ff1f6c7df837c37), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 8)" )
-GAME_CUSTOM( 199?, m4supst__b1, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stur.p1", 0x0000, 0x010000, CRC(eeb3bfed) SHA1(87a753511fb384a505d3cc69ca67fe4e288cf3bb), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 9)" )
-GAME_CUSTOM( 199?, m4supst__b2, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stus.p1", 0x0000, 0x010000, CRC(19aca6ad) SHA1(1583e76a4e1058fa97efdd9a7e6f7c4fe806b2f4), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 10)" )
-GAME_CUSTOM( 199?, m4supst__b3, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "stuy.p1", 0x0000, 0x010000, CRC(e6b2b76f) SHA1(bf251b751e6a8d2764c63e92d48e1a64666b9a47), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 11)" )
+GAME_CUSTOM( 199?, m4supst__bt, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stuad.p1", 0x0000, 0x010000, CRC(e7a01b7b) SHA1(3db08800a35d440f012ca69d84c30465818b4993), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 1)" )
+GAME_CUSTOM( 199?, m4supst__bu, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stub.p1", 0x0000, 0x010000, CRC(9044badf) SHA1(af8e218e3dc457bb5f24e3f2d74a8639466c3f11), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 2)" )
+GAME_CUSTOM( 199?, m4supst__bv, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stubd.p1", 0x0000, 0x010000, CRC(438e1687) SHA1(5e0f27e95bf861d4edc55709efc79496c7353e8b), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 3)" )
+GAME_CUSTOM( 199?, m4supst__bw, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stud.p1", 0x0000, 0x010000, CRC(1cbe3bec) SHA1(005dde84e57c5517fc6d6b975cc882dae11cbf63), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 4)" )
+GAME_CUSTOM( 199?, m4supst__bx, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "studk.p1", 0x0000, 0x010000, CRC(0931d501) SHA1(afa078248230cbc0acc9d3af641ec63ed0424a75), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 5)" )
+GAME_CUSTOM( 199?, m4supst__by, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "studr.p1", 0x0000, 0x010000, CRC(e06e1c59) SHA1(f4454f640335dbf6f9b8154d7805102253f605b4), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 6)" )
+GAME_CUSTOM( 199?, m4supst__bz, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "study.p1", 0x0000, 0x010000, CRC(8b4275e0) SHA1(267a9d2eddf41b8838eeaee06bba45f0a8b8451f), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 7)" )
+GAME_CUSTOM( 199?, m4supst__b0, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stuk.p1", 0x0000, 0x010000, CRC(a66fb54f) SHA1(4351edbf6c5de817cf6972885ff1f6c7df837c37), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 8)" )
+GAME_CUSTOM( 199?, m4supst__b1, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stur.p1", 0x0000, 0x010000, CRC(eeb3bfed) SHA1(87a753511fb384a505d3cc69ca67fe4e288cf3bb), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 9)" )
+GAME_CUSTOM( 199?, m4supst__b2, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stus.p1", 0x0000, 0x010000, CRC(19aca6ad) SHA1(1583e76a4e1058fa97efdd9a7e6f7c4fe806b2f4), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 10)" )
+GAME_CUSTOM( 199?, m4supst__b3, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "stuy.p1", 0x0000, 0x010000, CRC(e6b2b76f) SHA1(bf251b751e6a8d2764c63e92d48e1a64666b9a47), "Barcrest","Super Streak (Barcrest) (MPU4) (STU 0.1, set 11)" )
// different CHR - boots
-GAME_CUSTOM( 199?, m4supst__b4, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, init_m4default, "superstreak1deb.bin", 0x0000, 0x010000, CRC(892ccad9) SHA1(c88daadd9778e363e154b674b57ccd07cea59836), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.2K)" )
+GAME_CUSTOM( 199?, m4supst__b4, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, init_m4, "superstreak1deb.bin", 0x0000, 0x010000, CRC(892ccad9) SHA1(c88daadd9778e363e154b674b57ccd07cea59836), "Barcrest","Super Streak (Barcrest) (MPU4) (STT 0.2K)" )
// different CHR - hopper
// CS4 0.2 in header, CSP 0.2 on boot
-GAME_CUSTOM( 199?, m4supst__i, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02ad.p1", 0x0000, 0x010000, CRC(96bbbc26) SHA1(ca127151c771963c07f0f368102ede8095d11863), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 1)" )
-GAME_CUSTOM( 199?, m4supst__j, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02b.p1", 0x0000, 0x010000, CRC(913ea9ff) SHA1(182bcc007d007a1c7f57767358600d2de7d1e3cf), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 2)" )
-GAME_CUSTOM( 199?, m4supst__k, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02bd.p1", 0x0000, 0x010000, CRC(ad0137a1) SHA1(d043372ba09081dd4e807f009a6460b4b30e6453), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 3)" )
-GAME_CUSTOM( 199?, m4supst__l, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02c.p1", 0x0000, 0x010000, CRC(fdad4b22) SHA1(4f19922821a9d1663bd9355447209384272e7542), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 4)" )
-GAME_CUSTOM( 199?, m4supst__m, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02d.p1", 0x0000, 0x010000, CRC(9717a58d) SHA1(8bc495dc4db0041718ae2db14a01a789616c8764), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 5)" )
-GAME_CUSTOM( 199?, m4supst__n, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02dk.p1", 0x0000, 0x010000, CRC(cd8aa547) SHA1(a13dcb75507878cb133b9ef739fb41d932d4eed5), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 6)" )
-GAME_CUSTOM( 199?, m4supst__o, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02dr.p1", 0x0000, 0x010000, CRC(6656e588) SHA1(4001ec0d1145ef0107e62ccda61e22ba8b0cdc92), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 7)" )
-GAME_CUSTOM( 199?, m4supst__p, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02dy.p1", 0x0000, 0x010000, CRC(14ff7e1d) SHA1(455b6ff93a5f25dc5f43c62a6c1d9a18de1ce94b), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 8)" )
-GAME_CUSTOM( 199?, m4supst__q, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02k.p1", 0x0000, 0x010000, CRC(c438c754) SHA1(c1d2e664091c1eaf1e4d964a3bfd446b11d7ba41), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 9)" )
-GAME_CUSTOM( 199?, m4supst__r, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02r.p1", 0x0000, 0x010000, CRC(4abe0f80) SHA1(67f7f9946a26b5097b6ce719dbd599790078f365), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 10)" )
-GAME_CUSTOM( 199?, m4supst__s, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02s.p1", 0x0000, 0x010000, CRC(47c0068d) SHA1(5480a519a6e6df2757e66cfcf904dd6c2873cc43), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 11)" )
-GAME_CUSTOM( 199?, m4supst__t, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "csp02y.p1", 0x0000, 0x010000, CRC(d51d18d8) SHA1(a65fd4326872775364d2d7a886e98a1ee07596b7), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 12)" )
+GAME_CUSTOM( 199?, m4supst__i, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02ad.p1", 0x0000, 0x010000, CRC(96bbbc26) SHA1(ca127151c771963c07f0f368102ede8095d11863), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 1)" )
+GAME_CUSTOM( 199?, m4supst__j, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02b.p1", 0x0000, 0x010000, CRC(913ea9ff) SHA1(182bcc007d007a1c7f57767358600d2de7d1e3cf), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 2)" )
+GAME_CUSTOM( 199?, m4supst__k, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02bd.p1", 0x0000, 0x010000, CRC(ad0137a1) SHA1(d043372ba09081dd4e807f009a6460b4b30e6453), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 3)" )
+GAME_CUSTOM( 199?, m4supst__l, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02c.p1", 0x0000, 0x010000, CRC(fdad4b22) SHA1(4f19922821a9d1663bd9355447209384272e7542), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 4)" )
+GAME_CUSTOM( 199?, m4supst__m, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02d.p1", 0x0000, 0x010000, CRC(9717a58d) SHA1(8bc495dc4db0041718ae2db14a01a789616c8764), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 5)" )
+GAME_CUSTOM( 199?, m4supst__n, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02dk.p1", 0x0000, 0x010000, CRC(cd8aa547) SHA1(a13dcb75507878cb133b9ef739fb41d932d4eed5), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 6)" )
+GAME_CUSTOM( 199?, m4supst__o, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02dr.p1", 0x0000, 0x010000, CRC(6656e588) SHA1(4001ec0d1145ef0107e62ccda61e22ba8b0cdc92), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 7)" )
+GAME_CUSTOM( 199?, m4supst__p, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02dy.p1", 0x0000, 0x010000, CRC(14ff7e1d) SHA1(455b6ff93a5f25dc5f43c62a6c1d9a18de1ce94b), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 8)" )
+GAME_CUSTOM( 199?, m4supst__q, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02k.p1", 0x0000, 0x010000, CRC(c438c754) SHA1(c1d2e664091c1eaf1e4d964a3bfd446b11d7ba41), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 9)" )
+GAME_CUSTOM( 199?, m4supst__r, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02r.p1", 0x0000, 0x010000, CRC(4abe0f80) SHA1(67f7f9946a26b5097b6ce719dbd599790078f365), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 10)" )
+GAME_CUSTOM( 199?, m4supst__s, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02s.p1", 0x0000, 0x010000, CRC(47c0068d) SHA1(5480a519a6e6df2757e66cfcf904dd6c2873cc43), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 11)" )
+GAME_CUSTOM( 199?, m4supst__t, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "csp02y.p1", 0x0000, 0x010000, CRC(d51d18d8) SHA1(a65fd4326872775364d2d7a886e98a1ee07596b7), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / CSP 0.2, set 12)" )
// different CHR - hopper
// CS4 0.2 in header, EEH 0.2 on boot
-GAME_CUSTOM( 199?, m4supst__ai, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02ad.p1", 0x0000, 0x010000, CRC(25874a6d) SHA1(12e4fb36d231c3104df3613dd3851f411a876eb0), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 1)" )
-GAME_CUSTOM( 199?, m4supst__aj, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02b.p1", 0x0000, 0x010000, CRC(ef280a8a) SHA1(912a825e69482a540cf0cadfc49a37a2822f3ecb), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 2)" )
-GAME_CUSTOM( 199?, m4supst__ak, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02bd.p1", 0x0000, 0x010000, CRC(5f126810) SHA1(8fe1cbc7d93e2db35225388ee0773f6a98762ca1), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 3)" )
-GAME_CUSTOM( 199?, m4supst__al, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02c.p1", 0x0000, 0x010000, CRC(3f49b936) SHA1(a0d07e0101f8cc38ebc28cfc1b239793b961f5ab), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 4)" )
-GAME_CUSTOM( 199?, m4supst__am, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02d.p1", 0x0000, 0x010000, CRC(14dcfe63) SHA1(3ac77c9aa9b3b77fb1df98d2b427564be41dca78), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 5)" )
-GAME_CUSTOM( 199?, m4supst__an, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02dk.p1", 0x0000, 0x010000, CRC(81a39421) SHA1(6fa43e8cb83e7fb940cc224eed5ee3f254c18c4d), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 6)" )
-GAME_CUSTOM( 199?, m4supst__ao, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02dr.p1", 0x0000, 0x010000, CRC(c7755823) SHA1(05626ed49a2f800555f3f404273fa910b68de75c), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 7)" )
-GAME_CUSTOM( 199?, m4supst__ap, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02dy.p1", 0x0000, 0x010000, CRC(5a1e70cd) SHA1(88bb29fd52d2331b72bb04652f9578f2c2f5a9ac), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 8)" )
-GAME_CUSTOM( 199?, m4supst__aq, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02k.p1", 0x0000, 0x010000, CRC(b78882ec) SHA1(79c6a6d2cfe113743d3a93eb825fccab2b025933), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 9)" )
-GAME_CUSTOM( 199?, m4supst__ar, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02r.p1", 0x0000, 0x010000, CRC(ff54884e) SHA1(2783f0e562e946597288ddbec4dcd1101e188d1d), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 10)" )
-GAME_CUSTOM( 199?, m4supst__as, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02s.p1", 0x0000, 0x010000, CRC(c5856c3c) SHA1(5a0e5a7188913e1c36eac894bbeeae47a4f3589c), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 11)" )
-GAME_CUSTOM( 199?, m4supst__at, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "eeh02y.p1", 0x0000, 0x010000, CRC(623fa0a0) SHA1(5a49cea5e94afccbf965cbda7a8d9a74f9734a6e), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 12)" )
+GAME_CUSTOM( 199?, m4supst__ai, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02ad.p1", 0x0000, 0x010000, CRC(25874a6d) SHA1(12e4fb36d231c3104df3613dd3851f411a876eb0), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 1)" )
+GAME_CUSTOM( 199?, m4supst__aj, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02b.p1", 0x0000, 0x010000, CRC(ef280a8a) SHA1(912a825e69482a540cf0cadfc49a37a2822f3ecb), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 2)" )
+GAME_CUSTOM( 199?, m4supst__ak, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02bd.p1", 0x0000, 0x010000, CRC(5f126810) SHA1(8fe1cbc7d93e2db35225388ee0773f6a98762ca1), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 3)" )
+GAME_CUSTOM( 199?, m4supst__al, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02c.p1", 0x0000, 0x010000, CRC(3f49b936) SHA1(a0d07e0101f8cc38ebc28cfc1b239793b961f5ab), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 4)" )
+GAME_CUSTOM( 199?, m4supst__am, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02d.p1", 0x0000, 0x010000, CRC(14dcfe63) SHA1(3ac77c9aa9b3b77fb1df98d2b427564be41dca78), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 5)" )
+GAME_CUSTOM( 199?, m4supst__an, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02dk.p1", 0x0000, 0x010000, CRC(81a39421) SHA1(6fa43e8cb83e7fb940cc224eed5ee3f254c18c4d), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 6)" )
+GAME_CUSTOM( 199?, m4supst__ao, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02dr.p1", 0x0000, 0x010000, CRC(c7755823) SHA1(05626ed49a2f800555f3f404273fa910b68de75c), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 7)" )
+GAME_CUSTOM( 199?, m4supst__ap, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02dy.p1", 0x0000, 0x010000, CRC(5a1e70cd) SHA1(88bb29fd52d2331b72bb04652f9578f2c2f5a9ac), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 8)" )
+GAME_CUSTOM( 199?, m4supst__aq, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02k.p1", 0x0000, 0x010000, CRC(b78882ec) SHA1(79c6a6d2cfe113743d3a93eb825fccab2b025933), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 9)" )
+GAME_CUSTOM( 199?, m4supst__ar, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02r.p1", 0x0000, 0x010000, CRC(ff54884e) SHA1(2783f0e562e946597288ddbec4dcd1101e188d1d), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 10)" )
+GAME_CUSTOM( 199?, m4supst__as, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02s.p1", 0x0000, 0x010000, CRC(c5856c3c) SHA1(5a0e5a7188913e1c36eac894bbeeae47a4f3589c), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 11)" )
+GAME_CUSTOM( 199?, m4supst__at, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "eeh02y.p1", 0x0000, 0x010000, CRC(623fa0a0) SHA1(5a49cea5e94afccbf965cbda7a8d9a74f9734a6e), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / EEH 0.2, set 12)" )
// different CHR - hopper
// CS4 0.2 in header, STC 0.2 in boot
-GAME_CUSTOM( 199?, m4supst__a6, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02ad.p1", 0x0000, 0x010000, CRC(d9a2b4d1) SHA1(9a6862a44817b3ec465f126fd2a5d2c9825d846e), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 1)" )
-GAME_CUSTOM( 199?, m4supst__a7, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02b.p1", 0x0000, 0x010000, CRC(bd2e8e6c) SHA1(71670dccedc2f47888c1205de59a81677ffeabaa), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 2)" )
-GAME_CUSTOM( 199?, m4supst__a8, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02bd.p1", 0x0000, 0x010000, CRC(efbed99b) SHA1(62d80248bb666bfb49ed7546936da744e43fa870), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 3)" )
-GAME_CUSTOM( 199?, m4supst__a9, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02c.p1", 0x0000, 0x010000, CRC(9d342386) SHA1(b50f64d66d89dbd3dee1ff2cb430a2caa050e7c8), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 4)" )
-GAME_CUSTOM( 199?, m4supst__ba, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02d.p1", 0x0000, 0x010000, CRC(c43f6e65) SHA1(0278cf389f8289d7b819125ae0a612c81ea75fab), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 5)" )
-GAME_CUSTOM( 199?, m4supst__bb, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02dk.p1", 0x0000, 0x010000, CRC(36576570) SHA1(214a57344d8e161b3dbd07457291ed9bce011842), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 6)" )
-GAME_CUSTOM( 199?, m4supst__bc, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02dr.p1", 0x0000, 0x010000, CRC(450c553f) SHA1(46050285eeb10dc368ad501c61d41351c4e2fcde), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 7)" )
-GAME_CUSTOM( 199?, m4supst__bd, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02dy.p1", 0x0000, 0x010000, CRC(d8677dd1) SHA1(18abc0a1d28458c3b26a0d1dbf6ca8aba3f3e240), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 8)" )
-GAME_CUSTOM( 199?, m4supst__be, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02k.p1", 0x0000, 0x010000, CRC(c6e8d110) SHA1(9e05961b9bba502f52a03de27e608afc52f6c025), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 9)" )
-GAME_CUSTOM( 199?, m4supst__bf, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02r.p1", 0x0000, 0x010000, CRC(918d769f) SHA1(2a4438828d9e7efd3a94eaebe56585e7ae23d9d1), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 10)" )
-GAME_CUSTOM( 199?, m4supst__bg, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02s.p1", 0x0000, 0x010000, CRC(9c50fff7) SHA1(3468340d2d04cbdecd669817f8a9c4028e301eeb), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 11)" )
-GAME_CUSTOM( 199?, m4supst__bh, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc02y.p1", 0x0000, 0x010000, CRC(0ce65e71) SHA1(02ae1fd5a41ab5a96ddcfe1cf3e8567561291961), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 12)" )
-
-GAME_CUSTOM( 199?, m4stc, m4supst, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>, mpu4, init_m4default, "stc01s", 0x0000, 0x010000, CRC(8371bb8f) SHA1(bd60825b3f5011c218b34f00886b6b54afe61b9f), "Barcrest","Super Streak (Barcrest) (MPU4) (STC 0.1)" )
+GAME_CUSTOM( 199?, m4supst__a6, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02ad.p1", 0x0000, 0x010000, CRC(d9a2b4d1) SHA1(9a6862a44817b3ec465f126fd2a5d2c9825d846e), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 1)" )
+GAME_CUSTOM( 199?, m4supst__a7, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02b.p1", 0x0000, 0x010000, CRC(bd2e8e6c) SHA1(71670dccedc2f47888c1205de59a81677ffeabaa), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 2)" )
+GAME_CUSTOM( 199?, m4supst__a8, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02bd.p1", 0x0000, 0x010000, CRC(efbed99b) SHA1(62d80248bb666bfb49ed7546936da744e43fa870), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 3)" )
+GAME_CUSTOM( 199?, m4supst__a9, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02c.p1", 0x0000, 0x010000, CRC(9d342386) SHA1(b50f64d66d89dbd3dee1ff2cb430a2caa050e7c8), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 4)" )
+GAME_CUSTOM( 199?, m4supst__ba, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02d.p1", 0x0000, 0x010000, CRC(c43f6e65) SHA1(0278cf389f8289d7b819125ae0a612c81ea75fab), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 5)" )
+GAME_CUSTOM( 199?, m4supst__bb, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02dk.p1", 0x0000, 0x010000, CRC(36576570) SHA1(214a57344d8e161b3dbd07457291ed9bce011842), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 6)" )
+GAME_CUSTOM( 199?, m4supst__bc, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02dr.p1", 0x0000, 0x010000, CRC(450c553f) SHA1(46050285eeb10dc368ad501c61d41351c4e2fcde), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 7)" )
+GAME_CUSTOM( 199?, m4supst__bd, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02dy.p1", 0x0000, 0x010000, CRC(d8677dd1) SHA1(18abc0a1d28458c3b26a0d1dbf6ca8aba3f3e240), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 8)" )
+GAME_CUSTOM( 199?, m4supst__be, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02k.p1", 0x0000, 0x010000, CRC(c6e8d110) SHA1(9e05961b9bba502f52a03de27e608afc52f6c025), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 9)" )
+GAME_CUSTOM( 199?, m4supst__bf, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02r.p1", 0x0000, 0x010000, CRC(918d769f) SHA1(2a4438828d9e7efd3a94eaebe56585e7ae23d9d1), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 10)" )
+GAME_CUSTOM( 199?, m4supst__bg, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02s.p1", 0x0000, 0x010000, CRC(9c50fff7) SHA1(3468340d2d04cbdecd669817f8a9c4028e301eeb), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 11)" )
+GAME_CUSTOM( 199?, m4supst__bh, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc02y.p1", 0x0000, 0x010000, CRC(0ce65e71) SHA1(02ae1fd5a41ab5a96ddcfe1cf3e8567561291961), "Barcrest","Super Streak (Barcrest) (MPU4) (CS4 0.2 / STC 0.2, set 12)" )
+
+GAME_CUSTOM( 199?, m4stc, m4supst, cheatchr_pal<mpu4_characteriser_pal::m4dtri98_characteriser_prot>(R4, RT1), mpu4, init_m4, "stc01s", 0x0000, 0x010000, CRC(8371bb8f) SHA1(bd60825b3f5011c218b34f00886b6b54afe61b9f), "Barcrest","Super Streak (Barcrest) (MPU4) (STC 0.1)" )
// different protection
// was in SC2 Super Star set, but seems to fit here, ident hacked to "BILL BIXBY" and "V1 0.1"
-GAME_CUSTOM( 199?, m4supst__b6, m4supst, mod4yam_bootleg_fixedret<0x46>, mpu4, init_m4default, "supst20.15", 0x0000, 0x010000, CRC(c3446ec4) SHA1(3c1ad27385547a33993a839b53873d8b92214ade), "hack","Super Streak (Barcrest) (MPU4) (hack)" )
+GAME_CUSTOM( 199?, m4supst__b6, m4supst, bootleg_fixedret<0x46>(R4, RT1), mpu4, init_m4, "supst20.15", 0x0000, 0x010000, CRC(c3446ec4) SHA1(3c1ad27385547a33993a839b53873d8b92214ade), "hack","Super Streak (Barcrest) (MPU4) (hack)" )
// different protection style
-GAME_CUSTOM( 199?, m4supst__b5, m4supst, mod4yam_bootleg_fixedret<0x52>, mpu4, init_m4default, "supst2515", 0x0000, 0x010000, CRC(c073a249) SHA1(4ae37eb61dd5e50687f433fb89f65b97926b7358), "hack","Super Streak (Barcrest) (MPU4) (STT 0.3, hack)" )
+ GAME_CUSTOM( 199?, m4supst__b5, m4supst, bootleg_fixedret<0x52>(R4, RT1), mpu4, init_m4, "supst2515", 0x0000, 0x010000, CRC(c073a249) SHA1(4ae37eb61dd5e50687f433fb89f65b97926b7358), "hack","Super Streak (Barcrest) (MPU4) (STT 0.3, hack)" )
// different protection
// "(C)1998 B.W.B." and "SS2 1.0"
-GAME_CUSTOM( 199?, m4supst__b7, m4supst, mod4yam_bootleg_fixedret<0x74>, mpu4, init_m4default, "rhr2pprg.bin", 0x0000, 0x010000, CRC(f97047b2) SHA1(d3ed8c93e405f9e7448b3924ff9aa84223b76046), "hack","Super Streak (Barcrest) (MPU4) (SS2 1.0, hack?)" )
+GAME_CUSTOM( 199?, m4supst__b7, m4supst, bootleg_fixedret<0x74>(R4, RT1), mpu4, init_m4, "rhr2pprg.bin", 0x0000, 0x010000, CRC(f97047b2) SHA1(d3ed8c93e405f9e7448b3924ff9aa84223b76046), "hack","Super Streak (Barcrest) (MPU4) (SS2 1.0, hack?)" )
ROM_START( m4sstrek )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "rhr2pprgpatched.bin", 0x0000, 0x010000, CRC(a0b3439d) SHA1(0976537a5170bf4c4f595f7fa04243a68f14b2ae) )
ROM_END
// no sequence
-GAME(199?, m4sstrek, m4supst, mod4yam, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, "bootleg","Super Streak (bootleg) (MPU4) (SS2 1.0)",GAME_FLAGS) // unprotected, no characteriser PAL required
+GAME(199?, m4sstrek, m4supst, base(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "bootleg","Super Streak (bootleg) (MPU4) (SS2 1.0)",GAME_FLAGS) // unprotected, no characteriser PAL required
/*****************************************************************************************************************************************************************************
@@ -1076,7 +1184,7 @@ GAME(199?, m4sstrek, m4supst, mod4yam, mpu4, mpu4mod4yam_machines_sta
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
GAME_CUSTOM( 199?, m4fastfw, 0, "ffo05__1.0", 0x0000, 0x010000, CRC(8b683969) SHA1(7469b551e4d6f65550d54ee39b2bac07cf3dbd4b), "Bwb / Barcrest","Fast Forward (Barcrest) (MPU4) (SFF 3.0, set 1)" )
GAME_CUSTOM( 199?, m4fastfw__a, m4fastfw, "ffo10__1.0", 0x0000, 0x010000, CRC(294288fd) SHA1(87d25f6333b6862fcc57a550b5cc7c0bc64e72cd), "Bwb / Barcrest","Fast Forward (Barcrest) (MPU4) (SFF 3.0, set 2)" )
@@ -1091,7 +1199,7 @@ GAME_CUSTOM( 199?, m4fastfw__e, m4fastfw, "ffo20dy1.0", 0x0000, 0x010000,
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_bootleg_fixedret<0x80>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, bootleg_fixedret<0x80>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// different protection style, has (C)1993 BYTEFREE, reads from 811 on startup, and 821 later, but only check on 806 matters?
@@ -1117,48 +1225,48 @@ GAME_CUSTOM( 199?, m4fastfw__f, m4fastfw, "fastf206", 0x0000, 0x010000,
GAME(year, setname, parent, machine, inputs, mpu4mod4yam_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "VLV 1.1"
-GAME_CUSTOM( 199?, m4vivalv, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, init_m4default_sextender, "vlvs.p1", 0x0000, 0x010000, CRC(b7fb3e19) SHA1(c6cc4175f8c100fc37e6e7014b0744054b4e547a), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 7)" )
-GAME_CUSTOM( 199?, m4vivalv__a, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, init_m4default_sextender, "vlvad.p1", 0x0000, 0x010000, CRC(88262812) SHA1(f0a31d510c1b06af122df493585c04a49177f06d), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 1)" )
-GAME_CUSTOM( 199?, m4vivalv__b, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, init_m4default_sextender, "vlvb.p1", 0x0000, 0x010000, CRC(c4caec15) SHA1(d88c6e081a6bbdd80f773713b038293cabdeee8c), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 2)" )
-GAME_CUSTOM( 199?, m4vivalv__c, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, init_m4default_sextender, "vlvc.p1", 0x0000, 0x010000, CRC(4d651ba4) SHA1(7746656f0a9f8af8e265568f7479edef9a2247d9), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 3)" )
-GAME_CUSTOM( 199?, m4vivalv__d, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, init_m4default_sextender, "vlvd.p1", 0x0000, 0x010000, CRC(cce926c7) SHA1(8e3a0cef0cbee66d264da5d6dfc7ec2fbdcd9584), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 4)" )
-GAME_CUSTOM( 199?, m4vivalv__e, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, init_m4default_sextender, "vlvdy.p1", 0x0000, 0x010000, CRC(6e17cbc8) SHA1(5c69eda0ff6a01d9d0d434ff7ce1ac1e67b16362), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 5)" )
-GAME_CUSTOM( 199?, m4vivalv__f, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, init_m4default_sextender, "vlvk.p1", 0x0000, 0x010000, CRC(b5f2157e) SHA1(574f3e2890ac5479790ea92760c6500d37e6637d), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 6)" )
-GAME_CUSTOM( 199?, m4vivalv__g, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, init_m4default_sextender, "vlvy.p1", 0x0000, 0x010000, CRC(3211caf3) SHA1(3634ef11099c2f4938529bb262cc2556ad96a675), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 8)" )
+GAME_CUSTOM( 199?, m4vivalv, 0, cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vlvs.p1", 0x0000, 0x010000, CRC(b7fb3e19) SHA1(c6cc4175f8c100fc37e6e7014b0744054b4e547a), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 7)" )
+GAME_CUSTOM( 199?, m4vivalv__a, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vlvad.p1", 0x0000, 0x010000, CRC(88262812) SHA1(f0a31d510c1b06af122df493585c04a49177f06d), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 1)" )
+GAME_CUSTOM( 199?, m4vivalv__b, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vlvb.p1", 0x0000, 0x010000, CRC(c4caec15) SHA1(d88c6e081a6bbdd80f773713b038293cabdeee8c), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 2)" )
+GAME_CUSTOM( 199?, m4vivalv__c, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vlvc.p1", 0x0000, 0x010000, CRC(4d651ba4) SHA1(7746656f0a9f8af8e265568f7479edef9a2247d9), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 3)" )
+GAME_CUSTOM( 199?, m4vivalv__d, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vlvd.p1", 0x0000, 0x010000, CRC(cce926c7) SHA1(8e3a0cef0cbee66d264da5d6dfc7ec2fbdcd9584), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 4)" )
+GAME_CUSTOM( 199?, m4vivalv__e, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vlvdy.p1", 0x0000, 0x010000, CRC(6e17cbc8) SHA1(5c69eda0ff6a01d9d0d434ff7ce1ac1e67b16362), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 5)" )
+GAME_CUSTOM( 199?, m4vivalv__f, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vlvk.p1", 0x0000, 0x010000, CRC(b5f2157e) SHA1(574f3e2890ac5479790ea92760c6500d37e6637d), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 6)" )
+GAME_CUSTOM( 199?, m4vivalv__g, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vlvy.p1", 0x0000, 0x010000, CRC(3211caf3) SHA1(3634ef11099c2f4938529bb262cc2556ad96a675), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.1, set 8)" )
// "(C)1991 BARCREST" and "VLV 1.0"
-GAME_CUSTOM( 199?, m4vivalv__h, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>, mpu4, init_m4default_sextender, "viva206", 0x0000, 0x010000, CRC(76ab9a5d) SHA1(455699cbc05f744eafe58881a8fb120b24cfe5c8), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0)" )
+GAME_CUSTOM( 199?, m4vivalv__h, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::vivlv_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "viva206", 0x0000, 0x010000, CRC(76ab9a5d) SHA1(455699cbc05f744eafe58881a8fb120b24cfe5c8), "Barcrest","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0)" )
// (C)1993 B.W.B. and "VL_ 2.0" - boots with cheatchr
-GAME_CUSTOM( 199?, m4vivalv__i, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "v.las vegas 6 10p 10m.bin", 0x0000, 0x010000, CRC(f09d5a2c) SHA1(6f9df58767e88a1ca7fc7dd17c618d30ab97067d), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 1)" )
-GAME_CUSTOM( 199?, m4vivalv__j, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_05___.3_3", 0x0000, 0x010000, CRC(bb8361f6) SHA1(d5f651a66be1cab3662798751a290a65c29bba64), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 2)" )
-GAME_CUSTOM( 199?, m4vivalv__k, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_05_b_.3_3", 0x0000, 0x010000, CRC(12079321) SHA1(5b5dd55080c04393a45d3ef9c63b6fef5de9b7cd), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 3)" )
-GAME_CUSTOM( 199?, m4vivalv__l, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_05_d_.3_3", 0x0000, 0x010000, CRC(b758df52) SHA1(f4d47a93fa1b1deb84654bb2272767093f3463c2), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 4)" )
-GAME_CUSTOM( 199?, m4vivalv__m, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_05_k_.3_3", 0x0000, 0x010000, CRC(9875c59c) SHA1(c31a7fc5df8af9d931353bc095a59befe808434b), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 5)" )
-GAME_CUSTOM( 199?, m4vivalv__n, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_05a__.3_3", 0x0000, 0x010000, CRC(0f416e47) SHA1(54338fbef5f227c440c04448b51e8f0ec04a4cc7), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 6)" )
-GAME_CUSTOM( 199?, m4vivalv__o, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_10___.3_3", 0x0000, 0x010000, CRC(dc8db002) SHA1(305547b4f0b1e1bde9354e5ed9f18f99c6829cab), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 7)" )
-GAME_CUSTOM( 199?, m4vivalv__p, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_10_b_.3_3", 0x0000, 0x010000, CRC(e1c4b292) SHA1(4516c7d918935862824e206626a5a24f936ec514), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 8)" )
-GAME_CUSTOM( 199?, m4vivalv__q, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_10_d_.3_3", 0x0000, 0x010000, CRC(e9dda1ee) SHA1(6363b5b26be22cb1f5aac71e98c5e5a5064839f4), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 9)" )
-GAME_CUSTOM( 199?, m4vivalv__r, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_10_k_.3_3", 0x0000, 0x010000, CRC(70fc4c56) SHA1(02cbaadd3575ef0d9dc192aabbe39a735893a662), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 10)" )
-GAME_CUSTOM( 199?, m4vivalv__s, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vv_10a__.3_3", 0x0000, 0x010000, CRC(c908d65a) SHA1(5af180e697c22c27380e275d76708103e298cf41), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 11)" )
-GAME_CUSTOM( 199?, m4vivalv__t, m4vivalv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>, mpu4, init_m4default_sextender, "vvi05___.3_3", 0x0000, 0x010000, CRC(a5829d5c) SHA1(4cd1a2185579898db7be75f8c3f565043f0691b6), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 12)" )
+GAME_CUSTOM( 199?, m4vivalv__i, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "v.las vegas 6 10p 10m.bin", 0x0000, 0x010000, CRC(f09d5a2c) SHA1(6f9df58767e88a1ca7fc7dd17c618d30ab97067d), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 1)" )
+GAME_CUSTOM( 199?, m4vivalv__j, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_05___.3_3", 0x0000, 0x010000, CRC(bb8361f6) SHA1(d5f651a66be1cab3662798751a290a65c29bba64), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 2)" )
+GAME_CUSTOM( 199?, m4vivalv__k, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_05_b_.3_3", 0x0000, 0x010000, CRC(12079321) SHA1(5b5dd55080c04393a45d3ef9c63b6fef5de9b7cd), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 3)" )
+GAME_CUSTOM( 199?, m4vivalv__l, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_05_d_.3_3", 0x0000, 0x010000, CRC(b758df52) SHA1(f4d47a93fa1b1deb84654bb2272767093f3463c2), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 4)" )
+GAME_CUSTOM( 199?, m4vivalv__m, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_05_k_.3_3", 0x0000, 0x010000, CRC(9875c59c) SHA1(c31a7fc5df8af9d931353bc095a59befe808434b), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 5)" )
+GAME_CUSTOM( 199?, m4vivalv__n, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_05a__.3_3", 0x0000, 0x010000, CRC(0f416e47) SHA1(54338fbef5f227c440c04448b51e8f0ec04a4cc7), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 6)" )
+GAME_CUSTOM( 199?, m4vivalv__o, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_10___.3_3", 0x0000, 0x010000, CRC(dc8db002) SHA1(305547b4f0b1e1bde9354e5ed9f18f99c6829cab), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 7)" )
+GAME_CUSTOM( 199?, m4vivalv__p, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_10_b_.3_3", 0x0000, 0x010000, CRC(e1c4b292) SHA1(4516c7d918935862824e206626a5a24f936ec514), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 8)" )
+GAME_CUSTOM( 199?, m4vivalv__q, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_10_d_.3_3", 0x0000, 0x010000, CRC(e9dda1ee) SHA1(6363b5b26be22cb1f5aac71e98c5e5a5064839f4), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 9)" )
+GAME_CUSTOM( 199?, m4vivalv__r, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_10_k_.3_3", 0x0000, 0x010000, CRC(70fc4c56) SHA1(02cbaadd3575ef0d9dc192aabbe39a735893a662), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 10)" )
+GAME_CUSTOM( 199?, m4vivalv__s, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vv_10a__.3_3", 0x0000, 0x010000, CRC(c908d65a) SHA1(5af180e697c22c27380e275d76708103e298cf41), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 11)" )
+GAME_CUSTOM( 199?, m4vivalv__t, m4vivalv, cheatchr_pal<mpu4_characteriser_pal::tentendia_characteriser_prot>(R4, RT1, LPS), mpu4, init_m4, "vvi05___.3_3", 0x0000, 0x010000, CRC(a5829d5c) SHA1(4cd1a2185579898db7be75f8c3f565043f0691b6), "BWB","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, set 12)" )
// "(C)1991 BARCREST" and "VLV 1.0" but different protection, hacks / bootlegs
// this one is unusual, the 2nd and 3rd checks expect different values, or you get scrambled lamps, usually they want the same
-GAME_CUSTOM( 199?, m4vivalv__u, m4vivalv, mod4yam_bootleg_fixedret<0x5a>, mpu4, init_m4default_806prot, "viva20_1.1", 0x0000, 0x010000, CRC(80ea2429) SHA1(e5d258967340fe85dd5baf6ba16f82ce83307b68), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 1)" )
+GAME_CUSTOM( 199?, m4vivalv__u, m4vivalv, bootleg_fixedret<0x5a>(R4, RT1, LPS), mpu4, init_m4_806prot, "viva20_1.1", 0x0000, 0x010000, CRC(80ea2429) SHA1(e5d258967340fe85dd5baf6ba16f82ce83307b68), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 1)" )
// these expect the same for each test
-GAME_CUSTOM( 199?, m4vivalv__w, m4vivalv, mod4yam_bootleg_fixedret<0x6a>, mpu4, init_m4default_sextender, "viva_20_.4", 0x0000, 0x010000, CRC(e1efc846) SHA1(a4bf7f5c4febe5a71a09e23876387328e1bba87b), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 3)" )
-GAME_CUSTOM( 199?, m4vivalv__x, m4vivalv, mod4yam_bootleg_fixedret<0x6a>, mpu4, init_m4default_sextender, "viva_20_.8", 0x0000, 0x010000, CRC(f538a1fc) SHA1(d0dbd22a1cb4b7ec5bfa304ba544806e01150662), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 4)" )
-GAME_CUSTOM( 199?, m4vivalv__y, m4vivalv, mod4yam_bootleg_fixedret<0x6a>, mpu4, init_m4default_sextender, "vlv208ac", 0x0000, 0x010000, CRC(416535ee) SHA1(f2b0177fecd5076d9d89c819fe9402fc944c8d77), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 5)" )
-GAME_CUSTOM( 199?, m4vivalv__v, m4vivalv, mod4yam_bootleg_fixedret<0x5a>, mpu4, init_m4default_sextender, "viva20_11", 0x0000, 0x010000, CRC(51b93018) SHA1(fc13179e3e1939839c3b90d7600a7eb301ea03da), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 2)" )
+GAME_CUSTOM( 199?, m4vivalv__w, m4vivalv, bootleg_fixedret<0x6a>(R4, RT1, LPS), mpu4, init_m4, "viva_20_.4", 0x0000, 0x010000, CRC(e1efc846) SHA1(a4bf7f5c4febe5a71a09e23876387328e1bba87b), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 3)" )
+GAME_CUSTOM( 199?, m4vivalv__x, m4vivalv, bootleg_fixedret<0x6a>(R4, RT1, LPS), mpu4, init_m4, "viva_20_.8", 0x0000, 0x010000, CRC(f538a1fc) SHA1(d0dbd22a1cb4b7ec5bfa304ba544806e01150662), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 4)" )
+GAME_CUSTOM( 199?, m4vivalv__y, m4vivalv, bootleg_fixedret<0x6a>(R4, RT1, LPS), mpu4, init_m4, "vlv208ac", 0x0000, 0x010000, CRC(416535ee) SHA1(f2b0177fecd5076d9d89c819fe9402fc944c8d77), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 5)" )
+GAME_CUSTOM( 199?, m4vivalv__v, m4vivalv, bootleg_fixedret<0x5a>(R4, RT1, LPS), mpu4, init_m4, "viva20_11", 0x0000, 0x010000, CRC(51b93018) SHA1(fc13179e3e1939839c3b90d7600a7eb301ea03da), "hack?","Viva Las Vegas (Barcrest) (MPU4) (VLV 1.0, hack?, set 2)" )
// no copyright string, "VL_ 2.0", hack
-GAME_CUSTOM( 199?, m4vivalv__z, m4vivalv, mod4yam_bootleg_fixedret<0x38>, mpu4, init_m4default_sextender, "5p5vivalasvegas6.bin", 0x0000, 0x010000, CRC(4d365b57) SHA1(69ff75ccc91f1f7b867a0914d350d1649834a48e), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 1)" )
-GAME_CUSTOM( 199?, m4vivalv__0, m4vivalv, mod4yam_bootleg_fixedret<0x5c>, mpu4, init_m4default_sextender, "viva05_11", 0x0000, 0x010000, CRC(1e6ea483) SHA1(e6a53eb1bf3b8e661287c0d57fc6ab5ed41755a3), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 2)" )
-GAME_CUSTOM( 199?, m4vivalv__1, m4vivalv, mod4yam_bootleg_fixedret<0x12>, mpu4, init_m4default_sextender, "viva10_11", 0x0000, 0x010000, CRC(246a39b7) SHA1(c0f5c21374e43b42df5df0ada0967a34ecefbdb4), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 3)" )
-GAME_CUSTOM( 199?, m4vivalv__2, m4vivalv, mod4yam_bootleg_fixedret<0x28>, mpu4, init_m4default_sextender, "viva58c", 0x0000, 0x010000, CRC(719d0802) SHA1(ba6bd5fbf49f0ada383cb2e8faa037b78f6af587), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 4)" )
-GAME_CUSTOM( 199?, m4vivalv__3, m4vivalv, mod4yam_bootleg_fixedret<0x28>, mpu4, init_m4default_sextender, "viva_05_.4", 0x0000, 0x010000, CRC(b094914f) SHA1(8217b4bb7a8d55fb8e86018ffc520a63f41a79b8), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 5)" )
-GAME_CUSTOM( 199?, m4vivalv__4, m4vivalv, mod4yam_bootleg_fixedret<0x28>, mpu4, init_m4default_sextender, "viva_05_.8", 0x0000, 0x010000, CRC(c5c09c10) SHA1(47890d0ba1c2ca53231ac148a02f046452dce1b4), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 6)" )
-GAME_CUSTOM( 199?, m4vivalv__5, m4vivalv, mod4yam_bootleg_fixedret<0x66>, mpu4, init_m4default_sextender, "viva_10_.4", 0x0000, 0x010000, CRC(b1d5e820) SHA1(68012216d7e82168c7468d1e54c527c15d268917), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 7)" )
-GAME_CUSTOM( 199?, m4vivalv__6, m4vivalv, mod4yam_bootleg_fixedret<0x66>, mpu4, init_m4default_sextender, "viva_10_.8", 0x0000, 0x010000, CRC(f392c81c) SHA1(cb3320b688b315dbc226f45b78490fed439ee9a2), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack ? , set 8)" )
+GAME_CUSTOM( 199?, m4vivalv__z, m4vivalv, bootleg_fixedret<0x38>(R4, RT1, LPS), mpu4, init_m4, "5p5vivalasvegas6.bin", 0x0000, 0x010000, CRC(4d365b57) SHA1(69ff75ccc91f1f7b867a0914d350d1649834a48e), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 1)" )
+GAME_CUSTOM( 199?, m4vivalv__0, m4vivalv, bootleg_fixedret<0x5c>(R4, RT1, LPS), mpu4, init_m4, "viva05_11", 0x0000, 0x010000, CRC(1e6ea483) SHA1(e6a53eb1bf3b8e661287c0d57fc6ab5ed41755a3), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 2)" )
+GAME_CUSTOM( 199?, m4vivalv__1, m4vivalv, bootleg_fixedret<0x12>(R4, RT1, LPS), mpu4, init_m4, "viva10_11", 0x0000, 0x010000, CRC(246a39b7) SHA1(c0f5c21374e43b42df5df0ada0967a34ecefbdb4), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 3)" )
+GAME_CUSTOM( 199?, m4vivalv__2, m4vivalv, bootleg_fixedret<0x28>(R4, RT1, LPS), mpu4, init_m4, "viva58c", 0x0000, 0x010000, CRC(719d0802) SHA1(ba6bd5fbf49f0ada383cb2e8faa037b78f6af587), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 4)" )
+GAME_CUSTOM( 199?, m4vivalv__3, m4vivalv, bootleg_fixedret<0x28>(R4, RT1, LPS), mpu4, init_m4, "viva_05_.4", 0x0000, 0x010000, CRC(b094914f) SHA1(8217b4bb7a8d55fb8e86018ffc520a63f41a79b8), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 5)" )
+GAME_CUSTOM( 199?, m4vivalv__4, m4vivalv, bootleg_fixedret<0x28>(R4, RT1, LPS), mpu4, init_m4, "viva_05_.8", 0x0000, 0x010000, CRC(c5c09c10) SHA1(47890d0ba1c2ca53231ac148a02f046452dce1b4), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 6)" )
+GAME_CUSTOM( 199?, m4vivalv__5, m4vivalv, bootleg_fixedret<0x66>(R4, RT1, LPS), mpu4, init_m4, "viva_10_.4", 0x0000, 0x010000, CRC(b1d5e820) SHA1(68012216d7e82168c7468d1e54c527c15d268917), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack?, set 7)" )
+GAME_CUSTOM( 199?, m4vivalv__6, m4vivalv, bootleg_fixedret<0x66>(R4, RT1, LPS), mpu4, init_m4, "viva_10_.8", 0x0000, 0x010000, CRC(f392c81c) SHA1(cb3320b688b315dbc226f45b78490fed439ee9a2), "hack?","Viva Las Vegas (BWB) (MPU4) (VL_ 2.0, hack ? , set 8)" )
@@ -1181,56 +1289,56 @@ GAME_CUSTOM( 199?, m4vivalv__6, m4vivalv, mod4yam_bootleg_fixedret<0x66>, mpu
GAME(year, setname, parent, machine, inputs, mpu4mod4yam_machines_state, init, ROT0, company, title, GAME_FLAGS )
// "(C)1993 B.W.B." and "HVP 3.0"
-GAME_CUSTOM( 199?, m4shv__h, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hvyp10p", 0x0000, 0x010000, CRC(b4af635a) SHA1(420cdf3a6899e432d74e3b10a57414cbedc0913e), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 1)" )
-GAME_CUSTOM( 199?, m4shv__i, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_05___.3h3", 0x0000, 0x010000, CRC(13bfa891) SHA1(ffddd14a019d52029bf8d4f680d8d05413a9f0b7), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 2)" )
-GAME_CUSTOM( 199?, m4shv__j, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_05_d_.3h3", 0x0000, 0x010000, CRC(50c66ce8) SHA1(ef12525fc3ac82caf80326edaac81bb9fbc3245c), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 3)" )
-GAME_CUSTOM( 199?, m4shv__k, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_10___.3h3", 0x0000, 0x010000, CRC(627caac7) SHA1(4851ce2441850743ea68ecbf89bde3f4cd6c2b4c), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 4)" )
-GAME_CUSTOM( 199?, m4shv__l, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_10_d_.3h3", 0x0000, 0x010000, CRC(15cfa26e) SHA1(6bc3feaba65d1797b9945f23a89e983f56b13f79), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 5)" )
-GAME_CUSTOM( 199?, m4shv__m, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_10_d_.3n3", 0x0000, 0x010000, CRC(b81f1d0a) SHA1(5fd293be2b75393069c9f5e099b4700ff930f081), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 6)" )
-GAME_CUSTOM( 199?, m4shv__n, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hvi05___.3h3", 0x0000, 0x010000, CRC(6959332e) SHA1(edaa5f86ad4389b0a3bc2e6679fe8f62520be3ae), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 7)" )
-GAME_CUSTOM( 199?, m4shv__o, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hvi10___.3h3", 0x0000, 0x010000, CRC(6c1b4b89) SHA1(e8eb4e689d43c5b9e8354aa7375ca3ba12ed1160), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 8)" )
-GAME_CUSTOM( 199?, m4shv__p, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hvi10___.3n3", 0x0000, 0x010000, CRC(9d95cf8c) SHA1(26daf3975e1e3a605bc4392700c5470b52450d6e), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 9)" )
+GAME_CUSTOM( 199?, m4shv__h, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hvyp10p", 0x0000, 0x010000, CRC(b4af635a) SHA1(420cdf3a6899e432d74e3b10a57414cbedc0913e), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 1)" )
+GAME_CUSTOM( 199?, m4shv__i, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_05___.3h3", 0x0000, 0x010000, CRC(13bfa891) SHA1(ffddd14a019d52029bf8d4f680d8d05413a9f0b7), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 2)" )
+GAME_CUSTOM( 199?, m4shv__j, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_05_d_.3h3", 0x0000, 0x010000, CRC(50c66ce8) SHA1(ef12525fc3ac82caf80326edaac81bb9fbc3245c), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 3)" )
+GAME_CUSTOM( 199?, m4shv__k, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_10___.3h3", 0x0000, 0x010000, CRC(627caac7) SHA1(4851ce2441850743ea68ecbf89bde3f4cd6c2b4c), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 4)" )
+GAME_CUSTOM( 199?, m4shv__l, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_10_d_.3h3", 0x0000, 0x010000, CRC(15cfa26e) SHA1(6bc3feaba65d1797b9945f23a89e983f56b13f79), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 5)" )
+GAME_CUSTOM( 199?, m4shv__m, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_10_d_.3n3", 0x0000, 0x010000, CRC(b81f1d0a) SHA1(5fd293be2b75393069c9f5e099b4700ff930f081), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 6)" )
+GAME_CUSTOM( 199?, m4shv__n, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hvi05___.3h3", 0x0000, 0x010000, CRC(6959332e) SHA1(edaa5f86ad4389b0a3bc2e6679fe8f62520be3ae), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 7)" )
+GAME_CUSTOM( 199?, m4shv__o, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hvi10___.3h3", 0x0000, 0x010000, CRC(6c1b4b89) SHA1(e8eb4e689d43c5b9e8354aa7375ca3ba12ed1160), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 8)" )
+GAME_CUSTOM( 199?, m4shv__p, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hvi10___.3n3", 0x0000, 0x010000, CRC(9d95cf8c) SHA1(26daf3975e1e3a605bc4392700c5470b52450d6e), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, set 9)" )
// "(C)1994 B.W.B." and "HVP 3.0"
-GAME_CUSTOM( 199?, m4shv__q, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "h.viper10p610m.bin", 0x0000, 0x010000, CRC(104b0c48) SHA1(ab4cdb596a0cfb877ed1b6bf801e4a759b53971f), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, C)" )
-GAME_CUSTOM( 199?, m4shv__r, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hvyp56c", 0x0000, 0x010000, CRC(297d3cf8) SHA1(78f4de2ed69fb38b944a54d4d5927ff791e7876c), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, C, bad?)" ) // bad rom? checksum alarm
-GAME_CUSTOM( 199?, m4shv__s, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_05___.3o3", 0x0000, 0x010000, CRC(9ae86366) SHA1(614ae0ab184645c9f568796783f29a177eda3208), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 1)" )
-GAME_CUSTOM( 199?, m4shv__t, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_05_d_.3o3", 0x0000, 0x010000, CRC(87dfca0e) SHA1(3ab4105680acc46d3633a722f40ff1af0a520a7f), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 2)" )
-GAME_CUSTOM( 199?, m4shv__u, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_10___.3o3", 0x0000, 0x010000, CRC(02e4d86a) SHA1(47aa83e8bcd85e8ba7fb972cdd1ead7fe21e0418), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 3)" )
-GAME_CUSTOM( 199?, m4shv__v, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_10_d_.3o3", 0x0000, 0x010000, CRC(85f176b9) SHA1(30380d58bf2834829764cbdbdc7d950632e61e6d), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 4)" )
-GAME_CUSTOM( 199?, m4shv__w, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hvi05___.3o3", 0x0000, 0x010000, CRC(cdba80a5) SHA1(6c9fac7e5ee324b18922cc7a053495f1977bcb6d), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 5)" )
+GAME_CUSTOM( 199?, m4shv__q, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "h.viper10p610m.bin", 0x0000, 0x010000, CRC(104b0c48) SHA1(ab4cdb596a0cfb877ed1b6bf801e4a759b53971f), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, C)" )
+GAME_CUSTOM( 199?, m4shv__r, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hvyp56c", 0x0000, 0x010000, CRC(297d3cf8) SHA1(78f4de2ed69fb38b944a54d4d5927ff791e7876c), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, C, bad?)" ) // bad rom? checksum alarm
+GAME_CUSTOM( 199?, m4shv__s, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_05___.3o3", 0x0000, 0x010000, CRC(9ae86366) SHA1(614ae0ab184645c9f568796783f29a177eda3208), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 1)" )
+GAME_CUSTOM( 199?, m4shv__t, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_05_d_.3o3", 0x0000, 0x010000, CRC(87dfca0e) SHA1(3ab4105680acc46d3633a722f40ff1af0a520a7f), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 2)" )
+GAME_CUSTOM( 199?, m4shv__u, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_10___.3o3", 0x0000, 0x010000, CRC(02e4d86a) SHA1(47aa83e8bcd85e8ba7fb972cdd1ead7fe21e0418), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 3)" )
+GAME_CUSTOM( 199?, m4shv__v, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_10_d_.3o3", 0x0000, 0x010000, CRC(85f176b9) SHA1(30380d58bf2834829764cbdbdc7d950632e61e6d), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 4)" )
+GAME_CUSTOM( 199?, m4shv__w, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hvi05___.3o3", 0x0000, 0x010000, CRC(cdba80a5) SHA1(6c9fac7e5ee324b18922cc7a053495f1977bcb6d), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, 1994, set 5)" )
// "(C)1993 B.W.B." and "HVP 4.0"
-GAME_CUSTOM( 199?, m4shv__x, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_05___.4n3", 0x0000, 0x010000, CRC(f607f351) SHA1(d7b779b80fa964a27b106bd9d5ca3be16a11d5e9), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 4.0, set 1)" )
-GAME_CUSTOM( 199?, m4shv__y, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hv_05_d_.4n3", 0x0000, 0x010000, CRC(f4d702d7) SHA1(268c7f6443c7ae587caf5b227fcd438530a06bcc), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 4.0, set 2)" )
-GAME_CUSTOM( 199?, m4shv__z, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>, mpu4, init_m4default, "hvi05___.4n3", 0x0000, 0x010000, CRC(38a33c2b) SHA1(21004092b81e08146291fd3a025652f0edbe47dc), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 4.0, set 3)" )
+GAME_CUSTOM( 199?, m4shv__x, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_05___.4n3", 0x0000, 0x010000, CRC(f607f351) SHA1(d7b779b80fa964a27b106bd9d5ca3be16a11d5e9), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 4.0, set 1)" )
+GAME_CUSTOM( 199?, m4shv__y, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hv_05_d_.4n3", 0x0000, 0x010000, CRC(f4d702d7) SHA1(268c7f6443c7ae587caf5b227fcd438530a06bcc), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 4.0, set 2)" )
+GAME_CUSTOM( 199?, m4shv__z, m4shv, cheatchr_pal<mpu4_characteriser_pal::m407_characteriser_prot>(R4, RT1), mpu4, init_m4, "hvi05___.4n3", 0x0000, 0x010000, CRC(38a33c2b) SHA1(21004092b81e08146291fd3a025652f0edbe47dc), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVP 4.0, set 3)" )
// "(C)1991 BARCREST" and "H6Y 0.3"
-GAME_CUSTOM( 199?, m4shv, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4, init_m4default, "h6ys.p1", 0x0000, 0x010000, CRC(4af914ff) SHA1(3d9b7c65ec1129ee64e3f4e14e43e4c39c76166b), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, set 1)" )
-GAME_CUSTOM( 199?, m4shv__a, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4, init_m4default, "h6yc.p1", 0x0000, 0x010000, CRC(8faca3bc) SHA1(9d666371f1118ccb1a94bfc4e6c79b540a84842b), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3 C)" )
-GAME_CUSTOM( 199?, m4shv__b, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4, init_m4default, "h6yd.p1", 0x0000, 0x010000, CRC(862e7f5b) SHA1(2f5bbc31978fb9fd0ba17f0de220152da87cf06f), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3 D)" )
-GAME_CUSTOM( 199?, m4shv__c, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4, init_m4default, "h6yk.p1", 0x0000, 0x010000, CRC(51f43c88) SHA1(d6ee4f537d09b33e9b13c972e1bda01a28f54f8e), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3 K)" )
-GAME_CUSTOM( 199?, m4shv__d, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4, init_m4default, "h6yy.p1", 0x0000, 0x010000, CRC(bed4b3bb) SHA1(7c592fbc6541c03777ff0498db90c575b3193222), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3 Y)" )
-GAME_CUSTOM( 199?, m4shv__e, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4, init_m4default, "hyperviper.bin", 0x0000, 0x010000, CRC(8373f6a3) SHA1(79bff20ab80ffe11447595c6fe8e5ab90d432e17), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, set 2)" ) // hack?
+GAME_CUSTOM( 199?, m4shv, 0, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1), mpu4, init_m4, "h6ys.p1", 0x0000, 0x010000, CRC(4af914ff) SHA1(3d9b7c65ec1129ee64e3f4e14e43e4c39c76166b), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, set 1)" )
+GAME_CUSTOM( 199?, m4shv__a, m4shv, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1), mpu4, init_m4, "h6yc.p1", 0x0000, 0x010000, CRC(8faca3bc) SHA1(9d666371f1118ccb1a94bfc4e6c79b540a84842b), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3 C)" )
+GAME_CUSTOM( 199?, m4shv__b, m4shv, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1), mpu4, init_m4, "h6yd.p1", 0x0000, 0x010000, CRC(862e7f5b) SHA1(2f5bbc31978fb9fd0ba17f0de220152da87cf06f), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3 D)" )
+GAME_CUSTOM( 199?, m4shv__c, m4shv, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1), mpu4, init_m4, "h6yk.p1", 0x0000, 0x010000, CRC(51f43c88) SHA1(d6ee4f537d09b33e9b13c972e1bda01a28f54f8e), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3 K)" )
+GAME_CUSTOM( 199?, m4shv__d, m4shv, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1), mpu4, init_m4, "h6yy.p1", 0x0000, 0x010000, CRC(bed4b3bb) SHA1(7c592fbc6541c03777ff0498db90c575b3193222), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3 Y)" )
+GAME_CUSTOM( 199?, m4shv__e, m4shv, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1), mpu4, init_m4, "hyperviper.bin", 0x0000, 0x010000, CRC(8373f6a3) SHA1(79bff20ab80ffe11447595c6fe8e5ab90d432e17), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, set 2)" ) // hack?
// "(C)1991 BARCREST" and "H6Y 0.2"
-GAME_CUSTOM( 199?, m4shv__f, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>, mpu4, init_m4default, "hvypr206", 0x0000, 0x010000, CRC(e1d96b8c) SHA1(e21b1bdbca1bae41f0e7274e3521f99eb984759e), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.2 Y)" )
+GAME_CUSTOM( 199?, m4shv__f, m4shv, cheatchr_pal<mpu4_characteriser_pal::m450_characteriser_prot>(R4, RT1), mpu4, init_m4, "hvypr206", 0x0000, 0x010000, CRC(e1d96b8c) SHA1(e21b1bdbca1bae41f0e7274e3521f99eb984759e), "Barcrest","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.2 Y)" )
// "(C)1995 B.W.B." and "HVC 1.0"
-GAME_CUSTOM( 199?, m4shv__g, m4shv, mod4yam_cheatchr_pal<mpu4_characteriser_pal::hypvipalt_characteriser_prot>, mpu4, init_m4default,"5p4hypervyper.bin", 0x0000, 0x010000, CRC(51ac9288) SHA1(1580079b6e710506ab03e1d8a89af65cd06cedd2), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVC 1.0 C)" )
+GAME_CUSTOM( 199?, m4shv__g, m4shv, cheatchr_pal<mpu4_characteriser_pal::hypvipalt_characteriser_prot>(R4, RT1), mpu4, init_m4,"5p4hypervyper.bin", 0x0000, 0x010000, CRC(51ac9288) SHA1(1580079b6e710506ab03e1d8a89af65cd06cedd2), "BWB","Super Hyper Viper (Barcrest) (MPU4) (HVC 1.0 C)" )
// different protection
// no copyright string and "HVP 3.0"
-GAME_CUSTOM( 199?, m4shv__0, m4shv, mod4yam_bootleg_fixedret<0xb1>, mpu4, init_m4default, "hv056c", 0x0000, 0x010000, CRC(91dcef99) SHA1(8fb6245fa8731b58799c0d2edc0e6c6942984a6f), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 1)" )
-GAME_CUSTOM( 199?, m4shv__1, m4shv, mod4yam_bootleg_fixedret<0x65>, mpu4, init_m4default, "hv05_101", 0x0000, 0x010000, CRC(e1fa633d) SHA1(3f446c3396142631141cf85db507f3ae288847e3), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 2)" )
-GAME_CUSTOM( 199?, m4shv__2, m4shv, mod4yam_bootleg_fixedret<0x15>, mpu4, init_m4default, "hyp55", 0x0000, 0x010000, CRC(07bd7455) SHA1(0d0a017c90e8d28500594f55c9a60dfc08aff5c3), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 3)" )
-GAME_CUSTOM( 199?, m4shv__3, m4shv, mod4yam_bootleg_fixedret<0x11>, mpu4, init_m4default, "hypr58c", 0x0000, 0x010000, CRC(d6028f8f) SHA1(54a3188ddb5196808a1161a0e1e6a8c1fe8bfde3), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 4)" )
-GAME_CUSTOM( 199?, m4shv__4, m4shv, mod4yam_bootleg_fixedret<0x11>, mpu4, init_m4default, "hypv_05_.4", 0x0000, 0x010000, CRC(246f171c) SHA1(7bbefb0cae57cf8097aa6d033df1a428e8bfe744), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 5)" )
-GAME_CUSTOM( 199?, m4shv__5, m4shv, mod4yam_bootleg_fixedret<0x11>, mpu4, init_m4default, "hvip_05_.8", 0x0000, 0x010000, CRC(625f1b9d) SHA1(f8dc0cde774f3fc4fb3d66d014ad47e9576c0f44), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, hack, set 1)" )
+GAME_CUSTOM( 199?, m4shv__0, m4shv, bootleg_fixedret<0xb1>(R4, RT1), mpu4, init_m4, "hv056c", 0x0000, 0x010000, CRC(91dcef99) SHA1(8fb6245fa8731b58799c0d2edc0e6c6942984a6f), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 1)" )
+GAME_CUSTOM( 199?, m4shv__1, m4shv, bootleg_fixedret<0x65>(R4, RT1), mpu4, init_m4, "hv05_101", 0x0000, 0x010000, CRC(e1fa633d) SHA1(3f446c3396142631141cf85db507f3ae288847e3), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 2)" )
+GAME_CUSTOM( 199?, m4shv__2, m4shv, bootleg_fixedret<0x15>(R4, RT1), mpu4, init_m4, "hyp55", 0x0000, 0x010000, CRC(07bd7455) SHA1(0d0a017c90e8d28500594f55c9a60dfc08aff5c3), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 3)" )
+GAME_CUSTOM( 199?, m4shv__3, m4shv, bootleg_fixedret<0x11>(R4, RT1), mpu4, init_m4, "hypr58c", 0x0000, 0x010000, CRC(d6028f8f) SHA1(54a3188ddb5196808a1161a0e1e6a8c1fe8bfde3), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 4)" )
+GAME_CUSTOM( 199?, m4shv__4, m4shv, bootleg_fixedret<0x11>(R4, RT1), mpu4, init_m4, "hypv_05_.4", 0x0000, 0x010000, CRC(246f171c) SHA1(7bbefb0cae57cf8097aa6d033df1a428e8bfe744), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 5)" )
+GAME_CUSTOM( 199?, m4shv__5, m4shv, bootleg_fixedret<0x11>(R4, RT1), mpu4, init_m4, "hvip_05_.8", 0x0000, 0x010000, CRC(625f1b9d) SHA1(f8dc0cde774f3fc4fb3d66d014ad47e9576c0f44), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, hack, set 1)" )
// "DICK WAS ERE" and "HVP 3.0"
-GAME_CUSTOM( 199?, m4shv__6, m4shv, mod4yam_bootleg_fixedret<0x5b>, mpu4, init_m4default, "hv108c", 0x0000, 0x010000, CRC(4d40ebfe) SHA1(0e355fe5b185ba595c5040335956037b8ed21599), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 6)" )
-GAME_CUSTOM( 199?, m4shv__8, m4shv, mod4yam_bootleg_fixedret<0x5b>, mpu4, init_m4default, "hypv_10_.4", 0x0000, 0x010000, CRC(f85d21a1) SHA1(55ed92147335a1471b7b443f68dd700f579d21f3), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 8)" )
-GAME_CUSTOM( 199?, m4shv__9, m4shv, mod4yam_bootleg_fixedret<0x5b>, mpu4, init_m4default, "hvip_10_.8", 0x0000, 0x010000, CRC(f91d7fec) SHA1(4c8130f9ce0ee3b14744e2b3cab79d4a65767e78), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, hack, set 2)" )
-GAME_CUSTOM( 199?, m4shv__7, m4shv, mod4yam_bootleg_fixedret<0x6b>, mpu4, init_m4default, "hv10_101", 0x0000, 0x010000, CRC(57714454) SHA1(de99f5a66081191a7280c54e875fd17cc94e111b), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 7)" )
+GAME_CUSTOM( 199?, m4shv__6, m4shv, bootleg_fixedret<0x5b>(R4, RT1), mpu4, init_m4, "hv108c", 0x0000, 0x010000, CRC(4d40ebfe) SHA1(0e355fe5b185ba595c5040335956037b8ed21599), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 6)" )
+GAME_CUSTOM( 199?, m4shv__8, m4shv, bootleg_fixedret<0x5b>(R4, RT1), mpu4, init_m4, "hypv_10_.4", 0x0000, 0x010000, CRC(f85d21a1) SHA1(55ed92147335a1471b7b443f68dd700f579d21f3), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 8)" )
+GAME_CUSTOM( 199?, m4shv__9, m4shv, bootleg_fixedret<0x5b>(R4, RT1), mpu4, init_m4, "hvip_10_.8", 0x0000, 0x010000, CRC(f91d7fec) SHA1(4c8130f9ce0ee3b14744e2b3cab79d4a65767e78), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0, hack, set 2)" )
+GAME_CUSTOM( 199?, m4shv__7, m4shv, bootleg_fixedret<0x6b>(R4, RT1), mpu4, init_m4, "hv10_101", 0x0000, 0x010000, CRC(57714454) SHA1(de99f5a66081191a7280c54e875fd17cc94e111b), "hack","Super Hyper Viper (Barcrest) (MPU4) (HVP 3.0 C, hack, set 7)" )
// "(C)1991 BARCREST" and "H6Y 0.3" (but hack, doesn't want usual characterizer)
-GAME_CUSTOM( 199?, m4shv__10, m4shv, mod4yam_bootleg_fixedret<0x7a>, mpu4, init_m4default, "hv20_101", 0x0000, 0x010000, CRC(b2ab79c9) SHA1(fd097b5b062d725fa0607117d6b52be6cbf7e597), "hack","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, hack, set 1)" )
-GAME_CUSTOM( 199?, m4shv__11, m4shv, mod4yam_bootleg_fixedret<0x4a>, mpu4, init_m4default, "hvip_20_.8", 0x0000, 0x010000, CRC(61a608c7) SHA1(1ed98c8bd90a3a789ba00b6b39f49e3aa0fcb1ca), "hack","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, hack, set 2)" )
-GAME_CUSTOM( 199?, m4shv__12, m4shv, mod4yam_bootleg_fixedret<0x4a>, mpu4, init_m4default, "hypv_20_.4", 0x0000, 0x010000, CRC(27a0162b) SHA1(2d1342edbfa29c4f2ee1f1a825f3eeb0489fbaf5), "hack","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, hack, set 3)" )
+GAME_CUSTOM( 199?, m4shv__10, m4shv, bootleg_fixedret<0x7a>(R4, RT1), mpu4, init_m4, "hv20_101", 0x0000, 0x010000, CRC(b2ab79c9) SHA1(fd097b5b062d725fa0607117d6b52be6cbf7e597), "hack","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, hack, set 1)" )
+GAME_CUSTOM( 199?, m4shv__11, m4shv, bootleg_fixedret<0x4a>(R4, RT1), mpu4, init_m4, "hvip_20_.8", 0x0000, 0x010000, CRC(61a608c7) SHA1(1ed98c8bd90a3a789ba00b6b39f49e3aa0fcb1ca), "hack","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, hack, set 2)" )
+GAME_CUSTOM( 199?, m4shv__12, m4shv, bootleg_fixedret<0x4a>(R4, RT1), mpu4, init_m4, "hypv_20_.4", 0x0000, 0x010000, CRC(27a0162b) SHA1(2d1342edbfa29c4f2ee1f1a825f3eeb0489fbaf5), "hack","Super Hyper Viper (Barcrest) (MPU4) (H6Y 0.3, hack, set 3)" )
/*****************************************************************************************************************************************************************************
@@ -1246,7 +1354,7 @@ GAME_CUSTOM( 199?, m4shv__12, m4shv, mod4yam_bootleg_fixedret<0x4a>, mpu4, i
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::age_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// "(C)1991 BARCREST" and "HPC 0.5"
GAME_CUSTOM( 199?, m4hypclb, 0, "hpcs.p1", 0x0000, 0x010000, CRC(55601e10) SHA1(78c3f13cd122e86ff8b7750b375c26e56c6b27c6), "Barcrest","Hyper Viper Club (Barcrest) (MPU4) (HPC 0.5)" )
@@ -1270,7 +1378,7 @@ GAME_CUSTOM( 199?, m4hypclb__b, m4hypclb, "hpcfd.p1", 0x0000, 0x010000, CRC
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAME(year, setname, parent, mod4yam_cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, company, title, GAME_FLAGS )
+ GAME(year, setname, parent, cheatchr_pal<mpu4_characteriser_pal::viva_characteriser_prot>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, company, title, GAME_FLAGS )
// some of these ROMs (the non-D ones?) contain a 'Barcrest Video' string, why? there's no footage to support it being a video game
@@ -1335,10 +1443,10 @@ ROM_START( m4supbfa )
ROM_END
-GAME(199?, m4bucks, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::bucksfizz_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Bucks Fizz Club (Barcrest) (MPU4) (BUF 1.2, set 1)",GAME_FLAGS )
-GAME(199?, m4bucksa, m4bucks, mod4yam_cheatchr_pal<mpu4_characteriser_pal::bucksfizz_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Bucks Fizz Club (Barcrest) (MPU4) (BUF 1.2, set 2)",GAME_FLAGS )
-GAME(199?, m4supbf, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::bucksfizz_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Super Bucks Fizz Club (Barcrest) (MPU4) (SBF 2.0, set 1)",GAME_FLAGS )
-GAME(199?, m4supbfa, m4supbf, mod4yam_cheatchr_pal<mpu4_characteriser_pal::bucksfizz_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Super Bucks Fizz Club (Barcrest) (MPU4) (SBF 2.0, set 2)",GAME_FLAGS )
+GAME(199?, m4bucks, 0, cheatchr_pal<mpu4_characteriser_pal::bucksfizz_characteriser_prot>(R5R, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Bucks Fizz Club (Barcrest) (MPU4) (BUF 1.2, set 1)",GAME_FLAGS )
+GAME(199?, m4bucksa, m4bucks, cheatchr_pal<mpu4_characteriser_pal::bucksfizz_characteriser_prot>(R5R, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Bucks Fizz Club (Barcrest) (MPU4) (BUF 1.2, set 2)",GAME_FLAGS )
+GAME(199?, m4supbf, 0, cheatchr_pal<mpu4_characteriser_pal::bucksfizz_characteriser_prot>(R5R, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Super Bucks Fizz Club (Barcrest) (MPU4) (SBF 2.0, set 1)",GAME_FLAGS )
+GAME(199?, m4supbfa, m4supbf, cheatchr_pal<mpu4_characteriser_pal::bucksfizz_characteriser_prot>(R5R, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Super Bucks Fizz Club (Barcrest) (MPU4) (SBF 2.0, set 2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -1374,11 +1482,11 @@ ROM_START( m4calicld )
ROM_END
-GAME(199?, m4calicl, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CA2 1.0, set 1)",GAME_FLAGS )
-GAME(199?, m4calicla, m4calicl, mod4yam_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CA2 1.0, set 2)",GAME_FLAGS )
-GAME(199?, m4caliclb, m4calicl, mod4yam_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CA2 1.0, set 3)",GAME_FLAGS )
-GAME(199?, m4caliclc, m4calicl, mod4yam_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CAL 2.0, set 1)",GAME_FLAGS )
-GAME(199?, m4calicld, m4calicl, mod4yam_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CAL 2.0, set 2)",GAME_FLAGS )
+GAME(199?, m4calicl, 0, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CA2 1.0, set 1)",GAME_FLAGS )
+GAME(199?, m4calicla, m4calicl, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CA2 1.0, set 2)",GAME_FLAGS )
+GAME(199?, m4caliclb, m4calicl, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CA2 1.0, set 3)",GAME_FLAGS )
+GAME(199?, m4caliclc, m4calicl, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CAL 2.0, set 1)",GAME_FLAGS )
+GAME(199?, m4calicld, m4calicl, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","California Club (Barcrest) (MPU4) (CAL 2.0, set 2)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
*
@@ -1402,9 +1510,9 @@ ROM_START( m4sunsclb )
ROM_LOAD( "sc_xef__.3_3", 0x0000, 0x010000, CRC(8e7e1100) SHA1(7648ea860a546081388a213845e27312730f46d9) )
ROM_END
-GAME(199?, m4sunscl, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::sunsetclub_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "BWB", "Sunset Club (BWB) (MPU4) (SSC 3.0, set 1)", GAME_FLAGS )
-GAME(199?, m4sunscla, m4sunscl, mod4yam_cheatchr_pal<mpu4_characteriser_pal::sunsetclub_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "BWB", "Sunset Club (BWB) (MPU4) (SSC 3.0, set 2)", GAME_FLAGS )
-GAME(199?, m4sunsclb, m4sunscl, mod4yam_cheatchr_pal<mpu4_characteriser_pal::sunsetclub_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "BWB", "Sunset Club (BWB) (MPU4) (SSC 3.0, set 3)", GAME_FLAGS )
+GAME(199?, m4sunscl, 0, cheatchr_pal<mpu4_characteriser_pal::sunsetclub_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "BWB", "Sunset Club (BWB) (MPU4) (SSC 3.0, set 1)", GAME_FLAGS )
+GAME(199?, m4sunscla, m4sunscl, cheatchr_pal<mpu4_characteriser_pal::sunsetclub_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "BWB", "Sunset Club (BWB) (MPU4) (SSC 3.0, set 2)", GAME_FLAGS )
+GAME(199?, m4sunsclb, m4sunscl, cheatchr_pal<mpu4_characteriser_pal::sunsetclub_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "BWB", "Sunset Club (BWB) (MPU4) (SSC 3.0, set 3)", GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -1439,11 +1547,11 @@ ROM_START( m4tropcld )
ROM_LOAD( "trod.p1", 0x0000, 0x010000, CRC(60c84612) SHA1(84dc8b34e41436331832c1a32ddac0fce269488a) )
ROM_END
-GAME(199?, m4tropcl, 0, mod4yam_alt_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TRO 2.0, set 1)",GAME_FLAGS )
-GAME(199?, m4tropcld, m4tropcl, mod4yam_alt_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TRO 2.0, set 2)",GAME_FLAGS )
-GAME(199?, m4tropcla, m4tropcl, mod4yam_alt_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TR2 1.1, set 1)",GAME_FLAGS )
-GAME(199?, m4tropclb, m4tropcl, mod4yam_alt_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TR2 1.1, set 2)",GAME_FLAGS )
-GAME(199?, m4tropclc, m4tropcl, mod4yam_alt_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TR2 1.1, set 3)",GAME_FLAGS )
+GAME(199?, m4tropcl, 0, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT2, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TRO 2.0, set 1)",GAME_FLAGS )
+GAME(199?, m4tropcld, m4tropcl, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT2, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TRO 2.0, set 2)",GAME_FLAGS )
+GAME(199?, m4tropcla, m4tropcl, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT2, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TR2 1.1, set 1)",GAME_FLAGS )
+GAME(199?, m4tropclb, m4tropcl, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT2, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TR2 1.1, set 2)",GAME_FLAGS )
+GAME(199?, m4tropclc, m4tropcl, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R5R, RT2, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (TR2 1.1, set 3)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -1474,10 +1582,10 @@ ROM_START( m4nudshfc )
ROM_END
-GAME(199?, m4nudshf, 0, mod4yam_alt_cheatchr_pal<mpu4_characteriser_pal::nudshf_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (NUS 3.1) (set 1)",GAME_FLAGS )
-GAME(199?, m4nudshfb, m4nudshf, mod4yam_alt_cheatchr_pal<mpu4_characteriser_pal::nudshf_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (NUS 3.1) (set 2)",GAME_FLAGS )
-GAME(199?, m4nudshfc, m4nudshf, mod4yam_alt_cheatchr_pal<mpu4_characteriser_pal::nudshf_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (NUS 3.1) (set 3)",GAME_FLAGS )
-GAME(199?, m4nudshfa, m4nudshf, mod4yam_alt_cheatchr_pal<mpu4_characteriser_pal::nudshf_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (NUS 3.0)",GAME_FLAGS )
+GAME(199?, m4nudshf, 0, cheatchr_pal<mpu4_characteriser_pal::nudshf_characteriser_prot>(R4, RT2), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (NUS 3.1) (set 1)",GAME_FLAGS )
+GAME(199?, m4nudshfb, m4nudshf, cheatchr_pal<mpu4_characteriser_pal::nudshf_characteriser_prot>(R4, RT2), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (NUS 3.1) (set 2)",GAME_FLAGS )
+GAME(199?, m4nudshfc, m4nudshf, cheatchr_pal<mpu4_characteriser_pal::nudshf_characteriser_prot>(R4, RT2), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (NUS 3.1) (set 3)",GAME_FLAGS )
+GAME(199?, m4nudshfa, m4nudshf, cheatchr_pal<mpu4_characteriser_pal::nudshf_characteriser_prot>(R4, RT2), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (NUS 3.0)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -1503,9 +1611,9 @@ ROM_START( m4nspotb )
ROM_LOAD( "nits.p1", 0x0000, 0x010000, CRC(47c965e6) SHA1(41a337a9a367c4e704a60e32d56b262d03f97b59) )
ROM_END
-GAME(199?, m4nspot, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (NS2 2.2, set 1)",GAME_FLAGS )
-GAME(199?, m4nspota, m4nspot, mod4yam_cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (NS2 2.2, set 2)",GAME_FLAGS )
-GAME(199?, m4nspotb, m4nspot, mod4yam_cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default_five_rev_sextender, ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (NIT 1.1)",GAME_FLAGS )
+GAME(199?, m4nspot, 0, cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (NS2 2.2, set 1)",GAME_FLAGS )
+GAME(199?, m4nspota, m4nspot, cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (NS2 2.2, set 2)",GAME_FLAGS )
+GAME(199?, m4nspotb, m4nspot, cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>(R5R, RT1, LPS), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (NIT 1.1)",GAME_FLAGS )
/*****************************************************************************************************************************************************************************
@@ -1551,17 +1659,17 @@ ROM_START( m4addrd )
ROM_END
-GAME(198?, m4tst, 0, mod4yam_no_bacta, mpu4, mpu4mod4yam_machines_state, init_m4test4, ROT0,"Barcrest","MPU4 Unit Test (Program 4)",MACHINE_MECHANICAL )
+GAME(198?, m4tst, 0, no_bacta(R4, RT1, OVER), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0,"Barcrest","MPU4 Unit Test (Program 4)",MACHINE_MECHANICAL )
-GAME(199?, m4joljokd, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>, mpu4, mpu4mod4yam_machines_state, init_m4default, ROT0, "Barcrest","Jolly Joker (Barcrest) (Dutch) (MPU4) (DJJ 1.5)",GAME_FLAGS) // Geen Tubes
+GAME(199?, m4joljokd, 0, cheatchr_pal<mpu4_characteriser_pal::celclb_characteriser_prot>(R4, RT1), mpu4, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Jolly Joker (Barcrest) (Dutch) (MPU4) (DJJ 1.5)",GAME_FLAGS) // Geen Tubes
-GAME(199?, m4clbshf, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>, mpu420p, mpu4mod4yam_machines_state, init_m4default, ROT0, "Barcrest","Club Shuffle (Barcrest) (MPU4) (CSS 1.0)",GAME_FLAGS) // set stake (runs if you do)
+GAME(199?, m4clbshf, 0, cheatchr_pal<mpu4_characteriser_pal::shuffle_characteriser_prot>(R4, RT1), mpu420p, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Club Shuffle (Barcrest) (MPU4) (CSS 1.0)",GAME_FLAGS) // set stake (runs if you do)
-GAME(199?, m4voodoo, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m435_characteriser_prot>, mpu4_dutch, mpu4mod4yam_machines_state, init_m4default_six, ROT0, "Barcrest","Voodoo 1000 (Barcrest) (Dutch) (MPU4) (DDO 3.2)",GAME_FLAGS ) // ROL F SETUP ALM
+GAME(199?, m4voodoo, 0, cheatchr_pal<mpu4_characteriser_pal::m435_characteriser_prot>(R6, RT1), mpu4_dutch, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Voodoo 1000 (Barcrest) (Dutch) (MPU4) (DDO 3.2)",GAME_FLAGS ) // ROL F SETUP ALM
-GAME(199?, m4magdrg, 0, mod4yam_7reel_cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>, mpu4_dutch, mpu4mod4yam_machines_state, init_m4default_seven, ROT0, "Barcrest","Magic Dragon (Barcrest) (MPU4) (DMD1.0)",GAME_FLAGS )
+GAME(199?, m4magdrg, 0, cheatchr_pal<mpu4_characteriser_pal::magicdragon_characteriser_prot>(R7, RT1), mpu4_dutch, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Magic Dragon (Barcrest) (MPU4) (DMD1.0)",GAME_FLAGS )
// non-standard protection
-GAME(199?, m4hslo, 0, mod4yam_bootleg_fixedret<0x56>, mpu4_70pc, mpu4mod4yam_machines_state, init_m4default, ROT0, "(bootleg)","Hot Slot (bootleg) (MPU4) (HOT 3.0)",GAME_FLAGS )
+GAME(199?, m4hslo, 0, bootleg_fixedret<0x56>(R4, RT1), mpu4_70pc, mpu4mod4yam_machines_state, init_m4, ROT0, "(bootleg)","Hot Slot (bootleg) (MPU4) (HOT 3.0)",GAME_FLAGS )
-GAME(199?, m4addrd, 0, mod4yam_cheatchr_pal<mpu4_characteriser_pal::m470_characteriser_prot>, mpu4_dutch, mpu4mod4yam_machines_state, init_m4default_five_rev, ROT0, "Barcrest","Adders & Ladders (Barcrest) (Dutch) (MPU4) (DAL 1.2)",GAME_FLAGS )
+GAME(199?, m4addrd, 0, cheatchr_pal<mpu4_characteriser_pal::m470_characteriser_prot>(R5R, RT1), mpu4_dutch, mpu4mod4yam_machines_state, init_m4, ROT0, "Barcrest","Adders & Ladders (Barcrest) (Dutch) (MPU4) (DAL 1.2)",GAME_FLAGS )
diff --git a/src/mame/barcrest/mpu4plasma.cpp b/src/mame/barcrest/mpu4plasma.cpp
index dc64223601d..8a47b93a4a2 100644
--- a/src/mame/barcrest/mpu4plasma.cpp
+++ b/src/mame/barcrest/mpu4plasma.cpp
@@ -10,6 +10,7 @@
#include "mpu4.h"
#include "cpu/m68000/m68000.h"
+#include "emupal.h"
#include "screen.h"
namespace {
@@ -18,15 +19,23 @@ class mpu4plasma_state : public mpu4_state
{
public:
mpu4plasma_state(const machine_config &mconfig, device_type type, const char *tag)
- : mpu4_state(mconfig, type, tag),
- m_plasmaram(*this, "plasmaram")
+ : mpu4_state(mconfig, type, tag)
+ , m_plasmaram(*this, "plasmaram")
+ , m_palette(*this, "palette")
{
}
- void mpu4plasma(machine_config &config);
+ void mpu4plasma_f(machine_config &config);
+
+ template<typename... T>
+ auto mpu4plasma(T... traits)
+ {
+ return trait_wrapper(this, &mpu4plasma_state::mpu4plasma_f, traits...);
+ }
private:
required_shared_ptr<uint16_t> m_plasmaram;
+ required_device<palette_device> m_palette;
uint16_t mpu4plasma_unk_r()
{
@@ -80,9 +89,9 @@ uint32_t mpu4plasma_state::screen_update_mpu4plasma(screen_device &screen, bitma
}
-void mpu4plasma_state::mpu4plasma(machine_config &config)
+void mpu4plasma_state::mpu4plasma_f(machine_config &config)
{
- mod2(config);
+ mod2_f(config);
m68000_device &plasmacpu(M68000(config, "plasmacpu", 10000000));
plasmacpu.set_addrmap(AS_PROGRAM, &mpu4plasma_state::mpu4plasma_map);
plasmacpu.set_vblank_int("screen", FUNC(mpu4plasma_state::irq4_line_hold));
@@ -197,20 +206,22 @@ ROM_END
} // anonymous namespace
+using namespace mpu4_traits;
+
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
// 00 50 40 14 4c 80 34 44 5c 9c 9c 9c dc 9c dc 94 2c cc ec a8 ec a0 30 40 54 (m435)
-GAMEL(199?, m4bigchf, 0, mpu4plasma, mpu4, mpu4plasma_state, init_m4default, ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
-GAMEL(199?, m4bigchfa, m4bigchf, mpu4plasma, mpu4, mpu4plasma_state, init_m4default, ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
-GAMEL(199?, m4bigchfb, m4bigchf, mpu4plasma, mpu4, mpu4plasma_state, init_m4default, ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
-GAMEL(199?, m4bigchfc, m4bigchf, mpu4plasma, mpu4, mpu4plasma_state, init_m4default, ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
+GAMEL(199?, m4bigchf, 0, mpu4plasma(R4, RT1), mpu4, mpu4plasma_state, init_m4, ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
+GAMEL(199?, m4bigchfa, m4bigchf, mpu4plasma(R4, RT1), mpu4, mpu4plasma_state, init_m4, ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
+GAMEL(199?, m4bigchfb, m4bigchf, mpu4plasma(R4, RT1), mpu4, mpu4plasma_state, init_m4, ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
+GAMEL(199?, m4bigchfc, m4bigchf, mpu4plasma(R4, RT1), mpu4, mpu4plasma_state, init_m4, ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
// 00 44 44 c4 70 04 c4 50 a4 d4 30 a0 54 20 64 40 64 e4 f4 14 80
-GAMEL(199?, m4click, 0, mpu4plasma, mpu4, mpu4plasma_state, init_m4default, ROT0, "Barcrest","Clickity Click (Barcrest) (MPU4 w/ Plasma DMD)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
+GAMEL(199?, m4click, 0, mpu4plasma(R4, RT1), mpu4, mpu4plasma_state, init_m4, ROT0, "Barcrest","Clickity Click (Barcrest) (MPU4 w/ Plasma DMD)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
// not confirmed to be plasma, is this an alt version of big chief? maybe it uses the same plasma roms?
// 00 24 24 2c 70 20 0c 60 3c 5c 5c 5c 7c 4c 68 40 34 38 7c 54 (m4duty sequence)
-GAMEL(199?, m4apach, 0, mpu4plasma, mpu4, mpu4plasma_state, init_m4default, ROT0, "Barcrest","Apache (Barcrest) (MPU4 w/ Plasma DMD?)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
+GAMEL(199?, m4apach, 0, mpu4plasma(R4, RT1), mpu4, mpu4plasma_state, init_m4, ROT0, "Barcrest","Apache (Barcrest) (MPU4 w/ Plasma DMD?)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
// not confirmed to be plasma, but acts like it
// 00 30 20 14 2c a0 54 24 3c 9c 9c 9c bc 94 6c 80 58 bc bc 98 9c 9c (m441)
-GAMEL(199?, m4elite, 0, mpu4plasma, mpu4, mpu4plasma_state, init_m4default, ROT0, "Barcrest","Elite (Barcrest) (MPU4 w/ Plasma DMD?)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
+GAMEL(199?, m4elite, 0, mpu4plasma(R4, RT1), mpu4, mpu4plasma_state, init_m4, ROT0, "Barcrest","Elite (Barcrest) (MPU4 w/ Plasma DMD?)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
diff --git a/src/mame/barcrest/mpu4redpoint.cpp b/src/mame/barcrest/mpu4redpoint.cpp
new file mode 100644
index 00000000000..86be8c59161
--- /dev/null
+++ b/src/mame/barcrest/mpu4redpoint.cpp
@@ -0,0 +1,146 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+
+#include "emu.h"
+#include "mpu4.h"
+
+#include "sound/ymz280b.h"
+
+namespace {
+
+class mpu4redpoint_state : public mpu4_state
+{
+public:
+ mpu4redpoint_state(const machine_config &mconfig, device_type type, const char *tag)
+ : mpu4_state(mconfig, type, tag)
+ , m_ympcm(*this, "ympcm")
+ {
+ }
+
+ void base_f(machine_config &config);
+
+ template <typename... T>
+ auto base(T... traits)
+ {
+ return trait_wrapper(this, &mpu4redpoint_state::base_f, traits...);
+ }
+
+private:
+ void add_ympcm(machine_config &config);
+
+ void memmap_ympcm(address_map &map);
+
+ DECLARE_MACHINE_START(mpu4redpoint);
+
+ required_device<ymz280b_device> m_ympcm;
+};
+
+void mpu4redpoint_state::add_ympcm(machine_config &config)
+{
+ YMZ280B(config, m_ympcm, 16'934'400);
+ m_ympcm->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_ympcm->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
+
+void mpu4redpoint_state::memmap_ympcm(address_map &map)
+{
+ mpu4_memmap(map);
+ map(0x1100, 0x1101).rw(m_ympcm, FUNC(ymz280b_device::read), FUNC(ymz280b_device::write));
+}
+
+void mpu4redpoint_state::base_f(machine_config &config)
+{
+ mpu4base(config);
+ MCFG_MACHINE_START_OVERRIDE(mpu4redpoint_state,mpu4redpoint)
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4redpoint_state::memmap_ympcm);
+
+ add_ympcm(config);
+}
+
+MACHINE_START_MEMBER(mpu4redpoint_state,mpu4redpoint)
+{
+ mpu4_config_common();
+
+ m_link7a_connected=false;
+}
+
+} // anonymous namespace
+
+
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
+
+using namespace mpu4_traits;
+
+static INPUT_PORTS_START( m4cbing )
+ PORT_INCLUDE( mpu4 )
+
+ PORT_MODIFY("DIL1")
+ PORT_DIPNAME( 0x0f, 0x0f, "Percentage Key" ) PORT_DIPLOCATION("DIL1:01,02,03,04")
+ PORT_DIPSETTING( 0x00, "Invalid" )
+ PORT_DIPSETTING( 0x01, "76" )
+ PORT_DIPSETTING( 0x02, "77" )
+ PORT_DIPSETTING( 0x03, "78" )
+ PORT_DIPSETTING( 0x04, "79" )
+ PORT_DIPSETTING( 0x05, "80" )
+ PORT_DIPSETTING( 0x06, "81" )
+ PORT_DIPSETTING( 0x07, "82" )
+ PORT_DIPSETTING( 0x08, "83" )
+ PORT_DIPSETTING( 0x09, "84" )
+ PORT_DIPSETTING( 0x0a, "85" )
+ PORT_DIPSETTING( 0x0b, "86" )
+ PORT_DIPSETTING( 0x0c, "87" )
+ PORT_DIPSETTING( 0x0d, "88" )
+ PORT_DIPSETTING( 0x0e, "89" )
+ PORT_DIPSETTING( 0x0f, "90" )
+ PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:05")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:06")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:07")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIL1:08")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ PORT_MODIFY("DIL2")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIL2:01,02")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPSETTING( 0x02, "10" )
+ PORT_DIPSETTING( 0x03, "20" )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:03")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:04")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:05")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:06")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIL2:07")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIL2:08")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+ROM_START( m4cbing )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD( "cherrybingoprg.bin", 0x0000, 0x010000, CRC(00c1d4f3) SHA1(626df7f2f597ed13c32ce0fa8846f2e27ca68eae) )
+
+ ROM_REGION( 0x200000, "ympcm", 0 ) // not oki!
+ ROM_LOAD( "cherrybingosnd.p1", 0x000000, 0x100000, CRC(11bed9f9) SHA1(63ed45122dda8e412bb1eaeb967d8a0f925d4bde) )
+ ROM_LOAD( "cherrybingosnd.p2", 0x100000, 0x100000, CRC(b2a7ec28) SHA1(307f19ffb46f4a2e8e93923ddb666e50de43a00e) )
+ROM_END
+
+
+GAME( 1998, m4cbing, 0, base(R4, RT1), m4cbing, mpu4redpoint_state, init_m4, ROT0, "Redpoint Systems", "Cherry Bingo (Redpoint Systems) (MPU4)", GAME_FLAGS )
diff --git a/src/mame/barcrest/mpu4union.cpp b/src/mame/barcrest/mpu4union.cpp
index 2a052add3dd..c4da548a091 100644
--- a/src/mame/barcrest/mpu4union.cpp
+++ b/src/mame/barcrest/mpu4union.cpp
@@ -261,59 +261,60 @@ ROM_END
} // anonymous namespace
+using namespace mpu4_traits;
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
/* Union
these don't boot, at best you get a 'CLEAR' message */
-GAME(199?, m4cwalk, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Cake Walk (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cwalk, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Cake Walk (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4eezee, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Eezee Fruits (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4eezee, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Eezee Fruits (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4frdrop, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Fruit Drop (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frdrop, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Fruit Drop (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gobana, 0, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gobanaa, m4gobana, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gobanab, m4gobana, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gobanac, m4gobana, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gobanad, m4gobana, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobana, 0, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Go Bananas (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobanaa, m4gobana, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Go Bananas (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobanab, m4gobana, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Go Bananas (Union) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobanac, m4gobana, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Go Bananas (Union) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobanad, m4gobana, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Go Bananas (Union) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4lotty, 0, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Lotty Time (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4lotty, 0, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Lotty Time (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4maxmze, 0, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Maximize (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4maxmzea, m4maxmze, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Maximize (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4maxmzeb, m4maxmze, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Maximize (Union) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4maxmzec, m4maxmze, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Maximize (Union) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4maxmzed, m4maxmze, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Maximize (Union) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmze, 0, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Maximize (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmzea, m4maxmze, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Maximize (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmzeb, m4maxmze, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Maximize (Union) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmzec, m4maxmze, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Maximize (Union) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmzed, m4maxmze, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Maximize (Union) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4mecca, 0, mod2 ,mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Mecca Money (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mecca, 0, mod2(R4, RT1),mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Mecca Money (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4purmad, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Pure Madness (Union)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4purmad, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Pure Madness (Union)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4revolv, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Revolva (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4revolv, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Revolva (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4rotex, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Rotex (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rotex, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Rotex (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4select, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Select (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4select, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Select (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4supfru, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Supafruits (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4supfrua,m4supfru, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Supafruits (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4supfru, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Supafruits (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4supfrua,m4supfru, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Supafruits (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4trimad, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Triple Madness (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4trimad, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Triple Madness (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4unibox, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Unibox (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4uniboxa,m4unibox, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Unibox (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4unibox, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Unibox (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4uniboxa,m4unibox, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Unibox (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4unique, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Unique (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4uniquep,m4unique, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Unique (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4unique, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Unique (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4uniquep,m4unique, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Unique (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4crzbn, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union","Crazy Bingo (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzbn, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union","Crazy Bingo (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
/* Union + Empire
same as Union above */
-GAME(199?, m4gvibes, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union / Empire","Good Vibrations (Union - Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4gvibesa, m4gvibes, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union / Empire","Good Vibrations (Union - Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gvibes, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union / Empire","Good Vibrations (Union - Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gvibesa, m4gvibes, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union / Empire","Good Vibrations (Union - Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4rckrol, 0, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4rckrola, m4rckrol, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
-GAME(199?, m4rckrolb, m4rckrol, mod4oki, mpu4, mpu4union_machines_state, init_m4default, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rckrol, 0, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rckrola, m4rckrol, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rckrolb, m4rckrol, mod4oki(R4, RT1), mpu4, mpu4union_machines_state, init_m4, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
diff --git a/src/mame/barcrest/mpu4unsorted.cpp b/src/mame/barcrest/mpu4unsorted.cpp
index 8465d2bb67b..b42b9d28d9d 100644
--- a/src/mame/barcrest/mpu4unsorted.cpp
+++ b/src/mame/barcrest/mpu4unsorted.cpp
@@ -55,58 +55,6 @@ ROM_END
-#define M4LUCKWB_EXTRAS \
- ROM_REGION( 0x100000, "msm6376", 0 ) /* these are all different sound roms... */ \
- ROM_LOAD( "lwbs3.bin", 0x0000, 0x07dc89, CRC(ee102376) SHA1(3fed581a4654acf285dd430fbfbac33cd67411b8) ) \
- ROM_LOAD( "lwbs7.bin", 0x0000, 0x080000, CRC(5d4177c7) SHA1(e13f145885bb719b0021ae4ce289261a3eaa2e18) ) \
- ROM_LOAD( "lwbs8.bin", 0x0000, 0x080000, CRC(187cdf5b) SHA1(87ec189af27c95f278a7531ec13df53a08889af8) ) \
- ROM_LOAD( "lwbs9.bin", 0x0000, 0x080000, CRC(2e02b617) SHA1(2502a1d2cff155a7fc5148e23a4723d4d60e9d42) )
-
-ROM_START( m4luckwb )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "lwb10.bin", 0x0000, 0x010000, CRC(6d43a14e) SHA1(267aba1a01bfd5f0eaa7683d041d5fcb2d301934) )
- M4LUCKWB_EXTRAS
-ROM_END
-
-ROM_START( m4luckwba )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "lwb15.bin", 0x0000, 0x010000, CRC(b5af8cb2) SHA1(474975b83803627ad3ac4217d8cecb2d2db16fec) )
- M4LUCKWB_EXTRAS
-ROM_END
-
-ROM_START( m4luckwbb )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "lwb21.bin", 0x0000, 0x010000, CRC(6c570733) SHA1(7488318ca9689371e4f80be0a0fddd8ad141733e) )
- M4LUCKWB_EXTRAS
-ROM_END
-
-ROM_START( m4luckwbc )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "lwb22.bin", 0x0000, 0x010000, CRC(05b952a7) SHA1(952e328b280a18c1ffe253b6a56f2b5e893b1b72) )
- M4LUCKWB_EXTRAS
-ROM_END
-
-ROM_START( m4luckwbd )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "lwb27.bin", 0x0000, 0x010000, CRC(9d6b6637) SHA1(65bad12cd08de128ca31c9488e32e3cebfb8eedb) )
- M4LUCKWB_EXTRAS
-ROM_END
-
-ROM_START( m4luckwbe )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "lwb6.bin", 0x0000, 0x010000, CRC(8e7d4594) SHA1(4824a9a4628585a170c41e00f7b3fcb8a2330c02) )
- M4LUCKWB_EXTRAS
-ROM_END
-
-ROM_START( m4luckwbf )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "lwb7.bin", 0x0000, 0x010000, CRC(8e651705) SHA1(bd4d09d586d14759a17d4d7d4016c427f3eef015) )
- M4LUCKWB_EXTRAS
-ROM_END
-
-
-
-
@@ -128,38 +76,32 @@ ROM_END
-void mpu4unsorted_state::init_m4aao()
-{
- //Derived from Against_All_Odds_(Eurotek)_[C01_800_15jp].gam
- init_m4default();
- use_m4_hopper_duart_a();
- use_m4_standard_reels();
- //PCKEY =9
- //STKEY =0
- //JPKEY =0
- //JPSET =0
- //DIP1_0=true
- //DIP1_1=true
- //DIP1_2=true
- //DIP1_3=true
- //DIP1_4=true
- //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 barcrest1
- //Standard
- //Volume 0 Stereo= 0
- //Sample rate 16000
- //Front door code 255 Cash door code 255
-}
+//Derived from Against_All_Odds_(Eurotek)_[C01_800_15jp].gam
+//PCKEY =9
+//STKEY =0
+//JPKEY =0
+//JPSET =0
+//DIP1_0=true
+//DIP1_1=true
+//DIP1_2=true
+//DIP1_3=true
+//DIP1_4=true
+//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 barcrest1
+//Standard
+//Volume 0 Stereo= 0
+//Sample rate 16000
+//Front door code 255 Cash door code 255
ROM_START( m4aao )
ROM_REGION( 0x010000, "maincpu", 0 )
@@ -580,10 +522,10 @@ ROM_START( m4blkgd )
M4BLKGD_EXTRAS
ROM_END
-//Early rom banks empty? May need different loading
ROM_START( m4blkgda )
ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD( "blackgoldversion2.4.bin", 0x0000, 0x040000, CRC(fad4e360) SHA1(23c6a13e8d1ca307b0ef22edffed536675985aca) )
+ ROM_LOAD( "blackgoldversion2.4.bin", 0x0000, 0x020000, CRC(fad4e360) SHA1(23c6a13e8d1ca307b0ef22edffed536675985aca) )
+ ROM_CONTINUE( 0x0000, 0x020000 ) //Early rom banks empty
M4BLKGD_EXTRAS
ROM_END
@@ -715,22 +657,6 @@ ROM_START( m4booze )
ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 )
ROM_END
-ROM_START( m4cbing )
- ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD( "cherrybingoprg.bin", 0x0000, 0x010000, CRC(00c1d4f3) SHA1(626df7f2f597ed13c32ce0fa8846f2e27ca68eae) )
- ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) // not oki!
- ROM_LOAD( "cherrybingosnd.p1", 0x000000, 0x100000, CRC(11bed9f9) SHA1(63ed45122dda8e412bb1eaeb967d8a0f925d4bde) )
- ROM_LOAD( "cherrybingosnd.p2", 0x100000, 0x100000, CRC(b2a7ec28) SHA1(307f19ffb46f4a2e8e93923ddb666e50de43a00e) )
-ROM_END
-
-
-ROM_START( m4nod )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "nod.bin", 0x0000, 0x010000, CRC(bc738af5) SHA1(8df436139554ccfb48c4db0a32e3333dbf3c4f46) )
- ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) //region was called "upd" but machine is mod4oki? Which one is correct?
- ROM_LOAD( "nodsnd.bin", 0x0000, 0x080000, CRC(2134494a) SHA1(3b665bf79567a71195b20e76c50b02707d15b78d) )
-ROM_END
-
ROM_START( m4aliz )
ROM_REGION( 0x40000, "maincpu", 0 )
@@ -759,12 +685,6 @@ ROM_START( m4coney )
ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 )
ROM_END
-ROM_START( m4funh )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "funhouse.bin", 0x00000, 0x10000, CRC(4e342025) SHA1(288125ff5e3da7249d89dfcc3cd0915f791f7d43) )
- ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) // no idea if it uses an OKI
-ROM_END
-
ROM_START( m4eaw51 ) \
@@ -774,184 +694,162 @@ ROM_END
} // anonymous namespace
+using namespace mpu4_traits;
+
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
// works. This is not a Barcrest game, but has a standard CHR check after you coin up for the first time, expecting the m4lv sequence back. Reports ILLEGAL SOFTWARE if it fails
-GAME(199?, m4bandgd, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Eurogames","Bands Of Gold (Eurogames) (MPU4)",GAME_FLAGS )
+GAME(199?, m4bandgd, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Eurogames","Bands Of Gold (Eurogames) (MPU4)",GAME_FLAGS )
// ERROR CODE 2. as with m4bandgd this isn't a Barcrest, but does the standard CHR check and shows ILLEGAL SOFTWARE if check fails, assume it is also by Eurogames
-GAME(199?, m4matdr, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>, mpu4, mpu4unsorted_state, init_m4default_six, ROT0, "Eurogames","Matador (Eurogames) (MPU4)",GAME_FLAGS )
+GAME(199?, m4matdr, 0, mod4oki_cheatchr_pal<mpu4_characteriser_pal::m4lv_characteriser_prot>(R6, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Eurogames","Matador (Eurogames) (MPU4)",GAME_FLAGS )
// works, not standard protection, but cheatchr works
-GAME(199?, m4bigben, 0, mod4oki_cheatchr, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 1)",GAME_FLAGS )
-GAME(199?, m4bigbena, m4bigben, mod4oki_cheatchr, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 2)",GAME_FLAGS )
-GAME(199?, m4bigbenb, m4bigben, mod4oki_cheatchr, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 3)",GAME_FLAGS )
-GAME(199?, m4bigbend, m4bigben, mod4oki_cheatchr, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 4)",GAME_FLAGS )
-GAME(199?, m4bigbene, m4bigben, mod4oki_cheatchr, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 5)",GAME_FLAGS )
+GAME(199?, m4bigben, 0, mod4oki_cheatchr(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 1)",GAME_FLAGS )
+GAME(199?, m4bigbena, m4bigben, mod4oki_cheatchr(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 2)",GAME_FLAGS )
+GAME(199?, m4bigbenb, m4bigben, mod4oki_cheatchr(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 3)",GAME_FLAGS )
+GAME(199?, m4bigbend, m4bigben, mod4oki_cheatchr(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 4)",GAME_FLAGS )
+GAME(199?, m4bigbene, m4bigben, mod4oki_cheatchr(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 5)",GAME_FLAGS )
-GAME(199?, m4kqclub, 0, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Newby","Kings & Queens Club (Newby) (MPU4)",GAME_FLAGS )
+GAME(199?, m4kqclub, 0, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Newby","Kings & Queens Club (Newby) (MPU4)",GAME_FLAGS )
-GAME(199?, m4snookr, 0, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Eurocoin","Snooker (Eurocoin) (MPU4)",GAME_FLAGS ) // works?
+GAME(199?, m4snookr, 0, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Eurocoin","Snooker (Eurocoin) (MPU4)",GAME_FLAGS ) // works?
-GAME(199?, m4stakex, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Leisurama","Stake X (Leisurama) (MPU4, set 1)",GAME_FLAGS ) // has issues with coins in 'separate bank' (default) mode, reel issues
-GAME(199?, m4stakexa, m4stakex, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Leisurama","Stake X (Leisurama) (MPU4, set 2)",GAME_FLAGS ) // like above, but doesn't default to separate bank?
+GAME(199?, m4stakex, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Leisurama","Stake X (Leisurama) (MPU4, set 1)",GAME_FLAGS ) // has issues with coins in 'separate bank' (default) mode, reel issues
+GAME(199?, m4stakexa, m4stakex, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Leisurama","Stake X (Leisurama) (MPU4, set 2)",GAME_FLAGS ) // like above, but doesn't default to separate bank?
-GAME(199?, m4boltbl, 0, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 1)",GAME_FLAGS ) // Reel 1 Fault
-GAME(199?, m4boltbla, m4boltbl, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 2)",GAME_FLAGS )
-GAME(199?, m4boltblb, m4boltbl, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 3)",GAME_FLAGS )
-GAME(199?, m4boltblc, m4boltbl, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 4)",GAME_FLAGS )
+GAME(199?, m4boltbl, 0, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 1)",GAME_FLAGS ) // Reel 1 Fault
+GAME(199?, m4boltbla, m4boltbl, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 2)",GAME_FLAGS )
+GAME(199?, m4boltblb, m4boltbl, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 3)",GAME_FLAGS )
+GAME(199?, m4boltblc, m4boltbl, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 4)",GAME_FLAGS )
-GAME(199?, m4stand2, 0, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "DJE","Stand To Deliver (DJE) (MPU4)",GAME_FLAGS ) // Reel 1 Fault
+GAME(199?, m4stand2, 0, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "DJE","Stand To Deliver (DJE) (MPU4)",GAME_FLAGS ) // Reel 1 Fault
-GAME(199?, m4dblchn, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "DJE","Double Chance (DJE) (MPU4)",GAME_FLAGS ) // Reels spin forever
+GAME(199?, m4dblchn, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "DJE","Double Chance (DJE) (MPU4)",GAME_FLAGS ) // Reels spin forever
// other issues, only plays an 'alarm' sound when there's money to payout? wrong sound ROM or something else?
-GAME(2001, m4casmul, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "DJE","Casino Multiplay (MPU4)",GAME_FLAGS ) // unprotected, copyright year / manufacturer found in ROM
+GAME(2001, m4casmul, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "DJE","Casino Multiplay (MPU4)",GAME_FLAGS ) // unprotected, copyright year / manufacturer found in ROM
// has D.J.E 1999 copyright in ROM
-GAMEL(1999, m4aao, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4aao, ROT0, "DJE / Eurotek","Against All Odds (Eurotek) (MPU4)",GAME_FLAGS, layout_m4aao )
+GAMEL(1999, m4aao, 0, mod4oki(R4, RT1, HDA), mpu4, mpu4unsorted_state, init_m4, ROT0, "DJE / Eurotek","Against All Odds (Eurotek) (MPU4)",GAME_FLAGS, layout_m4aao )
/* Unknown stuff that looks like it might be MPU4, but needs further verification, some could be bad */
// PAL FAIL
-GAME(199?, m4barcrz, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Bar Crazy (unknown) (MPU4?)",GAME_FLAGS )
+GAME(199?, m4barcrz, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "<unknown>","Bar Crazy (unknown) (MPU4?)",GAME_FLAGS )
// gives an error
-GAME(199?, m4bonzbn, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Bingo Bonanza (unknown) (MPU4?)",GAME_FLAGS )
+GAME(199?, m4bonzbn, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "<unknown>","Bingo Bonanza (unknown) (MPU4?)",GAME_FLAGS )
/* *if* these are MPU4 they have a different sound system at least - The copyright strings in them are 'AET' tho (Ace?) - Could be related to the Crystal stuff? */
-GAME(199?, m4sbx, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 1)",GAME_FLAGS )
-GAME(199?, m4sbxa, m4sbx, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 2)",GAME_FLAGS )
-GAME(199?, m4sbxb, m4sbx, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 3)",GAME_FLAGS )
-GAME(199?, m4sbxc, m4sbx, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 4)",GAME_FLAGS )
-GAME(199?, m4sbxd, m4sbx, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 5)",GAME_FLAGS )
-GAME(199?, m4sbxe, m4sbx, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 6)",GAME_FLAGS )
+GAME(199?, m4sbx, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 1)",GAME_FLAGS )
+GAME(199?, m4sbxa, m4sbx, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 2)",GAME_FLAGS )
+GAME(199?, m4sbxb, m4sbx, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 3)",GAME_FLAGS )
+GAME(199?, m4sbxc, m4sbx, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 4)",GAME_FLAGS )
+GAME(199?, m4sbxd, m4sbx, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 5)",GAME_FLAGS )
+GAME(199?, m4sbxe, m4sbx, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 6)",GAME_FLAGS )
-GAME(199?, m4bclimb, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Bear Climber (MPU4?)",GAME_FLAGS )
+GAME(199?, m4bclimb, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Bear Climber (MPU4?)",GAME_FLAGS )
-GAME(199?, m4captb, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Captain Bear (MPU4?)",GAME_FLAGS )
+GAME(199?, m4captb, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Captain Bear (MPU4?)",GAME_FLAGS )
-GAME(199?, m4jungj, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 1)",GAME_FLAGS )
-GAME(199?, m4jungja, m4jungj, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 2)",GAME_FLAGS )
-GAME(199?, m4jungjb, m4jungj, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 3)",GAME_FLAGS )
-GAME(199?, m4jungjc, m4jungj, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 4)",GAME_FLAGS )
+GAME(199?, m4jungj, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 1)",GAME_FLAGS )
+GAME(199?, m4jungja, m4jungj, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 2)",GAME_FLAGS )
+GAME(199?, m4jungjb, m4jungj, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 3)",GAME_FLAGS )
+GAME(199?, m4jungjc, m4jungj, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 4)",GAME_FLAGS )
-GAME(199?, m4fsx, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 1)",GAME_FLAGS )
-GAME(199?, m4fsxa, m4fsx, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 2)",GAME_FLAGS )
-GAME(199?, m4fsxb, m4fsx, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 3)",GAME_FLAGS )
+GAME(199?, m4fsx, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 1)",GAME_FLAGS )
+GAME(199?, m4fsxa, m4fsx, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 2)",GAME_FLAGS )
+GAME(199?, m4fsxb, m4fsx, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 3)",GAME_FLAGS )
// Error 42 then 52, 54
-GAME(199?, m4ccop, 0, mod4oki, mpu4_cw, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Cash Cops (MPU4?) (set 1)",GAME_FLAGS )
-GAME(199?, m4ccopa, m4ccop, mod4oki, mpu4_cw, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Cash Cops (MPU4?) (set 2)",GAME_FLAGS )
-GAME(199?, m4ccopb, m4ccop, mod4oki, mpu4_cw, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Cash Cops (MPU4?) (set 3)",GAME_FLAGS )
+GAME(199?, m4ccop, 0, mod4oki(R4, RT1), mpu4_cw, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Cash Cops (MPU4?) (set 1)",GAME_FLAGS )
+GAME(199?, m4ccopa, m4ccop, mod4oki(R4, RT1), mpu4_cw, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Cash Cops (MPU4?) (set 2)",GAME_FLAGS )
+GAME(199?, m4ccopb, m4ccop, mod4oki(R4, RT1), mpu4_cw, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Cash Cops (MPU4?) (set 3)",GAME_FLAGS )
// Error 72
-GAME(199?, m4ccc, 0, mod4oki, mpu4_cw, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Criss Cross Crazy (Coinworld) (MPU4?)",GAME_FLAGS )
+GAME(199?, m4ccc, 0, mod4oki(R4, RT1), mpu4_cw, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Criss Cross Crazy (Coinworld) (MPU4?)",GAME_FLAGS )
// PAL ERROR
-GAME(199?, m4treel, 0, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Turbo Reels (unknown) (MPU4?) (set 1)",GAME_FLAGS )
-GAME(199?, m4treela, m4treel, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Turbo Reels (unknown) (MPU4?) (set 2)",GAME_FLAGS )
+GAME(199?, m4treel, 0, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "<unknown>","Turbo Reels (unknown) (MPU4?) (set 1)",GAME_FLAGS )
+GAME(199?, m4treela, m4treel, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "<unknown>","Turbo Reels (unknown) (MPU4?) (set 2)",GAME_FLAGS )
// works
-GAME(199?, m4surf, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4surfa, m4surf, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 2)",GAME_FLAGS )
-GAME(199?, m4surfb, m4surf, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 3)",GAME_FLAGS )
+GAME(199?, m4surf, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4surfa, m4surf, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4surfb, m4surf, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 3)",GAME_FLAGS )
// works
-GAME(199?, m4wife, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Gemini","Money Or Yer Wife (Gemini) (MPU4)",GAME_FLAGS )
+GAME(199?, m4wife, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Gemini","Money Or Yer Wife (Gemini) (MPU4)",GAME_FLAGS )
// works, error unless you set %
-GAME(199?, m4blkgd, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Gemini","Black Gold (Gemini) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4blkgd, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Gemini","Black Gold (Gemini) (MPU4) (set 1)",GAME_FLAGS )
// doesn't work, might be bad dump
-GAME(199?, m4blkgda, m4blkgd, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Gemini","Black Gold (Gemini) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4blkgda, m4blkgd, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Gemini","Black Gold (Gemini) (MPU4) (set 2)",GAME_FLAGS )
// runs, non-reel game?
-GAME(199?, m4zill, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Pure Leisure","Zillionare's Challenge (Pure Leisure) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4zilla, m4zill, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Pure Leisure","Zillionare's Challenge (Pure Leisure) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4zill, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Pure Leisure","Zillionare's Challenge (Pure Leisure) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4zilla, m4zill, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Pure Leisure","Zillionare's Challenge (Pure Leisure) (MPU4) (set 2)",GAME_FLAGS )
-// runs but corrupt VFD
-GAME(199?, m4hstr, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4hstra, m4hstr, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 2)",GAME_FLAGS )
-GAME(199?, m4hstrb, m4hstr, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 3)",GAME_FLAGS )
+// ALARM S4
+GAME(199?, m4hstr, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4hstra, m4hstr, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4hstrb, m4hstr, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 3)",GAME_FLAGS )
-// runs but corrupt VFD
-GAME(199?, m4hstrcs, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4hstrcsa, m4hstrcs, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 2)",GAME_FLAGS )
-GAME(199?, m4hstrcsb, m4hstrcs, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 3)",GAME_FLAGS )
-GAME(199?, m4hstrcsc, m4hstrcs, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 4)",GAME_FLAGS )
-GAME(199?, m4hstrcsd, m4hstrcs, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 5)",GAME_FLAGS )
+// "S4" error
+GAME(199?, m4hstrcs, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4hstrcsa, m4hstrcs, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4hstrcsb, m4hstrcs, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 3)",GAME_FLAGS )
+GAME(199?, m4hstrcsc, m4hstrcs, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 4)",GAME_FLAGS )
+GAME(199?, m4hstrcsd, m4hstrcs, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 5)",GAME_FLAGS )
// Error 1.8
-GAME(199?, m4ddb, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Ding Dong Bells (Coinworld) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4ddba, m4ddb, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Ding Dong Bells (Coinworld) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4ddb, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Ding Dong Bells (Coinworld) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4ddba, m4ddb, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Ding Dong Bells (Coinworld) (MPU4) (set 2)",GAME_FLAGS )
-// runs but corrupt VFD
-GAME(199?, m4hapfrt, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4hapfrta, m4hapfrt, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 2)",GAME_FLAGS )
-GAME(199?, m4hapfrtb, m4hapfrt, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 3)",GAME_FLAGS )
+// "S4" error
+GAME(199?, m4hapfrt, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 1)",GAME_FLAGS )
+GAME(199?, m4hapfrta, m4hapfrt, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 2)",GAME_FLAGS )
+GAME(199?, m4hapfrtb, m4hapfrt, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 3)",GAME_FLAGS )
// backwards VFD
-GAME(199?, m4sunday, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Pcp","Sunday Sport (Pcp) (MPU4)",GAME_FLAGS )
+GAME(199?, m4sunday, 0, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Pcp","Sunday Sport (Pcp) (MPU4)",GAME_FLAGS )
// HOPPER FAULT
-GAME(199?, m4jp777, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Cotswold Microsystems","Jackpot 777 (Cotswold Microsystems) (MPU4)",GAME_FLAGS ) /* Hopper Fault */
+GAME(199?, m4jp777, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Cotswold Microsystems","Jackpot 777 (Cotswold Microsystems) (MPU4)",GAME_FLAGS ) /* Hopper Fault */
// HOPPER FAULT
-GAME(199?, m4dnj, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Cotswold Microsystems","Double Nudge (Cotswold Microsystems) (MPU4) (set 1)",GAME_FLAGS ) /* Hopper Fault */
-GAME(199?, m4dnja, m4dnj, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Cotswold Microsystems","Double Nudge (Cotswold Microsystems) (MPU4) (set 2)",GAME_FLAGS ) /* Hopper Fault */
-GAME(199?, m4dnjb, m4dnj, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Cotswold Microsystems","Double Nudge (Cotswold Microsystems) (MPU4) (set 3)",GAME_FLAGS ) /* Hopper Fault */
+GAME(199?, m4dnj, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Cotswold Microsystems","Double Nudge (Cotswold Microsystems) (MPU4) (set 1)",GAME_FLAGS ) /* Hopper Fault */
+GAME(199?, m4dnja, m4dnj, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Cotswold Microsystems","Double Nudge (Cotswold Microsystems) (MPU4) (set 2)",GAME_FLAGS ) /* Hopper Fault */
+GAME(199?, m4dnjb, m4dnj, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Cotswold Microsystems","Double Nudge (Cotswold Microsystems) (MPU4) (set 3)",GAME_FLAGS ) /* Hopper Fault */
// PIC CHECK, backwards VFD
-GAME(199?, m4booze, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Extreme","Booze Cruise (Extreme) (MPU4)",GAME_FLAGS )
-
- // custom sound system
-GAME(199?, m4cbing, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "Redpoint Systems","Cherry Bingo (Redpoint Systems) (MPU4)",GAME_FLAGS )
-
-// just spins wheels badly
-GAME( 199?, m4nod, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, 0, "Eurotech", "Nod And A Wink (Eurotech) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) // this has valid strings in it BEFORE the bfm decode, but decodes to valid code, does it use some funky mapping, or did they just fill unused space with valid looking data?
+GAME(199?, m4booze, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "Extreme","Booze Cruise (Extreme) (MPU4)",GAME_FLAGS )
// LINKUP SUCHE
-GAME( 199?, m4aliz, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default_big, 0, "Qps", "AlizBaz (Qps) (German) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+GAME( 199?, m4aliz, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4big, 0, "Qps", "AlizBaz (Qps) (German) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
// SHELF RESONSE
-GAME( 199?, m4coney, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, 0, "Qps", "Coney Island (Qps) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+GAME( 199?, m4coney, 0, mod4oki(R4, RT1), mpu4, mpu4unsorted_state, init_m4, 0, "Qps", "Coney Island (Qps) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
// very similar to m4c2 behavior below, but no protection?
-GAME( 199?, m4crzjk, 0, mod2_alt, mpu4_invcoin, mpu4unsorted_state, init_m4default, 0, "Nova?", "Crazy Jokers (Nova?) (MPU4)",GAME_FLAGS )
+GAME( 199?, m4crzjk, 0, mod2(R4, RT2), mpu4_invcoin, mpu4unsorted_state, init_m4, 0, "Nova?", "Crazy Jokers (Nova?) (MPU4)",GAME_FLAGS )
// not standard protection, but cheatchr passes it, code crashes after a short time?
-GAME( 199?, m4c2, 0, mod4oki_alt_cheatchr, mpu4_invcoin, mpu4unsorted_state, init_m4default, 0, "Nova?", "Circus Circus 2 (Nova?) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) // COIN ALM
-
-
-
-// no protection?
-GAME(198?, m4funh, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, 0, "<unknown>", "Fun House (unknown) (MPU4)", GAME_FLAGS ) // TUNE ALARM (was in the SC1 Fun House set)
+GAME( 199?, m4c2, 0, mod4oki_cheatchr(R4, RT2), mpu4_invcoin, mpu4unsorted_state, init_m4, 0, "Nova?", "Circus Circus 2 (Nova?) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) // COIN ALM
// REEL 1 FAULT
// Not the same as Barcrest Everyone's A Winner? has "(C) J.A. Brown 1991" in the ROM
-GAME(1991, m4eaw51, 0, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "J.A. Brown", "Everyone's A Winner (J.A. Brown) (MPU4) (EAW 5.1)", GAME_FLAGS )
+GAME(1991, m4eaw51, 0, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "J.A. Brown", "Everyone's A Winner (J.A. Brown) (MPU4) (EAW 5.1)", GAME_FLAGS )
// REEL 1 FAULT
// has "(C) J.A. Brown 1993" in the ROM
-GAME(1993, m4twist, 0, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "J.A. Brown","Twist Again (J.A. Brown) (MPU4) (TA 9.6, set 1)",GAME_FLAGS ) // REEL 1 FAULT
-GAME(1993, m4twista, m4twist, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "J.A. Brown","Twist Again (J.A. Brown) (MPU4) (TA 9.6, set 2)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT
-GAME(1993, m4twistb, m4twist, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "J.A. Brown","Twist Again (J.A. Brown) (MPU4) (TA 9.6, set 3)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT
+GAME(1993, m4twist, 0, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "J.A. Brown","Twist Again (J.A. Brown) (MPU4) (TA 9.6, set 1)",GAME_FLAGS ) // REEL 1 FAULT
+GAME(1993, m4twista, m4twist, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "J.A. Brown","Twist Again (J.A. Brown) (MPU4) (TA 9.6, set 2)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT
+GAME(1993, m4twistb, m4twist, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "J.A. Brown","Twist Again (J.A. Brown) (MPU4) (TA 9.6, set 3)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT
// REEL 1 FAULT
// has "(C) J. Brown 1988" in the ROM (assume same J.A. Brown as above)
-GAME(1988, m4wnud, 0, mod2, mpu4, mpu4unsorted_state, init_m4default, ROT0, "J.A. Brown","unknown MPU4 'W Nudge' (J.A. Brown) (MPU4)",GAME_FLAGS )
-
-
-
-// corrupt VFD (many XX), doesn't use standard Barcrest protection, maybe Coinworld?
-// reads a jump offset from 0x800 (where protection would usually map)
-GAME(199?, m4luckwb, 0, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 1)",GAME_FLAGS )
-GAME(199?, m4luckwba, m4luckwb, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 2)",GAME_FLAGS )
-GAME(199?, m4luckwbb, m4luckwb, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 3)",GAME_FLAGS )
-GAME(199?, m4luckwbc, m4luckwb, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 4)",GAME_FLAGS )
-GAME(199?, m4luckwbd, m4luckwb, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 5)",GAME_FLAGS )
-GAME(199?, m4luckwbe, m4luckwb, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 6)",GAME_FLAGS )
-GAME(199?, m4luckwbf, m4luckwb, mod4oki, mpu4, mpu4unsorted_state, init_m4default, ROT0, "<unknown>","Lucky Wild Boar (MPU4) (set 7)",GAME_FLAGS )
-
+GAME(1988, m4wnud, 0, mod2(R4, RT1), mpu4, mpu4unsorted_state, init_m4, ROT0, "J.A. Brown","unknown MPU4 'W Nudge' (J.A. Brown) (MPU4)",GAME_FLAGS )
diff --git a/src/mame/barcrest/mpu4vid.cpp b/src/mame/barcrest/mpu4vid.cpp
index 857c8cbcf6d..a2e5b8135e3 100644
--- a/src/mame/barcrest/mpu4vid.cpp
+++ b/src/mame/barcrest/mpu4vid.cpp
@@ -191,12 +191,11 @@ TODO:
#include "sound/ay8910.h"
#include "sound/okim6376.h"
#include "sound/saa1099.h"
-#include "sound/upd7759.h"
-#include "sound/ymopl.h"
#include "video/ef9369.h"
#include "video/scn2674.h"
+#include "emupal.h"
#include "screen.h"
#include "speaker.h"
@@ -209,6 +208,9 @@ TODO:
#include "v4strike.lh"
+#define VIDEO_MASTER_CLOCK XTAL(10'000'000)
+
+
namespace {
class mpu4vid_state : public mpu4_state
@@ -227,6 +229,7 @@ public:
m_trackx_port(*this, "TRACKX"),
m_tracky_port(*this, "TRACKY"),
m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette"),
m_ef9369(*this, "ef9369")
{
}
@@ -285,6 +288,7 @@ private:
optional_ioport m_trackx_port;
optional_ioport m_tracky_port;
required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
optional_device<ef9369_device> m_ef9369;
@@ -1865,7 +1869,6 @@ void mpu4vid_state::machine_start()
{
mpu4_config_common();
- m_mod_number=2;
/* setup communications */
m_link7a_connected = true;
}
@@ -8707,7 +8710,7 @@ the copyright dates recorded.
TODO: Sort these better given the wide variation in dates/versions/core code (SWP version id, for one thing).
*/
-GAME( 199?, v4bios, 0, mod2, mpu4vid, mpu4_state, init_m4default, ROT0, "Barcrest","MPU4 Video Firmware",MACHINE_IS_BIOS_ROOT )
+GAME( 199?, v4bios, 0, mod2(), mpu4vid, mpu4_state, init_m4, ROT0, "Barcrest","MPU4 Video Firmware",MACHINE_IS_BIOS_ROOT )
#define GAME_FLAGS MACHINE_NOT_WORKING
#define GAME_FLAGS_OK (MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND)
diff --git a/src/mame/layout/connect4.lay b/src/mame/layout/connect4.lay
index 404a84c1010..1a04ceb4529 100644
--- a/src/mame/layout/connect4.lay
+++ b/src/mame/layout/connect4.lay
@@ -789,10 +789,10 @@ license:CC0
<element name="lamp121" ref="pass" state="0">
<bounds x="40" y="140" width="28" height="14"/>
</element>
- <element name="lamp123" ref="select" state="0">
+ <element name="lamp120" ref="select" state="0">
<bounds x="0" y="90" width="28" height="14"/>
</element>
- <element name="lamp120" ref="drop" state="0">
+ <element name="lamp123" ref="drop" state="0">
<bounds x="30" y="90" width="28" height="14"/>
</element>
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 88abefdcbd8..31bb49969ed 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -24568,7 +24568,6 @@ m4booze // Booze Cruise
m4c2 // Circus Circus 2 (Nova)
m4captb // Captain Bear
m4casmul // Casino Multiplay (Barcrest)
-m4cbing // Cherry Bingo
m4ccc //
m4ccop //
m4ccopa //
@@ -24585,7 +24584,6 @@ m4eaw51 // Everyone's A Winner?
m4fsx // Fun Spot X
m4fsxa //
m4fsxb //
-m4funh // Fun House
m4hapfrt // Happy Fruits (Coinworld)
m4hapfrta //
m4hapfrtb //
@@ -24603,15 +24601,7 @@ m4jungja //
m4jungjb //
m4jungjc //
m4kqclub // Kings & Queens Club (Newby)
-m4luckwb // Lucky Wild Boar (Barcrest)
-m4luckwba //
-m4luckwbb //
-m4luckwbc //
-m4luckwbd //
-m4luckwbe //
-m4luckwbf //
m4matdr // Matador (unknown)
-m4nod //
m4sbx // Super Bear X
m4sbxa //
m4sbxb //
@@ -26171,6 +26161,7 @@ m4frtlnk // Fruit Link Club (Barcrest)
m4frtlnka //
m4frtprs // Fruit Preserve (Barcrest)
m4frtprsa //
+m4funh // Fun House
m4giant // Giant (Barcrest)
m4gldgat // Golden Gate (Barcrest)
m4gldstr // Gold Strike (Barcrest)
@@ -28031,6 +28022,13 @@ m4luckst__w //
m4luckst__x //
m4luckst__y //
m4luckst__z //
+m4luckwb // Lucky Wild Boar
+m4luckwba //
+m4luckwbb //
+m4luckwbc //
+m4luckwbd //
+m4luckwbe //
+m4luckwbf //
m4luxor // Luxor (Barcrest)
m4luxor__a //
m4luxor__b //
@@ -28313,6 +28311,7 @@ m4nnwwc__w //
m4nnwwc__x //
m4nnwwc__y //
m4nnwwc__z //
+m4nod // Nod And A Wink (Eurotech)
m4oadrac // Ooh Aah Dracula (BWB)
m4oadrac__a //
m4oadrac__b //
@@ -30176,6 +30175,9 @@ m4bigchfc //
m4click // Clickity Click (Barcrest)
m4elite // Elite (Barcrest)
+@source:barcrest/mpu4redpoint.cpp
+m4cbing // Cherry Bingo
+
@source:barcrest/mpu4vid.cpp
v4addlad // Adders and Ladders
v4addladd //