mpu4.c: Found out the procedure to make some of the ones which fail self tests boot, as a result was able to confirm several other sets as mod2, and moved them to the appropriate place - From Haze (nw)

Kaneko toybox is now a device - From Haze (nw)
This commit is contained in:
Scott Stone 2012-08-10 13:55:07 +00:00
parent 50ab469a6f
commit cceb36a613
18 changed files with 1891 additions and 1680 deletions

2
.gitattributes vendored
View File

@ -4301,6 +4301,8 @@ src/mame/machine/kaneko_calc3.c svneol=native#text/plain
src/mame/machine/kaneko_calc3.h svneol=native#text/plain src/mame/machine/kaneko_calc3.h svneol=native#text/plain
src/mame/machine/kaneko_hit.c svneol=native#text/plain src/mame/machine/kaneko_hit.c svneol=native#text/plain
src/mame/machine/kaneko_hit.h svneol=native#text/plain src/mame/machine/kaneko_hit.h svneol=native#text/plain
src/mame/machine/kaneko_toybox.c svneol=native#text/plain
src/mame/machine/kaneko_toybox.h svneol=native#text/plain
src/mame/machine/kanekotb.h svneol=native#text/plain src/mame/machine/kanekotb.h svneol=native#text/plain
src/mame/machine/konami1.c svneol=native#text/plain src/mame/machine/konami1.c svneol=native#text/plain
src/mame/machine/konami1.h svneol=native#text/plain src/mame/machine/konami1.h svneol=native#text/plain

View File

@ -66,6 +66,7 @@ Dumped by Uki
#include "sound/ymz280b.h" #include "sound/ymz280b.h"
#include "includes/kaneko16.h" #include "includes/kaneko16.h"
#include "video/sknsspr.h" #include "video/sknsspr.h"
#include "machine/eeprom.h"
class galpani3_state : public kaneko16_state class galpani3_state : public kaneko16_state
{ {
@ -90,7 +91,6 @@ public:
m_framebuffer1_bright2(*this, "fb1_bright2"), m_framebuffer1_bright2(*this, "fb1_bright2"),
m_sprregs(*this, "sprregs"), m_sprregs(*this, "sprregs"),
m_sprite_bitmap_1(1024, 1024), m_sprite_bitmap_1(1024, 1024),
m_mcu_ram(*this, "mcu_ram"),
m_maincpu(*this,"maincpu") m_maincpu(*this,"maincpu")
{ } { }
@ -125,8 +125,6 @@ public:
UINT32 m_spriteram32[0x4000/4]; UINT32 m_spriteram32[0x4000/4];
UINT32 m_spc_regs[0x40/4]; UINT32 m_spc_regs[0x40/4];
bitmap_ind16 m_sprite_bitmap_1; bitmap_ind16 m_sprite_bitmap_1;
required_shared_ptr<UINT16> m_mcu_ram;
UINT16 m_mcu_com[4];
int m_regs1_i; int m_regs1_i;
int m_regs2_i; int m_regs2_i;
int m_regs3_i; int m_regs3_i;
@ -138,11 +136,7 @@ public:
sknsspr_device* m_spritegen; sknsspr_device* m_spritegen;
DECLARE_WRITE16_MEMBER(galpani3_suprnova_sprite32_w); DECLARE_WRITE16_MEMBER(galpani3_suprnova_sprite32_w);
DECLARE_WRITE16_MEMBER(galpani3_suprnova_sprite32regs_w); DECLARE_WRITE16_MEMBER(galpani3_suprnova_sprite32regs_w);
DECLARE_WRITE16_MEMBER(galpani3_mcu_com0_w);
DECLARE_WRITE16_MEMBER(galpani3_mcu_com1_w);
DECLARE_WRITE16_MEMBER(galpani3_mcu_com2_w);
DECLARE_WRITE16_MEMBER(galpani3_mcu_com3_w);
DECLARE_READ16_MEMBER(galpani3_mcu_status_r);
DECLARE_READ16_MEMBER(galpani3_regs1_r); DECLARE_READ16_MEMBER(galpani3_regs1_r);
DECLARE_READ16_MEMBER(galpani3_regs2_r); DECLARE_READ16_MEMBER(galpani3_regs2_r);
DECLARE_READ16_MEMBER(galpani3_regs3_r); DECLARE_READ16_MEMBER(galpani3_regs3_r);
@ -169,7 +163,10 @@ public:
DECLARE_WRITE16_MEMBER(galpani3_framebuffer1_bgcol_w); DECLARE_WRITE16_MEMBER(galpani3_framebuffer1_bgcol_w);
DECLARE_WRITE16_MEMBER(galpani3_framebuffer2_bgcol_w); DECLARE_WRITE16_MEMBER(galpani3_framebuffer2_bgcol_w);
DECLARE_WRITE16_MEMBER(galpani3_framebuffer3_bgcol_w); DECLARE_WRITE16_MEMBER(galpani3_framebuffer3_bgcol_w);
DECLARE_DRIVER_INIT(galpani3);
DECLARE_DRIVER_INIT( galpani3 )
{
}
}; };
@ -458,7 +455,7 @@ static INPUT_PORTS_START( galpani3 )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("DSW") /* provided by the MCU - $200386.b <- $400200 */ PORT_START("DSW1") /* provided by the MCU - $200386.b <- $400200 */
PORT_DIPNAME( 0x0100, 0x0100, "Test Mode" ) PORT_DIPNAME( 0x0100, 0x0100, "Test Mode" )
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
@ -504,111 +501,6 @@ WRITE16_MEMBER(galpani3_state::galpani3_suprnova_sprite32regs_w)
/***************************************************************************
MCU Code Simulation
(follows the implementation of kaneko16.c)
***************************************************************************/
static void galpani3_mcu_run(running_machine &machine)
{
galpani3_state *state = machine.driver_data<galpani3_state>();
UINT16 mcu_command = state->m_mcu_ram[0x0010/2]; /* command nb */
UINT16 mcu_offset = state->m_mcu_ram[0x0012/2] / 2; /* offset in shared RAM where MCU will write */
UINT16 mcu_subcmd = state->m_mcu_ram[0x0014/2]; /* sub-command parameter, happens only for command #4 */
logerror("%s: MCU executed command : %04X %04X\n",machine.describe_context(),mcu_command,mcu_offset*2);
/* the only MCU commands found in program code are:
0x04: protection: provide code/data,
0x03: read DSW
0x02: load NVRAM settings \ ATMEL AT93C46 chip,
0x42: save NVRAM settings / 128 bytes serial EEPROM
*/
switch (mcu_command >> 8)
{
case 0x03: // DSW
{
state->m_mcu_ram[mcu_offset] = state->ioport("DSW")->read();
logerror("%s : MCU executed command: %04X %04X (read DSW)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x02: // $38950 - load NVRAM settings
{
/* NOTE: code @ $38B46 & $38ab8 does exactly what is checked after MCU command
so that's what we'll mimic here... probably the initial NVRAM settings */
int i;
/* MCU writes 128 bytes to shared ram: last byte is the byte-sum */
/* first 32 bytes (header): 0x8BE08E71.L, then the string "95/06/30 Gals Panic3Ver 0.95"; */
state->m_mcu_ram[mcu_offset + 0] = 0x8BE0; state->m_mcu_ram[mcu_offset + 1] = 0x8E71;
state->m_mcu_ram[mcu_offset + 2] = 0x3935; state->m_mcu_ram[mcu_offset + 3] = 0x2F30;
state->m_mcu_ram[mcu_offset + 4] = 0x362F; state->m_mcu_ram[mcu_offset + 5] = 0x3330;
state->m_mcu_ram[mcu_offset + 6] = 0x2047; state->m_mcu_ram[mcu_offset + 7] = 0x616C;
state->m_mcu_ram[mcu_offset + 8] = 0x7320; state->m_mcu_ram[mcu_offset + 9] = 0x5061;
state->m_mcu_ram[mcu_offset + 10] = 0x6E69; state->m_mcu_ram[mcu_offset + 11] = 0x6333;
state->m_mcu_ram[mcu_offset + 12] = 0x5665; state->m_mcu_ram[mcu_offset + 13] = 0x7220;
state->m_mcu_ram[mcu_offset + 14] = 0x302E; state->m_mcu_ram[mcu_offset + 15] = 0x3935;
/* next 11 bytes - initial NVRAM settings */
state->m_mcu_ram[mcu_offset + 16] = 0x0001; state->m_mcu_ram[mcu_offset + 17] = 0x0101;
state->m_mcu_ram[mcu_offset + 18] = 0x0100; state->m_mcu_ram[mcu_offset + 19] = 0x0208;
state->m_mcu_ram[mcu_offset + 20] = 0x02FF; state->m_mcu_ram[mcu_offset + 21] = 0x0000;
/* rest is zeroes */
for (i=22;i<63;i++)
state->m_mcu_ram[mcu_offset + i] = 0;
/* and sum is $0c.b */
state->m_mcu_ram[mcu_offset + 63] = 0x000c;
}
break;
case 0x04: // $38842 - provides code/data
{
toxboy_handle_04_subcommand(machine, mcu_subcmd, state->m_mcu_ram);
}
break;
case 0x42: // $389ee - save NVRAM settings
{
// found, TODO: trace call in code !!!
}
break;
default:
logerror("UNKNOWN COMMAND\n");
}
}
/*
MCU doesn't execute exactly as it is coded right know (ala jchan):
* com0=com1=0xFFFF -> command to execute
* com2=com3=0xFFFF -> status reading only
*/
INLINE void galpani3_mcu_com_w(address_space *space, offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
{
galpani3_state *state = space->machine().driver_data<galpani3_state>();
COMBINE_DATA(&state->m_mcu_com[_n_]);
if (state->m_mcu_com[0] != 0xFFFF) return;
if (state->m_mcu_com[1] != 0xFFFF) return;
if (state->m_mcu_com[2] != 0xFFFF) return;
if (state->m_mcu_com[3] != 0xFFFF) return;
memset(state->m_mcu_com, 0, 4 * sizeof( UINT16 ) );
galpani3_mcu_run(space->machine());
}
WRITE16_MEMBER(galpani3_state::galpani3_mcu_com0_w){ galpani3_mcu_com_w(&space, offset, data, mem_mask, 0); }
WRITE16_MEMBER(galpani3_state::galpani3_mcu_com1_w){ galpani3_mcu_com_w(&space, offset, data, mem_mask, 1); }
WRITE16_MEMBER(galpani3_state::galpani3_mcu_com2_w){ galpani3_mcu_com_w(&space, offset, data, mem_mask, 2); }
WRITE16_MEMBER(galpani3_state::galpani3_mcu_com3_w){ galpani3_mcu_com_w(&space, offset, data, mem_mask, 3); }
READ16_MEMBER(galpani3_state::galpani3_mcu_status_r)
{
logerror("cpu '%s' (PC=%06X): read mcu status\n", space.device().tag(), cpu_get_previouspc(&space.device()));
return 0;
}
// might be blitter regs? - there are 3, probably GRAP2 chips // might be blitter regs? - there are 3, probably GRAP2 chips
@ -924,13 +816,13 @@ static ADDRESS_MAP_START( galpani3_map, AS_PROGRAM, 16, galpani3_state )
AM_RANGE(0x300000, 0x303fff) AM_RAM_WRITE(galpani3_suprnova_sprite32_w) AM_SHARE("spriteram") AM_RANGE(0x300000, 0x303fff) AM_RAM_WRITE(galpani3_suprnova_sprite32_w) AM_SHARE("spriteram")
AM_RANGE(0x380000, 0x38003f) AM_RAM_WRITE(galpani3_suprnova_sprite32regs_w) AM_SHARE("sprregs") AM_RANGE(0x380000, 0x38003f) AM_RAM_WRITE(galpani3_suprnova_sprite32regs_w) AM_SHARE("sprregs")
AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("mcu_ram") // area [C] AM_RANGE(0x400000, 0x40ffff) AM_DEVREADWRITE( "toybox", kaneko_toybox_device, toybox_mcu_ram_r, toybox_mcu_ram_w ) // area [C]
AM_RANGE(0x580000, 0x580001) AM_WRITE(galpani3_mcu_com0_w) // ] see $387e8: these 2 locations are written (w.#$ffff) AM_RANGE(0x580000, 0x580001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com0_w)
AM_RANGE(0x600000, 0x600001) AM_WRITE(galpani3_mcu_com1_w) // ] then bit #0 of $780000.l is tested: 0 = OK! AM_RANGE(0x600000, 0x600001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w)
AM_RANGE(0x680000, 0x680001) AM_WRITE(galpani3_mcu_com2_w) // ] see $387e8: these 2 locations are written (w.#$ffff) AM_RANGE(0x680000, 0x680001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x700000, 0x700001) AM_WRITE(galpani3_mcu_com3_w) // ] then bit #0 of $780000.l is tested: 0 = OK! AM_RANGE(0x700000, 0x700001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
AM_RANGE(0x780000, 0x780001) AM_READ(galpani3_mcu_status_r) AM_RANGE(0x780000, 0x780001) AM_DEVREAD( "toybox", kaneko_toybox_device, toybox_mcu_status_r)
// GRAP2 1? // GRAP2 1?
AM_RANGE(0x800000, 0x8003ff) AM_RAM // ??? see subroutine $39f42 (R?) AM_RANGE(0x800000, 0x8003ff) AM_RAM // ??? see subroutine $39f42 (R?)
@ -1012,6 +904,11 @@ static MACHINE_CONFIG_START( galpani3, galpani3_state )
//MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1) //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1)
MCFG_SCREEN_UPDATE_STATIC(galpani3) MCFG_SCREEN_UPDATE_STATIC(galpani3)
MCFG_EEPROM_93C46_ADD("eeprom")
MCFG_DEVICE_ADD("toybox", KANEKO_TOYBOX, 0)
kaneko_toybox_device::set_toybox_gametype(*device, GAME_GALPANI3);
MCFG_PALETTE_LENGTH(0x4303) MCFG_PALETTE_LENGTH(0x4303)
MCFG_VIDEO_START(galpani3) MCFG_VIDEO_START(galpani3)
@ -1077,12 +974,7 @@ ROM_START( galpani3j ) /* Some game text in Japanese, but no "For use in Japan"
ROM_END ROM_END
DRIVER_INIT_MEMBER(galpani3_state,galpani3)
{
DRIVER_INIT_CALL(decrypt_toybox_rom);
memset(m_mcu_com, 0, 4 * sizeof( UINT16) );
}
GAME( 1995, galpani3, 0, galpani3, galpani3, galpani3_state, galpani3, ROT90, "Kaneko", "Gals Panic 3 (Euro)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL ) GAME( 1995, galpani3, 0, galpani3, galpani3, galpani3_state, galpani3, ROT90, "Kaneko", "Gals Panic 3 (Euro)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )
GAME( 1995, galpani3j, galpani3, galpani3, galpani3, galpani3_state, galpani3, ROT90, "Kaneko", "Gals Panic 3 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL ) GAME( 1995, galpani3j, galpani3, galpani3, galpani3, galpani3_state, galpani3, ROT90, "Kaneko", "Gals Panic 3 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )

View File

@ -173,6 +173,7 @@ there are 9 PALS on the pcb (not dumped)
#include "sound/ymz280b.h" #include "sound/ymz280b.h"
#include "includes/kaneko16.h" #include "includes/kaneko16.h"
#include "video/sknsspr.h" #include "video/sknsspr.h"
#include "machine/eeprom.h"
class jchan_state : public kaneko16_state class jchan_state : public kaneko16_state
{ {
@ -184,7 +185,6 @@ public:
m_spriteram_2(*this, "spriteram_2"), m_spriteram_2(*this, "spriteram_2"),
m_sprregs_2(*this, "sprregs_2"), m_sprregs_2(*this, "sprregs_2"),
m_mainsub_shared_ram(*this, "mainsub_shared"), m_mainsub_shared_ram(*this, "mainsub_shared"),
m_mcu_ram(*this, "mcu_ram"),
m_ctrl(*this, "ctrl"), m_ctrl(*this, "ctrl"),
m_maincpu(*this,"maincpu"), m_maincpu(*this,"maincpu"),
m_subcpu(*this,"sub") m_subcpu(*this,"sub")
@ -202,20 +202,14 @@ public:
required_shared_ptr<UINT16> m_spriteram_2; required_shared_ptr<UINT16> m_spriteram_2;
required_shared_ptr<UINT16> m_sprregs_2; required_shared_ptr<UINT16> m_sprregs_2;
required_shared_ptr<UINT16> m_mainsub_shared_ram; required_shared_ptr<UINT16> m_mainsub_shared_ram;
UINT8 m_nvram_data[128];
required_shared_ptr<UINT16> m_mcu_ram;
UINT16 m_mcu_com[4];
required_shared_ptr<UINT16> m_ctrl; required_shared_ptr<UINT16> m_ctrl;
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu; required_device<cpu_device> m_subcpu;
sknsspr_device* m_spritegen1; sknsspr_device* m_spritegen1;
sknsspr_device* m_spritegen2; sknsspr_device* m_spritegen2;
DECLARE_WRITE16_MEMBER(jchan_mcu_com0_w);
DECLARE_WRITE16_MEMBER(jchan_mcu_com1_w);
DECLARE_WRITE16_MEMBER(jchan_mcu_com2_w);
DECLARE_WRITE16_MEMBER(jchan_mcu_com3_w);
DECLARE_READ16_MEMBER(jchan_mcu_status_r);
DECLARE_WRITE16_MEMBER(jchan_ctrl_w); DECLARE_WRITE16_MEMBER(jchan_ctrl_w);
DECLARE_READ16_MEMBER(jchan_ctrl_r); DECLARE_READ16_MEMBER(jchan_ctrl_r);
DECLARE_WRITE16_MEMBER(main2sub_cmd_w); DECLARE_WRITE16_MEMBER(main2sub_cmd_w);
@ -224,91 +218,12 @@ public:
DECLARE_WRITE16_MEMBER(jchan_suprnova_sprite32regs_1_w); DECLARE_WRITE16_MEMBER(jchan_suprnova_sprite32regs_1_w);
DECLARE_WRITE16_MEMBER(jchan_suprnova_sprite32_2_w); DECLARE_WRITE16_MEMBER(jchan_suprnova_sprite32_2_w);
DECLARE_WRITE16_MEMBER(jchan_suprnova_sprite32regs_2_w); DECLARE_WRITE16_MEMBER(jchan_suprnova_sprite32regs_2_w);
DECLARE_DRIVER_INIT(jchan); DECLARE_DRIVER_INIT(jchan);
}; };
/***************************************************************************
MCU Code Simulation
***************************************************************************/
static void jchan_mcu_run(running_machine &machine)
{
jchan_state *state = machine.driver_data<jchan_state>();
UINT16 mcu_command = state->m_mcu_ram[0x0010/2]; /* command nb */
UINT16 mcu_offset = state->m_mcu_ram[0x0012/2] / 2; /* offset in shared RAM where MCU will write */
UINT16 mcu_subcmd = state->m_mcu_ram[0x0014/2]; /* sub-command parameter, happens only for command #4 */
logerror("%s : MCU executed command: %04X %04X %04X ",machine.describe_context(),mcu_command,mcu_offset*2,mcu_subcmd);
/*
the only MCU commands found in program code are:
- 0x04: protection: provide data (see below) and code
- 0x03: read DSW
- 0x02: load game settings \ stored in ATMEL AT93C46 chip,
- 0x42: save game settings / 128 bytes serial EEPROM
*/
switch (mcu_command >> 8)
{
case 0x04: /* Protection: during self-test for mcu_subcmd = 0x3d, 0x3e, 0x3f */
{
toxboy_handle_04_subcommand(machine,mcu_subcmd,state->m_mcu_ram);
}
break;
case 0x03: // DSW
{
state->m_mcu_ram[mcu_offset] = machine.root_device().ioport("DSW")->read();
logerror("%s : MCU executed command: %04X %04X (read DSW)\n",machine.describe_context(),mcu_command,mcu_offset*2);
}
break;
case 0x02: /* load game settings from 93C46 EEPROM ($1090-$10dc) */
{
memcpy(&state->m_mcu_ram[mcu_offset], state->m_nvram_data, sizeof(state->m_nvram_data));
logerror("(load NVRAM settings)\n");
}
break;
case 0x42: /* save game settings to 93C46 EEPROM ($50d4) */
{
memcpy(state->m_nvram_data, &state->m_mcu_ram[mcu_offset], sizeof(state->m_nvram_data));
logerror("(save NVRAM settings)\n");
}
break;
default:
logerror("- UNKNOWN COMMAND!!!\n");
}
}
INLINE void jchan_mcu_com_w(address_space *space, offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
{
jchan_state *state = space->machine().driver_data<jchan_state>();
COMBINE_DATA(&state->m_mcu_com[_n_]);
if (state->m_mcu_com[0] != 0xFFFF) return;
if (state->m_mcu_com[1] != 0xFFFF) return;
if (state->m_mcu_com[2] != 0xFFFF) return;
if (state->m_mcu_com[3] != 0xFFFF) return;
memset(state->m_mcu_com, 0, 4 * sizeof( UINT16 ) );
jchan_mcu_run(space->machine());
}
WRITE16_MEMBER(jchan_state::jchan_mcu_com0_w){ jchan_mcu_com_w(&space, offset, data, mem_mask, 0); }
WRITE16_MEMBER(jchan_state::jchan_mcu_com1_w){ jchan_mcu_com_w(&space, offset, data, mem_mask, 1); }
WRITE16_MEMBER(jchan_state::jchan_mcu_com2_w){ jchan_mcu_com_w(&space, offset, data, mem_mask, 2); }
WRITE16_MEMBER(jchan_state::jchan_mcu_com3_w){ jchan_mcu_com_w(&space, offset, data, mem_mask, 3); }
READ16_MEMBER(jchan_state::jchan_mcu_status_r)
{
logerror("cpu '%s' (PC=%06X): read mcu status\n", space.device().tag(), cpu_get_previouspc(&space.device()));
return 0;
}
/*************************************************************************** /***************************************************************************
@ -525,12 +440,12 @@ static ADDRESS_MAP_START( jchan_main, AS_PROGRAM, 16, jchan_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // Work RAM - [A] grid tested, cleared ($9d6-$a54) AM_RANGE(0x200000, 0x20ffff) AM_RAM // Work RAM - [A] grid tested, cleared ($9d6-$a54)
AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_SHARE("mcu_ram") // MCU [G] grid tested, cleared ($a5a-$ad8) AM_RANGE(0x300000, 0x30ffff) AM_DEVREADWRITE( "toybox", kaneko_toybox_device, toybox_mcu_ram_r, toybox_mcu_ram_w )// [G] MCU share
AM_RANGE(0x330000, 0x330001) AM_WRITE(jchan_mcu_com0_w) // _[ these 2 are set to 0xFFFF AM_RANGE(0x330000, 0x330001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com0_w)
AM_RANGE(0x340000, 0x340001) AM_WRITE(jchan_mcu_com1_w) // [ to trigger mcu to run cmd ? AM_RANGE(0x340000, 0x340001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w)
AM_RANGE(0x350000, 0x350001) AM_WRITE(jchan_mcu_com2_w) // _[ these 2 are set to 0xFFFF AM_RANGE(0x350000, 0x350001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x360000, 0x360001) AM_WRITE(jchan_mcu_com3_w) // [ for mcu to return its status ? AM_RANGE(0x360000, 0x360001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
AM_RANGE(0x370000, 0x370001) AM_READ(jchan_mcu_status_r) AM_RANGE(0x370000, 0x370001) AM_DEVREAD( "toybox", kaneko_toybox_device, toybox_mcu_status_r)
AM_RANGE(0x400000, 0x403fff) AM_RAM AM_SHARE("mainsub_shared") AM_RANGE(0x400000, 0x403fff) AM_RAM AM_SHARE("mainsub_shared")
@ -596,8 +511,8 @@ static INPUT_PORTS_START( jchan )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_CONDITION("DSW1",0x8000,EQUALS,0x8000)
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW",0x8000,EQUALS,0x0000) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1",0x8000,EQUALS,0x0000)
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("P2") /* $f00002.w (-> $2000b5.b) */ PORT_START("P2") /* $f00002.w (-> $2000b5.b) */
@ -607,8 +522,8 @@ static INPUT_PORTS_START( jchan )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_CONDITION("DSW1",0x8000,EQUALS,0x8000)
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW",0x8000,EQUALS,0x0000) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1",0x8000,EQUALS,0x0000)
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("SYSTEM") /* $f00004.b */ PORT_START("SYSTEM") /* $f00004.b */
@ -622,20 +537,20 @@ static INPUT_PORTS_START( jchan )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("EXTRA") /* $f00006.b */ PORT_START("EXTRA") /* $f00006.b */
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_CONDITION("DSW1",0x8000,EQUALS,0x8000)
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1",0x8000,EQUALS,0x8000)
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_CONDITION("DSW1",0x8000,EQUALS,0x8000)
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1",0x8000,EQUALS,0x8000)
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_CONDITION("DSW",0x8000,EQUALS,0x0000) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_CONDITION("DSW1",0x8000,EQUALS,0x0000)
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_CONDITION("DSW",0x8000,EQUALS,0x0000) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_CONDITION("DSW1",0x8000,EQUALS,0x0000)
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_CONDITION("DSW",0x8000,EQUALS,0x0000) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_CONDITION("DSW1",0x8000,EQUALS,0x0000)
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_CONDITION("DSW",0x8000,EQUALS,0x0000) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_CONDITION("DSW1",0x8000,EQUALS,0x0000)
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* duplicated Player 1 Button 4 (whatever the layout is) */ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* duplicated Player 1 Button 4 (whatever the layout is) */
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* duplicated Player 2 Button 4 (whatever the layout is) */ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* duplicated Player 2 Button 4 (whatever the layout is) */
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("DSW") /* provided by the MCU - $200098.b <- $300200 */ PORT_START("DSW1") /* provided by the MCU - $200098.b <- $300200 */
PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW1:1" ) PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW1:1" )
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2") PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
@ -663,7 +578,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( jchan2 ) static INPUT_PORTS_START( jchan2 )
PORT_INCLUDE( jchan ) PORT_INCLUDE( jchan )
PORT_MODIFY("DSW") PORT_MODIFY("DSW1")
PORT_DIPUNUSED( 0x4000, IP_ACTIVE_LOW ) /* only read in the "test mode" ("Input Test" screen) */ PORT_DIPUNUSED( 0x4000, IP_ACTIVE_LOW ) /* only read in the "test mode" ("Input Test" screen) */
// PORT_DIPNAME( 0x8000, 0x8000, "Buttons Layout" ) /* impacts $20011e.l once! -> impacts reading of controls at 0x0002a9b2 */ // PORT_DIPNAME( 0x8000, 0x8000, "Buttons Layout" ) /* impacts $20011e.l once! -> impacts reading of controls at 0x0002a9b2 */
INPUT_PORTS_END INPUT_PORTS_END
@ -710,7 +625,10 @@ static MACHINE_CONFIG_START( jchan, jchan_state )
MCFG_DEVICE_ADD("spritegen1", SKNS_SPRITE, 0) MCFG_DEVICE_ADD("spritegen1", SKNS_SPRITE, 0)
MCFG_DEVICE_ADD("spritegen2", SKNS_SPRITE, 0) MCFG_DEVICE_ADD("spritegen2", SKNS_SPRITE, 0)
MCFG_NVRAM_ADD_0FILL("nvram") MCFG_DEVICE_ADD("toybox", KANEKO_TOYBOX, 0)
MCFG_EEPROM_93C46_ADD("eeprom")
/* sound hardware */ /* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@ -804,15 +722,8 @@ ROM_END
DRIVER_INIT_MEMBER( jchan_state, jchan ) DRIVER_INIT_MEMBER( jchan_state, jchan )
{ {
DRIVER_INIT_CALL(decrypt_toybox_rom);
// install these here, putting them in the memory map causes issues
machine().device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x403ffe, 0x403fff, write16_delegate(FUNC(jchan_state::main2sub_cmd_w),this)); machine().device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x403ffe, 0x403fff, write16_delegate(FUNC(jchan_state::main2sub_cmd_w),this));
machine().device("sub")->memory().space(AS_PROGRAM)->install_write_handler(0x400000, 0x400001, write16_delegate(FUNC(jchan_state::sub2main_cmd_w),this)); machine().device("sub")->memory().space(AS_PROGRAM)->install_write_handler(0x400000, 0x400001, write16_delegate(FUNC(jchan_state::sub2main_cmd_w),this));
memset(m_mcu_com, 0, 4 * sizeof( UINT16 ) );
machine().device<nvram_device>("nvram")->set_base(m_nvram_data, sizeof(m_nvram_data));
} }

View File

@ -124,30 +124,19 @@ static MACHINE_RESET( blazeon )
static MACHINE_RESET( bloodwar ) static MACHINE_RESET( bloodwar )
{ {
kaneko16_state *state = machine.driver_data<kaneko16_state>(); kaneko16_state *state = machine.driver_data<kaneko16_state>();
state->VIEW2_2_pri = 1; state->VIEW2_2_pri = 1;
state->m_toybox_mcu_run = bloodwar_mcu_run;
toybox_mcu_init(machine);
} }
static MACHINE_RESET( bonkadv ) static MACHINE_RESET( bonkadv )
{ {
kaneko16_state *state = machine.driver_data<kaneko16_state>(); kaneko16_state *state = machine.driver_data<kaneko16_state>();
state->VIEW2_2_pri = 1; state->VIEW2_2_pri = 1;
state->m_toybox_mcu_run = bonkadv_mcu_run;
toybox_mcu_init(machine);
} }
static MACHINE_RESET( bakubrkr ) static MACHINE_RESET( bakubrkr )
{ {
kaneko16_state *state = machine.driver_data<kaneko16_state>(); kaneko16_state *state = machine.driver_data<kaneko16_state>();
MACHINE_RESET_CALL(kaneko16); MACHINE_RESET_CALL(kaneko16);
state->VIEW2_2_pri = 1; state->VIEW2_2_pri = 1;
} }
@ -155,20 +144,13 @@ static MACHINE_RESET( gtmr )
{ {
kaneko16_state *state = machine.driver_data<kaneko16_state>(); kaneko16_state *state = machine.driver_data<kaneko16_state>();
MACHINE_RESET_CALL(kaneko16); MACHINE_RESET_CALL(kaneko16);
state->VIEW2_2_pri = 1; state->VIEW2_2_pri = 1;
state->m_toybox_mcu_run = gtmr_mcu_run;
toybox_mcu_init(machine);
} }
static MACHINE_RESET( mgcrystl ) static MACHINE_RESET( mgcrystl )
{ {
kaneko16_state *state = machine.driver_data<kaneko16_state>(); kaneko16_state *state = machine.driver_data<kaneko16_state>();
MACHINE_RESET_CALL(kaneko16); MACHINE_RESET_CALL(kaneko16);
state->VIEW2_2_pri = 0; state->VIEW2_2_pri = 0;
} }
@ -190,7 +172,7 @@ static MACHINE_RESET( shogwarr )
***************************************************************************/ ***************************************************************************/
READ16_MEMBER(kaneko16_state::kaneko16_rnd_r) READ16_MEMBER(kaneko16_gtmr_state::kaneko16_rnd_r)
{ {
return machine().rand() & 0xffff; return machine().rand() & 0xffff;
} }
@ -397,7 +379,7 @@ ADDRESS_MAP_END
Blood Warrior Blood Warrior
***************************************************************************/ ***************************************************************************/
WRITE16_MEMBER(kaneko16_state::bloodwar_oki_0_bank_w) WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_oki_0_bank_w)
{ {
device_t *device = machine().device("oki1"); device_t *device = machine().device("oki1");
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
@ -408,7 +390,7 @@ WRITE16_MEMBER(kaneko16_state::bloodwar_oki_0_bank_w)
} }
} }
WRITE16_MEMBER(kaneko16_state::bloodwar_oki_1_bank_w) WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_oki_1_bank_w)
{ {
device_t *device = machine().device("oki2"); device_t *device = machine().device("oki2");
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
@ -419,7 +401,7 @@ WRITE16_MEMBER(kaneko16_state::bloodwar_oki_1_bank_w)
} }
} }
WRITE16_MEMBER(kaneko16_state::bloodwar_coin_lockout_w) WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_coin_lockout_w)
{ {
if (ACCESSING_BITS_8_15) if (ACCESSING_BITS_8_15)
{ {
@ -430,14 +412,14 @@ WRITE16_MEMBER(kaneko16_state::bloodwar_coin_lockout_w)
} }
} }
static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16, kaneko16_state ) static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16, kaneko16_gtmr_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("mcu_ram") // Shared With MCU AM_RANGE(0x200000, 0x20ffff) AM_DEVREADWRITE( "toybox", kaneko_toybox_device, toybox_mcu_ram_r, toybox_mcu_ram_w )
AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(toybox_mcu_com0_w) // To MCU ? AM_RANGE(0x2a0000, 0x2a0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com0_w) // To MCU ?
AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(toybox_mcu_com1_w) AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w)
AM_RANGE(0x2c0000, 0x2c0001) AM_WRITE(toybox_mcu_com2_w) AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(toybox_mcu_com3_w) AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
@ -455,7 +437,7 @@ static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("EXTRA") AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("EXTRA")
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable)
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r) AM_RANGE(0xd00000, 0xd00001) AM_DEVREAD( "toybox", kaneko_toybox_device, toybox_mcu_status_r)
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bloodwar_oki_0_bank_w) AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bloodwar_oki_0_bank_w)
AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bloodwar_oki_1_bank_w) AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bloodwar_oki_1_bank_w)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -465,7 +447,7 @@ ADDRESS_MAP_END
Bonk's Adventure Bonk's Adventure
***************************************************************************/ ***************************************************************************/
WRITE16_MEMBER(kaneko16_state::bonkadv_oki_0_bank_w) WRITE16_MEMBER(kaneko16_gtmr_state::bonkadv_oki_0_bank_w)
{ {
device_t *device = machine().device("oki1"); device_t *device = machine().device("oki1");
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
@ -476,7 +458,7 @@ WRITE16_MEMBER(kaneko16_state::bonkadv_oki_0_bank_w)
} }
} }
WRITE16_MEMBER(kaneko16_state::bonkadv_oki_1_bank_w) WRITE16_MEMBER(kaneko16_gtmr_state::bonkadv_oki_1_bank_w)
{ {
device_t *device = machine().device("oki2"); device_t *device = machine().device("oki2");
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
@ -488,14 +470,14 @@ WRITE16_MEMBER(kaneko16_state::bonkadv_oki_1_bank_w)
} }
static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16, kaneko16_state ) static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16, kaneko16_gtmr_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("mcu_ram") // Shared With MCU AM_RANGE(0x200000, 0x20ffff) AM_DEVREADWRITE( "toybox", kaneko_toybox_device, toybox_mcu_ram_r, toybox_mcu_ram_w ) // Shared With MCU
AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(toybox_mcu_com0_w) // To MCU ? AM_RANGE(0x2a0000, 0x2a0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com0_w) // To MCU ?
AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(toybox_mcu_com1_w) AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w)
AM_RANGE(0x2c0000, 0x2c0001) AM_WRITE(toybox_mcu_com2_w) AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(toybox_mcu_com3_w) AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
@ -513,7 +495,7 @@ static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("UNK") AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("UNK")
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable)
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r) AM_RANGE(0xd00000, 0xd00001) AM_DEVREAD( "toybox", kaneko_toybox_device, toybox_mcu_status_r)
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bonkadv_oki_0_bank_w) AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bonkadv_oki_0_bank_w)
AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bonkadv_oki_1_bank_w) AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bonkadv_oki_1_bank_w)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -524,7 +506,7 @@ ADDRESS_MAP_END
***************************************************************************/ ***************************************************************************/
READ16_MEMBER(kaneko16_state::gtmr_wheel_r) READ16_MEMBER(kaneko16_gtmr_state::gtmr_wheel_r)
{ {
// check 'Controls' dip switch // check 'Controls' dip switch
switch (ioport("DSW1")->read() & 0x1000) switch (ioport("DSW1")->read() & 0x1000)
@ -538,7 +520,7 @@ READ16_MEMBER(kaneko16_state::gtmr_wheel_r)
} }
} }
WRITE16_MEMBER(kaneko16_state::gtmr_oki_0_bank_w) WRITE16_MEMBER(kaneko16_gtmr_state::gtmr_oki_0_bank_w)
{ {
device_t *device = machine().device("oki1"); device_t *device = machine().device("oki1");
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
@ -549,7 +531,7 @@ WRITE16_MEMBER(kaneko16_state::gtmr_oki_0_bank_w)
} }
} }
WRITE16_MEMBER(kaneko16_state::gtmr_oki_1_bank_w) WRITE16_MEMBER(kaneko16_gtmr_state::gtmr_oki_1_bank_w)
{ {
device_t *device = machine().device("oki2"); device_t *device = machine().device("oki2");
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
@ -560,17 +542,17 @@ WRITE16_MEMBER(kaneko16_state::gtmr_oki_1_bank_w)
} }
} }
static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_state ) static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_gtmr_state )
AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM
AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr_wheel_r) // Wheel Value AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr_wheel_r) // Wheel Value
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("mcu_ram") // Shared With MCU AM_RANGE(0x200000, 0x20ffff) AM_DEVREADWRITE( "toybox", kaneko_toybox_device, toybox_mcu_ram_r, toybox_mcu_ram_w ) // Shared With MCU
AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(toybox_mcu_com0_w) // To MCU ? AM_RANGE(0x2a0000, 0x2a0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com0_w) // To MCU ?
AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(toybox_mcu_com1_w) AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w)
AM_RANGE(0x2c0000, 0x2c0001) AM_WRITE(toybox_mcu_com2_w) AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(toybox_mcu_com3_w) AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
AM_RANGE(0x310000, 0x327fff) AM_RAM // AM_RANGE(0x310000, 0x327fff) AM_RAM //
@ -597,7 +579,7 @@ static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) // might do more than that AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) // might do more than that
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r) AM_RANGE(0xd00000, 0xd00001) AM_DEVREAD( "toybox", kaneko_toybox_device, toybox_mcu_status_r)
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w) // Samples Bankswitching AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w) // Samples Bankswitching
AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w) AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w)
@ -608,7 +590,7 @@ ADDRESS_MAP_END
***************************************************************************/ ***************************************************************************/
READ16_MEMBER(kaneko16_state::gtmr2_wheel_r) READ16_MEMBER(kaneko16_gtmr_state::gtmr2_wheel_r)
{ {
switch (ioport("DSW1")->read() & 0x1800) switch (ioport("DSW1")->read() & 0x1800)
{ {
@ -624,22 +606,22 @@ READ16_MEMBER(kaneko16_state::gtmr2_wheel_r)
} }
} }
READ16_MEMBER(kaneko16_state::gtmr2_IN1_r) READ16_MEMBER(kaneko16_gtmr_state::gtmr2_IN1_r)
{ {
return (ioport("P2")->read() & (ioport("FAKE")->read() | ~0x7100)); return (ioport("P2")->read() & (ioport("FAKE")->read() | ~0x7100));
} }
static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_state ) static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_gtmr_state )
AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM
AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr2_wheel_r) // Wheel Value AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr2_wheel_r) // Wheel Value
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("mcu_ram") // Shared With MCU AM_RANGE(0x200000, 0x20ffff) AM_DEVREADWRITE( "toybox", kaneko_toybox_device, toybox_mcu_ram_r, toybox_mcu_ram_w ) // Shared With MCU
AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(toybox_mcu_com0_w) // To MCU ? AM_RANGE(0x2a0000, 0x2a0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com0_w) // To MCU ?
AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(toybox_mcu_com1_w) AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w)
AM_RANGE(0x2c0000, 0x2c0001) AM_WRITE(toybox_mcu_com2_w) AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w)
AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(toybox_mcu_com3_w) AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w)
AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
AM_RANGE(0x310000, 0x327fff) AM_RAM // AM_RANGE(0x310000, 0x327fff) AM_RAM //
@ -665,7 +647,7 @@ static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) // might do more than that AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) // might do more than that
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r) AM_RANGE(0xd00000, 0xd00001) AM_DEVREAD( "toybox", kaneko_toybox_device, toybox_mcu_status_r)
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w) // Samples Bankswitching AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w) // Samples Bankswitching
AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w) AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w)
@ -1891,7 +1873,7 @@ MACHINE_CONFIG_END
VIDEO_UPDATE_AFTER_VBLANK fixes the mangled/wrong colored sprites VIDEO_UPDATE_AFTER_VBLANK fixes the mangled/wrong colored sprites
*/ */
static MACHINE_CONFIG_START( gtmr, kaneko16_state ) static MACHINE_CONFIG_START( gtmr, kaneko16_gtmr_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* verified on pcb */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* verified on pcb */
@ -1899,7 +1881,8 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_state )
MCFG_TIMER_ADD_SCANLINE("scantimer", kaneko16_interrupt, "screen", 0, 1) MCFG_TIMER_ADD_SCANLINE("scantimer", kaneko16_interrupt, "screen", 0, 1)
MCFG_MACHINE_RESET(gtmr) MCFG_MACHINE_RESET(gtmr)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_EEPROM_93C46_ADD("eeprom")
/* video hardware */ /* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
@ -1924,6 +1907,11 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_state )
MCFG_DEVICE_ADD_KC002_SPRITES MCFG_DEVICE_ADD_KC002_SPRITES
MCFG_DEVICE_ADD("toybox", KANEKO_TOYBOX, 0)
kaneko_toybox_device::set_toybox_table(*device, TABLE_NORMAL);
kaneko_toybox_device::set_toybox_gametype(*device, GAME_NORMAL);
MCFG_VIDEO_START(kaneko16) MCFG_VIDEO_START(kaneko16)
/* sound hardware */ /* sound hardware */
@ -1936,6 +1924,22 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MACHINE_CONFIG_END MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( gtmre, gtmr )
MCFG_DEVICE_MODIFY("toybox")
kaneko_toybox_device::set_toybox_table(*device, TABLE_ALT);
MACHINE_CONFIG_END
/***************************************************************************
Great 1000 Miles Rally 2
***************************************************************************/
static MACHINE_CONFIG_DERIVED( gtmr2, gtmre )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(gtmr2_map)
MACHINE_CONFIG_END
/*************************************************************************** /***************************************************************************
Blood Warrior Blood Warrior
***************************************************************************/ ***************************************************************************/
@ -1957,16 +1961,7 @@ static MACHINE_CONFIG_DERIVED( bloodwar, gtmr )
MACHINE_CONFIG_END MACHINE_CONFIG_END
/***************************************************************************
Great 1000 Miles Rally 2
***************************************************************************/
static MACHINE_CONFIG_DERIVED( gtmr2, gtmr )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(gtmr2_map)
MACHINE_CONFIG_END
/*************************************************************************** /***************************************************************************
Bonk's Adventure Bonk's Adventure
@ -1986,6 +1981,10 @@ static MACHINE_CONFIG_DERIVED( bonkadv, gtmr )
MCFG_DEVICE_ADD("kan_hit", KANEKO_HIT, 0) MCFG_DEVICE_ADD("kan_hit", KANEKO_HIT, 0)
kaneko_hit_device::set_type(*device, 0); kaneko_hit_device::set_type(*device, 0);
MCFG_DEVICE_MODIFY("toybox")
kaneko_toybox_device::set_toybox_gametype(*device, GAME_BONK);
MACHINE_CONFIG_END MACHINE_CONFIG_END
/*************************************************************************** /***************************************************************************
@ -3709,7 +3708,7 @@ ROM_START( brapboys ) /* World 'normal version', no rom sub board, serial RB92E0
ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) ) ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) )
ROM_LOAD( "rb-023.u78", 0x300000, 0x100000, CRC(0e6530c5) SHA1(72bff46f0672927e540f4f3546ae533dd0a231e0) ) ROM_LOAD( "rb-023.u78", 0x300000, 0x100000, CRC(0e6530c5) SHA1(72bff46f0672927e540f4f3546ae533dd0a231e0) )
ROM_LOAD( "rb-024.u79", 0x400000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) // correct, both halves identical when dumped as larger ROM_LOAD( "rb-024.u79", 0x400000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) // correct, both halves identical when dumped as larger
ROM_LOAD( "rb-024.u79", 0x480000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) // is it correct to mirror like this? ROM_RELOAD( 0x480000, 0x080000 )
ROM_LOAD( "rb-025.01.u80", 0x500000, 0x040000, CRC(36cd6b90) SHA1(45c50f2652726ded67c9c24185a71a6367e09270) ) // eprom labeled RB-025/U80-01 (green label), contains title logo for this version ROM_LOAD( "rb-025.01.u80", 0x500000, 0x040000, CRC(36cd6b90) SHA1(45c50f2652726ded67c9c24185a71a6367e09270) ) // eprom labeled RB-025/U80-01 (green label), contains title logo for this version
ROM_REGION( 0x400000, "gfx2", 0 ) /* Tiles (scrambled) */ ROM_REGION( 0x400000, "gfx2", 0 ) /* Tiles (scrambled) */
@ -3743,7 +3742,7 @@ ROM_START( brapboysj ) /* Japanese 'special version' with EXROM sub board; seria
ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) ) ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) )
ROM_LOAD( "rb-023.u78", 0x300000, 0x100000, CRC(0e6530c5) SHA1(72bff46f0672927e540f4f3546ae533dd0a231e0) ) ROM_LOAD( "rb-023.u78", 0x300000, 0x100000, CRC(0e6530c5) SHA1(72bff46f0672927e540f4f3546ae533dd0a231e0) )
ROM_LOAD( "rb-024.u79", 0x400000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) // correct, both halves identical when dumped as larger ROM_LOAD( "rb-024.u79", 0x400000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) // correct, both halves identical when dumped as larger
ROM_LOAD( "rb-024.u79", 0x480000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) // is it correct to mirror like this? ROM_RELOAD( 0x480000, 0x080000 )
ROM_LOAD( "rb-025.u80a", 0x500000, 0x080000, CRC(aa795ba5) SHA1(c5256dcceded2e76f548b60c18e51d0dd0209d81) ) // eprom, special title screen, really at location next to capacitor C4 on Z01DK-EXROM daughterboard; // fill in suffix! ROM_LOAD( "rb-025.u80a", 0x500000, 0x080000, CRC(aa795ba5) SHA1(c5256dcceded2e76f548b60c18e51d0dd0209d81) ) // eprom, special title screen, really at location next to capacitor C4 on Z01DK-EXROM daughterboard; // fill in suffix!
ROM_LOAD( "rb-026.u80b", 0x580000, 0x080000, CRC(bb7604d4) SHA1(57d51ce4ea2000f9a50bae326cfcb66ec494249f) ) // eprom, logs that bounce past, really at location next to capacitor C5 on Z01DK-EXROM daughterboard; // fill in suffix! ROM_LOAD( "rb-026.u80b", 0x580000, 0x080000, CRC(bb7604d4) SHA1(57d51ce4ea2000f9a50bae326cfcb66ec494249f) ) // eprom, logs that bounce past, really at location next to capacitor C5 on Z01DK-EXROM daughterboard; // fill in suffix!
@ -3776,7 +3775,7 @@ ROM_START( brapboysu ) /* US 'special version' with EXROM sub board; Serial RB92
ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) ) // rb-022 0015 mask rom ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) ) // rb-022 0015 mask rom
ROM_LOAD( "rb-023.u78", 0x300000, 0x100000, CRC(0e6530c5) SHA1(72bff46f0672927e540f4f3546ae533dd0a231e0) ) // rb-023 0016 mask rom ROM_LOAD( "rb-023.u78", 0x300000, 0x100000, CRC(0e6530c5) SHA1(72bff46f0672927e540f4f3546ae533dd0a231e0) ) // rb-023 0016 mask rom
ROM_LOAD( "rb-024.u79", 0x400000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) // rb-023 0017 w29 mask rom, both halves identical when dumped as larger ROM_LOAD( "rb-024.u79", 0x400000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) // rb-023 0017 w29 mask rom, both halves identical when dumped as larger
ROM_LOAD( "rb-024.u79", 0x480000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) // is it correct to mirror like this? ROM_RELOAD( 0x480000, 0x080000 )
ROM_LOAD( "rb-025.10.u80a", 0x500000, 0x080000, CRC(140FE400) SHA1(A764767AACEC2F895F93256AB82125962C272951) ) // eprom labeled RB-025/U80a10 (red label), really at location next to capacitor C4 on Z01DK-EXROM daughterboard ROM_LOAD( "rb-025.10.u80a", 0x500000, 0x080000, CRC(140FE400) SHA1(A764767AACEC2F895F93256AB82125962C272951) ) // eprom labeled RB-025/U80a10 (red label), really at location next to capacitor C4 on Z01DK-EXROM daughterboard
ROM_LOAD( "rb-026.10.u80b", 0x580000, 0x080000, CRC(bb7604d4) SHA1(57d51ce4ea2000f9a50bae326cfcb66ec494249f) ) // eprom labeled RB-026/U80b10 (red label), matches japan version of rb-026, really at location next to capacitor C5 on Z01DK-EXROM daughterboard ROM_LOAD( "rb-026.10.u80b", 0x580000, 0x080000, CRC(bb7604d4) SHA1(57d51ce4ea2000f9a50bae326cfcb66ec494249f) ) // eprom labeled RB-026/U80b10 (red label), matches japan version of rb-026, really at location next to capacitor C5 on Z01DK-EXROM daughterboard
@ -3875,18 +3874,10 @@ ROM_START( bonkadv )
ROM_LOAD( "pc603108.102", 0x200000, 0x100000, CRC(58458985) SHA1(9a846d604ba901eb2a59d2b6cd9c42e3b43adb6a) ) ROM_LOAD( "pc603108.102", 0x200000, 0x100000, CRC(58458985) SHA1(9a846d604ba901eb2a59d2b6cd9c42e3b43adb6a) )
ROM_END ROM_END
DRIVER_INIT_MEMBER(kaneko16_state,bloodwar)
{
machine().device<nvram_device>("nvram")->set_base(m_nvram_save, sizeof(m_nvram_save));
DRIVER_INIT_CALL(samplebank);
DRIVER_INIT_CALL(decrypt_toybox_rom);
}
DRIVER_INIT_MEMBER(kaneko16_state,gtmr2) DRIVER_INIT_MEMBER( kaneko16_gtmr_state, gtmr )
{ {
machine().device<nvram_device>("nvram")->set_base(m_nvram_save, sizeof(m_nvram_save));
DRIVER_INIT_CALL(samplebank); DRIVER_INIT_CALL(samplebank);
DRIVER_INIT_CALL(decrypt_toybox_rom_alt);
} }
@ -3920,7 +3911,6 @@ DRIVER_INIT_MEMBER(kaneko16_shogwarr_state,brapboys)
***************************************************************************/ ***************************************************************************/
/* Working games */
GAME( 1991, berlwall, 0, berlwall, berlwall, kaneko16_berlwall_state, berlwall, ROT0, "Kaneko", "The Berlin Wall", 0 ) GAME( 1991, berlwall, 0, berlwall, berlwall, kaneko16_berlwall_state, berlwall, ROT0, "Kaneko", "The Berlin Wall", 0 )
GAME( 1991, berlwallt,berlwall, berlwall, berlwalt, kaneko16_berlwall_state, berlwall, ROT0, "Kaneko", "The Berlin Wall (bootleg ?)", 0 ) GAME( 1991, berlwallt,berlwall, berlwall, berlwalt, kaneko16_berlwall_state, berlwall, ROT0, "Kaneko", "The Berlin Wall (bootleg ?)", 0 )
@ -3930,18 +3920,18 @@ GAME( 1991, mgcrystlj,mgcrystl, mgcrystl, mgcrystl, kaneko16_state, kaneko16,
GAME( 1992, blazeon, 0, blazeon, blazeon, kaneko16_state, kaneko16, ROT0, "Atlus", "Blaze On (Japan)", 0 ) GAME( 1992, blazeon, 0, blazeon, blazeon, kaneko16_state, kaneko16, ROT0, "Atlus", "Blaze On (Japan)", 0 )
GAME( 1992, explbrkr, 0, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Explosive Breaker", 0 ) GAME( 1992, explbrkr, 0, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Explosive Breaker", 0 )
GAME( 1992, bakubrkr, explbrkr, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Bakuretsu Breaker", 0 ) GAME( 1992, bakubrkr, explbrkr, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Bakuretsu Breaker", 0 )
GAME( 1994, bonkadv, 0, bonkadv , bonkadv, kaneko16_state, bloodwar, ROT0, "Kaneko", "B.C. Kid / Bonk's Adventure / Kyukyoku!! PC Genjin", 0 )
GAME( 1994, bloodwar, 0, bloodwar, bloodwar, kaneko16_state, bloodwar, ROT0, "Kaneko", "Blood Warrior", 0 )
GAME( 1994, oedfight, bloodwar, bloodwar, bloodwar, kaneko16_state, bloodwar, ROT0, "Kaneko", "Oedo Fight (Japan Bloodshed Ver.)", 0 )
GAME( 1994, gtmr, 0, gtmr, gtmr, kaneko16_state, bloodwar, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/07/18)", 0 )
GAME( 1994, gtmra, gtmr, gtmr, gtmr, kaneko16_state, bloodwar, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/06/13)", 0 )
GAME( 1994, gtmre, gtmr, gtmr, gtmr, kaneko16_state, gtmr2, ROT0, "Kaneko", "Great 1000 Miles Rally: Evolution Model!!! (94/09/06)", 0 )
GAME( 1994, gtmrusa, gtmr, gtmr, gtmr, kaneko16_state, gtmr2, ROT0, "Kaneko", "Great 1000 Miles Rally: U.S.A Version! (94/09/06)", 0 ) // U.S.A version seems part of the title, rather than region
GAME( 1995, gtmr2, 0, gtmr2, gtmr2, kaneko16_state, gtmr2, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/05/24)", 0 )
GAME( 1995, gtmr2a, gtmr2, gtmr2, gtmr2, kaneko16_state, gtmr2, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/04/04)", 0 )
GAME( 1995, gtmr2u, gtmr2, gtmr2, gtmr2, kaneko16_state, gtmr2, ROT0, "Kaneko", "Great 1000 Miles Rally 2 USA (95/05/18)", 0 )
// some functionality of the protection chip still needs investigating on these, but they seem to be playable GAME( 1994, bonkadv, 0, bonkadv , bonkadv, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "B.C. Kid / Bonk's Adventure / Kyukyoku!! PC Genjin", 0 )
GAME( 1994, bloodwar, 0, bloodwar, bloodwar, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Blood Warrior", 0 )
GAME( 1994, oedfight, bloodwar, bloodwar, bloodwar, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Oedo Fight (Japan Bloodshed Ver.)", 0 )
GAME( 1994, gtmr, 0, gtmr, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/07/18)", 0 )
GAME( 1994, gtmra, gtmr, gtmr, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/06/13)", 0 )
GAME( 1994, gtmre, gtmr, gtmre, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Great 1000 Miles Rally: Evolution Model!!! (94/09/06)", 0 )
GAME( 1994, gtmrusa, gtmr, gtmre, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Great 1000 Miles Rally: U.S.A Version! (94/09/06)", 0 ) // U.S.A version seems part of the title, rather than region
GAME( 1995, gtmr2, 0, gtmr2, gtmr2, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/05/24)", 0 )
GAME( 1995, gtmr2a, gtmr2, gtmr2, gtmr2, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/04/04)", 0 )
GAME( 1995, gtmr2u, gtmr2, gtmr2, gtmr2, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Great 1000 Miles Rally 2 USA (95/05/18)", 0 )
GAME( 1992, brapboys, 0, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys (World)", 0 ) GAME( 1992, brapboys, 0, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys (World)", 0 )
GAME( 1992, brapboysj,brapboys, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys Special (Japan)", 0 ) GAME( 1992, brapboysj,brapboys, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys Special (Japan)", 0 )
GAME( 1992, brapboysu,brapboys, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys Special (US)", 0 ) GAME( 1992, brapboysu,brapboys, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys Special (US)", 0 )

View File

@ -245,10 +245,7 @@ ROM_END
ROM_START( m4ambass )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "ambassador.bin", 0x0000, 0x010000, CRC(310313ac) SHA1(8e11515615754090d716b428adc4e2718ee1211d) )
ROM_END
ROM_START( m4amhiwy ) ROM_START( m4amhiwy )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -358,10 +355,6 @@ ROM_END
ROM_START( m4atlan )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dat14.bin", 0x0000, 0x010000, CRC(d91fb9b2) SHA1(a06a868a17f84e2a012b0fe28025458e4f899c1d) )
ROM_END
ROM_START( m4bagtel ) ROM_START( m4bagtel )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -483,10 +476,6 @@ ROM_START( m4berser )
ROM_LOAD( "bessnd.p1", 0x0000, 0x080000, CRC(4eb15200) SHA1(1997a304df5219153418369bd8cc4fd169fb4bd4) ) ROM_LOAD( "bessnd.p1", 0x0000, 0x080000, CRC(4eb15200) SHA1(1997a304df5219153418369bd8cc4fd169fb4bd4) )
ROM_END ROM_END
ROM_START( m4bigbn )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dbb12.bin", 0x0000, 0x010000, CRC(7acec20d) SHA1(5f3a21227329608c0afdb5facac977dee94ab9f5) )
ROM_END
ROM_START( m4bigchd ) ROM_START( m4bigchd )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -521,10 +510,6 @@ ROM_START( m4blkcat )
ROM_END ROM_END
ROM_START( m4bjc )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dbc11.bin", 0x0000, 0x010000, CRC(ce28b677) SHA1(81006768e937b42f051e580f093b7182ad59236a) )
ROM_END
ROM_START( m4bjac ) ROM_START( m4bjac )
@ -646,10 +631,6 @@ ROM_START( m4brktak )
ROM_LOAD( "b-t v1-0 p2", 0x8000, 0x004000, CRC(7465cc6f) SHA1(f984e41c310bc58d7a668ec9f31c238fbf5de9c6) ) ROM_LOAD( "b-t v1-0 p2", 0x8000, 0x004000, CRC(7465cc6f) SHA1(f984e41c310bc58d7a668ec9f31c238fbf5de9c6) )
ROM_END ROM_END
ROM_START( m4brdway )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dbr11.bin", 0x0000, 0x010000, CRC(5cbb8a0f) SHA1(bee8b2b7d70c24f98b7626caa278cb84136941a4) )
ROM_END
ROM_START( m4brook ) ROM_START( m4brook )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -790,74 +771,6 @@ ROM_START( m4calicl )
ROM_END ROM_END
ROM_START( m4cashat )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "csa12y.p1", 0x0000, 0x020000, CRC(0374584a) SHA1(446e1d122d5b38e4ee11d98a4235d7198d98b541) )
ROM_REGION( 0x20000, "altrevs", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
ROM_LOAD( "caa22ad.p1", 0x0000, 0x020000, CRC(b6274874) SHA1(7c2dc0f3e8e7bb76f3b90300141b320fa0ca39ac) )
ROM_LOAD( "caa22b.p1", 0x0000, 0x020000, CRC(e7f6f5e5) SHA1(fc16b50ae00525a3c84c0cbf7b418898cc5db1bc) )
ROM_LOAD( "caa22bd.p1", 0x0000, 0x020000, CRC(581b2b6f) SHA1(55f910c7646d5e7d3be6ffd5b4ec0f04fb98b82e) )
ROM_LOAD( "caa22d.p1", 0x0000, 0x020000, CRC(cc494044) SHA1(13ff215f41833aa133fe9d120792c834d1e0752b) )
ROM_LOAD( "caa22dh.p1", 0x0000, 0x020000, CRC(18ae14fa) SHA1(20a8f197075ec153ac116b9a85e3591d9d4d045d) )
ROM_LOAD( "caa22dk.p1", 0x0000, 0x020000, CRC(71fa4ee7) SHA1(ddf2cee47f93cc5794d64922658d5892993c8d2f) )
ROM_LOAD( "caa22dr.p1", 0x0000, 0x020000, CRC(c2f5f5d6) SHA1(aebedb84ae388a1f0c558d36893d1341c1959594) )
ROM_LOAD( "caa22dy.p1", 0x0000, 0x020000, CRC(3b3de6b1) SHA1(d72ce7851969466063c6d7952787691a7c44c9dd) )
ROM_LOAD( "caa22h.p1", 0x0000, 0x020000, CRC(a743ca70) SHA1(e4b5ee02524873c2ccb66b4bfca39464c23eb43e) )
ROM_LOAD( "caa22k.p1", 0x0000, 0x020000, CRC(ce17906d) SHA1(18a302132e683b00509982c09c6e3b00ae1201a0) )
ROM_LOAD( "caa22r.p1", 0x0000, 0x020000, CRC(7d182b5c) SHA1(801d1b032e94cc45302a9f84ba7f9ce2b74f6449) )
ROM_LOAD( "caa22s.p1", 0x0000, 0x020000, CRC(e7edf653) SHA1(f2bdf45cc18ad4b45b47d2b2b4641460fcdfa963) )
ROM_LOAD( "caa22y.p1", 0x0000, 0x020000, CRC(84d0383b) SHA1(791666ce17fd65067df446a3320efd22bce23925) )
ROM_LOAD( "caa23ad.p1", 0x0000, 0x020000, CRC(a8641c35) SHA1(18dad4634e27e4f0b791c331b9efcf5e1d56d3bb) )
ROM_LOAD( "caa23b.p1", 0x0000, 0x020000, CRC(a867c129) SHA1(9b0b577938ae0500a8b80211710ed5c0b2a597fa) )
ROM_LOAD( "caa23bd.p1", 0x0000, 0x020000, CRC(46587f2e) SHA1(b14ed6b810ba3039824a0d13c5b75fedd40803b3) )
ROM_LOAD( "caa23d.p1", 0x0000, 0x020000, CRC(83d87488) SHA1(1e13a47de4837e42650c6a4a13a838eb68d0beae) )
ROM_LOAD( "caa23dh.p1", 0x0000, 0x020000, CRC(06ed40bb) SHA1(68f2923c4ecd91231cc66a4be7c797d7b2a46ae0) )
ROM_LOAD( "caa23dk.p1", 0x0000, 0x020000, CRC(6fb91aa6) SHA1(5966be8aa9d5348bbdcb85b21acceaabc3c02602) )
ROM_LOAD( "caa23dr.p1", 0x0000, 0x020000, CRC(dcb6a197) SHA1(a18af78ba604b53a2af1e9b8dfdc6858964f631d) )
ROM_LOAD( "caa23dy.p1", 0x0000, 0x020000, CRC(257eb2f0) SHA1(0a5f9743afb5dd7392425951580532ea5f8f17f1) )
ROM_LOAD( "caa23h.p1", 0x0000, 0x020000, CRC(e8d2febc) SHA1(14fe5e1699fef74145f2f6fff61e75fe3e3a0b3b) )
ROM_LOAD( "caa23k.p1", 0x0000, 0x020000, CRC(8186a4a1) SHA1(0d8f59df0fb5a1044f6fb7d81f50f9c9b94add9b) )
ROM_LOAD( "caa23r.p1", 0x0000, 0x020000, CRC(32891f90) SHA1(c832c2610606bc5a3beeff8f85c31af496b14427) )
ROM_LOAD( "caa23s.p1", 0x0000, 0x020000, CRC(26a49cdd) SHA1(ee28a22eeb8c4e8ddf041122505f9846d6b6d7d6) )
ROM_LOAD( "caa23y.p1", 0x0000, 0x020000, CRC(cb410cf7) SHA1(31d34a766939a9b2a23be00c2ffd658d854b3ab4) )
ROM_LOAD( "casattack8.bin", 0x0000, 0x020000, CRC(e29ea247) SHA1(ad00ea3bfd2eab51b20fd786cb1ce84de0d98173) )
ROM_LOAD( "catt15g", 0x0000, 0x020000, CRC(3f7a8863) SHA1(df8ed393aeb3a5ec3fd5bdc01c9dbbb630e6d254) )
ROM_LOAD( "catt15t", 0x0000, 0x020000, CRC(c6760c3a) SHA1(b7f4a3af52faf7e430e5b4ec75e2dc97e3f07dc0) )
ROM_LOAD( "csa11ad.p1", 0x0000, 0x020000, CRC(7c1daa59) SHA1(9c0479094ba2f985803e58360b738b0baa2e410a) )
ROM_LOAD( "csa11b.p1", 0x0000, 0x020000, CRC(c740daba) SHA1(afa5bdf9f6aacb3a5126aa828e4d0d2518efe663) )
ROM_LOAD( "csa11bd.p1", 0x0000, 0x020000, CRC(55fccfd1) SHA1(b7c748573e5fb32a6be5e069e7f165a11c62b7d5) )
ROM_LOAD( "csa11d.p1", 0x0000, 0x020000, CRC(ecff6f1b) SHA1(3f37d8e20d5663e376c9dc5876a910a320edcf7d) )
ROM_LOAD( "csa11dh.p1", 0x0000, 0x020000, CRC(bbc0acca) SHA1(80d95505041fd4c869f9d835d0527070f2f582d9) )
ROM_LOAD( "csa11dk.p1", 0x0000, 0x020000, CRC(1549f044) SHA1(22bc130106a23d0e9c354b4aa97d7b7fd8776082) )
ROM_LOAD( "csa11dr.p1", 0x0000, 0x020000, CRC(cf121168) SHA1(aa52b528ac565684399dc58aeb56691457727035) )
ROM_LOAD( "csa11dy.p1", 0x0000, 0x020000, CRC(36da020f) SHA1(ca202c7127450d905e4717776e1f1d32fa89279b) )
ROM_LOAD( "csa11h.p1", 0x0000, 0x020000, CRC(297cb9a1) SHA1(63460eed75242fc7c27ee1fc9da28221e7bb21b1) )
ROM_LOAD( "csa11k.p1", 0x0000, 0x020000, CRC(87f5e52f) SHA1(30b7f8c17198045bba30aaabbe74b3c1dc7d0320) )
ROM_LOAD( "csa11r.p1", 0x0000, 0x020000, CRC(5dae0403) SHA1(6f2238f0fe0797bf0926044bb251fed6f97dbed6) )
ROM_LOAD( "csa11s.p1", 0x0000, 0x020000, CRC(bef7a119) SHA1(88fc2003a7adda928e2e0fb78db32c7ffcbda924) )
ROM_LOAD( "csa11y.p1", 0x0000, 0x020000, CRC(a4661764) SHA1(740be82275358b8e3dcec5982b18a083d043d99d) )
ROM_LOAD( "csa12ad.p1", 0x0000, 0x020000, CRC(b15c5c64) SHA1(7a8c7b929ecaf0e14d9a5d6cdea303f5e3fc1dec) )
ROM_LOAD( "csa12b.p1", 0x0000, 0x020000, CRC(60529594) SHA1(a5e70b55b8df6a94c963b970c3a4398b64b0286b) )
ROM_LOAD( "csa12bd.p1", 0x0000, 0x020000, CRC(98bd39ec) SHA1(ebc5a2690f1453adae0f8faee0159a01df91dd6e) )
ROM_LOAD( "csa12d.p1", 0x0000, 0x020000, CRC(4bed2035) SHA1(d5438d372222c4258ffb6487ba64eed9ce190133) )
ROM_LOAD( "csa12dh.p1", 0x0000, 0x020000, CRC(76815af7) SHA1(6edd4a866a1b038a51cfcc9ed8cef48886b393fb) )
ROM_LOAD( "csa12dk.p1", 0x0000, 0x020000, CRC(d8080679) SHA1(92babec65fbcee37ff8136a5c4b1e5f4ecd2f5a6) )
ROM_LOAD( "csa12dr.p1", 0x0000, 0x020000, CRC(0253e755) SHA1(742174137549147ff23fbc9ba1b835cbeaffa602) )
ROM_LOAD( "csa12dy.p1", 0x0000, 0x020000, CRC(fb9bf432) SHA1(5f519871cc50cf9f49ec652d620267cd11ab155b) )
ROM_LOAD( "csa12h.p1", 0x0000, 0x020000, CRC(8e6ef68f) SHA1(b6ac0993938bb065f02498a71628cf532085b347) )
ROM_LOAD( "csa12k.p1", 0x0000, 0x020000, CRC(20e7aa01) SHA1(093786b0992c1d9ce5e2d2cfad1eaf1d8e6dc733) )
ROM_LOAD( "csa12r.p1", 0x0000, 0x020000, CRC(fabc4b2d) SHA1(3710b7b4bf56e46c60a60fcae82342bf201e38dc) )
ROM_LOAD( "csa12s.p1", 0x0000, 0x020000, CRC(61c8af36) SHA1(d81a4056b573194a8627a3618f805d379140ff6a) )
ROM_REGION( 0x48, "fakechr", 0 )
ROM_LOAD( "tri98.chr", 0x0000, 0x000048, CRC(8a4532a8) SHA1(c128fd513bbcba68a1c75a11e09a54ba1d23d6f4) )
ROM_REGION( 0x100000, "msm6376", 0 )
ROM_LOAD( "cas1.hex", 0x000000, 0x080000, CRC(4711c483) SHA1(af1ceb317b7bb1c2d0c3f7a99049679c356e1860) )
ROM_LOAD( "cas2.hex", 0x080000, 0x080000, CRC(26ec235c) SHA1(51de955e5def47b82ac8891d09dc0b0e5e19c01d) )
ROM_END
ROM_START( m4cashln ) ROM_START( m4cashln )
ROM_REGION( 0x20000, "maincpu", 0 ) ROM_REGION( 0x20000, "maincpu", 0 )
@ -1037,11 +950,6 @@ ROM_START( m4chasei )
ROM_LOAD( "cha.s2", 0x080000, 0x080000, CRC(542863fa) SHA1(501d66b2badb5036bb5dd8bac3cdb681f630a982) ) ROM_LOAD( "cha.s2", 0x080000, 0x080000, CRC(542863fa) SHA1(501d66b2badb5036bb5dd8bac3cdb681f630a982) )
ROM_END ROM_END
ROM_START( m4cheryo )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dch14.bin", 0x0000, 0x010000, CRC(47333745) SHA1(479bec721ccaa2c4b11f3022d3d1eb12de92ac81) )
ROM_END
ROM_START( m4c9c ) ROM_START( m4c9c )
@ -1293,10 +1201,6 @@ ROM_END
ROM_START( m4exprs )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dxp20.bin", 0x0000, 0x010000, CRC(09e68942) SHA1(2253ab76286b7c7af34ff99cc6d8e60b26edcacb) )
ROM_END
ROM_START( m4exgam ) ROM_START( m4exgam )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -1445,11 +1349,6 @@ ROM_START( m4gbust )
ROM_END ROM_END
ROM_START( m4giant )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dgi21.bin", 0x0000, 0x010000, CRC(07d8685a) SHA1(1b51db748543f2e4b6b7d7ad16b77864bbfe5a66) )
ROM_END
ROM_START( m4gclue ) ROM_START( m4gclue )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "c2002ad.p1", 0x0000, 0x010000, CRC(39507216) SHA1(dc49d9cea63cd5e88e4076bfca3aae88521056be) ) ROM_LOAD( "c2002ad.p1", 0x0000, 0x010000, CRC(39507216) SHA1(dc49d9cea63cd5e88e4076bfca3aae88521056be) )
@ -1607,10 +1506,6 @@ ROM_START( m4thehit )
ROM_LOAD( "dth17.bin", 0x0000, 0x010000, CRC(93947de4) SHA1(e04c34edf39d264e3fa91bf6dfd757088e1c08e4) ) ROM_LOAD( "dth17.bin", 0x0000, 0x010000, CRC(93947de4) SHA1(e04c34edf39d264e3fa91bf6dfd757088e1c08e4) )
ROM_END ROM_END
ROM_START( m4holdon )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dho25.bin", 0x0000, 0x010000, CRC(9c22690d) SHA1(a2474dd1901628551804ba2bf652a8a5a1de5739) )
ROM_END
ROM_START( m4holdtm ) ROM_START( m4holdtm )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -1842,10 +1737,7 @@ ROM_START( m4lastrp )
ROM_END ROM_END
ROM_START( m4libty )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dlt10.bin", 0x0000, 0x010000, CRC(25d91c01) SHA1(788ba8669bae5b4cdfb7231c7225d6745038a575) )
ROM_END
ROM_START( m4lineup ) ROM_START( m4lineup )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -2175,10 +2067,6 @@ ROM_END
ROM_START( m4meglnk )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dml20.bin", 0x0000, 0x010000, CRC(bbf48b45) SHA1(0ca9adf6a4171efad1af7b411e713dc35c654d30) )
ROM_END
ROM_START( m4milclb ) ROM_START( m4milclb )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -2198,10 +2086,7 @@ ROM_END
ROM_START( m4multwy )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dmu17.bin", 0x0000, 0x010000, CRC(336b128e) SHA1(1d8268bfa0ffee62c76ffbf0ee89731626cf90ca) )
ROM_END
ROM_START( m4nhtt ) ROM_START( m4nhtt )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -2263,59 +2148,6 @@ ROM_START( m4nudgew )
ROM_END ROM_END
ROM_START( m4nnwwc )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "cn302c.p1", 0x0000, 0x010000, CRC(fd9de050) SHA1(14c80deba1396aa5be0a1d02964ecd4b946f2ee8) )
ROM_REGION( 0x10000, "altrevs", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
ROM_LOAD( "cf302ad.p1", 0x0000, 0x010000, CRC(6c6aa0cd) SHA1(5a58a19c35b0b195f3b4e7a21f57ca61d45ec1fb) )
ROM_LOAD( "cf302b.p1", 0x0000, 0x010000, CRC(9ca07939) SHA1(6eb0a5675bb803a11c4c874dc0516d94c48194b7) )
ROM_LOAD( "cf302bd.p1", 0x0000, 0x010000, CRC(8ba33b7d) SHA1(ebfb62a390de512dc1482cfb9ab64196cbcc5831) )
ROM_LOAD( "cf302c.p1", 0x0000, 0x010000, CRC(26be2dc4) SHA1(157ca96ebd36f2fbfb501945d0351cc3be38f3b7) )
ROM_LOAD( "cf302d.p1", 0x0000, 0x010000, CRC(b52d5b47) SHA1(1583963b0bac1288bd20ed0550ad793be0980b03) )
ROM_LOAD( "cf302dk.p1", 0x0000, 0x010000, CRC(c3d4c74d) SHA1(9a34c1f2fabb20da17988f63c9190ec4dd0b65fb) )
ROM_LOAD( "cf302dr.p1", 0x0000, 0x010000, CRC(0b25e6b9) SHA1(5fd42abbe985dbdcfe09da50673551330dd26175) )
ROM_LOAD( "cf302dy.p1", 0x0000, 0x010000, CRC(420b47c1) SHA1(0cb1a843cec3ace21d806fe98212250201a72f12) )
ROM_LOAD( "cf302k.p1", 0x0000, 0x010000, CRC(07ca4c45) SHA1(8f6ee3c17527b05a6652845019919d490cc00c64) )
ROM_LOAD( "cf302r.p1", 0x0000, 0x010000, CRC(e09f43bd) SHA1(65dcdf8d223936c4415ddc3f734b83367d6b8db7) )
ROM_LOAD( "cf302s.p1", 0x0000, 0x010000, CRC(7a3e8ead) SHA1(590dc78b98f9928d6fa87ef661234f88dccfdff8) )
ROM_LOAD( "cf302y.p1", 0x0000, 0x010000, CRC(c1063a32) SHA1(e1c8fc463b1a1db87110f272a8727435f9d9b97a) )
ROM_LOAD( "ch302ad.p1", 0x0000, 0x010000, CRC(20405f4e) SHA1(7f87c881f428f704c98b0f4be459980062ccd29a) )
ROM_LOAD( "ch302b.p1", 0x0000, 0x010000, CRC(cf7543ac) SHA1(2fe810741bfc18f800ad8028724218557d93a830) )
ROM_LOAD( "ch302bd.p1", 0x0000, 0x010000, CRC(4c3e5664) SHA1(87a1f2133cad624683dac89f1da85d70b018f846) )
ROM_LOAD( "ch302c.p1", 0x0000, 0x010000, CRC(dcde4d0a) SHA1(d1535f8754d2c0f8183c2c9db97edafdcdfed82e) )
ROM_LOAD( "ch302d.p1", 0x0000, 0x010000, CRC(e1a02108) SHA1(fa8271a1246a3ae1289bb314494743cfec31f4e2) )
ROM_LOAD( "ch302dk.p1", 0x0000, 0x010000, CRC(a3f636af) SHA1(c3de325ef5baa3cccd4c9997e615e87521b9e537) )
ROM_LOAD( "ch302dr.p1", 0x0000, 0x010000, CRC(0620b0c0) SHA1(31aabba5f5b096254908221f884b5088a5a6e883) )
ROM_LOAD( "ch302dy.p1", 0x0000, 0x010000, CRC(9b4b982e) SHA1(c7c9c501eb1c936ffb8bc2fe1fe9258e92b1d548) )
ROM_LOAD( "ch302k.p1", 0x0000, 0x010000, CRC(908d8b10) SHA1(a80a5ce1a83d05f1e68e66d14bacc424bc833aa7) )
ROM_LOAD( "ch302r.p1", 0x0000, 0x010000, CRC(c31c4c28) SHA1(e94c7588211044dae7c5ac587e6232b0ace2fc7b) )
ROM_LOAD( "ch302s.p1", 0x0000, 0x010000, CRC(e7d0ceb2) SHA1(b75d58136b9e1e4bfde86730ef4e95bc98494813) )
ROM_LOAD( "ch302y.p1", 0x0000, 0x010000, CRC(5e7764c6) SHA1(05a61a57ac906cbea1d72fffd1c8ea707852b895) )
ROM_LOAD( "cn302ad.p1", 0x0000, 0x010000, CRC(7a6acd9b) SHA1(9a1f0ed19d66428c6b541ce1c8e169d9b4be3ef1) )
ROM_LOAD( "cn302b.p1", 0x0000, 0x010000, CRC(b69cb520) SHA1(7313f2740960ca86ecea8609fe8fd58d84a3248c) )
ROM_LOAD( "cn302bd.p1", 0x0000, 0x010000, CRC(ab828a0b) SHA1(53fa6dad9bdae1d46479596c98cf2c3f4454bb95) )
ROM_LOAD( "cn302d.p1", 0x0000, 0x010000, CRC(8c6ac365) SHA1(a32b104968aaa4da060072a241a4c54fbdf3c404) )
ROM_LOAD( "cn302dk.p1", 0x0000, 0x010000, CRC(24cbab96) SHA1(77fe3b21fc9470653bada31c700ce926d55ce82e) )
ROM_LOAD( "cn302dr.p1", 0x0000, 0x010000, CRC(09069f0e) SHA1(68b2a34644ee1fca3ce5191e2f25aa808b85fb09) )
ROM_LOAD( "cn302dy.p1", 0x0000, 0x010000, CRC(946db7e0) SHA1(fe29c1da478e3f1a53ad55c661ddcc7003679304) )
ROM_LOAD( "cn302k.p1", 0x0000, 0x010000, CRC(7a3202f1) SHA1(2dd5e8195120b1efc3eb51214cf054432fc50aed) )
ROM_LOAD( "cn302r.p1", 0x0000, 0x010000, CRC(e7cf9e1e) SHA1(66a1e54fc928c09d16f7ac1c002685eee841315f) )
ROM_LOAD( "cn302s.p1", 0x0000, 0x010000, CRC(87703a1a) SHA1(6582ffa42a61b60e92e456a794c4c219a9901a1c) )
ROM_LOAD( "cn302y.p1", 0x0000, 0x010000, CRC(7aa4b6f0) SHA1(2c185a9a7c8a4957fb5901305883661c41cb0cb4) )
ROM_LOAD( "cnc03s.p1", 0x0000, 0x010000, CRC(57a03b29) SHA1(52cc8eb3f02c4a812de06ceec0588ca930e07876) )
ROM_REGION( 0x10000, "altbwb", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
ROM_LOAD( "cl__x__x.2_0", 0x0000, 0x010000, CRC(c3de4791) SHA1(220d32b961b6710d508c0c7e6b2d8e4d292746f4) )
ROM_LOAD( "cl__x_dx.2_0", 0x0000, 0x010000, CRC(c79833f8) SHA1(b3519b55f6f2a4f081b69483ac0b8860aa8190d9) )
ROM_LOAD( "cl__xa_x.2_0", 0x0000, 0x010000, CRC(4c3021a1) SHA1(7e7258808dd1693adb956a5e6b076f925eb0a026) )
ROM_LOAD( "cl__xb_x.2_0", 0x0000, 0x010000, CRC(75a5add7) SHA1(6802ec81b4ebcde9ed014a0440fdc50211a8a350) )
ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 )
/* missing */
ROM_END
ROM_START( m4nudshf ) ROM_START( m4nudshf )
@ -2328,23 +2160,6 @@ ROM_START( m4nudshf )
ROM_LOAD( "nusxc.p1", 0x0000, 0x010000, CRC(e2557b45) SHA1(a9d1514d4fe3897f6fcef22a5039d6bdff8126ff) ) ROM_LOAD( "nusxc.p1", 0x0000, 0x010000, CRC(e2557b45) SHA1(a9d1514d4fe3897f6fcef22a5039d6bdff8126ff) )
ROM_END ROM_END
ROM_START( m4nudup )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dnu25.bin", 0x0000, 0x010000, CRC(c8d83f94) SHA1(fa0834d41c7506cab14e50b4036943a61411ed0e) )
ROM_END
ROM_START( m4num1 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dno17.bin", 0x0000, 0x010000, CRC(3b302160) SHA1(ff52803472e119aa46fe1cff134b5503858dfee1) )
ROM_END
ROM_START( m4omega )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dom23.bin", 0x0000, 0x010000, CRC(d51e078c) SHA1(2c38d271b9ce4731ce26106764529839b5110b3e) )
ROM_END
ROM_START( m4ordmnd ) ROM_START( m4ordmnd )
@ -2696,10 +2511,6 @@ ROM_START( m4przwta )
ROM_LOAD( "pwnsnd.p2", 0x080000, 0x080000, CRC(d81dfc8f) SHA1(5fcfcba836080b5752911d69dfe650614acbf845) ) ROM_LOAD( "pwnsnd.p2", 0x080000, 0x080000, CRC(d81dfc8f) SHA1(5fcfcba836080b5752911d69dfe650614acbf845) )
ROM_END ROM_END
ROM_START( m4randr )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "drr22.bin", 0x0000, 0x010000, CRC(9fdcee66) SHA1(196c8d3ea4141c209ecc5b0acdab7a872f791dc0) )
ROM_END
@ -2717,90 +2528,6 @@ ROM_END
ROM_START( m4rhr )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "rhr15.hex", 0x0000, 0x010000, CRC(895ebbda) SHA1(f2117e743a30f3c9fc6af7fd7843bc333699db9d) )
ROM_REGION( 0x10000, "altrevs", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
ROM_LOAD( "cr4ad.p1", 0x0000, 0x010000, CRC(b99b3d14) SHA1(2ff68b33881e9b3c2db48c335ccbad783013084a) )
ROM_LOAD( "cr4b.p1", 0x0000, 0x010000, CRC(ae2691b8) SHA1(360c5c3d94bf85cf5ead114dd570ea6c61082aa9) )
ROM_LOAD( "cr4bd.p1", 0x0000, 0x010000, CRC(9ba444bf) SHA1(adebf23827a5ac5e3a6d56e3352e0d3f3dc809c0) )
ROM_LOAD( "cr4d.p1", 0x0000, 0x010000, CRC(ad9fe2a6) SHA1(e490c5c949559cc222d8491989196b10373ff043) )
ROM_LOAD( "cr4dk.p1", 0x0000, 0x010000, CRC(200486b4) SHA1(3916e131801c44985668ccd57dc3e812268f9417) )
ROM_LOAD( "cr4dy.p1", 0x0000, 0x010000, CRC(5b5ebe79) SHA1(6c72271258e6b951f2d6c815cfef5032e23cf7bc) )
ROM_LOAD( "cr4k.p1", 0x0000, 0x010000, CRC(2cc956e8) SHA1(37fad3d3b9460763ba4d8f569ee71778f9907853) )
ROM_LOAD( "cr4s.p1", 0x0000, 0x010000, CRC(836c3e49) SHA1(34dde2fd4fe82ab4a9e16dcf7915705f7b8a007f) )
ROM_LOAD( "cr4y.p1", 0x0000, 0x010000, CRC(5a3588e8) SHA1(b25156f38fb67dc1f1e36a50af0a9b93882572d0) )
ROM_LOAD( "crt03ad.p1", 0x0000, 0x010000, CRC(5b779273) SHA1(b9a278cc6b4af622af35f7d4fdacdca54c94a47f) )
ROM_LOAD( "crt03b.p1", 0x0000, 0x010000, CRC(da5b3fa3) SHA1(66c570a193665ae0df4542112547fa6f5f9b7b79) )
ROM_LOAD( "crt03bd.p1", 0x0000, 0x010000, CRC(6d6bff39) SHA1(08f4235bb2cadcc49c13991fe3e2c806c0be801d) )
ROM_LOAD( "crt03c.p1", 0x0000, 0x010000, CRC(a5b38945) SHA1(31351667d471c107ade58e97fe5657632d91be80) )
ROM_LOAD( "crt03d.p1", 0x0000, 0x010000, CRC(7f39cf9d) SHA1(6f8a1660a253cf7f49ba589b3847ca3dc5a9b4ee) )
ROM_LOAD( "crt03dk.p1", 0x0000, 0x010000, CRC(32933785) SHA1(0ae9b8823ed8c914da0a64913afdf3c348142804) )
ROM_LOAD( "crt03dr.p1", 0x0000, 0x010000, CRC(2381792a) SHA1(514b9e580d156ec3cfeb460d0895143368e9a360) )
ROM_LOAD( "crt03dy.p1", 0x0000, 0x010000, CRC(3439dc85) SHA1(092dcd36e2ea43ecf62cfc1bf1498ea7777213dc) )
ROM_LOAD( "crt03k.p1", 0x0000, 0x010000, CRC(0b841ae9) SHA1(5a78381122a3b718e3f212f30f76dc61e2e3ac5e) )
ROM_LOAD( "crt03r.p1", 0x0000, 0x010000, CRC(2a8bd767) SHA1(a9547ef37da9494bd4ffe5fbb68eca67fe63c3ba) )
ROM_LOAD( "crt03s.p1", 0x0000, 0x010000, CRC(2b4c24d2) SHA1(94b19b0e8090dbbde2c67d5949f19d4050972fb1) )
ROM_LOAD( "crt03y.p1", 0x0000, 0x010000, CRC(40c3a105) SHA1(7ad988f71a3523ad2b19fa7d6cdf74d4328fb3e1) )
ROM_LOAD( "cruad.p1", 0x0000, 0x010000, CRC(3a680f14) SHA1(cd3c2bf77b148ee4f4ce76b2c1bc142491117890) )
ROM_LOAD( "crub.p1", 0x0000, 0x010000, CRC(4cee9020) SHA1(b919ba28294c39b49e4fcfa54a75e852f9c873ed) )
ROM_LOAD( "crubd.p1", 0x0000, 0x010000, CRC(7184b193) SHA1(392cb5887ec988e3aa1cba2491885103da1e503a) )
ROM_LOAD( "crud.p1", 0x0000, 0x010000, CRC(2528047f) SHA1(0b07470ff756b003c03fd4a7ff3c1d5f79e8307f) )
ROM_LOAD( "crudk.p1", 0x0000, 0x010000, CRC(73465d95) SHA1(3eddaee64a681727743b23fd0bec0285ed59a5ef) )
ROM_LOAD( "crudy.p1", 0x0000, 0x010000, CRC(e08696f9) SHA1(37c97bb22ae0d09657d7d589f76adfbe6fb642e0) )
ROM_LOAD( "cruk.p1", 0x0000, 0x010000, CRC(168627f0) SHA1(c6c21f8442ff88736d3fd25860d815beb5a6b845) )
ROM_LOAD( "crus.p1", 0x0000, 0x010000, CRC(bf2ff034) SHA1(7ee7ef30da4283dbb2b1b040fdd3313cb2e1b7e5) )
ROM_LOAD( "cruy.p1", 0x0000, 0x010000, CRC(edf1346b) SHA1(c250178991885a922f676424e70c637e11089efb) )
ROM_LOAD( "redhot8.bin", 0x0000, 0x010000, CRC(1dc62d7b) SHA1(640a5b29314a7dc67db271cce06c23c676d77eee) )
ROM_LOAD( "rhr03.r", 0x0000, 0x010000, CRC(98d81b1e) SHA1(17ab0dced53be9755aada7954aff2dc2a6973190) )
ROM_LOAD( "rhr10", 0x0000, 0x010000, CRC(2a18a033) SHA1(add907c5ab155c28142dcee57825059715afd80d) )
ROM_LOAD( "rhr2015", 0x0000, 0x010000, CRC(dbfd3b95) SHA1(4fc7ae32f7d76be3d3d07d627391884bd4d6de09) )
ROM_LOAD( "rhr2515", 0x0000, 0x010000, CRC(e4554c23) SHA1(6d977beb282fd638de3457e467e842ce79b5be7c) )
ROM_LOAD( "rhr2pprg.bin", 0x0000, 0x010000, CRC(f97047b2) SHA1(d3ed8c93e405f9e7448b3924ff9aa84223b76046) )
ROM_LOAD( "rhrb.p1", 0x0000, 0x010000, CRC(876fbe46) SHA1(1c7faf68ddef2ccbb8e3cd2cf5c709a7a4f4daef) )
ROM_LOAD( "rhrbd.p1", 0x0000, 0x010000, CRC(f0fa0c7b) SHA1(96bfce8ea54e392a36cb8d82a032438bff992f07) )
ROM_LOAD( "rhrc.p1", 0x0000, 0x010000, CRC(76a0e556) SHA1(1a9bae286ca40d8e72022645d006a219f113e31a) )
ROM_LOAD( "rhrd.p1", 0x0000, 0x010000, CRC(58a5dd6f) SHA1(3646b8cb3d49e8c530e321daad052f27cdf4bb3d) )
ROM_LOAD( "rhrk.p1", 0x0000, 0x010000, CRC(2212cebb) SHA1(224e7e243b17f3ca90a6daa529984e9a879ff266) )
ROM_LOAD( "rhrs.p1", 0x0000, 0x010000, CRC(a0e5d5b6) SHA1(c730e6319bbea6f035fb3e249991983783ef5743) )
ROM_LOAD( "rhtad.p1", 0x0000, 0x010000, CRC(ae3a31a0) SHA1(7e1f05a21cf5b3d2aceba755136c567b5d6ecfcd) )
ROM_LOAD( "rhtb.p1", 0x0000, 0x010000, CRC(7ceb13c8) SHA1(f0f22149bd0fb12ef06c4c3ecba605df33f52c51) )
ROM_LOAD( "rhtbd.p1", 0x0000, 0x010000, CRC(e4b290fc) SHA1(bf16d06429d67936118264f6c4f1ae637753d5db) )
ROM_LOAD( "rhtd.p1", 0x0000, 0x010000, CRC(a08d508c) SHA1(10efbfb4fc4820313b410ec73f9c32ed048e2228) )
ROM_LOAD( "rhtdk.p1", 0x0000, 0x010000, CRC(6495681a) SHA1(afd3451402e19c4c4bb8507447d6771323219e80) )
ROM_LOAD( "rhtdr.p1", 0x0000, 0x010000, CRC(df9e5c83) SHA1(88586852c0773de4ee1b4c627eabf3de27e5c2a1) )
ROM_LOAD( "rhtdy.p1", 0x0000, 0x010000, CRC(42f5746d) SHA1(964bd8801b44de9ea45c43b290b1cd6284e97578) )
ROM_LOAD( "rhtk.p1", 0x0000, 0x010000, CRC(c3bfb174) SHA1(2579bf17252988de17a1367546ae187420f95cc5) )
ROM_LOAD( "rhtr.p1", 0x0000, 0x010000, CRC(f53f4876) SHA1(feda495361d384c662554d445a95191a2c52a56a) )
ROM_LOAD( "rhts.p1", 0x0000, 0x010000, CRC(fecb7076) SHA1(43086c6bfd878d0ca1ec8d45285d3e941a62ac8e) )
ROM_LOAD( "rhty.p1", 0x0000, 0x010000, CRC(68546098) SHA1(57981c06efcb44915d8c2d4b6e1cba377c4a8590) )
ROM_LOAD( "rhuad.p1", 0x0000, 0x010000, CRC(2093126b) SHA1(942994793697cec730c461c87b24a1429e46cc02) )
ROM_LOAD( "rhub.p1", 0x0000, 0x010000, CRC(2be41a3a) SHA1(a50c7b5b93a619e541be480646517e278da8e579) )
ROM_LOAD( "rhubd.p1", 0x0000, 0x010000, CRC(168f7f21) SHA1(9c9e09673bdadd146883a06a8db3c0ee4b304eab) )
ROM_LOAD( "rhud.p1", 0x0000, 0x010000, CRC(71932d29) SHA1(e92af5cced251eea2e31c4c1968e77087c64b824) )
ROM_LOAD( "rhudk.p1", 0x0000, 0x010000, CRC(8de54a5d) SHA1(a275d8c67d38c09f19ffa41e97fbcbea3d297aa4) )
ROM_LOAD( "rhudr.p1", 0x0000, 0x010000, CRC(ba01ac84) SHA1(d03b3b321abd220f619724e99cc396c38418f2d3) )
ROM_LOAD( "rhudy.p1", 0x0000, 0x010000, CRC(692bf4eb) SHA1(136f36073f236b48442a20e06aa51a978135f1b3) )
ROM_LOAD( "rhuk.p1", 0x0000, 0x010000, CRC(9e4e1e91) SHA1(f671858c41dc0e55189e9a86fff1846938b5c2e5) )
ROM_LOAD( "rhur.p1", 0x0000, 0x010000, CRC(6e9425e5) SHA1(1e2827f3469af15e8d390d9af839c7b474ea95a7) )
ROM_LOAD( "rhus.p1", 0x0000, 0x010000, CRC(31e776fc) SHA1(e51799e9db5a08cbfb0b6c5466a0a085c3d91db4) )
ROM_LOAD( "rhuy.p1", 0x0000, 0x010000, CRC(5d12178a) SHA1(18525828fac1931bb8e11f96b79db143ed533771) )
ROM_REGION( 0x10000, "altbwb", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
ROM_LOAD( "cr__x__x.5_0", 0x0000, 0x010000, CRC(278fe91e) SHA1(dcfed3a7796d1ee365e535115b66c7d6cbe0ab74) )
ROM_LOAD( "cr__x_dx.2_0", 0x0000, 0x010000, CRC(73fb120c) SHA1(4c0f39253dee9b528763a9cb609dec31e8529713) )
ROM_REGION( 0x48, "fakechr", 0 )
ROM_LOAD( "tri98.chr", 0x0000, 0x000048, CRC(8a4532a8) SHA1(c128fd513bbcba68a1c75a11e09a54ba1d23d6f4) )
ROM_REGION( 0x100000, "msm6376", 0 )
ROM_LOAD( "redhotroll10.bin", 0x0000, 0x080000, CRC(64513503) SHA1(4233492f3f6e7ad8459f1ab733727910d3b4bcf8) )
ROM_LOAD( "rhrsnd1.hex", 0x0000, 0x080000, CRC(3e80f8bd) SHA1(2e3a195b49448da11cc0c089a8a9b462894c766b) )
ROM_END
ROM_START( m4rhrc ) ROM_START( m4rhrc )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -2991,50 +2718,6 @@ ROM_START( m4reeltm )
ROM_END ROM_END
ROM_START( m4richfm )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "rfts.p1", 0x0000, 0x010000, CRC(2a747164) SHA1(a4c8e160f09ebea4fca6dd32ff020d3f1a4f1a1c) )
ROM_REGION( 0x10000, "altrevs", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
ROM_LOAD( "rafc.p1", 0x0000, 0x010000, CRC(d92f602f) SHA1(c93131138deb4018d499b9b45c07d4517c5072b7) )
ROM_LOAD( "rafd.p1", 0x0000, 0x010000, CRC(b0e9f470) SHA1(cad080a5d7f24968524fe10f6c43b088f35d7364) )
ROM_LOAD( "rafs.p1", 0x0000, 0x010000, CRC(f312b2e3) SHA1(8bf2cb7b73cfc320143d05d25e28c15fb4f26045) )
ROM_LOAD( "rafy.p1", 0x0000, 0x010000, CRC(a8812d45) SHA1(c0b89833f87ed90eb3e9c3299fcea362d501ed90) )
ROM_LOAD( "rchfam8", 0x0000, 0x004000, CRC(55f16698) SHA1(9853b17bbb81371192a564376be7b3074908dbca) )
ROM_LOAD( "rf5ad.p1", 0x0000, 0x010000, CRC(cd280292) SHA1(605d89608e106979229a00701a2e5b578df50d60) )
ROM_LOAD( "rf5b.p1", 0x0000, 0x010000, CRC(e1edf753) SHA1(677f0397ec57422241f4669be610cffd33a9b44a) )
ROM_LOAD( "rf5bd.p1", 0x0000, 0x010000, CRC(2d698365) SHA1(7f91cee0d34550aba9ac0f4ee398df4de6fd6f7e) )
ROM_LOAD( "rf5d.p1", 0x0000, 0x010000, CRC(034cab0b) SHA1(79eaeb84377dbb8e6bda1dd2ae29a1f79656b9e4) )
ROM_LOAD( "rf5dk.p1", 0x0000, 0x010000, CRC(14fc0f13) SHA1(a2b294da18c3f5bc9c81eb3f3af5ab5ca58c9cad) )
ROM_LOAD( "rf5dy.p1", 0x0000, 0x010000, CRC(a2664c64) SHA1(2256b6e0d6472faa901348cb5be849ad012f1d16) )
ROM_LOAD( "rf5k.p1", 0x0000, 0x010000, CRC(d8787b25) SHA1(885ac7ddd3de4cb475539d02aefbf38fed7c1f2c) )
ROM_LOAD( "rf5s.p1", 0x0000, 0x010000, CRC(8d1ed193) SHA1(a4ca973dac8a8fd550bf7e57a8cdc627c28da4b8) )
ROM_LOAD( "rf5y.p1", 0x0000, 0x010000, CRC(ad288548) SHA1(a7222ab5bffe8e5e0844f8e6f13e09afe74b08a8) )
ROM_LOAD( "rf8b.p1", 0x0000, 0x010000, CRC(105c24e1) SHA1(cb417976a74441bf2ca888198b57fed81d758c15) )
ROM_LOAD( "rf8c.p1", 0x0000, 0x010000, CRC(8924a706) SHA1(abb1a1f6cdeb15884dfa63fc04882f794453d4ec) )
ROM_LOAD( "rft20.10", 0x0000, 0x010000, CRC(41e6ef75) SHA1(d836fdea5a89b845687d2ff929365bd81737c760) )
ROM_LOAD( "rftad.p1", 0x0000, 0x010000, CRC(8553386f) SHA1(ad834d52e51c7f375a370dc6d8586668921a9795) )
ROM_LOAD( "rftb.p1", 0x0000, 0x010000, CRC(0189cc2f) SHA1(62ccc85c50c56aa2e0bcbb42b5c24d402f00d366) )
ROM_LOAD( "rftbd.p1", 0x0000, 0x010000, CRC(08351e03) SHA1(d08d38d46793828b147ccde8121fbb9bf422cd60) )
ROM_LOAD( "rftd.p1", 0x0000, 0x010000, CRC(689f02ed) SHA1(1a30aac5454b0c477a698e9c573fe313bc1fe858) )
ROM_LOAD( "rftdk.p1", 0x0000, 0x010000, CRC(098b88f5) SHA1(4559b561380055c429a5b4741326f64ad89d8481) )
ROM_LOAD( "rftdy.p1", 0x0000, 0x010000, CRC(26b912f8) SHA1(1719d63b4a25293199b0729235beb5b93c484490) )
ROM_LOAD( "rftk.p1", 0x0000, 0x010000, CRC(6a48bd98) SHA1(2f17194869ca008f7a2eb622bd3725bc91950a17) )
ROM_LOAD( "rfty.p1", 0x0000, 0x010000, CRC(723fe46e) SHA1(51bb8aff358d527483eaf1b1e20606d94a937dc6) )
ROM_LOAD( "rich2010", 0x0000, 0x010000, CRC(baecbdbc) SHA1(5fffecf3c91e832d3cfc13dbf5e6b74fc3d6a146) )
ROM_REGION( 0x10000, "altbwb", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
ROM_LOAD( "r&f5.10", 0x0000, 0x010000, CRC(45d493d0) SHA1(9a549821a005fa65c2eb8b35c5f15659bd897519) )
ROM_LOAD( "r&f5.4", 0x0000, 0x010000, CRC(0441d833) SHA1(361910fd64bc7291f6200fe354c468d16e7d6c80) )
ROM_LOAD( "r&f5.8t", 0x0000, 0x010000, CRC(525e2520) SHA1(84b2ff86d6a54ebb3bcf0138930b2619a8733161) )
ROM_LOAD( "r&f55", 0x0000, 0x010000, CRC(6095a72b) SHA1(af25f7c2fb5241064ea995d35fe4fd2f242e3750) )
ROM_REGION( 0x100000, "msm6376", 0 )
ROM_LOAD( "rfamouss1.hex", 0x000000, 0x080000, CRC(b237c8b8) SHA1(b2322d68fe57cca0ed49b01ae0d3a0e93a623eac) )
ROM_LOAD( "rfamouss2.hex", 0x080000, 0x080000, CRC(12c295d5) SHA1(0758354cfb5242b4ce3f5f25c3458d91f4b4a1ec) )
ROM_END
ROM_START( m4ringfr ) ROM_START( m4ringfr )
ROM_REGION( 0x20000, "maincpu", 0 ) ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "rof03s.p1", 0x0000, 0x020000, CRC(4b4703fe) SHA1(853ce1f5932e09af2b5f3b5314709f13aa35cf19) ) ROM_LOAD( "rof03s.p1", 0x0000, 0x020000, CRC(4b4703fe) SHA1(853ce1f5932e09af2b5f3b5314709f13aa35cf19) )
@ -3148,10 +2831,6 @@ ROM_START( m4salsa )
ROM_END ROM_END
ROM_START( m4samu )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dsm10.bin", 0x0000, 0x010000, CRC(c2a10732) SHA1(9a9dcd0445662d301320a7fb0f4e5da8a719a86b) )
ROM_END
@ -3268,10 +2947,6 @@ ROM_END
ROM_START( m4stards )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dsd13.bin", 0x0000, 0x010000, CRC(a17fbe93) SHA1(f2a9e0c059f309f63e6da3e47740644ad4839fa8) )
ROM_END
@ -3373,130 +3048,11 @@ ROM_START( m4suphv )
ROM_END ROM_END
ROM_START( m4supst )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "cs4b.p1", 0x0000, 0x010000, CRC(fb0aac20) SHA1(3a40be78f7add7905afa8d1226ad41bf0041a2ec) )
ROM_REGION( 0x10000, "altrevs", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
ROM_LOAD( "cs4ad.p1", 0x0000, 0x010000, CRC(c0e81dfd) SHA1(2da922df6c102f8d0f1678e974df9e4d356e5133) )
ROM_LOAD( "cs4bd.p1", 0x0000, 0x010000, CRC(dafc7ed6) SHA1(3e92d5557d2f587132f4b3b633978ab7d4333fcc) )
ROM_LOAD( "cs4d.p1", 0x0000, 0x010000, CRC(c1fcda65) SHA1(11f2a45f3f821eac6b98b1988824d77aada3d759) )
ROM_LOAD( "cs4dk.p1", 0x0000, 0x010000, CRC(30a46171) SHA1(ef1f2951b478ba2b2d42dfb0ec4ed59f28d79972) )
ROM_LOAD( "cs4dy.p1", 0x0000, 0x010000, CRC(72b15ce7) SHA1(c451ac552ffe9bcde1990b97a60b0ed8918bf8c8) )
ROM_LOAD( "cs4k.p1", 0x0000, 0x010000, CRC(f252f9ea) SHA1(251998ea752deb4f4a05c833b19e89d334334fac) )
ROM_LOAD( "cs4s.p1", 0x0000, 0x010000, CRC(10f7b88d) SHA1(0aac0ebbe0ce04db49fc7de4325eea9abdfd74b5) )
ROM_LOAD( "cs4y.p1", 0x0000, 0x010000, CRC(a464d09d) SHA1(d38c0f8c7c9b7f560b685781a7dcf82bc031a191) )
ROM_LOAD( "csp02ad.p1", 0x0000, 0x010000, CRC(96bbbc26) SHA1(ca127151c771963c07f0f368102ede8095d11863) )
ROM_LOAD( "csp02b.p1", 0x0000, 0x010000, CRC(913ea9ff) SHA1(182bcc007d007a1c7f57767358600d2de7d1e3cf) )
ROM_LOAD( "csp02bd.p1", 0x0000, 0x010000, CRC(ad0137a1) SHA1(d043372ba09081dd4e807f009a6460b4b30e6453) )
ROM_LOAD( "csp02c.p1", 0x0000, 0x010000, CRC(fdad4b22) SHA1(4f19922821a9d1663bd9355447209384272e7542) )
ROM_LOAD( "csp02d.p1", 0x0000, 0x010000, CRC(9717a58d) SHA1(8bc495dc4db0041718ae2db14a01a789616c8764) )
ROM_LOAD( "csp02dk.p1", 0x0000, 0x010000, CRC(cd8aa547) SHA1(a13dcb75507878cb133b9ef739fb41d932d4eed5) )
ROM_LOAD( "csp02dr.p1", 0x0000, 0x010000, CRC(6656e588) SHA1(4001ec0d1145ef0107e62ccda61e22ba8b0cdc92) )
ROM_LOAD( "csp02dy.p1", 0x0000, 0x010000, CRC(14ff7e1d) SHA1(455b6ff93a5f25dc5f43c62a6c1d9a18de1ce94b) )
ROM_LOAD( "csp02k.p1", 0x0000, 0x010000, CRC(c438c754) SHA1(c1d2e664091c1eaf1e4d964a3bfd446b11d7ba41) )
ROM_LOAD( "csp02r.p1", 0x0000, 0x010000, CRC(4abe0f80) SHA1(67f7f9946a26b5097b6ce719dbd599790078f365) )
ROM_LOAD( "csp02s.p1", 0x0000, 0x010000, CRC(47c0068d) SHA1(5480a519a6e6df2757e66cfcf904dd6c2873cc43) )
ROM_LOAD( "csp02y.p1", 0x0000, 0x010000, CRC(d51d18d8) SHA1(a65fd4326872775364d2d7a886e98a1ee07596b7) )
ROM_LOAD( "cst04ad.p1", 0x0000, 0x010000, CRC(b946d40d) SHA1(c03fa48f8b64c3cf4504f472f21a38f8a55f12e6) )
ROM_LOAD( "cst04b.p1", 0x0000, 0x010000, CRC(45333d45) SHA1(d6ccb39ee9b316772052f856f79424c34ff273c5) )
ROM_LOAD( "cst04bd.p1", 0x0000, 0x010000, CRC(03b56b07) SHA1(903b24ab93f9584f228278729b5a99451b8e81f7) )
ROM_LOAD( "cst04c.p1", 0x0000, 0x010000, CRC(9c000883) SHA1(da0a9f1afc218c14a57a46fe2ea63e166f4e3739) )
ROM_LOAD( "cst04d.p1", 0x0000, 0x010000, CRC(32281bec) SHA1(a043fb615c2a66d23d85ae80cb0b1705523f411c) )
ROM_LOAD( "cst04dk.p1", 0x0000, 0x010000, CRC(9345e7b7) SHA1(8bff80d2b847fbae050f77215efe3e55b98a4657) )
ROM_LOAD( "cst04dr.p1", 0x0000, 0x010000, CRC(8d397063) SHA1(45642de2629e89e2495d1cbd5aed90cf2a4cf1c1) )
ROM_LOAD( "cst04dy.p1", 0x0000, 0x010000, CRC(4a303ced) SHA1(6c12b956358753c8bf99bd3316646721c9ec2585) )
ROM_LOAD( "cst04k.p1", 0x0000, 0x010000, CRC(a59584f5) SHA1(8cfcf069ad905277f1925e682602e129e97e619b) )
ROM_LOAD( "cst04r.p1", 0x0000, 0x010000, CRC(c9771997) SHA1(ed98650c0d73f2db0fe380777d10404ccabced31) )
ROM_LOAD( "cst04s.p1", 0x0000, 0x010000, CRC(cd5b848d) SHA1(4dd3dd1c883552c7b5c475156308604b12eff75a) )
ROM_LOAD( "cst04y.p1", 0x0000, 0x010000, CRC(7adc00ae) SHA1(5688f0876c18faf474a6d8487fdd85f20f9fc144) )
ROM_LOAD( "csu03ad.p1", 0x0000, 0x010000, CRC(5d7b6393) SHA1(19c24f4113efb6a1499936e5f89a8ad859ff8df0) )
ROM_LOAD( "csu03b.p1", 0x0000, 0x010000, CRC(57826c2a) SHA1(b835eb3066fec468ab55851d1dd023484e2d57e3) )
ROM_LOAD( "csu03bd.p1", 0x0000, 0x010000, CRC(092e7039) SHA1(36a7c18872e4012e3acce0d01d2cc2c201a3c867) )
ROM_LOAD( "csu03c.p1", 0x0000, 0x010000, CRC(b30a3c00) SHA1(066b0007092720a6f89edf8eafffe2f8fd83edbc) )
ROM_LOAD( "csu03d.p1", 0x0000, 0x010000, CRC(03ff9d99) SHA1(390087c136e4c314de9086adb7b020e8adabe34a) )
ROM_LOAD( "csu03dk.p1", 0x0000, 0x010000, CRC(cf7e61ff) SHA1(0e328ce5ff86770fabaf91d48a8de039323d112a) )
ROM_LOAD( "csu03dr.p1", 0x0000, 0x010000, CRC(00d700d1) SHA1(8bcc3c470c42780b1f1404fc6ff53e6ec7d89ad0) )
ROM_LOAD( "csu03dy.p1", 0x0000, 0x010000, CRC(8ec77c04) SHA1(64708460439a7e124f90eef6b9628e57f7d78ebc) )
ROM_LOAD( "csu03k.p1", 0x0000, 0x010000, CRC(701a0837) SHA1(31237fd108b354fb2afc449efa3a53dee2cf7be8) )
ROM_LOAD( "csu03r.p1", 0x0000, 0x010000, CRC(d86a6895) SHA1(2c42bcf5de739f01e18bd1b766eec26a6da5aa52) )
ROM_LOAD( "csu03s.p1", 0x0000, 0x010000, CRC(197bb032) SHA1(06e98713ff5fc72bffccde1cc92fc8cb63665fad) )
ROM_LOAD( "csu03y.p1", 0x0000, 0x010000, CRC(bee0e7e1) SHA1(6a1ab766af9147f0d4a7c1d2a95c9a6e3e3f4986) )
ROM_LOAD( "eeh02ad.p1", 0x0000, 0x010000, CRC(25874a6d) SHA1(12e4fb36d231c3104df3613dd3851f411a876eb0) )
ROM_LOAD( "eeh02b.p1", 0x0000, 0x010000, CRC(ef280a8a) SHA1(912a825e69482a540cf0cadfc49a37a2822f3ecb) )
ROM_LOAD( "eeh02bd.p1", 0x0000, 0x010000, CRC(5f126810) SHA1(8fe1cbc7d93e2db35225388ee0773f6a98762ca1) )
ROM_LOAD( "eeh02c.p1", 0x0000, 0x010000, CRC(3f49b936) SHA1(a0d07e0101f8cc38ebc28cfc1b239793b961f5ab) )
ROM_LOAD( "eeh02d.p1", 0x0000, 0x010000, CRC(14dcfe63) SHA1(3ac77c9aa9b3b77fb1df98d2b427564be41dca78) )
ROM_LOAD( "eeh02dk.p1", 0x0000, 0x010000, CRC(81a39421) SHA1(6fa43e8cb83e7fb940cc224eed5ee3f254c18c4d) )
ROM_LOAD( "eeh02dr.p1", 0x0000, 0x010000, CRC(c7755823) SHA1(05626ed49a2f800555f3f404273fa910b68de75c) )
ROM_LOAD( "eeh02dy.p1", 0x0000, 0x010000, CRC(5a1e70cd) SHA1(88bb29fd52d2331b72bb04652f9578f2c2f5a9ac) )
ROM_LOAD( "eeh02k.p1", 0x0000, 0x010000, CRC(b78882ec) SHA1(79c6a6d2cfe113743d3a93eb825fccab2b025933) )
ROM_LOAD( "eeh02r.p1", 0x0000, 0x010000, CRC(ff54884e) SHA1(2783f0e562e946597288ddbec4dcd1101e188d1d) )
ROM_LOAD( "eeh02s.p1", 0x0000, 0x010000, CRC(c5856c3c) SHA1(5a0e5a7188913e1c36eac894bbeeae47a4f3589c) )
ROM_LOAD( "eeh02y.p1", 0x0000, 0x010000, CRC(623fa0a0) SHA1(5a49cea5e94afccbf965cbda7a8d9a74f9734a6e) )
ROM_LOAD( "sp8b.p1", 0x0000, 0x010000, CRC(3b12d7e8) SHA1(92a15e5f8391d74c192e8386abdb8853a76bff05) )
ROM_LOAD( "sp8bd.p1", 0x0000, 0x010000, CRC(e0d7f789) SHA1(f6157469e43059adb44e7f2eff5bf73861d5636c) )
ROM_LOAD( "sp8c.p1", 0x0000, 0x010000, CRC(da0af8ae) SHA1(91042506050967c508b30c3dc2bfa6f6a6e8b532) )
ROM_LOAD( "sp8dk.p1", 0x0000, 0x010000, CRC(92432e8f) SHA1(5e6df963ccf92a89c71ae1edd7b71ec1e3f97522) )
ROM_LOAD( "sp8k.p1", 0x0000, 0x010000, CRC(e39f74d8) SHA1(9d776e7d67859f4514c69fc4f9f43160da9a2ca1) )
ROM_LOAD( "sp8s.p1", 0x0000, 0x010000, CRC(fab99461) SHA1(82f8ca06bb04396f86124dfe4de46265b2edc393) )
ROM_LOAD( "spsbd.p1", 0x0000, 0x010000, CRC(b621b32d) SHA1(9aab0e074c120cb12beac585f9c513053502955c) )
ROM_LOAD( "spsc.p1", 0x0000, 0x010000, CRC(8c7a24f5) SHA1(f86be164e05235281fb275e950cedaf6f630d29a) )
ROM_LOAD( "spsd.p1", 0x0000, 0x010000, CRC(d34d3617) SHA1(5373335557e4bbb21264bbd9d0fbaf3640f9ab35) )
ROM_LOAD( "spsdk.p1", 0x0000, 0x010000, CRC(cf2fd3e7) SHA1(50d3c0851bec90037cd65a5c55654b0e688b96ca) )
ROM_LOAD( "spsk.p1", 0x0000, 0x010000, CRC(873a1414) SHA1(47b2bbef168382112cd12ace2d6a58695f4b0254) )
ROM_LOAD( "spss.p1", 0x0000, 0x010000, CRC(5e28bdb7) SHA1(3865c891178feb744ad11b2dea491350efc48bea) )
ROM_LOAD( "stc02ad.p1", 0x0000, 0x010000, CRC(d9a2b4d1) SHA1(9a6862a44817b3ec465f126fd2a5d2c9825d846e) )
ROM_LOAD( "stc02b.p1", 0x0000, 0x010000, CRC(bd2e8e6c) SHA1(71670dccedc2f47888c1205de59a81677ffeabaa) )
ROM_LOAD( "stc02bd.p1", 0x0000, 0x010000, CRC(efbed99b) SHA1(62d80248bb666bfb49ed7546936da744e43fa870) )
ROM_LOAD( "stc02c.p1", 0x0000, 0x010000, CRC(9d342386) SHA1(b50f64d66d89dbd3dee1ff2cb430a2caa050e7c8) )
ROM_LOAD( "stc02d.p1", 0x0000, 0x010000, CRC(c43f6e65) SHA1(0278cf389f8289d7b819125ae0a612c81ea75fab) )
ROM_LOAD( "stc02dk.p1", 0x0000, 0x010000, CRC(36576570) SHA1(214a57344d8e161b3dbd07457291ed9bce011842) )
ROM_LOAD( "stc02dr.p1", 0x0000, 0x010000, CRC(450c553f) SHA1(46050285eeb10dc368ad501c61d41351c4e2fcde) )
ROM_LOAD( "stc02dy.p1", 0x0000, 0x010000, CRC(d8677dd1) SHA1(18abc0a1d28458c3b26a0d1dbf6ca8aba3f3e240) )
ROM_LOAD( "stc02k.p1", 0x0000, 0x010000, CRC(c6e8d110) SHA1(9e05961b9bba502f52a03de27e608afc52f6c025) )
ROM_LOAD( "stc02r.p1", 0x0000, 0x010000, CRC(918d769f) SHA1(2a4438828d9e7efd3a94eaebe56585e7ae23d9d1) )
ROM_LOAD( "stc02s.p1", 0x0000, 0x010000, CRC(9c50fff7) SHA1(3468340d2d04cbdecd669817f8a9c4028e301eeb) )
ROM_LOAD( "stc02y.p1", 0x0000, 0x010000, CRC(0ce65e71) SHA1(02ae1fd5a41ab5a96ddcfe1cf3e8567561291961) )
ROM_LOAD( "sttad.p1", 0x0000, 0x010000, CRC(af615f05) SHA1(b2c1b8ba086a4d33f1269c28d4caa7286a27f085) )
ROM_LOAD( "sttb.p1", 0x0000, 0x010000, CRC(3119149f) SHA1(e749fcc5f95ccd29f42bfd0b140cf3cbb84d9599) )
ROM_LOAD( "sttbd.p1", 0x0000, 0x010000, CRC(cfddaf39) SHA1(0f24b5e691e1d43f6604087f0b3bc2571d2c4002) )
ROM_LOAD( "sttd.p1", 0x0000, 0x010000, CRC(8bc2498c) SHA1(a9cd3a6968186818a8c4033b1f304eac152244cf) )
ROM_LOAD( "sttdk.p1", 0x0000, 0x010000, CRC(39903dde) SHA1(f92c4380051ada7bbc5739550c8dfdd6ddaaa3fe) )
ROM_LOAD( "sttdr.p1", 0x0000, 0x010000, CRC(866f69f0) SHA1(ef9717f89b9718f1bcf8d3592f240ec9cf48bca3) )
ROM_LOAD( "sttdy.p1", 0x0000, 0x010000, CRC(74ebd933) SHA1(b308c8cae2c74e4e07c6e4afb505068220714824) )
ROM_LOAD( "sttk.p1", 0x0000, 0x010000, CRC(461db2f5) SHA1(8b97342d7ebfb33aa6aff246e8d799f4435788b7) )
ROM_LOAD( "sttr.p1", 0x0000, 0x010000, CRC(2591f6ec) SHA1(3d83d930e41e164e71d67b529967320e1eee8354) )
ROM_LOAD( "stts.p1", 0x0000, 0x010000, CRC(a5e29c32) SHA1(8ba2f76505c2f40493c918b9d9524fa67999f7c1) )
ROM_LOAD( "stty.p1", 0x0000, 0x010000, CRC(7306fab9) SHA1(0da1612490fcff9b7a17f97190b6b561016c3b18) )
ROM_LOAD( "stuad.p1", 0x0000, 0x010000, CRC(e7a01b7b) SHA1(3db08800a35d440f012ca69d84c30465818b4993) )
ROM_LOAD( "stub.p1", 0x0000, 0x010000, CRC(9044badf) SHA1(af8e218e3dc457bb5f24e3f2d74a8639466c3f11) )
ROM_LOAD( "stubd.p1", 0x0000, 0x010000, CRC(438e1687) SHA1(5e0f27e95bf861d4edc55709efc79496c7353e8b) )
ROM_LOAD( "stud.p1", 0x0000, 0x010000, CRC(1cbe3bec) SHA1(005dde84e57c5517fc6d6b975cc882dae11cbf63) )
ROM_LOAD( "studk.p1", 0x0000, 0x010000, CRC(0931d501) SHA1(afa078248230cbc0acc9d3af641ec63ed0424a75) )
ROM_LOAD( "studr.p1", 0x0000, 0x010000, CRC(e06e1c59) SHA1(f4454f640335dbf6f9b8154d7805102253f605b4) )
ROM_LOAD( "study.p1", 0x0000, 0x010000, CRC(8b4275e0) SHA1(267a9d2eddf41b8838eeaee06bba45f0a8b8451f) )
ROM_LOAD( "stuk.p1", 0x0000, 0x010000, CRC(a66fb54f) SHA1(4351edbf6c5de817cf6972885ff1f6c7df837c37) )
ROM_LOAD( "stur.p1", 0x0000, 0x010000, CRC(eeb3bfed) SHA1(87a753511fb384a505d3cc69ca67fe4e288cf3bb) )
ROM_LOAD( "stus.p1", 0x0000, 0x010000, CRC(19aca6ad) SHA1(1583e76a4e1058fa97efdd9a7e6f7c4fe806b2f4) )
ROM_LOAD( "stuy.p1", 0x0000, 0x010000, CRC(e6b2b76f) SHA1(bf251b751e6a8d2764c63e92d48e1a64666b9a47) )
ROM_LOAD( "superstreak1deb.bin", 0x0000, 0x010000, CRC(892ccad9) SHA1(c88daadd9778e363e154b674b57ccd07cea59836) )
ROM_LOAD( "supst2515", 0x0000, 0x010000, CRC(c073a249) SHA1(4ae37eb61dd5e50687f433fb89f65b97926b7358) )
ROM_REGION( 0x48, "fakechr", 0 )
ROM_LOAD( "ss.chr", 0x0000, 0x000048, CRC(bd206d57) SHA1(ecfe38d9b4823ae6bc2fc440c243e6ae5e2edaa4) )
ROM_END
ROM_START( m4taj )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "tajmahal.bin", 0x0000, 0x010000, CRC(c2db162a) SHA1(358e7bb858f0a34d39f43494cea13bf00a67e48e) )
ROM_END
ROM_START( m4take5 ) ROM_START( m4take5 )
ROM_REGION( 0x20000, "maincpu", 0 ) ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "take5.bin", 0x0000, 0x020000, CRC(24beb7d6) SHA1(746beccaf57fd0c54c8cf8d742b8ef50563a40fd) ) ROM_LOAD( "take5.bin", 0x0000, 0x020000, CRC(24beb7d6) SHA1(746beccaf57fd0c54c8cf8d742b8ef50563a40fd) )
@ -3558,12 +3114,9 @@ ROM_START( m4tpcl )
ROM_LOAD( "ctp12s.p1", 0x0000, 0x020000, CRC(5f0bbd2a) SHA1(ba1fa09ea7b4713a99b2033bdbbf6b15f973dcca) ) ROM_LOAD( "ctp12s.p1", 0x0000, 0x020000, CRC(5f0bbd2a) SHA1(ba1fa09ea7b4713a99b2033bdbbf6b15f973dcca) )
ROM_REGION( 0x20000, "altrevs", 0 ) /* alternate revisions - to be sorted / split into clones in the future */ ROM_REGION( 0x20000, "altrevs", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
// ROM_LOAD( "ctp1.2", 0x0000, 0x00df8f, CRC(5b32661f) SHA1(905eed53c50e54d46ead04277072dde5cbb40510) ) // just a zipped version of other file
// ROM_LOAD( "ctp1.2s", 0x0000, 0x00e131, CRC(bca78748) SHA1(a6f03131dfaa4d7d7ee2f32b6fda7aa11dcf5dc9) ) // just a zipped version of other file
ROM_LOAD( "ctp13d.p1", 0x0000, 0x020000, CRC(a0f081b9) SHA1(794bba6ed86c3f332165c4b3224315256c939926) ) ROM_LOAD( "ctp13d.p1", 0x0000, 0x020000, CRC(a0f081b9) SHA1(794bba6ed86c3f332165c4b3224315256c939926) )
ROM_LOAD( "ctp13f.p1", 0x0000, 0x020000, CRC(dd7d94fd) SHA1(127ef8159facf647dff37109bcbb94311a8343f1) ) ROM_LOAD( "ctp13f.p1", 0x0000, 0x020000, CRC(dd7d94fd) SHA1(127ef8159facf647dff37109bcbb94311a8343f1) )
ROM_LOAD( "ctp13s.p1", 0x0000, 0x020000, CRC(f0a69f92) SHA1(cd34fb26ecbe6a6e8602a8549c5f331a525567df) ) ROM_LOAD( "ctp13s.p1", 0x0000, 0x020000, CRC(f0a69f92) SHA1(cd34fb26ecbe6a6e8602a8549c5f331a525567df) )
// ROM_LOAD( "ntp0.2", 0x0000, 0x00d3b9, CRC(dfd82d90) SHA1(0c591780aed258627135c583c700b6d9a76908b5) ) // just a zipped version of other file
ROM_LOAD( "ntp02.p1", 0x0000, 0x020000, CRC(6063e27d) SHA1(c99599fbc7146d8fcf62432994098dd51250b17b) ) ROM_LOAD( "ntp02.p1", 0x0000, 0x020000, CRC(6063e27d) SHA1(c99599fbc7146d8fcf62432994098dd51250b17b) )
ROM_REGION( 0x48, "fakechr", 0 ) ROM_REGION( 0x48, "fakechr", 0 )
@ -3659,22 +3212,10 @@ ROM_START( m4toptim )
ROM_END ROM_END
ROM_START( m4tricol )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dtc25.bin", 0x0000, 0x010000, CRC(d3318dde) SHA1(19194d206deee920a1b0122dddc3d5bc0a7a48c5) )
ROM_END
ROM_START( m4tridic )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "trp.bin", 0x0000, 0x010000, CRC(d91fb9b2) SHA1(a06a868a17f84e2a012b0fe28025458e4f899c1d) )
ROM_REGION( 0x48, "fakechr", 0 )
ROM_LOAD( "tdice.chr", 0x0000, 0x000048, CRC(6d28754a) SHA1(beb7724e9f621d315b2f16abfd3bbc6a99077a05) )
ROM_END
ROM_START( m4tropcl ) ROM_START( m4tropcl )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
@ -3712,17 +3253,6 @@ ROM_START( m4tbplay )
ROM_END ROM_END
ROM_START( m4tbreel )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dtr12.bin", 0x0000, 0x010000, CRC(cdb63ef5) SHA1(748cc06e6a274b125d189dd66f2adad8bd2fb166) ) // aka dtr31.dat
ROM_END
ROM_START( m4tbrldx )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dtv30.dat", 0x0000, 0x010000, CRC(c314846c) SHA1(bfa6539b204477a04a5bbc8d13c3a666c52b597b) )
ROM_END
@ -3750,10 +3280,6 @@ ROM_END
ROM_START( m4twilgt )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dtl22.bin", 0x0000, 0x010000, CRC(ed4c8b6a) SHA1(7644046a273304104eaa6260f6cc75950592d4b6) )
ROM_END
ROM_START( m4twintm ) ROM_START( m4twintm )
@ -3792,69 +3318,6 @@ ROM_START( m4univ )
ROM_END ROM_END
ROM_START( m4uuaw )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "uua21h.p1", 0x0000, 0x020000, CRC(199e6dae) SHA1(ecd95ba2c2255afbaa8df96d625a8bfc97e4d3bc) )
ROM_REGION( 0x20000, "altrevs", 0 ) /* alternate revisions - to be sorted / split into clones in the future */
ROM_LOAD( "upa15g", 0x0000, 0x020000, CRC(d20b8b92) SHA1(6fcddc781c204dfd34de2c4e4ce0ec35fb3ec4e0) )
ROM_LOAD( "upa15t", 0x0000, 0x020000, CRC(85e3e82a) SHA1(e90183fab082f159d76ea14da794d52ee6ab8200) )
ROM_LOAD( "ups21ad.p1", 0x0000, 0x020000, CRC(c19fa891) SHA1(c2772ec20a65ce999d901e8c873ec687113b18d4) )
ROM_LOAD( "ups21b.p1", 0x0000, 0x020000, CRC(01320407) SHA1(a3273c59733e42013c3448b2a5c7c575ec0182b9) )
ROM_LOAD( "ups21bd.p1", 0x0000, 0x020000, CRC(2fa3cb8a) SHA1(8df994ce93fc6f0df27a6ee73676d9ee73593091) )
ROM_LOAD( "ups21d.p1", 0x0000, 0x020000, CRC(2a8db1a6) SHA1(873ab3757920c9153c1542748a74b36ce5e190c2) )
ROM_LOAD( "ups21dh.p1", 0x0000, 0x020000, CRC(7bcfbb46) SHA1(b93dfa71e3ec0ea96eaf2db4cd382b0a2852a1ff) )
ROM_LOAD( "ups21dk.p1", 0x0000, 0x020000, CRC(0642ae02) SHA1(8898341f8dc4f4c8c45ce6d04a01bd919cb0548a) )
ROM_LOAD( "ups21dr.p1", 0x0000, 0x020000, CRC(b54d1533) SHA1(1f9220342dcab675b04895f69a7ca75579ba729f) )
ROM_LOAD( "ups21dy.p1", 0x0000, 0x020000, CRC(4c850654) SHA1(21f386060301adef646fe469c1fcfb002d3e3424) )
ROM_LOAD( "ups21h.p1", 0x0000, 0x020000, CRC(555e74cb) SHA1(14246b54839eb334576a119d7c87901f3b2f25ad) )
ROM_LOAD( "ups21k.p1", 0x0000, 0x020000, CRC(28d3618f) SHA1(186337119e4b663dadc129533ce8a913013390a9) )
ROM_LOAD( "ups21r.p1", 0x0000, 0x020000, CRC(9bdcdabe) SHA1(db0bb90705abec92a220a3dbe0ea69266d5e0558) )
ROM_LOAD( "ups21s.p1", 0x0000, 0x020000, CRC(c4a8a542) SHA1(61063d55c6017cf17d704df576cb62da5bd75820) )
ROM_LOAD( "ups21y.p1", 0x0000, 0x020000, CRC(6214c9d9) SHA1(d25fecc9798e342207d358a54efad1908c0e2247) )
ROM_LOAD( "ups22ad.p1", 0x0000, 0x020000, CRC(ee0f53a6) SHA1(eabe58efa82015eb2266a793853e8ade546d6da1) )
ROM_LOAD( "ups22b.p1", 0x0000, 0x020000, CRC(e7dbf5ae) SHA1(0fbbc3da1af8b60993a7f6082bd5e96da21cd0b8) )
ROM_LOAD( "ups22bd.p1", 0x0000, 0x020000, CRC(003330bd) SHA1(42ad6ddfd7639909151dcee5e40e82a23074fd59) )
ROM_LOAD( "ups22d.p1", 0x0000, 0x020000, CRC(cc64400f) SHA1(0ff7858c637fbb43a7cd1313bbf046177e4b7761) )
ROM_LOAD( "ups22dh.p1", 0x0000, 0x020000, CRC(545f4071) SHA1(3947499d78d31fb0b269a63a518790b503a97685) )
ROM_LOAD( "ups22dk.p1", 0x0000, 0x020000, CRC(29d25535) SHA1(7f053741d12cce467dd437ea998064e13d1ca52b) )
ROM_LOAD( "ups22dr.p1", 0x0000, 0x020000, CRC(9addee04) SHA1(45c15536c8846da825a994a667b6e46598c1642e) )
ROM_LOAD( "ups22dy.p1", 0x0000, 0x020000, CRC(6315fd63) SHA1(9a5fcab51d4e94b96669149285dda28cd41020b8) )
ROM_LOAD( "ups22h.p1", 0x0000, 0x020000, CRC(b3b78562) SHA1(3e75fa20156faa3d38c2b5ac824bffe47e72b7bc) )
ROM_LOAD( "ups22k.p1", 0x0000, 0x020000, CRC(ce3a9026) SHA1(80977176c5bae809a564f4fc0e3d6370f91f829b) )
ROM_LOAD( "ups22r.p1", 0x0000, 0x020000, CRC(7d352b17) SHA1(d2d1d016a587be318e9018eb1953e68fe83620df) )
ROM_LOAD( "ups22s.p1", 0x0000, 0x020000, CRC(ac990aa9) SHA1(396c9eded9c18ab2bcb0f4066a890f6e239830f1) )
ROM_LOAD( "ups22y.p1", 0x0000, 0x020000, CRC(84fd3870) SHA1(8d294ae1a92d1e99c4c3f17a2d77fe1d994b2c33) )
ROM_LOAD( "uua21ad.p1", 0x0000, 0x020000, CRC(2a18c292) SHA1(5853cb069eb5caa23372e5dedd33868103125780) )
ROM_LOAD( "uua21b.p1", 0x0000, 0x020000, CRC(d71cc3db) SHA1(7d783110341237769165a08fd86f597225f8d90c) )
ROM_LOAD( "uua21bd.p1", 0x0000, 0x020000, CRC(f04323be) SHA1(194c996d4c8e2fed2bcb02e29423e68b53900a1f) )
ROM_LOAD( "uua21d.p1", 0x0000, 0x020000, CRC(664da8c3) SHA1(c93b0b5e796fcde0850e2b3054f1db0417f4e9ed) )
ROM_LOAD( "uua21dh.p1", 0x0000, 0x020000, CRC(3ec18dcb) SHA1(fb5fe8ba0b59a21401cf091f43ad9f2a4df3447c) )
ROM_LOAD( "uua21dk.p1", 0x0000, 0x020000, CRC(84919e1c) SHA1(c7315a3d1985180ec5ae1f4e5c7f0c99c1e0bac4) )
ROM_LOAD( "uua21dr.p1", 0x0000, 0x020000, CRC(434c988f) SHA1(eb6126048df5bc4ff98d9838a3bb6cf24a9ab895) )
ROM_LOAD( "uua21dy.p1", 0x0000, 0x020000, CRC(098b30d9) SHA1(48daa77f3aafdcd52d7291cdda533e8a9428de0e) )
ROM_LOAD( "uua21k.p1", 0x0000, 0x020000, CRC(a3ce7e79) SHA1(8670d2cb7281ccabc15c5288a3e0dd99cfc1ae36) )
ROM_LOAD( "uua21r.p1", 0x0000, 0x020000, CRC(641378ea) SHA1(de0282af6a17c7fc16c7eca10e81ffb208675779) )
ROM_LOAD( "uua21s.p1", 0x0000, 0x020000, CRC(27c46fcc) SHA1(68a03fcce5d8155d6c0115d813c17217c4120375) )
ROM_LOAD( "uua21y.p1", 0x0000, 0x020000, CRC(2ed4d0bc) SHA1(ffb0585e729b389855d24015e1ef7582eab88d3e) )
ROM_LOAD( "uua22ad.p1", 0x0000, 0x020000, CRC(b2ace4d5) SHA1(da02abe111fea3fbfb9495e9b447139cd67a61e0) )
ROM_LOAD( "uua22b.p1", 0x0000, 0x020000, CRC(71a6374a) SHA1(c14ed22fceb83b5ac72021322c9b8bb3d5afeffb) )
ROM_LOAD( "uua22bd.p1", 0x0000, 0x020000, CRC(68f705f9) SHA1(678ba97241f3dede96239265eed418d4717637a6) )
ROM_LOAD( "uua22d.p1", 0x0000, 0x020000, CRC(c0f75c52) SHA1(a4e1e496b0cbb24767f017fbe228fbb8ab2bb907) )
ROM_LOAD( "uua22dh.p1", 0x0000, 0x020000, CRC(a675ab8c) SHA1(37fb437b95f9ff50fe41ebce825e3dd1b361925e) )
ROM_LOAD( "uua22dk.p1", 0x0000, 0x020000, CRC(1c25b85b) SHA1(b42cdae2e2c00644376eb5f0c5b7567d3811b162) )
ROM_LOAD( "uua22dr.p1", 0x0000, 0x020000, CRC(dbf8bec8) SHA1(b3ac5ed5b8cbc0457e5dfadefcab563e3197b045) )
ROM_LOAD( "uua22dy.p1", 0x0000, 0x020000, CRC(913f169e) SHA1(9f82f5d868a9be046ced838f8b53730140ed50b2) )
ROM_LOAD( "uua22h.p1", 0x0000, 0x020000, CRC(bf24993f) SHA1(618d6d2f2b762d61eb58087a3597ffb709658631) )
ROM_LOAD( "uua22k.p1", 0x0000, 0x020000, CRC(05748ae8) SHA1(d9aeee26c8471bb6ee58a4a838e5c9930da92725) )
ROM_LOAD( "uua22r.p1", 0x0000, 0x020000, CRC(c2a98c7b) SHA1(115f7c7a4b9eab5f3270f43a2db7a320dfc4e223) )
ROM_LOAD( "uua22s.p1", 0x0000, 0x020000, CRC(65f57c0c) SHA1(7b2526cdd1ec973a91bc7ade116e16e03b32596a) )
ROM_LOAD( "uua22y.p1", 0x0000, 0x020000, CRC(886e242d) SHA1(4b49b70fc2635fcf7b538b35b42a358cf4dd60b3) )
ROM_REGION( 0x100000, "msm6376", 0 )
ROM_LOAD( "uuasnd.p1", 0x00000, 0x080000, CRC(be1a1131) SHA1(b7f50d8db6b7d134757e0746e7d9faf9fd3a2c7e) )
ROM_LOAD( "uuasnd.p2", 0x080000, 0x080000, CRC(c8492b3a) SHA1(d390e37f4a62869079bb38395a2e86a5ad24392f) )
ROM_END
ROM_START( m4vegastg ) ROM_START( m4vegastg )
@ -4059,10 +3522,6 @@ ROM_END
ROM_START( m4wildms )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "wild.bin", 0x0000, 0x010000, CRC(33519799) SHA1(d5154fa5307f25f6a3ee8759520907eb4c06fdf9) )
ROM_END
ROM_START( m4wildtm ) ROM_START( m4wildtm )
@ -9222,34 +8681,10 @@ GAME( 198?, m4clr, 0, mod2 , mpu4, driver_device, 0, ROT
#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK) #define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK)
// GEEN TUBES // GEEN TUBES
GAME(199?, m4addrd ,m4addr ,mod2 ,mpu4 , mpu4_state,m4default_alt ,ROT0, "Barcrest","Adders & Ladders (Barcrest) (DAL, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4ambass ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ambassador (Barcrest) (DAM, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4atlan ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Atlantis (Barcrest) (DAT, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4bjc ,0 ,mod2 ,mpu4 , mpu4_state,m4default_alt ,ROT0, "Barcrest","Black Jack Club (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4exprs ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Express (Barcrest) (DXP, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4brdway ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Broadway (Barcrest) (DBR, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4bigbn ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Big Ben (Barcrest) (DBB, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4cheryo ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Cherryo (Barcrest) (DCH, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4giant ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Giant (Barcrest) (DGI, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4holdon ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Hold On (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4libty ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Liberty (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4meglnk ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Megalink (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4multwy ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Multiway (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4num1 ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Number One (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4nudup ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Nudge Up (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4omega ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Omega (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4randr ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Random Roulette (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4samu ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Samurai (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4stards ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Stardust (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4tbreel ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Reel (Barcrest) (Dutch) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4tbrldx ,m4tbreel ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Reel (Barcrest) (Dutch) (MPU4) (set 3, Deluxe?)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4taj ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Taj Mahal (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4topdk ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Top Deck (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4topdk ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Top Deck (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4tricol ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Tricolor (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4addrd ,m4addr ,mod2 ,mpu4 , mpu4_state,m4default_alt ,ROT0, "Barcrest","Adders & Ladders (Barcrest) (DAL, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4tridic ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Triple Dice (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4twilgt ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twilight (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4voodoo ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Voodoo 1000 (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4voodoo ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Voodoo 1000 (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4wildms ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Wild Mystery (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
// needs better reel (correct setup) handling to boot // needs better reel (correct setup) handling to boot
GAME(199?, m4blkbul ,0 ,mod2 ,mpu4 , mpu4_state,m4default_alt ,ROT0, "Barcrest","Super Play (Black Bull?) (Barcrest) [XSP] (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // XSP?? GAME(199?, m4blkbul ,0 ,mod2 ,mpu4 , mpu4_state,m4default_alt ,ROT0, "Barcrest","Super Play (Black Bull?) (Barcrest) [XSP] (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // XSP??
@ -9308,7 +8743,6 @@ GAME(199?, m4brook ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Bar
GAME(199?, m4buc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Buccaneer (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4buc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Buccaneer (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4calamab,m4calama ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Calamari Club (Barcrest - Bwb) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4calamab,m4calama ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Calamari Club (Barcrest - Bwb) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4calama ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Calamari Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4calama ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Calamari Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4cashat ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Cash Attack (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4cashln ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Cash Lines (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // gives WRONG SOUND, NEEDS V1 (can be skipped with 1) GAME(199?, m4cashln ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Cash Lines (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // gives WRONG SOUND, NEEDS V1 (can be skipped with 1)
GAME(199?, m4ceptr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ceptor (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4ceptr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ceptor (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4chasei ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4chasei ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
@ -9364,7 +8798,6 @@ GAME(199?, m4magrep ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Ba
GAME(199?, m4nhtt ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","New Hit the Top (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4nhtt ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","New Hit the Top (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4nile ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Nile Jewels (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4nile ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Nile Jewels (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4nudgew ,0 ,mod4yam ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Nudge A Win (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // no sound with any system? GAME(199?, m4nudgew ,0 ,mod4yam ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Nudge A Win (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // no sound with any system?
GAME(199?, m4nnwwc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4nudshf ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4nudshf ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4oldtmr ,0 ,mod4oki ,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Old Timer (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4oldtmr ,0 ,mod4oki ,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Old Timer (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4casot ,m4oldtmr ,mod4oki ,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Casino Old Timer (Black & White?) (Old Timer Sound hack?) (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // uses the same program??? GAME(199?, m4casot ,m4oldtmr ,mod4oki ,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Casino Old Timer (Black & White?) (Old Timer Sound hack?) (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // uses the same program???
@ -9385,13 +8818,11 @@ GAME(199?, m4przwo ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Bar
GAME(199?, m4przwta ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Prize Winner Takes All (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4przwta ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Prize Winner Takes All (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4reeltm ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Reel Timer (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4reeltm ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Reel Timer (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4rdht ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Red Heat (Golden Nugget?) (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4rdht ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Red Heat (Golden Nugget?) (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4rhr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Red Hot Roll (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4rhrc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Red Hot Roll Classic (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4rhrc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Red Hot Roll Classic (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4rhrcl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Red Hot Roll Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4rhrcl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Red Hot Roll Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4rwb ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Red White & Blue (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4rwb ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Red White & Blue (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4rmtp ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Reel Magic Turbo Play / Star Play 300? (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4rmtp ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Reel Magic Turbo Play / Star Play 300? (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4rmtpd ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Reel Magic Turbo Play Deluxe (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4rmtpd ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Reel Magic Turbo Play Deluxe (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4richfm ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Rich & Famous (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4ringfr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Ring Of Fire (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4ringfr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Ring Of Fire (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4rhog2 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Road Hog 2 - I'm Back (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4rhog2 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Road Hog 2 - I'm Back (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4rhogc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Road Hog Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4rhogc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Road Hog Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
@ -9406,7 +8837,6 @@ GAME(199?, m4steptm ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Ba
GAME(199?, m4supbj ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4supbj ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4supbjc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4supbjc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4suphv ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Hyper Viper (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4suphv ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Hyper Viper (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4supst ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Streak (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4take5 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Take 5 (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4take5 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Take 5 (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4takepk ,0 ,mod4oki ,mpu4jackpot8per , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Take Your Pick (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4takepk ,0 ,mod4oki ,mpu4jackpot8per , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Take Your Pick (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4tpcl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Take Your Pick Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4tpcl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Take Your Pick Club (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
@ -9419,7 +8849,6 @@ GAME(199?, m4tutcl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Bar
GAME(199?, m4twintm ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twin Timer (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4twintm ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twin Timer (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4twist ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twist Again (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4twist ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twist Again (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4univ ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Universe (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4univ ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Universe (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4uuaw ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Up Up and Away (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4vegast ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Vegas Strip (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4vegast ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Vegas Strip (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4vegastg,m4vegast ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Vegas Strip (Barcrest) [German] (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4vegastg,m4vegast ,mod4oki ,mpu4 , mpu4_state,m4default_bigbank ,ROT0, "Barcrest","Vegas Strip (Barcrest) [German] (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4vivess ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Viva Espana Showcase (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4vivess ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Viva Espana Showcase (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )

View File

@ -47,8 +47,9 @@ DRIVER_INIT_MEMBER(mpu4_state,m4_showstring_mod2)
DRIVER_INIT_MEMBER (mpu4_state, connect4) DRIVER_INIT_MEMBER (mpu4_state, connect4)
{ {
m_reels = 0; //reel-free game mpu4_state *state = machine().driver_data<mpu4_state>();
m_led_lamp=1; state->m_reels = 0; //reel-free game
state->m_led_lamp=1;
} }
@ -1259,6 +1260,137 @@ ROM_START( m4c999c )
ROM_END ROM_END
ROM_START( m4ambass )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "ambassador.bin", 0x0000, 0x010000, CRC(310313ac) SHA1(8e11515615754090d716b428adc4e2718ee1211d) )
ROM_END
ROM_START( m4atlan )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dat14.bin", 0x0000, 0x010000, CRC(d91fb9b2) SHA1(a06a868a17f84e2a012b0fe28025458e4f899c1d) )
ROM_END
ROM_START( m4bjc )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dbc11.bin", 0x0000, 0x010000, CRC(ce28b677) SHA1(81006768e937b42f051e580f093b7182ad59236a) )
ROM_END
ROM_START( m4exprs )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dxp20.bin", 0x0000, 0x010000, CRC(09e68942) SHA1(2253ab76286b7c7af34ff99cc6d8e60b26edcacb) )
ROM_END
ROM_START( m4brdway )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dbr11.bin", 0x0000, 0x010000, CRC(5cbb8a0f) SHA1(bee8b2b7d70c24f98b7626caa278cb84136941a4) )
ROM_END
ROM_START( m4bigbn )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dbb12.bin", 0x0000, 0x010000, CRC(7acec20d) SHA1(5f3a21227329608c0afdb5facac977dee94ab9f5) )
ROM_END
ROM_START( m4cheryo )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dch14.bin", 0x0000, 0x010000, CRC(47333745) SHA1(479bec721ccaa2c4b11f3022d3d1eb12de92ac81) )
ROM_END
ROM_START( m4giant )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dgi21.bin", 0x0000, 0x010000, CRC(07d8685a) SHA1(1b51db748543f2e4b6b7d7ad16b77864bbfe5a66) )
ROM_END
ROM_START( m4holdon )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dho25.bin", 0x0000, 0x010000, CRC(9c22690d) SHA1(a2474dd1901628551804ba2bf652a8a5a1de5739) )
ROM_END
ROM_START( m4libty )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dlt10.bin", 0x0000, 0x010000, CRC(25d91c01) SHA1(788ba8669bae5b4cdfb7231c7225d6745038a575) )
ROM_END
ROM_START( m4meglnk )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dml20.bin", 0x0000, 0x010000, CRC(bbf48b45) SHA1(0ca9adf6a4171efad1af7b411e713dc35c654d30) )
ROM_END
ROM_START( m4multwy )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dmu17.bin", 0x0000, 0x010000, CRC(336b128e) SHA1(1d8268bfa0ffee62c76ffbf0ee89731626cf90ca) )
ROM_END
ROM_START( m4num1 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dno17.bin", 0x0000, 0x010000, CRC(3b302160) SHA1(ff52803472e119aa46fe1cff134b5503858dfee1) )
ROM_END
ROM_START( m4nudup )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dnu25.bin", 0x0000, 0x010000, CRC(c8d83f94) SHA1(fa0834d41c7506cab14e50b4036943a61411ed0e) )
ROM_END
ROM_START( m4omega )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dom23.bin", 0x0000, 0x010000, CRC(d51e078c) SHA1(2c38d271b9ce4731ce26106764529839b5110b3e) )
ROM_END
ROM_START( m4randr )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "drr22.bin", 0x0000, 0x010000, CRC(9fdcee66) SHA1(196c8d3ea4141c209ecc5b0acdab7a872f791dc0) )
ROM_END
ROM_START( m4samu )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dsm10.bin", 0x0000, 0x010000, CRC(c2a10732) SHA1(9a9dcd0445662d301320a7fb0f4e5da8a719a86b) )
ROM_END
ROM_START( m4stards )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dsd13.bin", 0x0000, 0x010000, CRC(a17fbe93) SHA1(f2a9e0c059f309f63e6da3e47740644ad4839fa8) )
ROM_END
ROM_START( m4tbreel )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dtr12.bin", 0x0000, 0x010000, CRC(cdb63ef5) SHA1(748cc06e6a274b125d189dd66f2adad8bd2fb166) ) // aka dtr31.dat
ROM_END
ROM_START( m4tbrldx )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dtv30.dat", 0x0000, 0x010000, CRC(c314846c) SHA1(bfa6539b204477a04a5bbc8d13c3a666c52b597b) )
ROM_END
ROM_START( m4taj )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "tajmahal.bin", 0x0000, 0x010000, CRC(c2db162a) SHA1(358e7bb858f0a34d39f43494cea13bf00a67e48e) )
ROM_END
ROM_START( m4tricol )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dtc25.bin", 0x0000, 0x010000, CRC(d3318dde) SHA1(19194d206deee920a1b0122dddc3d5bc0a7a48c5) )
ROM_END
ROM_START( m4tridic )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "trp.bin", 0x0000, 0x010000, CRC(d91fb9b2) SHA1(a06a868a17f84e2a012b0fe28025458e4f899c1d) )
ROM_REGION( 0x48, "fakechr", 0 )
ROM_LOAD( "tdice.chr", 0x0000, 0x000048, CRC(6d28754a) SHA1(beb7724e9f621d315b2f16abfd3bbc6a99077a05) )
ROM_END
ROM_START( m4twilgt )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dtl22.bin", 0x0000, 0x010000, CRC(ed4c8b6a) SHA1(7644046a273304104eaa6260f6cc75950592d4b6) )
ROM_END
ROM_START( m4wildms )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "wild.bin", 0x0000, 0x010000, CRC(33519799) SHA1(d5154fa5307f25f6a3ee8759520907eb4c06fdf9) )
ROM_END
GAME(199?, m4rsg ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type, V1.2)",GAME_FLAGS ) GAME(199?, m4rsg ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type, V1.2)",GAME_FLAGS )
GAME(199?, m4rsga ,m4rsg ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type, V1.0)",GAME_FLAGS ) GAME(199?, m4rsga ,m4rsg ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type, V1.0)",GAME_FLAGS )
@ -1389,25 +1521,25 @@ GAME(199?, m4solsila ,m4solsil ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0,
GAME(199?, m4starbr ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Stars And Bars (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) GAME(199?, m4starbr ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Stars And Bars (Barcrest) (Dutch) (MPU4)",GAME_FLAGS )
GAME(199?, m4sunset ,0 ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BSB 0.4)",GAME_FLAGS ) GAME(199?, m4sunset ,0 ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BSB 0.4)",GAME_FLAGS )
GAME(199?, m4sb5 ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BSB 0.3)", GAME_FLAGS ) GAME(199?, m4sb5 ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BSB 0.3)", GAME_FLAGS )
GAME(199?, m4sunsetd ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SBU 2.0)",GAME_FLAGS ) GAME(199?, m4sunsetd ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SBU 2.0)",GAME_FLAGS )
GAME(199?, m4sunsete ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.1)",GAME_FLAGS ) GAME(199?, m4sunsete ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.1)",GAME_FLAGS )
GAME(199?, m4sunsetf ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 1)",GAME_FLAGS ) GAME(199?, m4sunsetf ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 1)",GAME_FLAGS )
GAME(199?, m4sunsetg ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 2)",GAME_FLAGS ) GAME(199?, m4sunsetg ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 2)",GAME_FLAGS )
GAME(199?, m4sunseth ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 3, bad)",GAME_FLAGS ) GAME(199?, m4sunseth ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 3, bad)",GAME_FLAGS )
GAME(199?, m4sunseti ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 4)",GAME_FLAGS ) GAME(199?, m4sunseti ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 4)",GAME_FLAGS )
GAME(199?, m4sunsetj ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 5)",GAME_FLAGS ) GAME(199?, m4sunsetj ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 5)",GAME_FLAGS )
GAME(199?, m4sunsetk ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.1)",GAME_FLAGS ) GAME(199?, m4sunsetk ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.1)",GAME_FLAGS )
GAME(199?, m4sunsetl ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 1)",GAME_FLAGS ) GAME(199?, m4sunsetl ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 1)",GAME_FLAGS )
GAME(199?, m4sunsetm ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 2)",GAME_FLAGS ) GAME(199?, m4sunsetm ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 2)",GAME_FLAGS )
GAME(199?, m4sunsetn ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 3)",GAME_FLAGS ) GAME(199?, m4sunsetn ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 3)",GAME_FLAGS )
GAME(199?, m4sunseto ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 4)",GAME_FLAGS ) GAME(199?, m4sunseto ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 4)",GAME_FLAGS )
GAME(199?, m4sunsetp ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 5)",GAME_FLAGS ) GAME(199?, m4sunsetp ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 5)",GAME_FLAGS )
GAME(199?, m4sunsetq ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 6)",GAME_FLAGS ) GAME(199?, m4sunsetq ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 6)",GAME_FLAGS )
GAME(199?, m4sunsetr ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 7)",GAME_FLAGS ) GAME(199?, m4sunsetr ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 7)",GAME_FLAGS )
GAME(199?, m4sunsets ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 8)",GAME_FLAGS ) GAME(199?, m4sunsets ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 8)",GAME_FLAGS )
GAME(199?, m4sunsett ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 9)",GAME_FLAGS ) GAME(199?, m4sunsett ,m4sunset ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 9)",GAME_FLAGS )
GAME(199?, m4supslt ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Supa Slot (Barcrest) (MPU4)", GAME_FLAGS ) GAME(199?, m4supslt ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Supa Slot (Barcrest) (MPU4)", GAME_FLAGS )
@ -1451,21 +1583,21 @@ GAME(199?, m4wayina ,m4wayin ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0,
/* Bwb */ /* Bwb */
GAME(199?, m4flshlt ,0 ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 1)", GAME_FLAGS ) GAME(199?, m4flshlt ,0 ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 1)", GAME_FLAGS )
GAME(199?, m4flshlta ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 2)", GAME_FLAGS ) GAME(199?, m4flshlta ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 2)", GAME_FLAGS )
GAME(199?, m4flshltb ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 3)", GAME_FLAGS ) GAME(199?, m4flshltb ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 3)", GAME_FLAGS )
GAME(199?, m4flshltc ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 4)", GAME_FLAGS ) GAME(199?, m4flshltc ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 4)", GAME_FLAGS )
GAME(199?, m4flshltd ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 5)", GAME_FLAGS ) GAME(199?, m4flshltd ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 5)", GAME_FLAGS )
GAME(199?, m4flshlte ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 6)", GAME_FLAGS ) GAME(199?, m4flshlte ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 6)", GAME_FLAGS )
GAME(199?, m4flshltf ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 7)", GAME_FLAGS ) GAME(199?, m4flshltf ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 7)", GAME_FLAGS )
GAME(199?, m4flshltg ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 8)", GAME_FLAGS ) GAME(199?, m4flshltg ,m4flshlt ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Flashlite (Bwb) (MPU4) (set 8)", GAME_FLAGS )
GAME(199?, m4blflsh ,0 ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 1)", GAME_FLAGS ) GAME(199?, m4blflsh ,0 ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 1)", GAME_FLAGS )
GAME(199?, m4blflsha ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 2)", GAME_FLAGS ) GAME(199?, m4blflsha ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 2)", GAME_FLAGS )
GAME(199?, m4blflshb ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 3)", GAME_FLAGS ) GAME(199?, m4blflshb ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 3)", GAME_FLAGS )
GAME(199?, m4blflshc ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 4)", GAME_FLAGS ) GAME(199?, m4blflshc ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 4)", GAME_FLAGS )
GAME(199?, m4blflshd ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 5)", GAME_FLAGS ) GAME(199?, m4blflshd ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 5)", GAME_FLAGS )
GAME(199?, m4blflshe ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 6)", GAME_FLAGS ) GAME(199?, m4blflshe ,m4blflsh ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Bwb","Blue Flash (Bwb) (MPU4) (set 6)", GAME_FLAGS )
/* Pcp */ /* Pcp */
@ -1527,8 +1659,37 @@ GAME(199?, m4centpta,m4centpt ,mod2 ,mpu4 , mpu4_state,m4default ,ROT
GAME(199?, m4clbcls ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Club Classic (Barcrest) (MPU4)", GAME_FLAGS ) // set stake (still moans tho) GAME(199?, m4clbcls ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Club Classic (Barcrest) (MPU4)", GAME_FLAGS ) // set stake (still moans tho)
// OC9 (on cloud 9?) // OC9 (on cloud 9?)
GAME(199?, m4c999 ,0 ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (OC9 0.3, set 1)", GAME_FLAGS ) GAME(199?, m4c999 ,0 ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (OC9 0.3, set 1)", GAME_FLAGS )
GAME(199?, m4c999a ,m4c999 ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (OC9 0.3, set 2)", GAME_FLAGS ) GAME(199?, m4c999a ,m4c999 ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (OC9 0.3, set 2)", GAME_FLAGS )
// make sure these are the same // make sure these are the same
GAME(199?, m4c999b ,m4c999 ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (CLN 3.6)", GAME_FLAGS ) // bad chr GAME(199?, m4c999b ,m4c999 ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (CLN 3.6)", GAME_FLAGS ) // bad chr
GAME(199?, m4c999c ,m4c999 ,mod2 ,mpu4 , mpu4_state,m4_showstring_mod2 ,ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (CLN 3.0)", GAME_FLAGS ) // bad chr GAME(199?, m4c999c ,m4c999 ,mod2 ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Cloud 999 (Barcrest) (MPU4) (CLN 3.0)", GAME_FLAGS ) // bad chr
// GEEN TUBES (press Q to open door and 'W' to play anyway, as long as the game works and doesn't report reel errors)
GAME(199?, m4ambass ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ambassador (Barcrest) (DAM, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4atlan ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Atlantis (Barcrest) (DAT, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4bjc ,0 ,mod2 ,mpu4 , mpu4_state,m4default_alt ,ROT0, "Barcrest","Black Jack Club (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4exprs ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Express (Barcrest) (DXP, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4brdway ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Broadway (Barcrest) (DBR, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4bigbn ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Big Ben (Barcrest) (DBB, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4cheryo ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Cherryo (Barcrest) (DCH, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4giant ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Giant (Barcrest) (DGI, Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4holdon ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Hold On (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4libty ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Liberty (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4meglnk ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Megalink (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4multwy ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Multiway (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4num1 ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Number One (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4nudup ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Nudge Up (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4omega ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Omega (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4randr ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Random Roulette (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4samu ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Samurai (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4stards ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Stardust (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4tbreel ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Reel (Barcrest) (Dutch) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4tbrldx ,m4tbreel ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Reel (Barcrest) (Dutch) (MPU4) (set 3, Deluxe?)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4taj ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Taj Mahal (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4tricol ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Tricolor (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4tridic ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Triple Dice (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4twilgt ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twilight (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4wildms ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Wild Mystery (Barcrest) (Dutch) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )

View File

@ -11,6 +11,38 @@ INPUT_PORTS_EXTERN( mpu4 );
#include "gamball.lh" #include "gamball.lh"
DRIVER_INIT_MEMBER( mpu4_state, m4_debug_mod4yam )
{
// many original barcrest / bwb sets have identification info around here
// this helps with sorting
UINT8 *src = machine().root_device().memregion( "maincpu" )->base();
int size = machine().root_device().memregion( "maincpu" )->bytes();
for (int j=0;j<size;j+=0x10000)
{
if (size>0x10000) printf("\nblock 0x%06x:\n",j);
printf("\ncopyright string:\n");
for (int i = 0xffe0; i<0xfff0; i++)
{
printf("%c", src[j+i]);
}
printf("\n\nidentification string:\n");
for (int i = 0xff28; i<0xff30; i++)
{
printf("%c", src[j+i]);
}
printf("\n");
}
}
DRIVER_INIT_MEMBER( mpu4_state, m4_showstring_mod4yam )
{
DRIVER_INIT_CALL( m4_debug_mod4yam );
DRIVER_INIT_CALL( m4debug );
}
INPUT_PORTS_START( m4gambal ) INPUT_PORTS_START( m4gambal )
PORT_START("ORANGE1") PORT_START("ORANGE1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("00")// 20p level PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("00")// 20p level
@ -384,3 +416,123 @@ GAME(199?, m4ra ,0 ,mod4yam ,mpu4 , mpu4_state,m4default ,ROT0, "Barcr
GAME(199?, m4sayno ,0 ,mod4yam ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Say No More (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4sayno ,0 ,mod4yam ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Say No More (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4vivasx ,0 ,mod4yam ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Viva Las Vegas Six (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4vivasx ,0 ,mod4yam ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Viva Las Vegas Six (Barcrest) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
GAME(199?, m4acechs ,0 ,mod4yam ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Ace Chase (Bwb) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) GAME(199?, m4acechs ,0 ,mod4yam ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Ace Chase (Bwb) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
#define M4SUPST_EXTRA_ROMS \
ROM_REGION( 0x48, "fakechr", 0 ) \
ROM_LOAD( "ss.chr", 0x0000, 0x000048, CRC(bd206d57) SHA1(ecfe38d9b4823ae6bc2fc440c243e6ae5e2edaa4) ) \
#define M4SUPST_SET(year, setname,parent,name,offset,length,hash,company,title) \
ROM_START( setname ) \
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
M4SUPST_EXTRA_ROMS \
ROM_END \
GAME(year, setname, parent ,mod4yam ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS ) \
M4SUPST_SET( 199?, m4supst, 0, "cs4b.p1", 0x0000, 0x010000, CRC(fb0aac20) SHA1(3a40be78f7add7905afa8d1226ad41bf0041a2ec), "Barcrest","Super Streak (Barcrest) (MPU4) (set 1)" )
M4SUPST_SET( 199?, m4supst__a, m4supst, "cs4ad.p1", 0x0000, 0x010000, CRC(c0e81dfd) SHA1(2da922df6c102f8d0f1678e974df9e4d356e5133), "Barcrest","Super Streak (Barcrest) (MPU4) (set 2)" )
M4SUPST_SET( 199?, m4supst__b, m4supst, "cs4bd.p1", 0x0000, 0x010000, CRC(dafc7ed6) SHA1(3e92d5557d2f587132f4b3b633978ab7d4333fcc), "Barcrest","Super Streak (Barcrest) (MPU4) (set 3)" )
M4SUPST_SET( 199?, m4supst__c, m4supst, "cs4d.p1", 0x0000, 0x010000, CRC(c1fcda65) SHA1(11f2a45f3f821eac6b98b1988824d77aada3d759), "Barcrest","Super Streak (Barcrest) (MPU4) (set 4)" )
M4SUPST_SET( 199?, m4supst__d, m4supst, "cs4dk.p1", 0x0000, 0x010000, CRC(30a46171) SHA1(ef1f2951b478ba2b2d42dfb0ec4ed59f28d79972), "Barcrest","Super Streak (Barcrest) (MPU4) (set 5)" )
M4SUPST_SET( 199?, m4supst__e, m4supst, "cs4dy.p1", 0x0000, 0x010000, CRC(72b15ce7) SHA1(c451ac552ffe9bcde1990b97a60b0ed8918bf8c8), "Barcrest","Super Streak (Barcrest) (MPU4) (set 6)" )
M4SUPST_SET( 199?, m4supst__f, m4supst, "cs4k.p1", 0x0000, 0x010000, CRC(f252f9ea) SHA1(251998ea752deb4f4a05c833b19e89d334334fac), "Barcrest","Super Streak (Barcrest) (MPU4) (set 7)" )
M4SUPST_SET( 199?, m4supst__g, m4supst, "cs4s.p1", 0x0000, 0x010000, CRC(10f7b88d) SHA1(0aac0ebbe0ce04db49fc7de4325eea9abdfd74b5), "Barcrest","Super Streak (Barcrest) (MPU4) (set 8)" )
M4SUPST_SET( 199?, m4supst__h, m4supst, "cs4y.p1", 0x0000, 0x010000, CRC(a464d09d) SHA1(d38c0f8c7c9b7f560b685781a7dcf82bc031a191), "Barcrest","Super Streak (Barcrest) (MPU4) (set 9)" )
M4SUPST_SET( 199?, m4supst__i, m4supst, "csp02ad.p1", 0x0000, 0x010000, CRC(96bbbc26) SHA1(ca127151c771963c07f0f368102ede8095d11863), "Barcrest","Super Streak (Barcrest) (MPU4) (set 10)" )
M4SUPST_SET( 199?, m4supst__j, m4supst, "csp02b.p1", 0x0000, 0x010000, CRC(913ea9ff) SHA1(182bcc007d007a1c7f57767358600d2de7d1e3cf), "Barcrest","Super Streak (Barcrest) (MPU4) (set 11)" )
M4SUPST_SET( 199?, m4supst__k, m4supst, "csp02bd.p1", 0x0000, 0x010000, CRC(ad0137a1) SHA1(d043372ba09081dd4e807f009a6460b4b30e6453), "Barcrest","Super Streak (Barcrest) (MPU4) (set 12)" )
M4SUPST_SET( 199?, m4supst__l, m4supst, "csp02c.p1", 0x0000, 0x010000, CRC(fdad4b22) SHA1(4f19922821a9d1663bd9355447209384272e7542), "Barcrest","Super Streak (Barcrest) (MPU4) (set 13)" )
M4SUPST_SET( 199?, m4supst__m, m4supst, "csp02d.p1", 0x0000, 0x010000, CRC(9717a58d) SHA1(8bc495dc4db0041718ae2db14a01a789616c8764), "Barcrest","Super Streak (Barcrest) (MPU4) (set 14)" )
M4SUPST_SET( 199?, m4supst__n, m4supst, "csp02dk.p1", 0x0000, 0x010000, CRC(cd8aa547) SHA1(a13dcb75507878cb133b9ef739fb41d932d4eed5), "Barcrest","Super Streak (Barcrest) (MPU4) (set 15)" )
M4SUPST_SET( 199?, m4supst__o, m4supst, "csp02dr.p1", 0x0000, 0x010000, CRC(6656e588) SHA1(4001ec0d1145ef0107e62ccda61e22ba8b0cdc92), "Barcrest","Super Streak (Barcrest) (MPU4) (set 16)" )
M4SUPST_SET( 199?, m4supst__p, m4supst, "csp02dy.p1", 0x0000, 0x010000, CRC(14ff7e1d) SHA1(455b6ff93a5f25dc5f43c62a6c1d9a18de1ce94b), "Barcrest","Super Streak (Barcrest) (MPU4) (set 17)" )
M4SUPST_SET( 199?, m4supst__q, m4supst, "csp02k.p1", 0x0000, 0x010000, CRC(c438c754) SHA1(c1d2e664091c1eaf1e4d964a3bfd446b11d7ba41), "Barcrest","Super Streak (Barcrest) (MPU4) (set 18)" )
M4SUPST_SET( 199?, m4supst__r, m4supst, "csp02r.p1", 0x0000, 0x010000, CRC(4abe0f80) SHA1(67f7f9946a26b5097b6ce719dbd599790078f365), "Barcrest","Super Streak (Barcrest) (MPU4) (set 19)" )
M4SUPST_SET( 199?, m4supst__s, m4supst, "csp02s.p1", 0x0000, 0x010000, CRC(47c0068d) SHA1(5480a519a6e6df2757e66cfcf904dd6c2873cc43), "Barcrest","Super Streak (Barcrest) (MPU4) (set 20)" )
M4SUPST_SET( 199?, m4supst__t, m4supst, "csp02y.p1", 0x0000, 0x010000, CRC(d51d18d8) SHA1(a65fd4326872775364d2d7a886e98a1ee07596b7), "Barcrest","Super Streak (Barcrest) (MPU4) (set 21)" )
M4SUPST_SET( 199?, m4supst__u, m4supst, "cst04ad.p1", 0x0000, 0x010000, CRC(b946d40d) SHA1(c03fa48f8b64c3cf4504f472f21a38f8a55f12e6), "Barcrest","Super Streak (Barcrest) (MPU4) (set 22)" )
M4SUPST_SET( 199?, m4supst__v, m4supst, "cst04b.p1", 0x0000, 0x010000, CRC(45333d45) SHA1(d6ccb39ee9b316772052f856f79424c34ff273c5), "Barcrest","Super Streak (Barcrest) (MPU4) (set 23)" )
M4SUPST_SET( 199?, m4supst__w, m4supst, "cst04bd.p1", 0x0000, 0x010000, CRC(03b56b07) SHA1(903b24ab93f9584f228278729b5a99451b8e81f7), "Barcrest","Super Streak (Barcrest) (MPU4) (set 24)" )
M4SUPST_SET( 199?, m4supst__x, m4supst, "cst04c.p1", 0x0000, 0x010000, CRC(9c000883) SHA1(da0a9f1afc218c14a57a46fe2ea63e166f4e3739), "Barcrest","Super Streak (Barcrest) (MPU4) (set 25)" )
M4SUPST_SET( 199?, m4supst__y, m4supst, "cst04d.p1", 0x0000, 0x010000, CRC(32281bec) SHA1(a043fb615c2a66d23d85ae80cb0b1705523f411c), "Barcrest","Super Streak (Barcrest) (MPU4) (set 26)" )
M4SUPST_SET( 199?, m4supst__z, m4supst, "cst04dk.p1", 0x0000, 0x010000, CRC(9345e7b7) SHA1(8bff80d2b847fbae050f77215efe3e55b98a4657), "Barcrest","Super Streak (Barcrest) (MPU4) (set 27)" )
M4SUPST_SET( 199?, m4supst__0, m4supst, "cst04dr.p1", 0x0000, 0x010000, CRC(8d397063) SHA1(45642de2629e89e2495d1cbd5aed90cf2a4cf1c1), "Barcrest","Super Streak (Barcrest) (MPU4) (set 28)" )
M4SUPST_SET( 199?, m4supst__1, m4supst, "cst04dy.p1", 0x0000, 0x010000, CRC(4a303ced) SHA1(6c12b956358753c8bf99bd3316646721c9ec2585), "Barcrest","Super Streak (Barcrest) (MPU4) (set 29)" )
M4SUPST_SET( 199?, m4supst__2, m4supst, "cst04k.p1", 0x0000, 0x010000, CRC(a59584f5) SHA1(8cfcf069ad905277f1925e682602e129e97e619b), "Barcrest","Super Streak (Barcrest) (MPU4) (set 30)" )
M4SUPST_SET( 199?, m4supst__3, m4supst, "cst04r.p1", 0x0000, 0x010000, CRC(c9771997) SHA1(ed98650c0d73f2db0fe380777d10404ccabced31), "Barcrest","Super Streak (Barcrest) (MPU4) (set 31)" )
M4SUPST_SET( 199?, m4supst__4, m4supst, "cst04s.p1", 0x0000, 0x010000, CRC(cd5b848d) SHA1(4dd3dd1c883552c7b5c475156308604b12eff75a), "Barcrest","Super Streak (Barcrest) (MPU4) (set 32)" )
M4SUPST_SET( 199?, m4supst__5, m4supst, "cst04y.p1", 0x0000, 0x010000, CRC(7adc00ae) SHA1(5688f0876c18faf474a6d8487fdd85f20f9fc144), "Barcrest","Super Streak (Barcrest) (MPU4) (set 33)" )
M4SUPST_SET( 199?, m4supst__6, m4supst, "csu03ad.p1", 0x0000, 0x010000, CRC(5d7b6393) SHA1(19c24f4113efb6a1499936e5f89a8ad859ff8df0), "Barcrest","Super Streak (Barcrest) (MPU4) (set 34)" )
M4SUPST_SET( 199?, m4supst__7, m4supst, "csu03b.p1", 0x0000, 0x010000, CRC(57826c2a) SHA1(b835eb3066fec468ab55851d1dd023484e2d57e3), "Barcrest","Super Streak (Barcrest) (MPU4) (set 35)" )
M4SUPST_SET( 199?, m4supst__8, m4supst, "csu03bd.p1", 0x0000, 0x010000, CRC(092e7039) SHA1(36a7c18872e4012e3acce0d01d2cc2c201a3c867), "Barcrest","Super Streak (Barcrest) (MPU4) (set 36)" )
M4SUPST_SET( 199?, m4supst__9, m4supst, "csu03c.p1", 0x0000, 0x010000, CRC(b30a3c00) SHA1(066b0007092720a6f89edf8eafffe2f8fd83edbc), "Barcrest","Super Streak (Barcrest) (MPU4) (set 37)" )
M4SUPST_SET( 199?, m4supst__aa, m4supst, "csu03d.p1", 0x0000, 0x010000, CRC(03ff9d99) SHA1(390087c136e4c314de9086adb7b020e8adabe34a), "Barcrest","Super Streak (Barcrest) (MPU4) (set 38)" )
M4SUPST_SET( 199?, m4supst__ab, m4supst, "csu03dk.p1", 0x0000, 0x010000, CRC(cf7e61ff) SHA1(0e328ce5ff86770fabaf91d48a8de039323d112a), "Barcrest","Super Streak (Barcrest) (MPU4) (set 39)" )
M4SUPST_SET( 199?, m4supst__ac, m4supst, "csu03dr.p1", 0x0000, 0x010000, CRC(00d700d1) SHA1(8bcc3c470c42780b1f1404fc6ff53e6ec7d89ad0), "Barcrest","Super Streak (Barcrest) (MPU4) (set 40)" )
M4SUPST_SET( 199?, m4supst__ad, m4supst, "csu03dy.p1", 0x0000, 0x010000, CRC(8ec77c04) SHA1(64708460439a7e124f90eef6b9628e57f7d78ebc), "Barcrest","Super Streak (Barcrest) (MPU4) (set 41)" )
M4SUPST_SET( 199?, m4supst__ae, m4supst, "csu03k.p1", 0x0000, 0x010000, CRC(701a0837) SHA1(31237fd108b354fb2afc449efa3a53dee2cf7be8), "Barcrest","Super Streak (Barcrest) (MPU4) (set 42)" )
M4SUPST_SET( 199?, m4supst__af, m4supst, "csu03r.p1", 0x0000, 0x010000, CRC(d86a6895) SHA1(2c42bcf5de739f01e18bd1b766eec26a6da5aa52), "Barcrest","Super Streak (Barcrest) (MPU4) (set 43)" )
M4SUPST_SET( 199?, m4supst__ag, m4supst, "csu03s.p1", 0x0000, 0x010000, CRC(197bb032) SHA1(06e98713ff5fc72bffccde1cc92fc8cb63665fad), "Barcrest","Super Streak (Barcrest) (MPU4) (set 44)" )
M4SUPST_SET( 199?, m4supst__ah, m4supst, "csu03y.p1", 0x0000, 0x010000, CRC(bee0e7e1) SHA1(6a1ab766af9147f0d4a7c1d2a95c9a6e3e3f4986), "Barcrest","Super Streak (Barcrest) (MPU4) (set 45)" )
M4SUPST_SET( 199?, m4supst__ai, m4supst, "eeh02ad.p1", 0x0000, 0x010000, CRC(25874a6d) SHA1(12e4fb36d231c3104df3613dd3851f411a876eb0), "Barcrest","Super Streak (Barcrest) (MPU4) (set 46)" )
M4SUPST_SET( 199?, m4supst__aj, m4supst, "eeh02b.p1", 0x0000, 0x010000, CRC(ef280a8a) SHA1(912a825e69482a540cf0cadfc49a37a2822f3ecb), "Barcrest","Super Streak (Barcrest) (MPU4) (set 47)" )
M4SUPST_SET( 199?, m4supst__ak, m4supst, "eeh02bd.p1", 0x0000, 0x010000, CRC(5f126810) SHA1(8fe1cbc7d93e2db35225388ee0773f6a98762ca1), "Barcrest","Super Streak (Barcrest) (MPU4) (set 48)" )
M4SUPST_SET( 199?, m4supst__al, m4supst, "eeh02c.p1", 0x0000, 0x010000, CRC(3f49b936) SHA1(a0d07e0101f8cc38ebc28cfc1b239793b961f5ab), "Barcrest","Super Streak (Barcrest) (MPU4) (set 49)" )
M4SUPST_SET( 199?, m4supst__am, m4supst, "eeh02d.p1", 0x0000, 0x010000, CRC(14dcfe63) SHA1(3ac77c9aa9b3b77fb1df98d2b427564be41dca78), "Barcrest","Super Streak (Barcrest) (MPU4) (set 50)" )
M4SUPST_SET( 199?, m4supst__an, m4supst, "eeh02dk.p1", 0x0000, 0x010000, CRC(81a39421) SHA1(6fa43e8cb83e7fb940cc224eed5ee3f254c18c4d), "Barcrest","Super Streak (Barcrest) (MPU4) (set 51)" )
M4SUPST_SET( 199?, m4supst__ao, m4supst, "eeh02dr.p1", 0x0000, 0x010000, CRC(c7755823) SHA1(05626ed49a2f800555f3f404273fa910b68de75c), "Barcrest","Super Streak (Barcrest) (MPU4) (set 52)" )
M4SUPST_SET( 199?, m4supst__ap, m4supst, "eeh02dy.p1", 0x0000, 0x010000, CRC(5a1e70cd) SHA1(88bb29fd52d2331b72bb04652f9578f2c2f5a9ac), "Barcrest","Super Streak (Barcrest) (MPU4) (set 53)" )
M4SUPST_SET( 199?, m4supst__aq, m4supst, "eeh02k.p1", 0x0000, 0x010000, CRC(b78882ec) SHA1(79c6a6d2cfe113743d3a93eb825fccab2b025933), "Barcrest","Super Streak (Barcrest) (MPU4) (set 54)" )
M4SUPST_SET( 199?, m4supst__ar, m4supst, "eeh02r.p1", 0x0000, 0x010000, CRC(ff54884e) SHA1(2783f0e562e946597288ddbec4dcd1101e188d1d), "Barcrest","Super Streak (Barcrest) (MPU4) (set 55)" )
M4SUPST_SET( 199?, m4supst__as, m4supst, "eeh02s.p1", 0x0000, 0x010000, CRC(c5856c3c) SHA1(5a0e5a7188913e1c36eac894bbeeae47a4f3589c), "Barcrest","Super Streak (Barcrest) (MPU4) (set 56)" )
M4SUPST_SET( 199?, m4supst__at, m4supst, "eeh02y.p1", 0x0000, 0x010000, CRC(623fa0a0) SHA1(5a49cea5e94afccbf965cbda7a8d9a74f9734a6e), "Barcrest","Super Streak (Barcrest) (MPU4) (set 57)" )
M4SUPST_SET( 199?, m4supst__au, m4supst, "sp8b.p1", 0x0000, 0x010000, CRC(3b12d7e8) SHA1(92a15e5f8391d74c192e8386abdb8853a76bff05), "Barcrest","Super Streak (Barcrest) (MPU4) (set 58)" )
M4SUPST_SET( 199?, m4supst__av, m4supst, "sp8bd.p1", 0x0000, 0x010000, CRC(e0d7f789) SHA1(f6157469e43059adb44e7f2eff5bf73861d5636c), "Barcrest","Super Streak (Barcrest) (MPU4) (set 59)" )
M4SUPST_SET( 199?, m4supst__aw, m4supst, "sp8c.p1", 0x0000, 0x010000, CRC(da0af8ae) SHA1(91042506050967c508b30c3dc2bfa6f6a6e8b532), "Barcrest","Super Streak (Barcrest) (MPU4) (set 60)" )
M4SUPST_SET( 199?, m4supst__ax, m4supst, "sp8dk.p1", 0x0000, 0x010000, CRC(92432e8f) SHA1(5e6df963ccf92a89c71ae1edd7b71ec1e3f97522), "Barcrest","Super Streak (Barcrest) (MPU4) (set 61)" )
M4SUPST_SET( 199?, m4supst__ay, m4supst, "sp8k.p1", 0x0000, 0x010000, CRC(e39f74d8) SHA1(9d776e7d67859f4514c69fc4f9f43160da9a2ca1), "Barcrest","Super Streak (Barcrest) (MPU4) (set 62)" )
M4SUPST_SET( 199?, m4supst__az, m4supst, "sp8s.p1", 0x0000, 0x010000, CRC(fab99461) SHA1(82f8ca06bb04396f86124dfe4de46265b2edc393), "Barcrest","Super Streak (Barcrest) (MPU4) (set 63)" )
M4SUPST_SET( 199?, m4supst__a0, m4supst, "spsbd.p1", 0x0000, 0x010000, CRC(b621b32d) SHA1(9aab0e074c120cb12beac585f9c513053502955c), "Barcrest","Super Streak (Barcrest) (MPU4) (set 64)" )
M4SUPST_SET( 199?, m4supst__a1, m4supst, "spsc.p1", 0x0000, 0x010000, CRC(8c7a24f5) SHA1(f86be164e05235281fb275e950cedaf6f630d29a), "Barcrest","Super Streak (Barcrest) (MPU4) (set 65)" )
M4SUPST_SET( 199?, m4supst__a2, m4supst, "spsd.p1", 0x0000, 0x010000, CRC(d34d3617) SHA1(5373335557e4bbb21264bbd9d0fbaf3640f9ab35), "Barcrest","Super Streak (Barcrest) (MPU4) (set 66)" )
M4SUPST_SET( 199?, m4supst__a3, m4supst, "spsdk.p1", 0x0000, 0x010000, CRC(cf2fd3e7) SHA1(50d3c0851bec90037cd65a5c55654b0e688b96ca), "Barcrest","Super Streak (Barcrest) (MPU4) (set 67)" )
M4SUPST_SET( 199?, m4supst__a4, m4supst, "spsk.p1", 0x0000, 0x010000, CRC(873a1414) SHA1(47b2bbef168382112cd12ace2d6a58695f4b0254), "Barcrest","Super Streak (Barcrest) (MPU4) (set 68)" )
M4SUPST_SET( 199?, m4supst__a5, m4supst, "spss.p1", 0x0000, 0x010000, CRC(5e28bdb7) SHA1(3865c891178feb744ad11b2dea491350efc48bea), "Barcrest","Super Streak (Barcrest) (MPU4) (set 69)" )
M4SUPST_SET( 199?, m4supst__a6, m4supst, "stc02ad.p1", 0x0000, 0x010000, CRC(d9a2b4d1) SHA1(9a6862a44817b3ec465f126fd2a5d2c9825d846e), "Barcrest","Super Streak (Barcrest) (MPU4) (set 70)" )
M4SUPST_SET( 199?, m4supst__a7, m4supst, "stc02b.p1", 0x0000, 0x010000, CRC(bd2e8e6c) SHA1(71670dccedc2f47888c1205de59a81677ffeabaa), "Barcrest","Super Streak (Barcrest) (MPU4) (set 71)" )
M4SUPST_SET( 199?, m4supst__a8, m4supst, "stc02bd.p1", 0x0000, 0x010000, CRC(efbed99b) SHA1(62d80248bb666bfb49ed7546936da744e43fa870), "Barcrest","Super Streak (Barcrest) (MPU4) (set 72)" )
M4SUPST_SET( 199?, m4supst__a9, m4supst, "stc02c.p1", 0x0000, 0x010000, CRC(9d342386) SHA1(b50f64d66d89dbd3dee1ff2cb430a2caa050e7c8), "Barcrest","Super Streak (Barcrest) (MPU4) (set 73)" )
M4SUPST_SET( 199?, m4supst__ba, m4supst, "stc02d.p1", 0x0000, 0x010000, CRC(c43f6e65) SHA1(0278cf389f8289d7b819125ae0a612c81ea75fab), "Barcrest","Super Streak (Barcrest) (MPU4) (set 74)" )
M4SUPST_SET( 199?, m4supst__bb, m4supst, "stc02dk.p1", 0x0000, 0x010000, CRC(36576570) SHA1(214a57344d8e161b3dbd07457291ed9bce011842), "Barcrest","Super Streak (Barcrest) (MPU4) (set 75)" )
M4SUPST_SET( 199?, m4supst__bc, m4supst, "stc02dr.p1", 0x0000, 0x010000, CRC(450c553f) SHA1(46050285eeb10dc368ad501c61d41351c4e2fcde), "Barcrest","Super Streak (Barcrest) (MPU4) (set 76)" )
M4SUPST_SET( 199?, m4supst__bd, m4supst, "stc02dy.p1", 0x0000, 0x010000, CRC(d8677dd1) SHA1(18abc0a1d28458c3b26a0d1dbf6ca8aba3f3e240), "Barcrest","Super Streak (Barcrest) (MPU4) (set 77)" )
M4SUPST_SET( 199?, m4supst__be, m4supst, "stc02k.p1", 0x0000, 0x010000, CRC(c6e8d110) SHA1(9e05961b9bba502f52a03de27e608afc52f6c025), "Barcrest","Super Streak (Barcrest) (MPU4) (set 78)" )
M4SUPST_SET( 199?, m4supst__bf, m4supst, "stc02r.p1", 0x0000, 0x010000, CRC(918d769f) SHA1(2a4438828d9e7efd3a94eaebe56585e7ae23d9d1), "Barcrest","Super Streak (Barcrest) (MPU4) (set 79)" )
M4SUPST_SET( 199?, m4supst__bg, m4supst, "stc02s.p1", 0x0000, 0x010000, CRC(9c50fff7) SHA1(3468340d2d04cbdecd669817f8a9c4028e301eeb), "Barcrest","Super Streak (Barcrest) (MPU4) (set 80)" )
M4SUPST_SET( 199?, m4supst__bh, m4supst, "stc02y.p1", 0x0000, 0x010000, CRC(0ce65e71) SHA1(02ae1fd5a41ab5a96ddcfe1cf3e8567561291961), "Barcrest","Super Streak (Barcrest) (MPU4) (set 81)" )
M4SUPST_SET( 199?, m4supst__bi, m4supst, "sttad.p1", 0x0000, 0x010000, CRC(af615f05) SHA1(b2c1b8ba086a4d33f1269c28d4caa7286a27f085), "Barcrest","Super Streak (Barcrest) (MPU4) (set 82)" )
M4SUPST_SET( 199?, m4supst__bj, m4supst, "sttb.p1", 0x0000, 0x010000, CRC(3119149f) SHA1(e749fcc5f95ccd29f42bfd0b140cf3cbb84d9599), "Barcrest","Super Streak (Barcrest) (MPU4) (set 83)" )
M4SUPST_SET( 199?, m4supst__bk, m4supst, "sttbd.p1", 0x0000, 0x010000, CRC(cfddaf39) SHA1(0f24b5e691e1d43f6604087f0b3bc2571d2c4002), "Barcrest","Super Streak (Barcrest) (MPU4) (set 84)" )
M4SUPST_SET( 199?, m4supst__bl, m4supst, "sttd.p1", 0x0000, 0x010000, CRC(8bc2498c) SHA1(a9cd3a6968186818a8c4033b1f304eac152244cf), "Barcrest","Super Streak (Barcrest) (MPU4) (set 85)" )
M4SUPST_SET( 199?, m4supst__bm, m4supst, "sttdk.p1", 0x0000, 0x010000, CRC(39903dde) SHA1(f92c4380051ada7bbc5739550c8dfdd6ddaaa3fe), "Barcrest","Super Streak (Barcrest) (MPU4) (set 86)" )
M4SUPST_SET( 199?, m4supst__bn, m4supst, "sttdr.p1", 0x0000, 0x010000, CRC(866f69f0) SHA1(ef9717f89b9718f1bcf8d3592f240ec9cf48bca3), "Barcrest","Super Streak (Barcrest) (MPU4) (set 87)" )
M4SUPST_SET( 199?, m4supst__bo, m4supst, "sttdy.p1", 0x0000, 0x010000, CRC(74ebd933) SHA1(b308c8cae2c74e4e07c6e4afb505068220714824), "Barcrest","Super Streak (Barcrest) (MPU4) (set 88)" )
M4SUPST_SET( 199?, m4supst__bp, m4supst, "sttk.p1", 0x0000, 0x010000, CRC(461db2f5) SHA1(8b97342d7ebfb33aa6aff246e8d799f4435788b7), "Barcrest","Super Streak (Barcrest) (MPU4) (set 89)" )
M4SUPST_SET( 199?, m4supst__bq, m4supst, "sttr.p1", 0x0000, 0x010000, CRC(2591f6ec) SHA1(3d83d930e41e164e71d67b529967320e1eee8354), "Barcrest","Super Streak (Barcrest) (MPU4) (set 90)" )
M4SUPST_SET( 199?, m4supst__br, m4supst, "stts.p1", 0x0000, 0x010000, CRC(a5e29c32) SHA1(8ba2f76505c2f40493c918b9d9524fa67999f7c1), "Barcrest","Super Streak (Barcrest) (MPU4) (set 91)" )
M4SUPST_SET( 199?, m4supst__bs, m4supst, "stty.p1", 0x0000, 0x010000, CRC(7306fab9) SHA1(0da1612490fcff9b7a17f97190b6b561016c3b18), "Barcrest","Super Streak (Barcrest) (MPU4) (set 92)" )
M4SUPST_SET( 199?, m4supst__bt, m4supst, "stuad.p1", 0x0000, 0x010000, CRC(e7a01b7b) SHA1(3db08800a35d440f012ca69d84c30465818b4993), "Barcrest","Super Streak (Barcrest) (MPU4) (set 93)" )
M4SUPST_SET( 199?, m4supst__bu, m4supst, "stub.p1", 0x0000, 0x010000, CRC(9044badf) SHA1(af8e218e3dc457bb5f24e3f2d74a8639466c3f11), "Barcrest","Super Streak (Barcrest) (MPU4) (set 94)" )
M4SUPST_SET( 199?, m4supst__bv, m4supst, "stubd.p1", 0x0000, 0x010000, CRC(438e1687) SHA1(5e0f27e95bf861d4edc55709efc79496c7353e8b), "Barcrest","Super Streak (Barcrest) (MPU4) (set 95)" )
M4SUPST_SET( 199?, m4supst__bw, m4supst, "stud.p1", 0x0000, 0x010000, CRC(1cbe3bec) SHA1(005dde84e57c5517fc6d6b975cc882dae11cbf63), "Barcrest","Super Streak (Barcrest) (MPU4) (set 96)" )
M4SUPST_SET( 199?, m4supst__bx, m4supst, "studk.p1", 0x0000, 0x010000, CRC(0931d501) SHA1(afa078248230cbc0acc9d3af641ec63ed0424a75), "Barcrest","Super Streak (Barcrest) (MPU4) (set 97)" )
M4SUPST_SET( 199?, m4supst__by, m4supst, "studr.p1", 0x0000, 0x010000, CRC(e06e1c59) SHA1(f4454f640335dbf6f9b8154d7805102253f605b4), "Barcrest","Super Streak (Barcrest) (MPU4) (set 98)" )
M4SUPST_SET( 199?, m4supst__bz, m4supst, "study.p1", 0x0000, 0x010000, CRC(8b4275e0) SHA1(267a9d2eddf41b8838eeaee06bba45f0a8b8451f), "Barcrest","Super Streak (Barcrest) (MPU4) (set 99)" )
M4SUPST_SET( 199?, m4supst__b0, m4supst, "stuk.p1", 0x0000, 0x010000, CRC(a66fb54f) SHA1(4351edbf6c5de817cf6972885ff1f6c7df837c37), "Barcrest","Super Streak (Barcrest) (MPU4) (set 100)" )
M4SUPST_SET( 199?, m4supst__b1, m4supst, "stur.p1", 0x0000, 0x010000, CRC(eeb3bfed) SHA1(87a753511fb384a505d3cc69ca67fe4e288cf3bb), "Barcrest","Super Streak (Barcrest) (MPU4) (set 101)" )
M4SUPST_SET( 199?, m4supst__b2, m4supst, "stus.p1", 0x0000, 0x010000, CRC(19aca6ad) SHA1(1583e76a4e1058fa97efdd9a7e6f7c4fe806b2f4), "Barcrest","Super Streak (Barcrest) (MPU4) (set 102)" )
M4SUPST_SET( 199?, m4supst__b3, m4supst, "stuy.p1", 0x0000, 0x010000, CRC(e6b2b76f) SHA1(bf251b751e6a8d2764c63e92d48e1a64666b9a47), "Barcrest","Super Streak (Barcrest) (MPU4) (set 103)" )
M4SUPST_SET( 199?, m4supst__b4, m4supst, "superstreak1deb.bin", 0x0000, 0x010000, CRC(892ccad9) SHA1(c88daadd9778e363e154b674b57ccd07cea59836), "Barcrest","Super Streak (Barcrest) (MPU4) (set 104)" )
M4SUPST_SET( 199?, m4supst__b5, m4supst, "supst2515", 0x0000, 0x010000, CRC(c073a249) SHA1(4ae37eb61dd5e50687f433fb89f65b97926b7358), "Barcrest","Super Streak (Barcrest) (MPU4) (set 105)" )

View File

@ -11,6 +11,7 @@
#include "emu.h" #include "emu.h"
#include "includes/mpu4.h" #include "includes/mpu4.h"
MACHINE_CONFIG_EXTERN( mod4yam );
MACHINE_CONFIG_EXTERN( mod4oki ); MACHINE_CONFIG_EXTERN( mod4oki );
MACHINE_CONFIG_EXTERN( mod2 ); MACHINE_CONFIG_EXTERN( mod2 );
INPUT_PORTS_EXTERN( mpu4 ); INPUT_PORTS_EXTERN( mpu4 );
@ -2242,3 +2243,334 @@ M4TUTFRT_SET( 199?, m4tutfrt__a4, m4tutfrt, "tuf20ad1.0", 0x0000, 0x010000, CR
M4TUTFRT_SET( 199?, m4tutfrt__a5, m4tutfrt, "tui05___.1a3", 0x0000, 0x010000, CRC(42e3d400) SHA1(4cf914141dfc1f88704403b467176da77369da06), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (set 69)" ) M4TUTFRT_SET( 199?, m4tutfrt__a5, m4tutfrt, "tui05___.1a3", 0x0000, 0x010000, CRC(42e3d400) SHA1(4cf914141dfc1f88704403b467176da77369da06), "Barcrest","Tutti Fruity (Barcrest) (MPU4) (set 69)" )
#define M4CASHAT_EXTRA_ROMS \
ROM_REGION( 0x48, "fakechr", 0 ) \
ROM_LOAD( "tri98.chr", 0x0000, 0x000048, CRC(8a4532a8) SHA1(c128fd513bbcba68a1c75a11e09a54ba1d23d6f4) ) \
ROM_REGION( 0x100000, "msm6376", 0 ) \
ROM_LOAD( "cas1.hex", 0x000000, 0x080000, CRC(4711c483) SHA1(af1ceb317b7bb1c2d0c3f7a99049679c356e1860) ) \
ROM_LOAD( "cas2.hex", 0x080000, 0x080000, CRC(26ec235c) SHA1(51de955e5def47b82ac8891d09dc0b0e5e19c01d) ) \
#define M4CASHAT_SET(year, setname,parent,name,offset,length,hash,company,title) \
ROM_START( setname ) \
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
M4CASHAT_EXTRA_ROMS \
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS ) \
M4CASHAT_SET( 199?, m4cashat, 0, "csa12y.p1", 0x0000, 0x020000, CRC(0374584a) SHA1(446e1d122d5b38e4ee11d98a4235d7198d98b541), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 1)" )
M4CASHAT_SET( 199?, m4cashat__a, m4cashat, "caa22ad.p1", 0x0000, 0x020000, CRC(b6274874) SHA1(7c2dc0f3e8e7bb76f3b90300141b320fa0ca39ac), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 2)" )
M4CASHAT_SET( 199?, m4cashat__b, m4cashat, "caa22b.p1", 0x0000, 0x020000, CRC(e7f6f5e5) SHA1(fc16b50ae00525a3c84c0cbf7b418898cc5db1bc), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 3)" )
M4CASHAT_SET( 199?, m4cashat__c, m4cashat, "caa22bd.p1", 0x0000, 0x020000, CRC(581b2b6f) SHA1(55f910c7646d5e7d3be6ffd5b4ec0f04fb98b82e), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 4)" )
M4CASHAT_SET( 199?, m4cashat__d, m4cashat, "caa22d.p1", 0x0000, 0x020000, CRC(cc494044) SHA1(13ff215f41833aa133fe9d120792c834d1e0752b), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 5)" )
M4CASHAT_SET( 199?, m4cashat__e, m4cashat, "caa22dh.p1", 0x0000, 0x020000, CRC(18ae14fa) SHA1(20a8f197075ec153ac116b9a85e3591d9d4d045d), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 6)" )
M4CASHAT_SET( 199?, m4cashat__f, m4cashat, "caa22dk.p1", 0x0000, 0x020000, CRC(71fa4ee7) SHA1(ddf2cee47f93cc5794d64922658d5892993c8d2f), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 7)" )
M4CASHAT_SET( 199?, m4cashat__g, m4cashat, "caa22dr.p1", 0x0000, 0x020000, CRC(c2f5f5d6) SHA1(aebedb84ae388a1f0c558d36893d1341c1959594), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 8)" )
M4CASHAT_SET( 199?, m4cashat__h, m4cashat, "caa22dy.p1", 0x0000, 0x020000, CRC(3b3de6b1) SHA1(d72ce7851969466063c6d7952787691a7c44c9dd), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 9)" )
M4CASHAT_SET( 199?, m4cashat__i, m4cashat, "caa22h.p1", 0x0000, 0x020000, CRC(a743ca70) SHA1(e4b5ee02524873c2ccb66b4bfca39464c23eb43e), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 10)" )
M4CASHAT_SET( 199?, m4cashat__j, m4cashat, "caa22k.p1", 0x0000, 0x020000, CRC(ce17906d) SHA1(18a302132e683b00509982c09c6e3b00ae1201a0), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 11)" )
M4CASHAT_SET( 199?, m4cashat__k, m4cashat, "caa22r.p1", 0x0000, 0x020000, CRC(7d182b5c) SHA1(801d1b032e94cc45302a9f84ba7f9ce2b74f6449), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 12)" )
M4CASHAT_SET( 199?, m4cashat__l, m4cashat, "caa22s.p1", 0x0000, 0x020000, CRC(e7edf653) SHA1(f2bdf45cc18ad4b45b47d2b2b4641460fcdfa963), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 13)" )
M4CASHAT_SET( 199?, m4cashat__m, m4cashat, "caa22y.p1", 0x0000, 0x020000, CRC(84d0383b) SHA1(791666ce17fd65067df446a3320efd22bce23925), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 14)" )
M4CASHAT_SET( 199?, m4cashat__n, m4cashat, "caa23ad.p1", 0x0000, 0x020000, CRC(a8641c35) SHA1(18dad4634e27e4f0b791c331b9efcf5e1d56d3bb), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 15)" )
M4CASHAT_SET( 199?, m4cashat__o, m4cashat, "caa23b.p1", 0x0000, 0x020000, CRC(a867c129) SHA1(9b0b577938ae0500a8b80211710ed5c0b2a597fa), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 16)" )
M4CASHAT_SET( 199?, m4cashat__p, m4cashat, "caa23bd.p1", 0x0000, 0x020000, CRC(46587f2e) SHA1(b14ed6b810ba3039824a0d13c5b75fedd40803b3), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 17)" )
M4CASHAT_SET( 199?, m4cashat__q, m4cashat, "caa23d.p1", 0x0000, 0x020000, CRC(83d87488) SHA1(1e13a47de4837e42650c6a4a13a838eb68d0beae), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 18)" )
M4CASHAT_SET( 199?, m4cashat__r, m4cashat, "caa23dh.p1", 0x0000, 0x020000, CRC(06ed40bb) SHA1(68f2923c4ecd91231cc66a4be7c797d7b2a46ae0), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 19)" )
M4CASHAT_SET( 199?, m4cashat__s, m4cashat, "caa23dk.p1", 0x0000, 0x020000, CRC(6fb91aa6) SHA1(5966be8aa9d5348bbdcb85b21acceaabc3c02602), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 20)" )
M4CASHAT_SET( 199?, m4cashat__t, m4cashat, "caa23dr.p1", 0x0000, 0x020000, CRC(dcb6a197) SHA1(a18af78ba604b53a2af1e9b8dfdc6858964f631d), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 21)" )
M4CASHAT_SET( 199?, m4cashat__u, m4cashat, "caa23dy.p1", 0x0000, 0x020000, CRC(257eb2f0) SHA1(0a5f9743afb5dd7392425951580532ea5f8f17f1), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 22)" )
M4CASHAT_SET( 199?, m4cashat__v, m4cashat, "caa23h.p1", 0x0000, 0x020000, CRC(e8d2febc) SHA1(14fe5e1699fef74145f2f6fff61e75fe3e3a0b3b), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 23)" )
M4CASHAT_SET( 199?, m4cashat__w, m4cashat, "caa23k.p1", 0x0000, 0x020000, CRC(8186a4a1) SHA1(0d8f59df0fb5a1044f6fb7d81f50f9c9b94add9b), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 24)" )
M4CASHAT_SET( 199?, m4cashat__x, m4cashat, "caa23r.p1", 0x0000, 0x020000, CRC(32891f90) SHA1(c832c2610606bc5a3beeff8f85c31af496b14427), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 25)" )
M4CASHAT_SET( 199?, m4cashat__y, m4cashat, "caa23s.p1", 0x0000, 0x020000, CRC(26a49cdd) SHA1(ee28a22eeb8c4e8ddf041122505f9846d6b6d7d6), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 26)" )
M4CASHAT_SET( 199?, m4cashat__z, m4cashat, "caa23y.p1", 0x0000, 0x020000, CRC(cb410cf7) SHA1(31d34a766939a9b2a23be00c2ffd658d854b3ab4), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 27)" )
M4CASHAT_SET( 199?, m4cashat__0, m4cashat, "casattack8.bin", 0x0000, 0x020000, CRC(e29ea247) SHA1(ad00ea3bfd2eab51b20fd786cb1ce84de0d98173), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 28)" )
M4CASHAT_SET( 199?, m4cashat__1, m4cashat, "catt15g", 0x0000, 0x020000, CRC(3f7a8863) SHA1(df8ed393aeb3a5ec3fd5bdc01c9dbbb630e6d254), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 29)" )
M4CASHAT_SET( 199?, m4cashat__2, m4cashat, "catt15t", 0x0000, 0x020000, CRC(c6760c3a) SHA1(b7f4a3af52faf7e430e5b4ec75e2dc97e3f07dc0), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 30)" )
M4CASHAT_SET( 199?, m4cashat__3, m4cashat, "csa11ad.p1", 0x0000, 0x020000, CRC(7c1daa59) SHA1(9c0479094ba2f985803e58360b738b0baa2e410a), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 31)" )
M4CASHAT_SET( 199?, m4cashat__4, m4cashat, "csa11b.p1", 0x0000, 0x020000, CRC(c740daba) SHA1(afa5bdf9f6aacb3a5126aa828e4d0d2518efe663), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 32)" )
M4CASHAT_SET( 199?, m4cashat__5, m4cashat, "csa11bd.p1", 0x0000, 0x020000, CRC(55fccfd1) SHA1(b7c748573e5fb32a6be5e069e7f165a11c62b7d5), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 33)" )
M4CASHAT_SET( 199?, m4cashat__6, m4cashat, "csa11d.p1", 0x0000, 0x020000, CRC(ecff6f1b) SHA1(3f37d8e20d5663e376c9dc5876a910a320edcf7d), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 34)" )
M4CASHAT_SET( 199?, m4cashat__7, m4cashat, "csa11dh.p1", 0x0000, 0x020000, CRC(bbc0acca) SHA1(80d95505041fd4c869f9d835d0527070f2f582d9), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 35)" )
M4CASHAT_SET( 199?, m4cashat__8, m4cashat, "csa11dk.p1", 0x0000, 0x020000, CRC(1549f044) SHA1(22bc130106a23d0e9c354b4aa97d7b7fd8776082), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 36)" )
M4CASHAT_SET( 199?, m4cashat__9, m4cashat, "csa11dr.p1", 0x0000, 0x020000, CRC(cf121168) SHA1(aa52b528ac565684399dc58aeb56691457727035), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 37)" )
M4CASHAT_SET( 199?, m4cashat__aa, m4cashat, "csa11dy.p1", 0x0000, 0x020000, CRC(36da020f) SHA1(ca202c7127450d905e4717776e1f1d32fa89279b), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 38)" )
M4CASHAT_SET( 199?, m4cashat__ab, m4cashat, "csa11h.p1", 0x0000, 0x020000, CRC(297cb9a1) SHA1(63460eed75242fc7c27ee1fc9da28221e7bb21b1), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 39)" )
M4CASHAT_SET( 199?, m4cashat__ac, m4cashat, "csa11k.p1", 0x0000, 0x020000, CRC(87f5e52f) SHA1(30b7f8c17198045bba30aaabbe74b3c1dc7d0320), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 40)" )
M4CASHAT_SET( 199?, m4cashat__ad, m4cashat, "csa11r.p1", 0x0000, 0x020000, CRC(5dae0403) SHA1(6f2238f0fe0797bf0926044bb251fed6f97dbed6), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 41)" )
M4CASHAT_SET( 199?, m4cashat__ae, m4cashat, "csa11s.p1", 0x0000, 0x020000, CRC(bef7a119) SHA1(88fc2003a7adda928e2e0fb78db32c7ffcbda924), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 42)" )
M4CASHAT_SET( 199?, m4cashat__af, m4cashat, "csa11y.p1", 0x0000, 0x020000, CRC(a4661764) SHA1(740be82275358b8e3dcec5982b18a083d043d99d), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 43)" )
M4CASHAT_SET( 199?, m4cashat__ag, m4cashat, "csa12ad.p1", 0x0000, 0x020000, CRC(b15c5c64) SHA1(7a8c7b929ecaf0e14d9a5d6cdea303f5e3fc1dec), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 44)" )
M4CASHAT_SET( 199?, m4cashat__ah, m4cashat, "csa12b.p1", 0x0000, 0x020000, CRC(60529594) SHA1(a5e70b55b8df6a94c963b970c3a4398b64b0286b), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 45)" )
M4CASHAT_SET( 199?, m4cashat__ai, m4cashat, "csa12bd.p1", 0x0000, 0x020000, CRC(98bd39ec) SHA1(ebc5a2690f1453adae0f8faee0159a01df91dd6e), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 46)" )
M4CASHAT_SET( 199?, m4cashat__aj, m4cashat, "csa12d.p1", 0x0000, 0x020000, CRC(4bed2035) SHA1(d5438d372222c4258ffb6487ba64eed9ce190133), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 47)" )
M4CASHAT_SET( 199?, m4cashat__ak, m4cashat, "csa12dh.p1", 0x0000, 0x020000, CRC(76815af7) SHA1(6edd4a866a1b038a51cfcc9ed8cef48886b393fb), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 48)" )
M4CASHAT_SET( 199?, m4cashat__al, m4cashat, "csa12dk.p1", 0x0000, 0x020000, CRC(d8080679) SHA1(92babec65fbcee37ff8136a5c4b1e5f4ecd2f5a6), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 49)" )
M4CASHAT_SET( 199?, m4cashat__am, m4cashat, "csa12dr.p1", 0x0000, 0x020000, CRC(0253e755) SHA1(742174137549147ff23fbc9ba1b835cbeaffa602), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 50)" )
M4CASHAT_SET( 199?, m4cashat__an, m4cashat, "csa12dy.p1", 0x0000, 0x020000, CRC(fb9bf432) SHA1(5f519871cc50cf9f49ec652d620267cd11ab155b), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 51)" )
M4CASHAT_SET( 199?, m4cashat__ao, m4cashat, "csa12h.p1", 0x0000, 0x020000, CRC(8e6ef68f) SHA1(b6ac0993938bb065f02498a71628cf532085b347), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 52)" )
M4CASHAT_SET( 199?, m4cashat__ap, m4cashat, "csa12k.p1", 0x0000, 0x020000, CRC(20e7aa01) SHA1(093786b0992c1d9ce5e2d2cfad1eaf1d8e6dc733), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 53)" )
M4CASHAT_SET( 199?, m4cashat__aq, m4cashat, "csa12r.p1", 0x0000, 0x020000, CRC(fabc4b2d) SHA1(3710b7b4bf56e46c60a60fcae82342bf201e38dc), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 54)" )
M4CASHAT_SET( 199?, m4cashat__ar, m4cashat, "csa12s.p1", 0x0000, 0x020000, CRC(61c8af36) SHA1(d81a4056b573194a8627a3618f805d379140ff6a), "Barcrest","Cash Attack (Barcrest) (MPU4) (set 55)" )
#define M4RHR_EXTRA_ROMS \
ROM_REGION( 0x48, "fakechr", 0 ) \
ROM_LOAD( "tri98.chr", 0x0000, 0x000048, CRC(8a4532a8) SHA1(c128fd513bbcba68a1c75a11e09a54ba1d23d6f4) ) \
ROM_REGION( 0x100000, "altmsm6376", 0 ) \
ROM_LOAD( "rhrsnd1.hex", 0x0000, 0x080000, CRC(3e80f8bd) SHA1(2e3a195b49448da11cc0c089a8a9b462894c766b) ) \
ROM_REGION( 0x100000, "msm6376", 0 ) \
ROM_LOAD( "redhotroll10.bin", 0x0000, 0x080000, CRC(64513503) SHA1(4233492f3f6e7ad8459f1ab733727910d3b4bcf8) ) \
#define M4RHR_SET(year, setname,parent,name,offset,length,hash,company,title) \
ROM_START( setname ) \
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
M4RHR_EXTRA_ROMS \
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS ) \
M4RHR_SET( 199?, m4rhr, 0, "rhr15.hex", 0x0000, 0x010000, CRC(895ebbda) SHA1(f2117e743a30f3c9fc6af7fd7843bc333699db9d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 1)" )
M4RHR_SET( 199?, m4rhr__a, m4rhr, "cr4ad.p1", 0x0000, 0x010000, CRC(b99b3d14) SHA1(2ff68b33881e9b3c2db48c335ccbad783013084a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 2)" )
M4RHR_SET( 199?, m4rhr__b, m4rhr, "cr4b.p1", 0x0000, 0x010000, CRC(ae2691b8) SHA1(360c5c3d94bf85cf5ead114dd570ea6c61082aa9), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 3)" )
M4RHR_SET( 199?, m4rhr__c, m4rhr, "cr4bd.p1", 0x0000, 0x010000, CRC(9ba444bf) SHA1(adebf23827a5ac5e3a6d56e3352e0d3f3dc809c0), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 4)" )
M4RHR_SET( 199?, m4rhr__d, m4rhr, "cr4d.p1", 0x0000, 0x010000, CRC(ad9fe2a6) SHA1(e490c5c949559cc222d8491989196b10373ff043), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 5)" )
M4RHR_SET( 199?, m4rhr__e, m4rhr, "cr4dk.p1", 0x0000, 0x010000, CRC(200486b4) SHA1(3916e131801c44985668ccd57dc3e812268f9417), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 6)" )
M4RHR_SET( 199?, m4rhr__f, m4rhr, "cr4dy.p1", 0x0000, 0x010000, CRC(5b5ebe79) SHA1(6c72271258e6b951f2d6c815cfef5032e23cf7bc), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 7)" )
M4RHR_SET( 199?, m4rhr__g, m4rhr, "cr4k.p1", 0x0000, 0x010000, CRC(2cc956e8) SHA1(37fad3d3b9460763ba4d8f569ee71778f9907853), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 8)" )
M4RHR_SET( 199?, m4rhr__h, m4rhr, "cr4s.p1", 0x0000, 0x010000, CRC(836c3e49) SHA1(34dde2fd4fe82ab4a9e16dcf7915705f7b8a007f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 9)" )
M4RHR_SET( 199?, m4rhr__i, m4rhr, "cr4y.p1", 0x0000, 0x010000, CRC(5a3588e8) SHA1(b25156f38fb67dc1f1e36a50af0a9b93882572d0), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 10)" )
M4RHR_SET( 199?, m4rhr__j, m4rhr, "crt03ad.p1", 0x0000, 0x010000, CRC(5b779273) SHA1(b9a278cc6b4af622af35f7d4fdacdca54c94a47f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 11)" )
M4RHR_SET( 199?, m4rhr__k, m4rhr, "crt03b.p1", 0x0000, 0x010000, CRC(da5b3fa3) SHA1(66c570a193665ae0df4542112547fa6f5f9b7b79), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 12)" )
M4RHR_SET( 199?, m4rhr__l, m4rhr, "crt03bd.p1", 0x0000, 0x010000, CRC(6d6bff39) SHA1(08f4235bb2cadcc49c13991fe3e2c806c0be801d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 13)" )
M4RHR_SET( 199?, m4rhr__m, m4rhr, "crt03c.p1", 0x0000, 0x010000, CRC(a5b38945) SHA1(31351667d471c107ade58e97fe5657632d91be80), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 14)" )
M4RHR_SET( 199?, m4rhr__n, m4rhr, "crt03d.p1", 0x0000, 0x010000, CRC(7f39cf9d) SHA1(6f8a1660a253cf7f49ba589b3847ca3dc5a9b4ee), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 15)" )
M4RHR_SET( 199?, m4rhr__o, m4rhr, "crt03dk.p1", 0x0000, 0x010000, CRC(32933785) SHA1(0ae9b8823ed8c914da0a64913afdf3c348142804), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 16)" )
M4RHR_SET( 199?, m4rhr__p, m4rhr, "crt03dr.p1", 0x0000, 0x010000, CRC(2381792a) SHA1(514b9e580d156ec3cfeb460d0895143368e9a360), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 17)" )
M4RHR_SET( 199?, m4rhr__q, m4rhr, "crt03dy.p1", 0x0000, 0x010000, CRC(3439dc85) SHA1(092dcd36e2ea43ecf62cfc1bf1498ea7777213dc), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 18)" )
M4RHR_SET( 199?, m4rhr__r, m4rhr, "crt03k.p1", 0x0000, 0x010000, CRC(0b841ae9) SHA1(5a78381122a3b718e3f212f30f76dc61e2e3ac5e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 19)" )
M4RHR_SET( 199?, m4rhr__s, m4rhr, "crt03r.p1", 0x0000, 0x010000, CRC(2a8bd767) SHA1(a9547ef37da9494bd4ffe5fbb68eca67fe63c3ba), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 20)" )
M4RHR_SET( 199?, m4rhr__t, m4rhr, "crt03s.p1", 0x0000, 0x010000, CRC(2b4c24d2) SHA1(94b19b0e8090dbbde2c67d5949f19d4050972fb1), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 21)" )
M4RHR_SET( 199?, m4rhr__u, m4rhr, "crt03y.p1", 0x0000, 0x010000, CRC(40c3a105) SHA1(7ad988f71a3523ad2b19fa7d6cdf74d4328fb3e1), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 22)" )
M4RHR_SET( 199?, m4rhr__v, m4rhr, "cruad.p1", 0x0000, 0x010000, CRC(3a680f14) SHA1(cd3c2bf77b148ee4f4ce76b2c1bc142491117890), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 23)" )
M4RHR_SET( 199?, m4rhr__w, m4rhr, "crub.p1", 0x0000, 0x010000, CRC(4cee9020) SHA1(b919ba28294c39b49e4fcfa54a75e852f9c873ed), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 24)" )
M4RHR_SET( 199?, m4rhr__x, m4rhr, "crubd.p1", 0x0000, 0x010000, CRC(7184b193) SHA1(392cb5887ec988e3aa1cba2491885103da1e503a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 25)" )
M4RHR_SET( 199?, m4rhr__y, m4rhr, "crud.p1", 0x0000, 0x010000, CRC(2528047f) SHA1(0b07470ff756b003c03fd4a7ff3c1d5f79e8307f), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 26)" )
M4RHR_SET( 199?, m4rhr__z, m4rhr, "crudk.p1", 0x0000, 0x010000, CRC(73465d95) SHA1(3eddaee64a681727743b23fd0bec0285ed59a5ef), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 27)" )
M4RHR_SET( 199?, m4rhr__0, m4rhr, "crudy.p1", 0x0000, 0x010000, CRC(e08696f9) SHA1(37c97bb22ae0d09657d7d589f76adfbe6fb642e0), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 28)" )
M4RHR_SET( 199?, m4rhr__1, m4rhr, "cruk.p1", 0x0000, 0x010000, CRC(168627f0) SHA1(c6c21f8442ff88736d3fd25860d815beb5a6b845), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 29)" )
M4RHR_SET( 199?, m4rhr__2, m4rhr, "crus.p1", 0x0000, 0x010000, CRC(bf2ff034) SHA1(7ee7ef30da4283dbb2b1b040fdd3313cb2e1b7e5), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 30)" )
M4RHR_SET( 199?, m4rhr__3, m4rhr, "cruy.p1", 0x0000, 0x010000, CRC(edf1346b) SHA1(c250178991885a922f676424e70c637e11089efb), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 31)" )
M4RHR_SET( 199?, m4rhr__4, m4rhr, "redhot8.bin", 0x0000, 0x010000, CRC(1dc62d7b) SHA1(640a5b29314a7dc67db271cce06c23c676d77eee), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 32)" )
M4RHR_SET( 199?, m4rhr__5, m4rhr, "rhr03.r", 0x0000, 0x010000, CRC(98d81b1e) SHA1(17ab0dced53be9755aada7954aff2dc2a6973190), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 33)" )
M4RHR_SET( 199?, m4rhr__6, m4rhr, "rhr10", 0x0000, 0x010000, CRC(2a18a033) SHA1(add907c5ab155c28142dcee57825059715afd80d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 34)" )
M4RHR_SET( 199?, m4rhr__7, m4rhr, "rhr2015", 0x0000, 0x010000, CRC(dbfd3b95) SHA1(4fc7ae32f7d76be3d3d07d627391884bd4d6de09), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 35)" )
M4RHR_SET( 199?, m4rhr__8, m4rhr, "rhr2515", 0x0000, 0x010000, CRC(e4554c23) SHA1(6d977beb282fd638de3457e467e842ce79b5be7c), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 36)" )
M4RHR_SET( 199?, m4rhr__9, m4rhr, "rhr2pprg.bin", 0x0000, 0x010000, CRC(f97047b2) SHA1(d3ed8c93e405f9e7448b3924ff9aa84223b76046), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 37)" )
M4RHR_SET( 199?, m4rhr__aa, m4rhr, "rhrb.p1", 0x0000, 0x010000, CRC(876fbe46) SHA1(1c7faf68ddef2ccbb8e3cd2cf5c709a7a4f4daef), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 38)" )
M4RHR_SET( 199?, m4rhr__ab, m4rhr, "rhrbd.p1", 0x0000, 0x010000, CRC(f0fa0c7b) SHA1(96bfce8ea54e392a36cb8d82a032438bff992f07), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 39)" )
M4RHR_SET( 199?, m4rhr__ac, m4rhr, "rhrc.p1", 0x0000, 0x010000, CRC(76a0e556) SHA1(1a9bae286ca40d8e72022645d006a219f113e31a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 40)" )
M4RHR_SET( 199?, m4rhr__ad, m4rhr, "rhrd.p1", 0x0000, 0x010000, CRC(58a5dd6f) SHA1(3646b8cb3d49e8c530e321daad052f27cdf4bb3d), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 41)" )
M4RHR_SET( 199?, m4rhr__ae, m4rhr, "rhrk.p1", 0x0000, 0x010000, CRC(2212cebb) SHA1(224e7e243b17f3ca90a6daa529984e9a879ff266), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 42)" )
M4RHR_SET( 199?, m4rhr__af, m4rhr, "rhrs.p1", 0x0000, 0x010000, CRC(a0e5d5b6) SHA1(c730e6319bbea6f035fb3e249991983783ef5743), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 43)" )
M4RHR_SET( 199?, m4rhr__ag, m4rhr, "rhtad.p1", 0x0000, 0x010000, CRC(ae3a31a0) SHA1(7e1f05a21cf5b3d2aceba755136c567b5d6ecfcd), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 44)" )
M4RHR_SET( 199?, m4rhr__ah, m4rhr, "rhtb.p1", 0x0000, 0x010000, CRC(7ceb13c8) SHA1(f0f22149bd0fb12ef06c4c3ecba605df33f52c51), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 45)" )
M4RHR_SET( 199?, m4rhr__ai, m4rhr, "rhtbd.p1", 0x0000, 0x010000, CRC(e4b290fc) SHA1(bf16d06429d67936118264f6c4f1ae637753d5db), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 46)" )
M4RHR_SET( 199?, m4rhr__aj, m4rhr, "rhtd.p1", 0x0000, 0x010000, CRC(a08d508c) SHA1(10efbfb4fc4820313b410ec73f9c32ed048e2228), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 47)" )
M4RHR_SET( 199?, m4rhr__ak, m4rhr, "rhtdk.p1", 0x0000, 0x010000, CRC(6495681a) SHA1(afd3451402e19c4c4bb8507447d6771323219e80), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 48)" )
M4RHR_SET( 199?, m4rhr__al, m4rhr, "rhtdr.p1", 0x0000, 0x010000, CRC(df9e5c83) SHA1(88586852c0773de4ee1b4c627eabf3de27e5c2a1), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 49)" )
M4RHR_SET( 199?, m4rhr__am, m4rhr, "rhtdy.p1", 0x0000, 0x010000, CRC(42f5746d) SHA1(964bd8801b44de9ea45c43b290b1cd6284e97578), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 50)" )
M4RHR_SET( 199?, m4rhr__an, m4rhr, "rhtk.p1", 0x0000, 0x010000, CRC(c3bfb174) SHA1(2579bf17252988de17a1367546ae187420f95cc5), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 51)" )
M4RHR_SET( 199?, m4rhr__ao, m4rhr, "rhtr.p1", 0x0000, 0x010000, CRC(f53f4876) SHA1(feda495361d384c662554d445a95191a2c52a56a), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 52)" )
M4RHR_SET( 199?, m4rhr__ap, m4rhr, "rhts.p1", 0x0000, 0x010000, CRC(fecb7076) SHA1(43086c6bfd878d0ca1ec8d45285d3e941a62ac8e), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 53)" )
M4RHR_SET( 199?, m4rhr__aq, m4rhr, "rhty.p1", 0x0000, 0x010000, CRC(68546098) SHA1(57981c06efcb44915d8c2d4b6e1cba377c4a8590), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 54)" )
M4RHR_SET( 199?, m4rhr__ar, m4rhr, "rhuad.p1", 0x0000, 0x010000, CRC(2093126b) SHA1(942994793697cec730c461c87b24a1429e46cc02), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 55)" )
M4RHR_SET( 199?, m4rhr__as, m4rhr, "rhub.p1", 0x0000, 0x010000, CRC(2be41a3a) SHA1(a50c7b5b93a619e541be480646517e278da8e579), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 56)" )
M4RHR_SET( 199?, m4rhr__at, m4rhr, "rhubd.p1", 0x0000, 0x010000, CRC(168f7f21) SHA1(9c9e09673bdadd146883a06a8db3c0ee4b304eab), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 57)" )
M4RHR_SET( 199?, m4rhr__au, m4rhr, "rhud.p1", 0x0000, 0x010000, CRC(71932d29) SHA1(e92af5cced251eea2e31c4c1968e77087c64b824), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 58)" )
M4RHR_SET( 199?, m4rhr__av, m4rhr, "rhudk.p1", 0x0000, 0x010000, CRC(8de54a5d) SHA1(a275d8c67d38c09f19ffa41e97fbcbea3d297aa4), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 59)" )
M4RHR_SET( 199?, m4rhr__aw, m4rhr, "rhudr.p1", 0x0000, 0x010000, CRC(ba01ac84) SHA1(d03b3b321abd220f619724e99cc396c38418f2d3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 60)" )
M4RHR_SET( 199?, m4rhr__ax, m4rhr, "rhudy.p1", 0x0000, 0x010000, CRC(692bf4eb) SHA1(136f36073f236b48442a20e06aa51a978135f1b3), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 61)" )
M4RHR_SET( 199?, m4rhr__ay, m4rhr, "rhuk.p1", 0x0000, 0x010000, CRC(9e4e1e91) SHA1(f671858c41dc0e55189e9a86fff1846938b5c2e5), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 62)" )
M4RHR_SET( 199?, m4rhr__az, m4rhr, "rhur.p1", 0x0000, 0x010000, CRC(6e9425e5) SHA1(1e2827f3469af15e8d390d9af839c7b474ea95a7), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 63)" )
M4RHR_SET( 199?, m4rhr__a0, m4rhr, "rhus.p1", 0x0000, 0x010000, CRC(31e776fc) SHA1(e51799e9db5a08cbfb0b6c5466a0a085c3d91db4), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 64)" )
M4RHR_SET( 199?, m4rhr__a1, m4rhr, "rhuy.p1", 0x0000, 0x010000, CRC(5d12178a) SHA1(18525828fac1931bb8e11f96b79db143ed533771), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 65)" )
M4RHR_SET( 199?, m4rhr__a2, m4rhr, "cr__x__x.5_0", 0x0000, 0x010000, CRC(278fe91e) SHA1(dcfed3a7796d1ee365e535115b66c7d6cbe0ab74), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 66)" )
M4RHR_SET( 199?, m4rhr__a3, m4rhr, "cr__x_dx.2_0", 0x0000, 0x010000, CRC(73fb120c) SHA1(4c0f39253dee9b528763a9cb609dec31e8529713), "Barcrest","Red Hot Roll (Barcrest) (MPU4) (set 67)" )
#define M4UUAW_EXTRA_ROMS \
ROM_REGION( 0x100000, "msm6376", 0 ) \
ROM_LOAD( "uuasnd.p1", 0x00000, 0x080000, CRC(be1a1131) SHA1(b7f50d8db6b7d134757e0746e7d9faf9fd3a2c7e) ) \
ROM_LOAD( "uuasnd.p2", 0x080000, 0x080000, CRC(c8492b3a) SHA1(d390e37f4a62869079bb38395a2e86a5ad24392f) ) \
#define M4UUAW_SET(year, setname,parent,name,offset,length,hash,company,title) \
ROM_START( setname ) \
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
M4UUAW_EXTRA_ROMS \
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS ) \
M4UUAW_SET( 199?, m4uuaw, 0, "uua21h.p1", 0x0000, 0x020000, CRC(199e6dae) SHA1(ecd95ba2c2255afbaa8df96d625a8bfc97e4d3bc), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 1)" )
M4UUAW_SET( 199?, m4uuaw__a, m4uuaw, "upa15g", 0x0000, 0x020000, CRC(d20b8b92) SHA1(6fcddc781c204dfd34de2c4e4ce0ec35fb3ec4e0), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 2)" )
M4UUAW_SET( 199?, m4uuaw__b, m4uuaw, "upa15t", 0x0000, 0x020000, CRC(85e3e82a) SHA1(e90183fab082f159d76ea14da794d52ee6ab8200), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 3)" )
M4UUAW_SET( 199?, m4uuaw__c, m4uuaw, "ups21ad.p1", 0x0000, 0x020000, CRC(c19fa891) SHA1(c2772ec20a65ce999d901e8c873ec687113b18d4), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 4)" )
M4UUAW_SET( 199?, m4uuaw__d, m4uuaw, "ups21b.p1", 0x0000, 0x020000, CRC(01320407) SHA1(a3273c59733e42013c3448b2a5c7c575ec0182b9), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 5)" )
M4UUAW_SET( 199?, m4uuaw__e, m4uuaw, "ups21bd.p1", 0x0000, 0x020000, CRC(2fa3cb8a) SHA1(8df994ce93fc6f0df27a6ee73676d9ee73593091), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 6)" )
M4UUAW_SET( 199?, m4uuaw__f, m4uuaw, "ups21d.p1", 0x0000, 0x020000, CRC(2a8db1a6) SHA1(873ab3757920c9153c1542748a74b36ce5e190c2), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 7)" )
M4UUAW_SET( 199?, m4uuaw__g, m4uuaw, "ups21dh.p1", 0x0000, 0x020000, CRC(7bcfbb46) SHA1(b93dfa71e3ec0ea96eaf2db4cd382b0a2852a1ff), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 8)" )
M4UUAW_SET( 199?, m4uuaw__h, m4uuaw, "ups21dk.p1", 0x0000, 0x020000, CRC(0642ae02) SHA1(8898341f8dc4f4c8c45ce6d04a01bd919cb0548a), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 9)" )
M4UUAW_SET( 199?, m4uuaw__i, m4uuaw, "ups21dr.p1", 0x0000, 0x020000, CRC(b54d1533) SHA1(1f9220342dcab675b04895f69a7ca75579ba729f), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 10)" )
M4UUAW_SET( 199?, m4uuaw__j, m4uuaw, "ups21dy.p1", 0x0000, 0x020000, CRC(4c850654) SHA1(21f386060301adef646fe469c1fcfb002d3e3424), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 11)" )
M4UUAW_SET( 199?, m4uuaw__k, m4uuaw, "ups21h.p1", 0x0000, 0x020000, CRC(555e74cb) SHA1(14246b54839eb334576a119d7c87901f3b2f25ad), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 12)" )
M4UUAW_SET( 199?, m4uuaw__l, m4uuaw, "ups21k.p1", 0x0000, 0x020000, CRC(28d3618f) SHA1(186337119e4b663dadc129533ce8a913013390a9), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 13)" )
M4UUAW_SET( 199?, m4uuaw__m, m4uuaw, "ups21r.p1", 0x0000, 0x020000, CRC(9bdcdabe) SHA1(db0bb90705abec92a220a3dbe0ea69266d5e0558), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 14)" )
M4UUAW_SET( 199?, m4uuaw__n, m4uuaw, "ups21s.p1", 0x0000, 0x020000, CRC(c4a8a542) SHA1(61063d55c6017cf17d704df576cb62da5bd75820), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 15)" )
M4UUAW_SET( 199?, m4uuaw__o, m4uuaw, "ups21y.p1", 0x0000, 0x020000, CRC(6214c9d9) SHA1(d25fecc9798e342207d358a54efad1908c0e2247), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 16)" )
M4UUAW_SET( 199?, m4uuaw__p, m4uuaw, "ups22ad.p1", 0x0000, 0x020000, CRC(ee0f53a6) SHA1(eabe58efa82015eb2266a793853e8ade546d6da1), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 17)" )
M4UUAW_SET( 199?, m4uuaw__q, m4uuaw, "ups22b.p1", 0x0000, 0x020000, CRC(e7dbf5ae) SHA1(0fbbc3da1af8b60993a7f6082bd5e96da21cd0b8), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 18)" )
M4UUAW_SET( 199?, m4uuaw__r, m4uuaw, "ups22bd.p1", 0x0000, 0x020000, CRC(003330bd) SHA1(42ad6ddfd7639909151dcee5e40e82a23074fd59), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 19)" )
M4UUAW_SET( 199?, m4uuaw__s, m4uuaw, "ups22d.p1", 0x0000, 0x020000, CRC(cc64400f) SHA1(0ff7858c637fbb43a7cd1313bbf046177e4b7761), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 20)" )
M4UUAW_SET( 199?, m4uuaw__t, m4uuaw, "ups22dh.p1", 0x0000, 0x020000, CRC(545f4071) SHA1(3947499d78d31fb0b269a63a518790b503a97685), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 21)" )
M4UUAW_SET( 199?, m4uuaw__u, m4uuaw, "ups22dk.p1", 0x0000, 0x020000, CRC(29d25535) SHA1(7f053741d12cce467dd437ea998064e13d1ca52b), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 22)" )
M4UUAW_SET( 199?, m4uuaw__v, m4uuaw, "ups22dr.p1", 0x0000, 0x020000, CRC(9addee04) SHA1(45c15536c8846da825a994a667b6e46598c1642e), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 23)" )
M4UUAW_SET( 199?, m4uuaw__w, m4uuaw, "ups22dy.p1", 0x0000, 0x020000, CRC(6315fd63) SHA1(9a5fcab51d4e94b96669149285dda28cd41020b8), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 24)" )
M4UUAW_SET( 199?, m4uuaw__x, m4uuaw, "ups22h.p1", 0x0000, 0x020000, CRC(b3b78562) SHA1(3e75fa20156faa3d38c2b5ac824bffe47e72b7bc), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 25)" )
M4UUAW_SET( 199?, m4uuaw__y, m4uuaw, "ups22k.p1", 0x0000, 0x020000, CRC(ce3a9026) SHA1(80977176c5bae809a564f4fc0e3d6370f91f829b), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 26)" )
M4UUAW_SET( 199?, m4uuaw__z, m4uuaw, "ups22r.p1", 0x0000, 0x020000, CRC(7d352b17) SHA1(d2d1d016a587be318e9018eb1953e68fe83620df), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 27)" )
M4UUAW_SET( 199?, m4uuaw__0, m4uuaw, "ups22s.p1", 0x0000, 0x020000, CRC(ac990aa9) SHA1(396c9eded9c18ab2bcb0f4066a890f6e239830f1), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 28)" )
M4UUAW_SET( 199?, m4uuaw__1, m4uuaw, "ups22y.p1", 0x0000, 0x020000, CRC(84fd3870) SHA1(8d294ae1a92d1e99c4c3f17a2d77fe1d994b2c33), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 29)" )
M4UUAW_SET( 199?, m4uuaw__2, m4uuaw, "uua21ad.p1", 0x0000, 0x020000, CRC(2a18c292) SHA1(5853cb069eb5caa23372e5dedd33868103125780), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 30)" )
M4UUAW_SET( 199?, m4uuaw__3, m4uuaw, "uua21b.p1", 0x0000, 0x020000, CRC(d71cc3db) SHA1(7d783110341237769165a08fd86f597225f8d90c), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 31)" )
M4UUAW_SET( 199?, m4uuaw__4, m4uuaw, "uua21bd.p1", 0x0000, 0x020000, CRC(f04323be) SHA1(194c996d4c8e2fed2bcb02e29423e68b53900a1f), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 32)" )
M4UUAW_SET( 199?, m4uuaw__5, m4uuaw, "uua21d.p1", 0x0000, 0x020000, CRC(664da8c3) SHA1(c93b0b5e796fcde0850e2b3054f1db0417f4e9ed), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 33)" )
M4UUAW_SET( 199?, m4uuaw__6, m4uuaw, "uua21dh.p1", 0x0000, 0x020000, CRC(3ec18dcb) SHA1(fb5fe8ba0b59a21401cf091f43ad9f2a4df3447c), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 34)" )
M4UUAW_SET( 199?, m4uuaw__7, m4uuaw, "uua21dk.p1", 0x0000, 0x020000, CRC(84919e1c) SHA1(c7315a3d1985180ec5ae1f4e5c7f0c99c1e0bac4), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 35)" )
M4UUAW_SET( 199?, m4uuaw__8, m4uuaw, "uua21dr.p1", 0x0000, 0x020000, CRC(434c988f) SHA1(eb6126048df5bc4ff98d9838a3bb6cf24a9ab895), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 36)" )
M4UUAW_SET( 199?, m4uuaw__9, m4uuaw, "uua21dy.p1", 0x0000, 0x020000, CRC(098b30d9) SHA1(48daa77f3aafdcd52d7291cdda533e8a9428de0e), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 37)" )
M4UUAW_SET( 199?, m4uuaw__aa, m4uuaw, "uua21k.p1", 0x0000, 0x020000, CRC(a3ce7e79) SHA1(8670d2cb7281ccabc15c5288a3e0dd99cfc1ae36), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 38)" )
M4UUAW_SET( 199?, m4uuaw__ab, m4uuaw, "uua21r.p1", 0x0000, 0x020000, CRC(641378ea) SHA1(de0282af6a17c7fc16c7eca10e81ffb208675779), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 39)" )
M4UUAW_SET( 199?, m4uuaw__ac, m4uuaw, "uua21s.p1", 0x0000, 0x020000, CRC(27c46fcc) SHA1(68a03fcce5d8155d6c0115d813c17217c4120375), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 40)" )
M4UUAW_SET( 199?, m4uuaw__ad, m4uuaw, "uua21y.p1", 0x0000, 0x020000, CRC(2ed4d0bc) SHA1(ffb0585e729b389855d24015e1ef7582eab88d3e), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 41)" )
M4UUAW_SET( 199?, m4uuaw__ae, m4uuaw, "uua22ad.p1", 0x0000, 0x020000, CRC(b2ace4d5) SHA1(da02abe111fea3fbfb9495e9b447139cd67a61e0), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 42)" )
M4UUAW_SET( 199?, m4uuaw__af, m4uuaw, "uua22b.p1", 0x0000, 0x020000, CRC(71a6374a) SHA1(c14ed22fceb83b5ac72021322c9b8bb3d5afeffb), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 43)" )
M4UUAW_SET( 199?, m4uuaw__ag, m4uuaw, "uua22bd.p1", 0x0000, 0x020000, CRC(68f705f9) SHA1(678ba97241f3dede96239265eed418d4717637a6), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 44)" )
M4UUAW_SET( 199?, m4uuaw__ah, m4uuaw, "uua22d.p1", 0x0000, 0x020000, CRC(c0f75c52) SHA1(a4e1e496b0cbb24767f017fbe228fbb8ab2bb907), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 45)" )
M4UUAW_SET( 199?, m4uuaw__ai, m4uuaw, "uua22dh.p1", 0x0000, 0x020000, CRC(a675ab8c) SHA1(37fb437b95f9ff50fe41ebce825e3dd1b361925e), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 46)" )
M4UUAW_SET( 199?, m4uuaw__aj, m4uuaw, "uua22dk.p1", 0x0000, 0x020000, CRC(1c25b85b) SHA1(b42cdae2e2c00644376eb5f0c5b7567d3811b162), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 47)" )
M4UUAW_SET( 199?, m4uuaw__ak, m4uuaw, "uua22dr.p1", 0x0000, 0x020000, CRC(dbf8bec8) SHA1(b3ac5ed5b8cbc0457e5dfadefcab563e3197b045), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 48)" )
M4UUAW_SET( 199?, m4uuaw__al, m4uuaw, "uua22dy.p1", 0x0000, 0x020000, CRC(913f169e) SHA1(9f82f5d868a9be046ced838f8b53730140ed50b2), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 49)" )
M4UUAW_SET( 199?, m4uuaw__am, m4uuaw, "uua22h.p1", 0x0000, 0x020000, CRC(bf24993f) SHA1(618d6d2f2b762d61eb58087a3597ffb709658631), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 50)" )
M4UUAW_SET( 199?, m4uuaw__an, m4uuaw, "uua22k.p1", 0x0000, 0x020000, CRC(05748ae8) SHA1(d9aeee26c8471bb6ee58a4a838e5c9930da92725), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 51)" )
M4UUAW_SET( 199?, m4uuaw__ao, m4uuaw, "uua22r.p1", 0x0000, 0x020000, CRC(c2a98c7b) SHA1(115f7c7a4b9eab5f3270f43a2db7a320dfc4e223), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 52)" )
M4UUAW_SET( 199?, m4uuaw__ap, m4uuaw, "uua22s.p1", 0x0000, 0x020000, CRC(65f57c0c) SHA1(7b2526cdd1ec973a91bc7ade116e16e03b32596a), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 53)" )
M4UUAW_SET( 199?, m4uuaw__aq, m4uuaw, "uua22y.p1", 0x0000, 0x020000, CRC(886e242d) SHA1(4b49b70fc2635fcf7b538b35b42a358cf4dd60b3), "Barcrest","Up Up and Away (Barcrest) (MPU4) (set 54)" )
#define M4RICHFM_EXTRA_ROMS \
ROM_REGION( 0x100000, "msm6376", 0 ) \
ROM_LOAD( "rfamouss1.hex", 0x000000, 0x080000, CRC(b237c8b8) SHA1(b2322d68fe57cca0ed49b01ae0d3a0e93a623eac) ) \
ROM_LOAD( "rfamouss2.hex", 0x080000, 0x080000, CRC(12c295d5) SHA1(0758354cfb5242b4ce3f5f25c3458d91f4b4a1ec) ) \
#define M4RICHFM_SET(year, setname,parent,name,offset,length,hash,company,title) \
ROM_START( setname ) \
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
M4RICHFM_EXTRA_ROMS \
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS ) \
M4RICHFM_SET( 199?, m4richfm, 0, "rfts.p1", 0x0000, 0x010000, CRC(2a747164) SHA1(a4c8e160f09ebea4fca6dd32ff020d3f1a4f1a1c), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 1)" )
M4RICHFM_SET( 199?, m4richfm__a, m4richfm, "rafc.p1", 0x0000, 0x010000, CRC(d92f602f) SHA1(c93131138deb4018d499b9b45c07d4517c5072b7), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 2)" )
M4RICHFM_SET( 199?, m4richfm__b, m4richfm, "rafd.p1", 0x0000, 0x010000, CRC(b0e9f470) SHA1(cad080a5d7f24968524fe10f6c43b088f35d7364), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 3)" )
M4RICHFM_SET( 199?, m4richfm__c, m4richfm, "rafs.p1", 0x0000, 0x010000, CRC(f312b2e3) SHA1(8bf2cb7b73cfc320143d05d25e28c15fb4f26045), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 4)" )
M4RICHFM_SET( 199?, m4richfm__d, m4richfm, "rafy.p1", 0x0000, 0x010000, CRC(a8812d45) SHA1(c0b89833f87ed90eb3e9c3299fcea362d501ed90), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 5)" )
M4RICHFM_SET( 199?, m4richfm__e, m4richfm, "rchfam8", 0x0000, 0x004000, CRC(55f16698) SHA1(9853b17bbb81371192a564376be7b3074908dbca), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 6)" )
M4RICHFM_SET( 199?, m4richfm__f, m4richfm, "rf5ad.p1", 0x0000, 0x010000, CRC(cd280292) SHA1(605d89608e106979229a00701a2e5b578df50d60), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 7)" )
M4RICHFM_SET( 199?, m4richfm__g, m4richfm, "rf5b.p1", 0x0000, 0x010000, CRC(e1edf753) SHA1(677f0397ec57422241f4669be610cffd33a9b44a), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 8)" )
M4RICHFM_SET( 199?, m4richfm__h, m4richfm, "rf5bd.p1", 0x0000, 0x010000, CRC(2d698365) SHA1(7f91cee0d34550aba9ac0f4ee398df4de6fd6f7e), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 9)" )
M4RICHFM_SET( 199?, m4richfm__i, m4richfm, "rf5d.p1", 0x0000, 0x010000, CRC(034cab0b) SHA1(79eaeb84377dbb8e6bda1dd2ae29a1f79656b9e4), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 10)" )
M4RICHFM_SET( 199?, m4richfm__j, m4richfm, "rf5dk.p1", 0x0000, 0x010000, CRC(14fc0f13) SHA1(a2b294da18c3f5bc9c81eb3f3af5ab5ca58c9cad), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 11)" )
M4RICHFM_SET( 199?, m4richfm__k, m4richfm, "rf5dy.p1", 0x0000, 0x010000, CRC(a2664c64) SHA1(2256b6e0d6472faa901348cb5be849ad012f1d16), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 12)" )
M4RICHFM_SET( 199?, m4richfm__l, m4richfm, "rf5k.p1", 0x0000, 0x010000, CRC(d8787b25) SHA1(885ac7ddd3de4cb475539d02aefbf38fed7c1f2c), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 13)" )
M4RICHFM_SET( 199?, m4richfm__m, m4richfm, "rf5s.p1", 0x0000, 0x010000, CRC(8d1ed193) SHA1(a4ca973dac8a8fd550bf7e57a8cdc627c28da4b8), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 14)" )
M4RICHFM_SET( 199?, m4richfm__n, m4richfm, "rf5y.p1", 0x0000, 0x010000, CRC(ad288548) SHA1(a7222ab5bffe8e5e0844f8e6f13e09afe74b08a8), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 15)" )
M4RICHFM_SET( 199?, m4richfm__o, m4richfm, "rf8b.p1", 0x0000, 0x010000, CRC(105c24e1) SHA1(cb417976a74441bf2ca888198b57fed81d758c15), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 16)" )
M4RICHFM_SET( 199?, m4richfm__p, m4richfm, "rf8c.p1", 0x0000, 0x010000, CRC(8924a706) SHA1(abb1a1f6cdeb15884dfa63fc04882f794453d4ec), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 17)" )
M4RICHFM_SET( 199?, m4richfm__q, m4richfm, "rft20.10", 0x0000, 0x010000, CRC(41e6ef75) SHA1(d836fdea5a89b845687d2ff929365bd81737c760), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 18)" )
M4RICHFM_SET( 199?, m4richfm__r, m4richfm, "rftad.p1", 0x0000, 0x010000, CRC(8553386f) SHA1(ad834d52e51c7f375a370dc6d8586668921a9795), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 19)" )
M4RICHFM_SET( 199?, m4richfm__s, m4richfm, "rftb.p1", 0x0000, 0x010000, CRC(0189cc2f) SHA1(62ccc85c50c56aa2e0bcbb42b5c24d402f00d366), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 20)" )
M4RICHFM_SET( 199?, m4richfm__t, m4richfm, "rftbd.p1", 0x0000, 0x010000, CRC(08351e03) SHA1(d08d38d46793828b147ccde8121fbb9bf422cd60), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 21)" )
M4RICHFM_SET( 199?, m4richfm__u, m4richfm, "rftd.p1", 0x0000, 0x010000, CRC(689f02ed) SHA1(1a30aac5454b0c477a698e9c573fe313bc1fe858), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 22)" )
M4RICHFM_SET( 199?, m4richfm__v, m4richfm, "rftdk.p1", 0x0000, 0x010000, CRC(098b88f5) SHA1(4559b561380055c429a5b4741326f64ad89d8481), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 23)" )
M4RICHFM_SET( 199?, m4richfm__w, m4richfm, "rftdy.p1", 0x0000, 0x010000, CRC(26b912f8) SHA1(1719d63b4a25293199b0729235beb5b93c484490), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 24)" )
M4RICHFM_SET( 199?, m4richfm__x, m4richfm, "rftk.p1", 0x0000, 0x010000, CRC(6a48bd98) SHA1(2f17194869ca008f7a2eb622bd3725bc91950a17), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 25)" )
M4RICHFM_SET( 199?, m4richfm__y, m4richfm, "rfty.p1", 0x0000, 0x010000, CRC(723fe46e) SHA1(51bb8aff358d527483eaf1b1e20606d94a937dc6), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 26)" )
M4RICHFM_SET( 199?, m4richfm__z, m4richfm, "rich2010", 0x0000, 0x010000, CRC(baecbdbc) SHA1(5fffecf3c91e832d3cfc13dbf5e6b74fc3d6a146), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 27)" )
M4RICHFM_SET( 199?, m4richfm__0, m4richfm, "r&f5.10", 0x0000, 0x010000, CRC(45d493d0) SHA1(9a549821a005fa65c2eb8b35c5f15659bd897519), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 28)" )
M4RICHFM_SET( 199?, m4richfm__1, m4richfm, "r&f5.4", 0x0000, 0x010000, CRC(0441d833) SHA1(361910fd64bc7291f6200fe354c468d16e7d6c80), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 29)" )
M4RICHFM_SET( 199?, m4richfm__2, m4richfm, "r&f5.8t", 0x0000, 0x010000, CRC(525e2520) SHA1(84b2ff86d6a54ebb3bcf0138930b2619a8733161), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 30)" )
M4RICHFM_SET( 199?, m4richfm__3, m4richfm, "r&f55", 0x0000, 0x010000, CRC(6095a72b) SHA1(af25f7c2fb5241064ea995d35fe4fd2f242e3750), "Barcrest","Rich & Famous (Barcrest) (MPU4) (set 31)" )
#define M4NNWWC_EXTRA_ROMS \
ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) \
/* missing, maybe the same as NNWW */ \
#define M4NNWWC_SET(year, setname,parent,name,offset,length,hash,company,title) \
ROM_START( setname ) \
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
M4NNWWC_EXTRA_ROMS \
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS ) \
M4NNWWC_SET( 199?, m4nnwwc, 0, "cn302c.p1", 0x0000, 0x010000, CRC(fd9de050) SHA1(14c80deba1396aa5be0a1d02964ecd4b946f2ee8), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 1)" )
M4NNWWC_SET( 199?, m4nnwwc__a, m4nnwwc, "cf302ad.p1", 0x0000, 0x010000, CRC(6c6aa0cd) SHA1(5a58a19c35b0b195f3b4e7a21f57ca61d45ec1fb), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 2)" )
M4NNWWC_SET( 199?, m4nnwwc__b, m4nnwwc, "cf302b.p1", 0x0000, 0x010000, CRC(9ca07939) SHA1(6eb0a5675bb803a11c4c874dc0516d94c48194b7), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 3)" )
M4NNWWC_SET( 199?, m4nnwwc__c, m4nnwwc, "cf302bd.p1", 0x0000, 0x010000, CRC(8ba33b7d) SHA1(ebfb62a390de512dc1482cfb9ab64196cbcc5831), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 4)" )
M4NNWWC_SET( 199?, m4nnwwc__d, m4nnwwc, "cf302c.p1", 0x0000, 0x010000, CRC(26be2dc4) SHA1(157ca96ebd36f2fbfb501945d0351cc3be38f3b7), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 5)" )
M4NNWWC_SET( 199?, m4nnwwc__e, m4nnwwc, "cf302d.p1", 0x0000, 0x010000, CRC(b52d5b47) SHA1(1583963b0bac1288bd20ed0550ad793be0980b03), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 6)" )
M4NNWWC_SET( 199?, m4nnwwc__f, m4nnwwc, "cf302dk.p1", 0x0000, 0x010000, CRC(c3d4c74d) SHA1(9a34c1f2fabb20da17988f63c9190ec4dd0b65fb), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 7)" )
M4NNWWC_SET( 199?, m4nnwwc__g, m4nnwwc, "cf302dr.p1", 0x0000, 0x010000, CRC(0b25e6b9) SHA1(5fd42abbe985dbdcfe09da50673551330dd26175), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 8)" )
M4NNWWC_SET( 199?, m4nnwwc__h, m4nnwwc, "cf302dy.p1", 0x0000, 0x010000, CRC(420b47c1) SHA1(0cb1a843cec3ace21d806fe98212250201a72f12), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 9)" )
M4NNWWC_SET( 199?, m4nnwwc__i, m4nnwwc, "cf302k.p1", 0x0000, 0x010000, CRC(07ca4c45) SHA1(8f6ee3c17527b05a6652845019919d490cc00c64), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 10)" )
M4NNWWC_SET( 199?, m4nnwwc__j, m4nnwwc, "cf302r.p1", 0x0000, 0x010000, CRC(e09f43bd) SHA1(65dcdf8d223936c4415ddc3f734b83367d6b8db7), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 11)" )
M4NNWWC_SET( 199?, m4nnwwc__k, m4nnwwc, "cf302s.p1", 0x0000, 0x010000, CRC(7a3e8ead) SHA1(590dc78b98f9928d6fa87ef661234f88dccfdff8), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 12)" )
M4NNWWC_SET( 199?, m4nnwwc__l, m4nnwwc, "cf302y.p1", 0x0000, 0x010000, CRC(c1063a32) SHA1(e1c8fc463b1a1db87110f272a8727435f9d9b97a), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 13)" )
M4NNWWC_SET( 199?, m4nnwwc__m, m4nnwwc, "ch302ad.p1", 0x0000, 0x010000, CRC(20405f4e) SHA1(7f87c881f428f704c98b0f4be459980062ccd29a), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 14)" )
M4NNWWC_SET( 199?, m4nnwwc__n, m4nnwwc, "ch302b.p1", 0x0000, 0x010000, CRC(cf7543ac) SHA1(2fe810741bfc18f800ad8028724218557d93a830), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 15)" )
M4NNWWC_SET( 199?, m4nnwwc__o, m4nnwwc, "ch302bd.p1", 0x0000, 0x010000, CRC(4c3e5664) SHA1(87a1f2133cad624683dac89f1da85d70b018f846), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 16)" )
M4NNWWC_SET( 199?, m4nnwwc__p, m4nnwwc, "ch302c.p1", 0x0000, 0x010000, CRC(dcde4d0a) SHA1(d1535f8754d2c0f8183c2c9db97edafdcdfed82e), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 17)" )
M4NNWWC_SET( 199?, m4nnwwc__q, m4nnwwc, "ch302d.p1", 0x0000, 0x010000, CRC(e1a02108) SHA1(fa8271a1246a3ae1289bb314494743cfec31f4e2), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 18)" )
M4NNWWC_SET( 199?, m4nnwwc__r, m4nnwwc, "ch302dk.p1", 0x0000, 0x010000, CRC(a3f636af) SHA1(c3de325ef5baa3cccd4c9997e615e87521b9e537), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 19)" )
M4NNWWC_SET( 199?, m4nnwwc__s, m4nnwwc, "ch302dr.p1", 0x0000, 0x010000, CRC(0620b0c0) SHA1(31aabba5f5b096254908221f884b5088a5a6e883), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 20)" )
M4NNWWC_SET( 199?, m4nnwwc__t, m4nnwwc, "ch302dy.p1", 0x0000, 0x010000, CRC(9b4b982e) SHA1(c7c9c501eb1c936ffb8bc2fe1fe9258e92b1d548), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 21)" )
M4NNWWC_SET( 199?, m4nnwwc__u, m4nnwwc, "ch302k.p1", 0x0000, 0x010000, CRC(908d8b10) SHA1(a80a5ce1a83d05f1e68e66d14bacc424bc833aa7), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 22)" )
M4NNWWC_SET( 199?, m4nnwwc__v, m4nnwwc, "ch302r.p1", 0x0000, 0x010000, CRC(c31c4c28) SHA1(e94c7588211044dae7c5ac587e6232b0ace2fc7b), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 23)" )
M4NNWWC_SET( 199?, m4nnwwc__w, m4nnwwc, "ch302s.p1", 0x0000, 0x010000, CRC(e7d0ceb2) SHA1(b75d58136b9e1e4bfde86730ef4e95bc98494813), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 24)" )
M4NNWWC_SET( 199?, m4nnwwc__x, m4nnwwc, "ch302y.p1", 0x0000, 0x010000, CRC(5e7764c6) SHA1(05a61a57ac906cbea1d72fffd1c8ea707852b895), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 25)" )
M4NNWWC_SET( 199?, m4nnwwc__y, m4nnwwc, "cn302ad.p1", 0x0000, 0x010000, CRC(7a6acd9b) SHA1(9a1f0ed19d66428c6b541ce1c8e169d9b4be3ef1), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 26)" )
M4NNWWC_SET( 199?, m4nnwwc__z, m4nnwwc, "cn302b.p1", 0x0000, 0x010000, CRC(b69cb520) SHA1(7313f2740960ca86ecea8609fe8fd58d84a3248c), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 27)" )
M4NNWWC_SET( 199?, m4nnwwc__0, m4nnwwc, "cn302bd.p1", 0x0000, 0x010000, CRC(ab828a0b) SHA1(53fa6dad9bdae1d46479596c98cf2c3f4454bb95), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 28)" )
M4NNWWC_SET( 199?, m4nnwwc__1, m4nnwwc, "cn302d.p1", 0x0000, 0x010000, CRC(8c6ac365) SHA1(a32b104968aaa4da060072a241a4c54fbdf3c404), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 29)" )
M4NNWWC_SET( 199?, m4nnwwc__2, m4nnwwc, "cn302dk.p1", 0x0000, 0x010000, CRC(24cbab96) SHA1(77fe3b21fc9470653bada31c700ce926d55ce82e), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 30)" )
M4NNWWC_SET( 199?, m4nnwwc__3, m4nnwwc, "cn302dr.p1", 0x0000, 0x010000, CRC(09069f0e) SHA1(68b2a34644ee1fca3ce5191e2f25aa808b85fb09), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 31)" )
M4NNWWC_SET( 199?, m4nnwwc__4, m4nnwwc, "cn302dy.p1", 0x0000, 0x010000, CRC(946db7e0) SHA1(fe29c1da478e3f1a53ad55c661ddcc7003679304), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 32)" )
M4NNWWC_SET( 199?, m4nnwwc__5, m4nnwwc, "cn302k.p1", 0x0000, 0x010000, CRC(7a3202f1) SHA1(2dd5e8195120b1efc3eb51214cf054432fc50aed), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 33)" )
M4NNWWC_SET( 199?, m4nnwwc__6, m4nnwwc, "cn302r.p1", 0x0000, 0x010000, CRC(e7cf9e1e) SHA1(66a1e54fc928c09d16f7ac1c002685eee841315f), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 34)" )
M4NNWWC_SET( 199?, m4nnwwc__7, m4nnwwc, "cn302s.p1", 0x0000, 0x010000, CRC(87703a1a) SHA1(6582ffa42a61b60e92e456a794c4c219a9901a1c), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 35)" )
M4NNWWC_SET( 199?, m4nnwwc__8, m4nnwwc, "cn302y.p1", 0x0000, 0x010000, CRC(7aa4b6f0) SHA1(2c185a9a7c8a4957fb5901305883661c41cb0cb4), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 36)" )
M4NNWWC_SET( 199?, m4nnwwc__9, m4nnwwc, "cnc03s.p1", 0x0000, 0x010000, CRC(57a03b29) SHA1(52cc8eb3f02c4a812de06ceec0588ca930e07876), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 37)" )
M4NNWWC_SET( 199?, m4nnwwc__aa, m4nnwwc, "cl__x__x.2_0", 0x0000, 0x010000, CRC(c3de4791) SHA1(220d32b961b6710d508c0c7e6b2d8e4d292746f4), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 38)" )
M4NNWWC_SET( 199?, m4nnwwc__ab, m4nnwwc, "cl__x_dx.2_0", 0x0000, 0x010000, CRC(c79833f8) SHA1(b3519b55f6f2a4f081b69483ac0b8860aa8190d9), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 39)" )
M4NNWWC_SET( 199?, m4nnwwc__ac, m4nnwwc, "cl__xa_x.2_0", 0x0000, 0x010000, CRC(4c3021a1) SHA1(7e7258808dd1693adb956a5e6b076f925eb0a026), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 40)" )
M4NNWWC_SET( 199?, m4nnwwc__ad, m4nnwwc, "cl__xb_x.2_0", 0x0000, 0x010000, CRC(75a5add7) SHA1(6802ec81b4ebcde9ed014a0440fdc50211a8a350), "Barcrest","Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 41)" )

View File

@ -11,9 +11,9 @@
#include "video/kaneko_tmap.h" #include "video/kaneko_tmap.h"
#include "video/kaneko_spr.h" #include "video/kaneko_spr.h"
#include "machine/kaneko_calc3.h" #include "machine/kaneko_calc3.h"
#include "machine/kaneko_toybox.h"
#define MCU_RESPONSE(d) memcpy(&state->m_mcu_ram[mcu_offset], d, sizeof(d))
class kaneko16_state : public driver_device class kaneko16_state : public driver_device
@ -23,7 +23,6 @@ public:
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_spriteram(*this, "spriteram"), m_spriteram(*this, "spriteram"),
m_mcu_ram(*this, "mcu_ram"),
m_mainram(*this, "mainram"), m_mainram(*this, "mainram"),
m_view2_0(*this, "view2_0"), m_view2_0(*this, "view2_0"),
m_view2_1(*this, "view2_1"), m_view2_1(*this, "view2_1"),
@ -32,37 +31,20 @@ public:
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
optional_shared_ptr<UINT16> m_spriteram; optional_shared_ptr<UINT16> m_spriteram;
optional_shared_ptr<UINT16> m_mcu_ram;
optional_shared_ptr<UINT16> m_mainram; optional_shared_ptr<UINT16> m_mainram;
optional_device<kaneko_view2_tilemap_device> m_view2_0; optional_device<kaneko_view2_tilemap_device> m_view2_0;
optional_device<kaneko_view2_tilemap_device> m_view2_1; optional_device<kaneko_view2_tilemap_device> m_view2_1;
optional_device<kaneko16_sprite_device> m_kaneko_spr; optional_device<kaneko16_sprite_device> m_kaneko_spr;
UINT8 m_nvram_save[128];
void (*m_toybox_mcu_run)(running_machine &machine);
UINT16 m_toybox_mcu_com[4];
UINT16 m_disp_enable; UINT16 m_disp_enable;
int VIEW2_2_pri; int VIEW2_2_pri;
DECLARE_READ16_MEMBER(kaneko16_rnd_r);
DECLARE_WRITE16_MEMBER(kaneko16_coin_lockout_w); DECLARE_WRITE16_MEMBER(kaneko16_coin_lockout_w);
DECLARE_WRITE16_MEMBER(kaneko16_soundlatch_w); DECLARE_WRITE16_MEMBER(kaneko16_soundlatch_w);
DECLARE_WRITE16_MEMBER(kaneko16_eeprom_w); DECLARE_WRITE16_MEMBER(kaneko16_eeprom_w);
DECLARE_WRITE16_MEMBER(bloodwar_coin_lockout_w);
DECLARE_READ16_MEMBER(gtmr_wheel_r);
DECLARE_READ16_MEMBER(gtmr2_wheel_r);
DECLARE_READ16_MEMBER(gtmr2_IN1_r);
DECLARE_WRITE16_MEMBER(toybox_mcu_com0_w);
DECLARE_WRITE16_MEMBER(toybox_mcu_com1_w);
DECLARE_WRITE16_MEMBER(toybox_mcu_com2_w);
DECLARE_WRITE16_MEMBER(toybox_mcu_com3_w);
DECLARE_READ16_MEMBER(toybox_mcu_status_r);
void toybox_mcu_com_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_);
DECLARE_WRITE16_MEMBER(kaneko16_display_enable); DECLARE_WRITE16_MEMBER(kaneko16_display_enable);
@ -71,22 +53,40 @@ public:
DECLARE_READ16_MEMBER(kaneko16_ay2_YM2149_r); DECLARE_READ16_MEMBER(kaneko16_ay2_YM2149_r);
DECLARE_WRITE16_MEMBER(kaneko16_ay2_YM2149_w); DECLARE_WRITE16_MEMBER(kaneko16_ay2_YM2149_w);
DECLARE_WRITE16_MEMBER(bakubrkr_oki_bank_sw); DECLARE_WRITE16_MEMBER(bakubrkr_oki_bank_sw);
DECLARE_WRITE8_MEMBER(kaneko16_eeprom_reset_w);
DECLARE_DRIVER_INIT(kaneko16);
DECLARE_DRIVER_INIT(samplebank);
};
class kaneko16_gtmr_state : public kaneko16_state
{
public:
kaneko16_gtmr_state(const machine_config &mconfig, device_type type, const char *tag)
: kaneko16_state(mconfig, type, tag)
{
}
DECLARE_READ16_MEMBER(kaneko16_rnd_r);
DECLARE_WRITE16_MEMBER(bloodwar_oki_0_bank_w); DECLARE_WRITE16_MEMBER(bloodwar_oki_0_bank_w);
DECLARE_WRITE16_MEMBER(bloodwar_oki_1_bank_w); DECLARE_WRITE16_MEMBER(bloodwar_oki_1_bank_w);
DECLARE_WRITE16_MEMBER(bonkadv_oki_0_bank_w); DECLARE_WRITE16_MEMBER(bonkadv_oki_0_bank_w);
DECLARE_WRITE16_MEMBER(bonkadv_oki_1_bank_w); DECLARE_WRITE16_MEMBER(bonkadv_oki_1_bank_w);
DECLARE_WRITE16_MEMBER(gtmr_oki_0_bank_w); DECLARE_WRITE16_MEMBER(gtmr_oki_0_bank_w);
DECLARE_WRITE16_MEMBER(gtmr_oki_1_bank_w); DECLARE_WRITE16_MEMBER(gtmr_oki_1_bank_w);
DECLARE_WRITE8_MEMBER(kaneko16_eeprom_reset_w); DECLARE_WRITE16_MEMBER(bloodwar_coin_lockout_w);
DECLARE_READ16_MEMBER(gtmr_wheel_r);
DECLARE_READ16_MEMBER(gtmr2_wheel_r);
DECLARE_READ16_MEMBER(gtmr2_IN1_r);
DECLARE_DRIVER_INIT(gtmr);
DECLARE_DRIVER_INIT(bloodwar);
DECLARE_DRIVER_INIT(gtmr2);
DECLARE_DRIVER_INIT(kaneko16);
DECLARE_DRIVER_INIT(decrypt_toybox_rom);
DECLARE_DRIVER_INIT(decrypt_toybox_rom_alt);
DECLARE_DRIVER_INIT(samplebank);
}; };
class kaneko16_berlwall_state : public kaneko16_state class kaneko16_berlwall_state : public kaneko16_state
{ {
public: public:
@ -108,6 +108,7 @@ public:
DECLARE_WRITE16_MEMBER(kaneko16_bg15_reg_w); DECLARE_WRITE16_MEMBER(kaneko16_bg15_reg_w);
DECLARE_DRIVER_INIT(berlwall); DECLARE_DRIVER_INIT(berlwall);
}; };
class kaneko16_shogwarr_state : public kaneko16_state class kaneko16_shogwarr_state : public kaneko16_state
@ -128,21 +129,6 @@ public:
DECLARE_DRIVER_INIT(brapboys); DECLARE_DRIVER_INIT(brapboys);
}; };
/*----------- defined in machine/kaneko16.c -----------*/
void toybox_mcu_init(running_machine &machine);
void bloodwar_mcu_run(running_machine &machine);
void bonkadv_mcu_run(running_machine &machine);
void gtmr_mcu_run(running_machine &machine);
void calc3_mcu_run(running_machine &machine);
void toxboy_handle_04_subcommand(running_machine& machine, UINT8 mcu_subcmd, UINT16*mcu_ram);
/*----------- defined in drivers/kaneko16.c -----------*/ /*----------- defined in drivers/kaneko16.c -----------*/
MACHINE_RESET( kaneko16 ); MACHINE_RESET( kaneko16 );

View File

@ -242,6 +242,8 @@ public:
DECLARE_DRIVER_INIT(m_grtecp); DECLARE_DRIVER_INIT(m_grtecp);
DECLARE_DRIVER_INIT(m4debug); DECLARE_DRIVER_INIT(m4debug);
DECLARE_DRIVER_INIT(m4_showstring); DECLARE_DRIVER_INIT(m4_showstring);
DECLARE_DRIVER_INIT(m4_showstring_mod4yam);
DECLARE_DRIVER_INIT(m4_debug_mod4yam);
DECLARE_DRIVER_INIT(m4_showstring_mod2); DECLARE_DRIVER_INIT(m4_showstring_mod2);
DECLARE_DRIVER_INIT(m4_showstring_big); DECLARE_DRIVER_INIT(m4_showstring_big);
DECLARE_DRIVER_INIT(m_grtecpss); DECLARE_DRIVER_INIT(m_grtecpss);

View File

@ -1,400 +1,9 @@
/*************************************************************************** /***************************************************************************
MCU Code Simulation Nothing left here..
CALC1 is a 40 pin DIP MCU of unknown type with unknown internal rom
CALC3 is a NEC uPD78322 series MCU with 16K internal rom & 640 bytes of ram
TBSOP01 is a NEC uPD78324 series MCU with 32K internal rom & 1024 bytes of ram
TBSOP02 is likely the same NEC uPD78324 series MCU as the TBS0P01
Currently none of the MCUs' internal roms are dumped so simulation is used
***************************************************************************/ ***************************************************************************/
#include "emu.h"
#include "includes/kaneko16.h"
#include "kanekotb.h" // TOYBOX MCU trojaning results
#include "machine/eeprom.h"
/***************************************************************************
TOYBOX MCU:
Bonk's Adventure
Blood Warrior
Great 1000 Miles Rally
...
***************************************************************************/
/*
---------------------------------------------------------------------------
TOYBOX
94 Bonk's Adventure TOYBOX? TBSOP01
94 Blood Warrior TOYBOX? TBS0P01 452 9339PK001
94 Great 1000 Miles Rally TOYBOX "MM0525-TOYBOX199","USMM0713-TB1994 "
95 Great 1000 Miles Rally 2 TOYBOX KANEKO TBSOP02 454 9451MK002 (74 pin PQFP) "USMM0713-TB1994 "
95 Jackie Chan TOYBOX "USMM0713-TB1994 "
95 Gals Panic 3 TOYBOX? TBSOP01
---------------------------------------------------------------------------
All the considerations are based on the analysis of jchan, and to a fewer extent galpani3, and make references to the current driver sources:
MCU triggering:
---------------
the 4 JCHAN_MCU_COM_W(...) are in fact 2 groups:
AM_RANGE(0x330000, 0x330001) AM_WRITE(jchan_mcu_com0_w) // _[ these 2 are set to 0xFFFF
AM_RANGE(0x340000, 0x340001) AM_WRITE(jchan_mcu_com1_w) // [ for MCU to execute cmd
AM_RANGE(0x350000, 0x350001) AM_WRITE(jchan_mcu_com2_w) // _[ these 2 are set to 0xFFFF
AM_RANGE(0x360000, 0x360001) AM_WRITE(jchan_mcu_com3_w) // [ for MCU to return its status
MCU parameters:
---------------
mcu_command = kaneko16_mcu_ram[0x0010/2]; // command nb
mcu_offset = kaneko16_mcu_ram[0x0012/2]/2; // offset in shared RAM where MCU will write
mcu_subcmd = kaneko16_mcu_ram[0x0014/2]; // sub-command parameter, happens only for command #4
the only MCU commands found in program code are:
- 0x04: protection: provide data (see below) and code <<<---!!!
- 0x03: read DSW
- 0x02: load game settings \ stored in ATMEL AT93C46 chip,
- 0x42: save game settings / 128 bytes serial EEPROM
Current feeling of devs is that this EEPROM might also play a role in the protection scheme,
but I (SV) feel that it is very unlikely because of the following, which has been verified:
if the checksum test fails at most 3 times, then the initial settings, stored in main68k ROM,
are loaded in RAM then saved with cmd 0x42 (see code @ $5196 & $50d4)
Note that this is valid for jchan only, other games haven't been looked at.
Others:
-------
There is one interesting MCU cmd $4 in jchan:
-> sub-cmd $3d, MCU writes the string "USMM0713-TB1994 "
The very same string is written by gtmr games (gtmre/gtmrusa/gtmr2) but apparently with no sub-cmd: this string is
probably the MCU model string, so this one should be in internal MCU ROM (another one for gtmr is "MM0525-TOYBOX199")
TODO: look at this one since this remark is only driver-based.
*/
static const UINT8 toybox_mcu_decryption_table[0x100] = {
0x7b,0x82,0xf0,0xbc,0x7f,0x1d,0xa2,0xc5,0x2a,0xfa,0x55,0xee,0x1a,0xd0,0x59,0x76,
0x5e,0x75,0x79,0x16,0xa5,0xf6,0x84,0xed,0x0f,0x2e,0xf2,0x36,0x61,0xac,0xcd,0xab,
0x01,0x3b,0x01,0x87,0x73,0xab,0xce,0x5d,0xd4,0x1d,0x68,0x2a,0x35,0xea,0x13,0x27,
0x00,0xaa,0x46,0x36,0x6e,0x65,0x80,0x7e,0x19,0xe2,0x96,0xab,0xac,0xa5,0x6c,0x63,
0x4a,0x6f,0x87,0xf6,0x6a,0xac,0x38,0xe2,0x1f,0x87,0xf9,0xaa,0xf5,0x41,0x60,0xa6,
0x42,0xb9,0x30,0xf2,0xc3,0x1c,0x4e,0x4b,0x08,0x10,0x42,0x32,0xbf,0xb2,0xc5,0x0f,
0x7a,0xab,0x97,0xf6,0xe7,0xb3,0x46,0xf8,0xec,0x2b,0x7d,0x5f,0xb1,0x10,0x03,0xe4,
0x0f,0x22,0xdf,0x8d,0x10,0x66,0xa7,0x7e,0x96,0xbd,0x5a,0xaf,0xaa,0x43,0xdf,0x10,
0x7c,0x04,0xe2,0x9d,0x66,0xd7,0xf0,0x02,0x58,0x8a,0x55,0x17,0x16,0xe2,0xe2,0x52,
0xaf,0xd9,0xf9,0x0d,0x59,0x70,0x86,0x3c,0x05,0xd1,0x52,0xa7,0xf0,0xbf,0x17,0xd0,
0x23,0x15,0xfe,0x23,0xf2,0x80,0x60,0x6f,0x95,0x89,0x67,0x65,0xc9,0x0e,0xfc,0x16,
0xd6,0x8a,0x9f,0x25,0x2c,0x0f,0x2d,0xe4,0x51,0xb2,0xa8,0x18,0x3a,0x5d,0x66,0xa0,
0x9f,0xb0,0x58,0xea,0x78,0x72,0x08,0x6a,0x90,0xb6,0xa4,0xf5,0x08,0x19,0x60,0x4e,
0x92,0xbd,0xf1,0x05,0x67,0x4f,0x24,0x99,0x69,0x1d,0x0c,0x6d,0xe7,0x74,0x88,0x22,
0x2d,0x15,0x7a,0xa2,0x37,0xa9,0xa0,0xb0,0x2c,0xfb,0x27,0xe5,0x4f,0xb6,0xcd,0x75,
0xdc,0x39,0xce,0x6f,0x1f,0xfe,0xcc,0xb5,0xe6,0xda,0xd8,0xee,0x85,0xee,0x2f,0x04,
};
static const UINT8 toybox_mcu_decryption_table_alt[0x100] = {
0x26,0x17,0xb9,0xcf,0x1a,0xf5,0x14,0x1e,0x0c,0x35,0xb3,0x66,0xa0,0x17,0xe9,0xe4,
0x90,0xf6,0xd5,0x35,0xac,0x95,0x49,0x43,0x64,0x0c,0x03,0x75,0x4d,0xda,0xb6,0xdf,
0x06,0xcf,0x83,0x9e,0x35,0x2c,0x71,0x2a,0xab,0xcc,0x65,0xd4,0x1f,0xb0,0x88,0x3c,
0xb7,0x87,0x35,0xc0,0x41,0x65,0x9f,0xa0,0xd5,0x8c,0x3e,0x06,0x53,0xdb,0x45,0x64,
0x09,0x1e,0xc5,0x8d,0x50,0x24,0xe2,0x4a,0x9b,0x99,0x77,0x25,0x43,0xa9,0x1d,0xac,
0x99,0x31,0x75,0xb5,0x53,0xab,0xad,0x5a,0x42,0x14,0xa1,0x52,0xac,0xec,0x5f,0xf8,
0x8c,0x78,0x05,0x47,0xea,0xb8,0xde,0x69,0x98,0x2d,0x8f,0x9d,0xfc,0x05,0xea,0xee,
0x77,0xbb,0xa9,0x31,0x01,0x00,0xea,0xd8,0x9c,0x43,0xb5,0x2f,0x4e,0xb5,0x1b,0xd2,
0x01,0x4b,0xc4,0xf8,0x76,0x92,0x59,0x4f,0x20,0x52,0xd9,0x7f,0xa9,0x19,0xe9,0x7c,
0x8d,0x3b,0xec,0xe0,0x60,0x08,0x2e,0xbd,0x27,0x8b,0xb2,0xfc,0x29,0xd8,0x39,0x8a,
0x4f,0x2f,0x6b,0x04,0x10,0xbd,0xa1,0x04,0xde,0xc0,0xd5,0x0f,0x04,0x86,0xd6,0xd8,
0xfd,0xb1,0x3c,0x4c,0xd1,0xc4,0xf1,0x5b,0xf5,0x8b,0xe3,0xc4,0x89,0x3c,0x39,0x86,
0xd2,0x92,0xc9,0xe5,0x2c,0x4f,0xe2,0x2f,0x2d,0xc5,0x35,0x09,0x94,0x47,0x3c,0x04,
0x40,0x8b,0x57,0x08,0xf6,0x74,0xe9,0xb8,0x36,0x4d,0xc5,0x26,0x13,0x3d,0x75,0xa0,
0xa8,0x29,0x09,0x8c,0x87,0xf7,0x13,0xaf,0x4c,0x38,0x0b,0x8a,0x7f,0x2c,0x62,0x27,
0x47,0xaa,0xda,0x07,0x92,0x8d,0xfd,0x1f,0xee,0x48,0x1a,0x53,0x3b,0x98,0x6a,0x72,
};
// I use a byteswapped MCU data rom to make the transfers to the 68k side easier
// not sure if it's all 100% endian safe
DRIVER_INIT_MEMBER(kaneko16_state,decrypt_toybox_rom)
{
UINT8 *src = (UINT8 *)machine().root_device().memregion("mcudata" )->base();
int i;
for (i=0;i<0x020000;i++)
{
src[i] = src[i] + toybox_mcu_decryption_table[(i^1)&0xff];
}
#if 0
{
FILE *fp;
char filename[256];
sprintf(filename,"%s.mcudata", machine().system().name);
fp=fopen(filename, "w+b");
if (fp)
{
fwrite(src, 0x20000, 1, fp);
fclose(fp);
}
}
#endif
}
DRIVER_INIT_MEMBER(kaneko16_state,decrypt_toybox_rom_alt)
{
UINT8 *src = (UINT8 *)machine().root_device().memregion("mcudata" )->base();
int i;
for (i=0;i<0x020000;i++)
{
src[i] = src[i] + toybox_mcu_decryption_table_alt[(i^1)&0xff];
}
}
void toxboy_handle_04_subcommand(running_machine& machine,UINT8 mcu_subcmd, UINT16*mcu_ram)
{
UINT8 *src = (UINT8 *)machine.root_device().memregion("mcudata")->base()+0x10000;
UINT8* dst = (UINT8 *)mcu_ram;
int offs = (mcu_subcmd&0x3f)*8;
int x;
//UINT16 unused = src[offs+0] | (src[offs+1]<<8);
UINT16 romstart = src[offs+2] | (src[offs+3]<<8);
UINT16 romlength = src[offs+4] | (src[offs+5]<<8);
UINT16 ramdest = mcu_ram[0x0012/2];
//UINT16 extra = src[offs+6] | (src[offs+7]<<8); // BONK .. important :-(
//printf("romstart %04x length %04x\n",romstart,romlength);
for (x=0;x<romlength;x++)
{
dst[BYTE_XOR_LE(ramdest+x)] = src[(romstart+x)];
}
}
void toybox_mcu_init(running_machine &machine)
{
kaneko16_state *state = machine.driver_data<kaneko16_state>();
memset(state->m_toybox_mcu_com, 0, 4 * sizeof( UINT16) );
}
void kaneko16_state::toybox_mcu_com_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
{
COMBINE_DATA(&m_toybox_mcu_com[_n_]);
if (m_toybox_mcu_com[0] != 0xFFFF) return;
if (m_toybox_mcu_com[1] != 0xFFFF) return;
if (m_toybox_mcu_com[2] != 0xFFFF) return;
if (m_toybox_mcu_com[3] != 0xFFFF) return;
memset(m_toybox_mcu_com, 0, 4 * sizeof( UINT16 ) );
(*m_toybox_mcu_run)(machine());
}
WRITE16_MEMBER(kaneko16_state::toybox_mcu_com0_w){ toybox_mcu_com_w(offset, data, mem_mask, 0); }
WRITE16_MEMBER(kaneko16_state::toybox_mcu_com1_w){ toybox_mcu_com_w(offset, data, mem_mask, 1); }
WRITE16_MEMBER(kaneko16_state::toybox_mcu_com2_w){ toybox_mcu_com_w(offset, data, mem_mask, 2); }
WRITE16_MEMBER(kaneko16_state::toybox_mcu_com3_w){ toybox_mcu_com_w(offset, data, mem_mask, 3); }
/*
bonkadv and bloodwar test bit 0
*/
READ16_MEMBER(kaneko16_state::toybox_mcu_status_r)
{
logerror("CPU %s (PC=%06X) : read MCU status\n", space.device().tag(), cpu_get_previouspc(&space.device()));
return 0; // most games test bit 0 for failure
}
/***************************************************************************
Blood Warrior
***************************************************************************/
void bloodwar_mcu_run(running_machine &machine)
{
kaneko16_state *state = machine.driver_data<kaneko16_state>();
UINT16 *kaneko16_mcu_ram = state->m_mcu_ram;
UINT16 mcu_command = kaneko16_mcu_ram[0x0010/2];
UINT16 mcu_offset = kaneko16_mcu_ram[0x0012/2] / 2;
UINT16 mcu_data = kaneko16_mcu_ram[0x0014/2];
switch (mcu_command >> 8)
{
case 0x02: // Read from NVRAM
{
memcpy(&kaneko16_mcu_ram[mcu_offset], state->m_nvram_save, sizeof(state->m_nvram_save));
logerror("%s : MCU executed command: %04X %04X (load NVRAM settings)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x42: // Write to NVRAM
{
memcpy(state->m_nvram_save, &kaneko16_mcu_ram[mcu_offset], sizeof(state->m_nvram_save));
logerror("%s : MCU executed command: %04X %04X (save NVRAM settings)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x03: // DSW
{
kaneko16_mcu_ram[mcu_offset] = machine.root_device().ioport("DSW1")->read();
logerror("%s : MCU executed command: %04X %04X (read DSW)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x04: // Protection
{
logerror("%s : MCU executed command: %04X %04X %04X\n", machine.describe_context(), mcu_command, mcu_offset*2, mcu_data);
toxboy_handle_04_subcommand(machine, mcu_data, kaneko16_mcu_ram);
}
break;
default:
logerror("%s : MCU executed command: %04X %04X %04X (UNKNOWN COMMAND)\n", machine.describe_context(), mcu_command, mcu_offset*2, mcu_data);
break;
}
}
/***************************************************************************
Bonk's Adventure
***************************************************************************/
void bonkadv_mcu_run(running_machine &machine)
{
kaneko16_state *state = machine.driver_data<kaneko16_state>();
UINT16 *kaneko16_mcu_ram = state->m_mcu_ram;
UINT16 mcu_command = kaneko16_mcu_ram[0x0010/2];
UINT16 mcu_offset = kaneko16_mcu_ram[0x0012/2] / 2;
UINT16 mcu_data = kaneko16_mcu_ram[0x0014/2];
switch (mcu_command >> 8)
{
case 0x02: // Read from NVRAM
{
memcpy(&kaneko16_mcu_ram[mcu_offset], state->m_nvram_save, sizeof(state->m_nvram_save));
logerror("%s : MCU executed command: %04X %04X (load NVRAM settings)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x42: // Write to NVRAM
{
memcpy(state->m_nvram_save, &kaneko16_mcu_ram[mcu_offset], sizeof(state->m_nvram_save));
logerror("%s : MCU executed command: %04X %04X (save NVRAM settings)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x43: // Initialize NVRAM - MCU writes Default Data Set directly to NVRAM
{
memcpy(state->m_nvram_save, bonkadv_mcu_43, sizeof(bonkadv_mcu_43));
logerror("%s : MCU executed command: %04X %04X (restore default NVRAM settings)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x03: // DSW
{
kaneko16_mcu_ram[mcu_offset] = machine.root_device().ioport("DSW1")->read();
logerror("%s : MCU executed command: %04X %04X (read DSW)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x04: // Protection
{
logerror("%s : MCU executed command: %04X %04X %04X\n", machine.describe_context(), mcu_command, mcu_offset*2, mcu_data);
switch(mcu_data)
{
// static, in this order, at boot/reset - these aren't understood, different params in Mcu data rom, data can't be found
case 0x34: MCU_RESPONSE(bonkadv_mcu_4_34); break;
case 0x30: MCU_RESPONSE(bonkadv_mcu_4_30); break;
case 0x31: MCU_RESPONSE(bonkadv_mcu_4_31); break;
case 0x32: MCU_RESPONSE(bonkadv_mcu_4_32); break;
case 0x33: MCU_RESPONSE(bonkadv_mcu_4_33); break;
// dynamic, per-level (29), in level order
default:
toxboy_handle_04_subcommand(machine, mcu_data, kaneko16_mcu_ram);
break;
}
}
break;
default:
logerror("%s : MCU executed command: %04X %04X %04X (UNKNOWN COMMAND)\n", machine.describe_context(), mcu_command, mcu_offset*2, mcu_data);
break;
}
}
/***************************************************************************
Great 1000 Miles Rally
***************************************************************************/
/*
MCU Tasks:
- Write and ID string to shared RAM.
- Access the EEPROM
- Read the DSWs
*/
void gtmr_mcu_run(running_machine &machine)
{
kaneko16_state *state = machine.driver_data<kaneko16_state>();
UINT16 *kaneko16_mcu_ram = state->m_mcu_ram;
UINT16 mcu_command = kaneko16_mcu_ram[0x0010/2];
UINT16 mcu_offset = kaneko16_mcu_ram[0x0012/2] / 2;
UINT16 mcu_data = kaneko16_mcu_ram[0x0014/2];
logerror("%s : MCU executed command: %04X %04X %04X\n", machine.describe_context(), mcu_command, mcu_offset*2, mcu_data);
switch (mcu_command >> 8)
{
case 0x02: // Read from NVRAM
{
memcpy(&kaneko16_mcu_ram[mcu_offset], state->m_nvram_save, sizeof(state->m_nvram_save));
}
break;
case 0x42: // Write to NVRAM
{
memcpy(state->m_nvram_save, &kaneko16_mcu_ram[mcu_offset], sizeof(state->m_nvram_save));
}
break;
case 0x03: // DSW
{
kaneko16_mcu_ram[mcu_offset] = machine.root_device().ioport("DSW1")->read();
}
break;
case 0x04: // TEST (2 versions)
{
toxboy_handle_04_subcommand(machine, mcu_data, kaneko16_mcu_ram);
}
break;
}
}

View File

@ -4,8 +4,8 @@
shogwarr shogwarr
brapboys brapboys
CALC3 is a NEC uPD78322 series MCU with 16K internal rom & 640 bytes of ram
MCU is a 78K series III type CPU
***************************************************************************/ ***************************************************************************/
@ -85,7 +85,6 @@ READ16_MEMBER(kaneko_calc3_device::calc3_mcu_ram_r)
WRITE16_MEMBER(kaneko_calc3_device::calc3_mcu_ram_w) WRITE16_MEMBER(kaneko_calc3_device::calc3_mcu_ram_w)
{ {
COMBINE_DATA(&m_calc3_mcuram[offset]); COMBINE_DATA(&m_calc3_mcuram[offset]);
//calc3_mcu_run(machine);
} }
void kaneko_calc3_device::calc3_mcu_com_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_) void kaneko_calc3_device::calc3_mcu_com_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)

View File

@ -16,6 +16,7 @@
suprnova.c also has a similar device, the implementation hasn't been fully compared suprnova.c also has a similar device, the implementation hasn't been fully compared
CALC1 is a 40 pin DIP MCU of unknown type with unknown internal rom
*/ */

View File

@ -0,0 +1,307 @@
/* Kaneko 'Toybox' protection
the following chips have been seen
TBSOP01 is a NEC uPD78324 series MCU with 32K internal rom & 1024 bytes of ram
TBSOP02 is likely the same NEC uPD78324 series MCU as the TBS0P01
Currently none of the MCUs' internal roms are dumped so simulation is used
94 Bonk's Adventure TOYBOX? TBSOP01
94 Blood Warrior TOYBOX? TBS0P01 452 9339PK001
94 Great 1000 Miles Rally TOYBOX "MM0525-TOYBOX199","USMM0713-TB1994 "
95 Great 1000 Miles Rally 2 TOYBOX KANEKO TBSOP02 454 9451MK002 (74 pin PQFP) "USMM0713-TB1994 "
95 Jackie Chan TOYBOX "USMM0713-TB1994 "
95 Gals Panic 3 TOYBOX? TBSOP01
MCU parameters:
---------------
mcu_command = kaneko16_mcu_ram[0x0010/2]; // command nb
mcu_offset = kaneko16_mcu_ram[0x0012/2]/2; // offset in shared RAM where MCU will write
mcu_subcmd = kaneko16_mcu_ram[0x0014/2]; // sub-command parameter, happens only for command #4
the only MCU commands found in program code are:
- 0x04: protection: provide data (see below) and code <<<---!!!
- 0x03: read DSW
- 0x02: load game settings \ stored in ATMEL AT93C46 chip,
- 0x42: save game settings / 128 bytes serial EEPROM
*/
#include "emu.h"
#include "kaneko_toybox.h"
#include "machine/eeprom.h"
const device_type KANEKO_TOYBOX = &device_creator<kaneko_toybox_device>;
kaneko_toybox_device::kaneko_toybox_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, KANEKO_TOYBOX, "kaneko_toybox_device", tag, owner, clock)
{
m_tabletype = TABLE_NORMAL;
m_gametype = GAME_NORMAL;
}
void kaneko_toybox_device::set_toybox_table(device_t &device, int tabletype)
{
kaneko_toybox_device &dev = downcast<kaneko_toybox_device &>(device);
dev.m_tabletype = tabletype;
}
void kaneko_toybox_device::set_toybox_gametype(device_t &device, int gametype)
{
kaneko_toybox_device &dev = downcast<kaneko_toybox_device &>(device);
dev.m_gametype = gametype;
}
void kaneko_toybox_device::device_start()
{
m_toybox_mcuram = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x10000/2);
memset(m_toybox_mcu_com, 0, 4 * sizeof( UINT16) );
toxboy_decrypt_rom(this->machine());
}
void kaneko_toybox_device::device_reset()
{
toybox_mcu_init(this->machine());
}
READ16_MEMBER(kaneko_toybox_device::toybox_mcu_ram_r)
{
return m_toybox_mcuram[offset];
}
WRITE16_MEMBER(kaneko_toybox_device::toybox_mcu_ram_w)
{
COMBINE_DATA(&m_toybox_mcuram[offset]);
}
#define MCU_RESPONSE(d) memcpy(&m_toybox_mcuram[mcu_offset], d, sizeof(d))
// I use a byteswapped MCU data rom to make the transfers to the 68k side easier
// not sure if it's all 100% endian safe
void kaneko_toybox_device::toxboy_decrypt_rom(running_machine& machine)
{
UINT8 *src = (UINT8 *)machine.root_device().memregion(":mcudata" )->base();
int i;
for (i=0;i<0x020000;i++)
{
if (m_tabletype == TABLE_NORMAL) src[i] = src[i] + toybox_mcu_decryption_table[(i^1)&0xff];
else src[i] = src[i] + toybox_mcu_decryption_table_alt[(i^1)&0xff];
}
}
void kaneko_toybox_device::toxboy_handle_04_subcommand(running_machine& machine,UINT8 mcu_subcmd, UINT16*mcu_ram)
{
UINT8 *src = (UINT8 *)machine.root_device().memregion(":mcudata")->base()+0x10000;
UINT8* dst = (UINT8 *)mcu_ram;
int offs = (mcu_subcmd&0x3f)*8;
int x;
//UINT16 unused = src[offs+0] | (src[offs+1]<<8);
UINT16 romstart = src[offs+2] | (src[offs+3]<<8);
UINT16 romlength = src[offs+4] | (src[offs+5]<<8);
UINT16 ramdest = mcu_ram[0x0012/2];
//UINT16 extra = src[offs+6] | (src[offs+7]<<8); // BONK .. important :-(
//printf("romstart %04x length %04x\n",romstart,romlength);
for (x=0;x<romlength;x++)
{
dst[BYTE_XOR_LE(ramdest+x)] = src[(romstart+x)];
}
}
void kaneko_toybox_device::toybox_mcu_init(running_machine &machine)
{
memset(m_toybox_mcu_com, 0, 4 * sizeof( UINT16) );
}
void kaneko_toybox_device::toybox_mcu_com_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
{
COMBINE_DATA(&m_toybox_mcu_com[_n_]);
if (m_toybox_mcu_com[0] != 0xFFFF) return;
if (m_toybox_mcu_com[1] != 0xFFFF) return;
if (m_toybox_mcu_com[2] != 0xFFFF) return;
if (m_toybox_mcu_com[3] != 0xFFFF) return;
memset(m_toybox_mcu_com, 0, 4 * sizeof( UINT16 ) );
toybox_mcu_run(machine());
}
WRITE16_MEMBER(kaneko_toybox_device::toybox_mcu_com0_w){ toybox_mcu_com_w(offset, data, mem_mask, 0); }
WRITE16_MEMBER(kaneko_toybox_device::toybox_mcu_com1_w){ toybox_mcu_com_w(offset, data, mem_mask, 1); }
WRITE16_MEMBER(kaneko_toybox_device::toybox_mcu_com2_w){ toybox_mcu_com_w(offset, data, mem_mask, 2); }
WRITE16_MEMBER(kaneko_toybox_device::toybox_mcu_com3_w){ toybox_mcu_com_w(offset, data, mem_mask, 3); }
/*
bonkadv and bloodwar test bit 0
*/
READ16_MEMBER(kaneko_toybox_device::toybox_mcu_status_r)
{
logerror("CPU %s (PC=%06X) : read MCU status\n", space.device().tag(), cpu_get_previouspc(&space.device()));
return 0; // most games test bit 0 for failure
}
void kaneko_toybox_device::toybox_mcu_run(running_machine &machine)
{
UINT16 *kaneko16_mcu_ram = m_toybox_mcuram;
UINT16 mcu_command = kaneko16_mcu_ram[0x0010/2];
UINT16 mcu_offset = kaneko16_mcu_ram[0x0012/2] / 2;
UINT16 mcu_data = kaneko16_mcu_ram[0x0014/2];
//printf("command %04x\n",mcu_command);
switch (mcu_command >> 8)
{
case 0x02: // Read from NVRAM
{
if (m_gametype == GAME_GALPANI3)
{
/* todo: just put this in the default eeprom instead */
/* NOTE: code @ $38B46 & $38ab8 does exactly what is checked after MCU command
so that's what we'll mimic here... probably the initial NVRAM settings */
int i;
/* MCU writes 128 bytes to shared ram: last byte is the byte-sum */
/* first 32 bytes (header): 0x8BE08E71.L, then the string "95/06/30 Gals Panic3Ver 0.95"; */
m_toybox_mcuram[mcu_offset + 0] = 0x8BE0; m_toybox_mcuram[mcu_offset + 1] = 0x8E71;
m_toybox_mcuram[mcu_offset + 2] = 0x3935; m_toybox_mcuram[mcu_offset + 3] = 0x2F30;
m_toybox_mcuram[mcu_offset + 4] = 0x362F; m_toybox_mcuram[mcu_offset + 5] = 0x3330;
m_toybox_mcuram[mcu_offset + 6] = 0x2047; m_toybox_mcuram[mcu_offset + 7] = 0x616C;
m_toybox_mcuram[mcu_offset + 8] = 0x7320; m_toybox_mcuram[mcu_offset + 9] = 0x5061;
m_toybox_mcuram[mcu_offset + 10] = 0x6E69; m_toybox_mcuram[mcu_offset + 11] = 0x6333;
m_toybox_mcuram[mcu_offset + 12] = 0x5665; m_toybox_mcuram[mcu_offset + 13] = 0x7220;
m_toybox_mcuram[mcu_offset + 14] = 0x302E; m_toybox_mcuram[mcu_offset + 15] = 0x3935;
/* next 11 bytes - initial NVRAM settings */
m_toybox_mcuram[mcu_offset + 16] = 0x0001; m_toybox_mcuram[mcu_offset + 17] = 0x0101;
m_toybox_mcuram[mcu_offset + 18] = 0x0100; m_toybox_mcuram[mcu_offset + 19] = 0x0208;
m_toybox_mcuram[mcu_offset + 20] = 0x02FF; m_toybox_mcuram[mcu_offset + 21] = 0x0000;
/* rest is zeroes */
for (i=22;i<63;i++)
m_toybox_mcuram[mcu_offset + i] = 0;
/* and sum is $0c.b */
m_toybox_mcuram[mcu_offset + 63] = 0x000c;
}
else
{
//memcpy(&kaneko16_mcu_ram[mcu_offset], m_nvram_save, sizeof(m_nvram_save));
UINT8* nvdat = (UINT8*)&kaneko16_mcu_ram[mcu_offset];
address_space *eeprom_space = machine.device<eeprom_device>(":eeprom")->space();
for (int i=0;i<0x80;i++)
{
nvdat[i] = eeprom_space->read_byte(i);
}
logerror("%s : MCU executed command: %04X %04X (load NVRAM settings)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
}
break;
case 0x42: // Write to NVRAM
{
// memcpy(m_nvram_save, &kaneko16_mcu_ram[mcu_offset], sizeof(m_nvram_save));
address_space *eeprom_space = machine.device<eeprom_device>(":eeprom")->space();
UINT8* nvdat = (UINT8*)&kaneko16_mcu_ram[mcu_offset];
for (int i=0;i<0x80;i++)
{
eeprom_space->write_byte(i, nvdat[i]);
}
logerror("%s : MCU executed command: %04X %04X (save NVRAM settings)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x43: // Initialize NVRAM - MCU writes Default Data Set directly to NVRAM (from internal ROM, or from the data ROM?)
{
// only bonk seems to do this?
if (m_gametype == GAME_BONK)
{
//memcpy(m_nvram_save, bonkadv_mcu_43, sizeof(bonkadv_mcu_43));
address_space *eeprom_space = machine.device<eeprom_device>(":eeprom")->space();
UINT8* nvdat = (UINT8*)&bonkadv_mcu_43[0];
for (int i=0;i<0x80;i++)
{
eeprom_space->write_byte(i, nvdat[i]);
}
logerror("%s : MCU executed command: %04X %04X (restore default NVRAM settings)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
}
break;
case 0x03: // DSW
{
kaneko16_mcu_ram[mcu_offset] = machine.root_device().ioport(":DSW1")->read();
logerror("%s : MCU executed command: %04X %04X (read DSW)\n", machine.describe_context(), mcu_command, mcu_offset*2);
}
break;
case 0x04: // Protection
{
logerror("%s : MCU executed command: %04X %04X %04X\n", machine.describe_context(), mcu_command, mcu_offset*2, mcu_data);
if (m_gametype == GAME_BONK)
{
// bonk still needs these hacks
switch(mcu_data)
{
// static, in this order, at boot/reset - these aren't understood, different params in Mcu data rom, data can't be found
case 0x34: MCU_RESPONSE(bonkadv_mcu_4_34); break;
case 0x30: MCU_RESPONSE(bonkadv_mcu_4_30); break;
case 0x31: MCU_RESPONSE(bonkadv_mcu_4_31); break;
case 0x32: MCU_RESPONSE(bonkadv_mcu_4_32); break;
case 0x33: MCU_RESPONSE(bonkadv_mcu_4_33); break;
// dynamic, per-level (29), in level order
default:
toxboy_handle_04_subcommand(machine, mcu_data, kaneko16_mcu_ram);
break;
}
}
else
{
toxboy_handle_04_subcommand(machine, mcu_data, kaneko16_mcu_ram);
}
}
break;
default:
logerror("%s : MCU executed command: %04X %04X %04X (UNKNOWN COMMAND)\n", machine.describe_context(), mcu_command, mcu_offset*2, mcu_data);
break;
}
}

View File

@ -0,0 +1,374 @@
/* Kaneko Toybox */
#define GAME_NORMAL (0)
#define GAME_BONK (1)
#define GAME_GALPANI3 (2)
#define TABLE_NORMAL (0)
#define TABLE_ALT (1)
/***************************************************************************
TOYBOX MCU data for Bonk's Adventure
***************************************************************************/
// notes based on test programs results, verified on PCB:
// - bonkadv_mcu_4_30 is the only cmd that ouputs an odd (655) number of bytes
// - bonkadv_mcu_4_33: the 32 'zeroed' bytes every 64 bytes are effectively written by the MCU
// MCU executed command: 4300 0100 - factory settings
// this command is issued whenever the nvram settings are corrupted
// the MCU writes directly to NVRAM
static const UINT16 bonkadv_mcu_43[] = {
0x8BE0,0x8E71,0x0102,0x0102,0x0300,0x010C,0x0202,0x0202,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0030,0x0020,0x4F6B,0x0305,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0082,0x6F82,0x628C,0xB490,0x6CAB
};
// MCU executed command: 0400 0E00 0034 - code
/*
200E00: 7071 moveq #$71, D0
200E02: 7273 moveq #$73, D1
200E04: 7475 moveq #$75, D2
200E06: 7677 moveq #$77, D3
200E08: 7879 moveq #$79, D4
200E0A: 7A7B moveq #$7b, D5
200E0C: 7C7D moveq #$7d, D6
200E0E: 7E7F moveq #$7f, D7
200E10: 4E75 rts
*/
static const UINT16 bonkadv_mcu_4_34[] = {
0x7071,0x7273,0x7475,0x7677,0x7879,0x7a7b,0x7c7d,0x7e7f,
0x4e75
};
// MCU executed command: 0400 0180 0032 - 128 bytes at $200180
static const UINT16 bonkadv_mcu_4_32[] = {
0x00cc,0xcc0c,0xc0c0,0xc080,0x0484,0xb6a6,0x0404,0x80c0,
0x80b1,0xb1a1,0xa1b2,0xa2b3,0xb3a3,0xa3b1,0xb1b1,0xb1c0,
0xc0a1,0xa1a1,0xa1b2,0xb2a2,0xa290,0x9090,0xb9b9,0xa9a9,
0xbaaa,0xbbbb,0xabab,0xb9b9,0xb9b9,0xc8c8,0xa9a9,0xa9a9,
0xbaba,0xaaaa,0x9898,0x98b9,0xb9a9,0xa9ba,0xaabb,0xbbab,
0xabb9,0xb9b9,0xb9c8,0xc8a9,0xa9a9,0xa9ba,0xbaaa,0xaa98,
0x9898,0xb1b1,0xa1a1,0xb2a2,0xb3b3,0xa3a3,0xb1b1,0xb1b1,
0xc0c0,0xa1a1,0xa1a1,0xb2b2,0xa2a2,0x9090,0x9000,0x0000
};
// MCU executed command: 0400 0280 0031 - 112 bytes at $200280
static const UINT16 bonkadv_mcu_4_31[] = {
0x1013,0x1411,0x1216,0x1519,0x1a17,0x1824,0x2322,0x211f,
0x201e,0x1d1c,0x1b27,0x2825,0x2629,0x2a2b,0x2e2f,0x2c2d,
0x3130,0x3435,0x3233,0x3f3e,0x3d3c,0x3a3b,0x3938,0x3736,
0x4243,0x4041,0x4445,0x4649,0x4a47,0x484c,0x4b4f,0x504d,
0x4e5a,0x5958,0x5755,0x5654,0x5352,0x515d,0x5e5b,0x5c5f,
0x6061,0x6465,0x6263,0x6766,0x6a6b,0x6869,0x7574,0x7372,
0x7071,0x6f6e,0x6d6c,0x7879,0x7677,0x7a7b,0x7c7d,0x7e7f
};
// MCU executed command: 0400 0E50 0030 - 655 bytes at $200E50 (656 here)
static const UINT16 bonkadv_mcu_4_30[] = {
0x8c00,0x9700,0xa000,0xa700,0xb200,0xb700,0xc000,0xcc00,
0xd600,0xdf00,0xef00,0xf500,0xfd00,0x0501,0x0b01,0x1801,
0x1e01,0x2901,0x3101,0x3701,0x4101,0x4901,0x0b01,0x5d01,
0xa700,0xb200,0x6c01,0x8101,0xb200,0x8101,0x8101,0x8101,
0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,
0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,
0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x2e02,
0x3602,0x3d02,0x4102,0x4f02,0x5502,0x5502,0x5f02,0x6402,
0x6d02,0x7302,0x7802,0x7d02,0x8302,0x8a02,0x0165,0x712b,
0x57fe,0x57a2,0xff00,0x0003,0x7c3a,0x436c,0x66ff,0x0000,
0x026c,0x6d43,0xff00,0x0000,0x74a5,0x8373,0x3599,0x9fff,
0x0000,0x074a,0xff00,0x0002,0x8788,0x3331,0x32ff,0x0000,
0x0276,0x8c71,0x2d8c,0xfe12,0x8cff,0x0000,0x0171,0x0d29,
0xfe0d,0x29ff,0x0000,0x0559,0x5a5b,0x8a8b,0xff00,0x0003,
0x0d0e,0x576a,0x641e,0xfe0d,0x0efe,0x64a3,0xff00,0x0006,
0x0262,0xff00,0x0007,0x3e3f,0x7a7b,0xff00,0x0007,0x7584,
0x4c53,0xff00,0x0001,0x6645,0xff00,0x0007,0x0d18,0x2984,
0x5384,0xfe0d,0x29ff,0x0000,0x0457,0x5cff,0x0000,0x0751,
0x5202,0x45fe,0x4575,0xff00,0x0000,0x191a,0x1b6e,0xff00,
0x0006,0x3472,0xff00,0x0000,0x6569,0x090f,0x8b23,0xff00,
0x0004,0x3b3c,0x3d79,0xff00,0x0080,0x770a,0x8176,0x2a65,
0x64fe,0x7776,0xfe2a,0x76fe,0x650a,0xff00,0x0000,0x1011,
0x1226,0x2728,0xa655,0x940f,0x68ff,0x0000,0x8045,0x6477,
0x0a81,0x762a,0x65fe,0x7776,0xfe2a,0x76fe,0x650a,0xff00,
0x0000,0x166b,0xff00,0x0007,0x1e30,0x39ff,0x0000,0x0345,
0x3a77,0x7843,0x4647,0xff00,0x0000,0x7335,0x8399,0x9fff,
0x0000,0x0237,0x38ff,0x0000,0x0044,0x303b,0xff00,0x0000,
0x7d7e,0x7fa1,0x0aff,0x0000,0x0070,0xff00,0x0000,0x3e3f,
0x7a7b,0x6180,0x89a4,0xff00,0x0006,0x86a5,0x4f42,0xff00,
0x0000,0x1011,0x1255,0x0f68,0xff00,0x0002,0x8788,0x4033,
0xff00,0x0005,0x650f,0xff00,0x0008,0x9596,0x9ba7,0xff00,
0x0000,0x4849,0x82ff,0x0000,0x022e,0x2f30,0xff00,0x0001,
0x7778,0x5826,0x2728,0xa6ff,0x0000,0x0813,0x1402,0x51ff,
0x0000,0x072e,0x5c5d,0xff00,0x0006,0x57ff,0x0000,0x0230,
0x391e,0x65fe,0x6530,0xff00,0x0000,0x4bff,0x0000,0x008e,
0x8f90,0x91ff,0x0000,0x0092,0x9d17,0xff00,0x0000,0xff00,
0x0000,0x8d9b,0xa77d,0x7e7f,0xa10a,0x9596,0xff00,0x0001,
0x1993,0xff00,0x0000,0x67ff,0x0000,0x0067,0xff00,0x0000,
0x27ff,0x0000,0x0390,0x8e23,0x978b,0xff00,0x0000,0x1d9e,
0xff00,0x0007,0x3bff,0x0000,0x001d,0xff00,0x0000,0x8e90,
0xff00,0x0005,0x2495,0x96ff,0x0000,0x009a,0xff00,0x0000
};
// MCU executed command: 0400 0400 0033 - 2560 bytes at $200400
static const UINT16 bonkadv_mcu_4_33[] = {
0x00a4,0x0001,0x00a5,0x005a,0x00a6,0x0074,0x00a7,0x009b,
0x00a8,0x00d0,0x00a9,0x00fe,0x00aa,0x015d,0x00ab,0x01b0,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0001,0x0002,0x0019,0x005b,0x0022,0x0075,0x002d,0x009c,
0x0041,0x00d1,0x004e,0x00ff,0x0060,0x015f,0x0072,0x01b1,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0002,0x0008,0x001a,0x0061,0x0023,0x007b,0x002e,0x00a2,
0x0042,0x00d7,0x004f,0x0107,0x0061,0x0165,0x0073,0x01b7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x000a,0x0000,0x0063,0x0000,0x007d,0x0000,0x00a4,
0x0000,0x00d9,0x0000,0x0109,0x0000,0x0167,0x0000,0x01b9,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0003,0x000b,0x001b,0x0064,0x0024,0x007e,0x002f,0x00a5,
0x0043,0x00da,0x0050,0x010a,0x0062,0x0168,0x0074,0x01ba,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x000c,0x0000,0x0065,0x0000,0x007f,0x0000,0x00a6,
0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0004,0x0008,0x001c,0x0061,0x0025,0x007b,0x0030,0x00a2,
0x0044,0x00d7,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0005,0x000d,0x001d,0x0066,0x0025,0x007b,0x0031,0x00a7,
0x0045,0x00dc,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0017,0x0000,0x0069,0x0000,0x0089,0x0000,0x00af,
0x0000,0x00df,0x0000,0x0115,0x0000,0x0173,0x0000,0x01c5,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0009,0x0015,0x001e,0x0067,0x0029,0x0087,0x0034,0x00ad,
0x0046,0x00dd,0x0055,0x0113,0x0067,0x0171,0x0079,0x01c3,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0006,0x000e,0x0006,0x000e,0x0026,0x0080,0x0006,0x000e,
0x0000,0x0000,0x0052,0x010c,0x0064,0x016a,0x0076,0x01bc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0007,0x0010,0x0007,0x0010,0x0027,0x0082,0x0032,0x00a8,
0x0000,0x0000,0x0053,0x010e,0x0065,0x016c,0x0077,0x01be,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0013,0x0000,0x0013,0x0000,0x0085,0x0000,0x00ab,
0x0000,0x0000,0x0000,0x0111,0x0000,0x016f,0x0000,0x01c1,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0008,0x0014,0x0008,0x0014,0x0028,0x0086,0x0033,0x00ac,
0x0000,0x0000,0x0054,0x0112,0x0066,0x0170,0x0078,0x01c2,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0018,0x0000,0x006a,0x0000,0x008a,0x0000,0x00b0,
0x0000,0x00e0,0x0000,0x0116,0x0000,0x0174,0x0000,0x01c6,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x000c,0x0000,0x0065,0x0000,0x007f,0x0000,0x00a6,
0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x000a,0x0019,0x001f,0x006b,0x002a,0x008b,0x0035,0x00b1,
0x0047,0x00e1,0x0056,0x0117,0x0068,0x0175,0x007a,0x01c7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x000b,0x0019,0x0020,0x006b,0x002b,0x008b,0x0036,0x00b1,
0x0048,0x00e1,0x0057,0x0117,0x0069,0x0175,0x007a,0x01c7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0015,0x003e,0x0015,0x003e,0x0099,0x0095,0x0015,0x003e,
0x0000,0x0000,0x009e,0x013a,0x006d,0x018f,0x007e,0x01dc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x000c,0x001d,0x000c,0x001d,0x000c,0x001d,0x000c,0x001d,
0x0049,0x00e5,0x0058,0x011b,0x006a,0x0179,0x007b,0x01c9,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x001f,0x0000,0x001f,0x0000,0x001f,0x0000,0x001f,
0x0000,0x00e7,0x0000,0x011d,0x0000,0x017b,0x0000,0x01cb,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x000d,0x0020,0x0021,0x006f,0x002c,0x008f,0x0037,0x00b5,
0x004a,0x00e8,0x0059,0x011e,0x006b,0x017c,0x007c,0x01cc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0022,0x0000,0x0071,0x0000,0x0091,0x0000,0x00b7,
0x0000,0x00ea,0x0000,0x0120,0x0000,0x017e,0x0000,0x01ce,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0014,0x003b,0x0014,0x003b,0x005d,0x0092,0x0014,0x003b,
0x0014,0x003b,0x009d,0x0137,0x00a0,0x018c,0x00a1,0x01d9,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0012,0x0036,0x0012,0x0036,0x0012,0x0036,0x0012,0x0036,
0x008a,0x00e5,0x00be,0x013c,0x006c,0x0184,0x007d,0x01d1,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0013,0x0038,0x0013,0x0038,0x0013,0x0038,0x0013,0x0038,
0x008a,0x00e5,0x00bf,0x013d,0x006c,0x0184,0x007d,0x01d1,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0038,0x00ba,0x0038,0x00ba,0x0038,0x00ba,0x0038,0x00ba,
0x0038,0x00ba,0x00a2,0x0128,0x006e,0x019c,0x007f,0x01e7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x005c,0x014d,0x005c,0x014d,0x005c,0x014d,0x005c,0x014d,
0x0000,0x0000,0x009c,0x0124,0x0071,0x01a5,0x0082,0x01f0,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x005b,0x014d,0x005b,0x014d,0x005b,0x014d,0x005b,0x014d,
0x0000,0x0000,0x009b,0x0124,0x0070,0x01a1,0x0081,0x01ec,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0044,0x0000,0x0044,0x0000,0x0044,0x0000,0x0044,
0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0018,0x0045,0x0018,0x0045,0x0018,0x0045,0x0018,0x0045,
0x0044,0x00d7,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x008b,0x000e,0x008b,0x000e,0x008c,0x0080,0x008b,0x000e,
0x0000,0x0000,0x008d,0x010c,0x008e,0x016a,0x008f,0x01bc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0090,0x0010,0x0090,0x0010,0x0091,0x0082,0x0092,0x00a8,
0x0000,0x0000,0x0093,0x010e,0x0094,0x016c,0x0095,0x01be,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0096,0x003e,0x0096,0x003e,0x009a,0x0095,0x0096,0x003e,
0x0000,0x0000,0x009f,0x013a,0x0097,0x018f,0x0098,0x01dc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0049,0x0000,0x0069,0x0000,0x0098,0x0000,0x00af,
0x0000,0x00df,0x0000,0x0145,0x0000,0x0173,0x0000,0x01c5,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x005e,0x0048,0x005f,0x0068,0x006f,0x0097,0x0080,0x00ae,
0x00ac,0x00de,0x00ad,0x0144,0x00ae,0x0172,0x00af,0x01c4,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x004b,0x00ed,0x004b,0x00ed,0x004b,0x00ed,0x004b,0x00ed,
0x004b,0x00ed,0x00b0,0x012b,0x00b6,0x0186,0x00ba,0x01d3,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0087,0x00f2,0x0087,0x00f2,0x0087,0x00f2,0x0087,0x00f2,
0x0087,0x00f2,0x00b3,0x0130,0x00b8,0x018b,0x00bc,0x01d8,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x00c1,0x0050,0x00c1,0x0050,0x00c1,0x0050,0x00c1,0x0050,
0x00c1,0x0050,0x00c3,0x0148,0x00c5,0x019a,0x00c7,0x01e5,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x00c2,0x0050,0x00c2,0x0050,0x00c2,0x0050,0x00c2,0x0050,
0x00c2,0x0050,0x00c4,0x0148,0x00c6,0x019a,0x00c8,0x01e5,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
};
/* decryption table */
static const UINT8 toybox_mcu_decryption_table[0x100] = {
0x7b,0x82,0xf0,0xbc,0x7f,0x1d,0xa2,0xc5,0x2a,0xfa,0x55,0xee,0x1a,0xd0,0x59,0x76,
0x5e,0x75,0x79,0x16,0xa5,0xf6,0x84,0xed,0x0f,0x2e,0xf2,0x36,0x61,0xac,0xcd,0xab,
0x01,0x3b,0x01,0x87,0x73,0xab,0xce,0x5d,0xd4,0x1d,0x68,0x2a,0x35,0xea,0x13,0x27,
0x00,0xaa,0x46,0x36,0x6e,0x65,0x80,0x7e,0x19,0xe2,0x96,0xab,0xac,0xa5,0x6c,0x63,
0x4a,0x6f,0x87,0xf6,0x6a,0xac,0x38,0xe2,0x1f,0x87,0xf9,0xaa,0xf5,0x41,0x60,0xa6,
0x42,0xb9,0x30,0xf2,0xc3,0x1c,0x4e,0x4b,0x08,0x10,0x42,0x32,0xbf,0xb2,0xc5,0x0f,
0x7a,0xab,0x97,0xf6,0xe7,0xb3,0x46,0xf8,0xec,0x2b,0x7d,0x5f,0xb1,0x10,0x03,0xe4,
0x0f,0x22,0xdf,0x8d,0x10,0x66,0xa7,0x7e,0x96,0xbd,0x5a,0xaf,0xaa,0x43,0xdf,0x10,
0x7c,0x04,0xe2,0x9d,0x66,0xd7,0xf0,0x02,0x58,0x8a,0x55,0x17,0x16,0xe2,0xe2,0x52,
0xaf,0xd9,0xf9,0x0d,0x59,0x70,0x86,0x3c,0x05,0xd1,0x52,0xa7,0xf0,0xbf,0x17,0xd0,
0x23,0x15,0xfe,0x23,0xf2,0x80,0x60,0x6f,0x95,0x89,0x67,0x65,0xc9,0x0e,0xfc,0x16,
0xd6,0x8a,0x9f,0x25,0x2c,0x0f,0x2d,0xe4,0x51,0xb2,0xa8,0x18,0x3a,0x5d,0x66,0xa0,
0x9f,0xb0,0x58,0xea,0x78,0x72,0x08,0x6a,0x90,0xb6,0xa4,0xf5,0x08,0x19,0x60,0x4e,
0x92,0xbd,0xf1,0x05,0x67,0x4f,0x24,0x99,0x69,0x1d,0x0c,0x6d,0xe7,0x74,0x88,0x22,
0x2d,0x15,0x7a,0xa2,0x37,0xa9,0xa0,0xb0,0x2c,0xfb,0x27,0xe5,0x4f,0xb6,0xcd,0x75,
0xdc,0x39,0xce,0x6f,0x1f,0xfe,0xcc,0xb5,0xe6,0xda,0xd8,0xee,0x85,0xee,0x2f,0x04,
};
/* alt decryption table (gtmr2) */
static const UINT8 toybox_mcu_decryption_table_alt[0x100] = {
0x26,0x17,0xb9,0xcf,0x1a,0xf5,0x14,0x1e,0x0c,0x35,0xb3,0x66,0xa0,0x17,0xe9,0xe4,
0x90,0xf6,0xd5,0x35,0xac,0x95,0x49,0x43,0x64,0x0c,0x03,0x75,0x4d,0xda,0xb6,0xdf,
0x06,0xcf,0x83,0x9e,0x35,0x2c,0x71,0x2a,0xab,0xcc,0x65,0xd4,0x1f,0xb0,0x88,0x3c,
0xb7,0x87,0x35,0xc0,0x41,0x65,0x9f,0xa0,0xd5,0x8c,0x3e,0x06,0x53,0xdb,0x45,0x64,
0x09,0x1e,0xc5,0x8d,0x50,0x24,0xe2,0x4a,0x9b,0x99,0x77,0x25,0x43,0xa9,0x1d,0xac,
0x99,0x31,0x75,0xb5,0x53,0xab,0xad,0x5a,0x42,0x14,0xa1,0x52,0xac,0xec,0x5f,0xf8,
0x8c,0x78,0x05,0x47,0xea,0xb8,0xde,0x69,0x98,0x2d,0x8f,0x9d,0xfc,0x05,0xea,0xee,
0x77,0xbb,0xa9,0x31,0x01,0x00,0xea,0xd8,0x9c,0x43,0xb5,0x2f,0x4e,0xb5,0x1b,0xd2,
0x01,0x4b,0xc4,0xf8,0x76,0x92,0x59,0x4f,0x20,0x52,0xd9,0x7f,0xa9,0x19,0xe9,0x7c,
0x8d,0x3b,0xec,0xe0,0x60,0x08,0x2e,0xbd,0x27,0x8b,0xb2,0xfc,0x29,0xd8,0x39,0x8a,
0x4f,0x2f,0x6b,0x04,0x10,0xbd,0xa1,0x04,0xde,0xc0,0xd5,0x0f,0x04,0x86,0xd6,0xd8,
0xfd,0xb1,0x3c,0x4c,0xd1,0xc4,0xf1,0x5b,0xf5,0x8b,0xe3,0xc4,0x89,0x3c,0x39,0x86,
0xd2,0x92,0xc9,0xe5,0x2c,0x4f,0xe2,0x2f,0x2d,0xc5,0x35,0x09,0x94,0x47,0x3c,0x04,
0x40,0x8b,0x57,0x08,0xf6,0x74,0xe9,0xb8,0x36,0x4d,0xc5,0x26,0x13,0x3d,0x75,0xa0,
0xa8,0x29,0x09,0x8c,0x87,0xf7,0x13,0xaf,0x4c,0x38,0x0b,0x8a,0x7f,0x2c,0x62,0x27,
0x47,0xaa,0xda,0x07,0x92,0x8d,0xfd,0x1f,0xee,0x48,0x1a,0x53,0x3b,0x98,0x6a,0x72,
};
class kaneko_toybox_device : public device_t
{
public:
kaneko_toybox_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
static void set_toybox_table(device_t &device, int tabletype);
static void set_toybox_gametype(device_t &device, int gametype);
DECLARE_READ16_MEMBER(toybox_mcu_ram_r);
DECLARE_WRITE16_MEMBER(toybox_mcu_ram_w);
DECLARE_WRITE16_MEMBER(toybox_mcu_com0_w);
DECLARE_WRITE16_MEMBER(toybox_mcu_com1_w);
DECLARE_WRITE16_MEMBER(toybox_mcu_com2_w);
DECLARE_WRITE16_MEMBER(toybox_mcu_com3_w);
DECLARE_READ16_MEMBER(toybox_mcu_status_r);
void toybox_mcu_com_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_);
void toxboy_decrypt_rom(running_machine& machine);
void toxboy_handle_04_subcommand(running_machine& machine,UINT8 mcu_subcmd, UINT16*mcu_ram);
void toybox_mcu_init(running_machine &machine);
void toybox_mcu_run(running_machine &machine);
UINT16 m_toybox_mcu_com[4];
int m_gametype;
int m_tabletype;
protected:
virtual void device_start();
virtual void device_reset();
private:
UINT16* m_toybox_mcuram;
};
extern const device_type KANEKO_TOYBOX;

View File

@ -1,286 +1,2 @@
/*
TODO:
- bonkadv_mcu_43: extract data from MCU (dumped eeprom data for now)
- bloodwar: verify all extracted data against real board (WIP)
*/
/***************************************************************************
TOYBOX MCU data for Bonk's Adventure
***************************************************************************/
// notes based on test programs results, verified on PCB:
// - bonkadv_mcu_4_30 is the only cmd that ouputs an odd (655) number of bytes
// - bonkadv_mcu_4_33: the 32 'zeroed' bytes every 64 bytes are effectively written by the MCU
// MCU executed command: 4300 0100 - factory settings
// this command is issued whenever the nvram settings are corrupted
// the MCU writes directly to NVRAM
static const UINT16 bonkadv_mcu_43[] = {
0x8BE0,0x8E71,0x0102,0x0102,0x0300,0x010C,0x0202,0x0202,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0030,0x0020,0x4F6B,0x0305,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0082,0x6F82,0x628C,0xB490,0x6CAB
};
// MCU executed command: 0400 0E00 0034 - code
/*
200E00: 7071 moveq #$71, D0
200E02: 7273 moveq #$73, D1
200E04: 7475 moveq #$75, D2
200E06: 7677 moveq #$77, D3
200E08: 7879 moveq #$79, D4
200E0A: 7A7B moveq #$7b, D5
200E0C: 7C7D moveq #$7d, D6
200E0E: 7E7F moveq #$7f, D7
200E10: 4E75 rts
*/
static const UINT16 bonkadv_mcu_4_34[] = {
0x7071,0x7273,0x7475,0x7677,0x7879,0x7a7b,0x7c7d,0x7e7f,
0x4e75
};
// MCU executed command: 0400 0180 0032 - 128 bytes at $200180
static const UINT16 bonkadv_mcu_4_32[] = {
0x00cc,0xcc0c,0xc0c0,0xc080,0x0484,0xb6a6,0x0404,0x80c0,
0x80b1,0xb1a1,0xa1b2,0xa2b3,0xb3a3,0xa3b1,0xb1b1,0xb1c0,
0xc0a1,0xa1a1,0xa1b2,0xb2a2,0xa290,0x9090,0xb9b9,0xa9a9,
0xbaaa,0xbbbb,0xabab,0xb9b9,0xb9b9,0xc8c8,0xa9a9,0xa9a9,
0xbaba,0xaaaa,0x9898,0x98b9,0xb9a9,0xa9ba,0xaabb,0xbbab,
0xabb9,0xb9b9,0xb9c8,0xc8a9,0xa9a9,0xa9ba,0xbaaa,0xaa98,
0x9898,0xb1b1,0xa1a1,0xb2a2,0xb3b3,0xa3a3,0xb1b1,0xb1b1,
0xc0c0,0xa1a1,0xa1a1,0xb2b2,0xa2a2,0x9090,0x9000,0x0000
};
// MCU executed command: 0400 0280 0031 - 112 bytes at $200280
static const UINT16 bonkadv_mcu_4_31[] = {
0x1013,0x1411,0x1216,0x1519,0x1a17,0x1824,0x2322,0x211f,
0x201e,0x1d1c,0x1b27,0x2825,0x2629,0x2a2b,0x2e2f,0x2c2d,
0x3130,0x3435,0x3233,0x3f3e,0x3d3c,0x3a3b,0x3938,0x3736,
0x4243,0x4041,0x4445,0x4649,0x4a47,0x484c,0x4b4f,0x504d,
0x4e5a,0x5958,0x5755,0x5654,0x5352,0x515d,0x5e5b,0x5c5f,
0x6061,0x6465,0x6263,0x6766,0x6a6b,0x6869,0x7574,0x7372,
0x7071,0x6f6e,0x6d6c,0x7879,0x7677,0x7a7b,0x7c7d,0x7e7f
};
// MCU executed command: 0400 0E50 0030 - 655 bytes at $200E50 (656 here)
static const UINT16 bonkadv_mcu_4_30[] = {
0x8c00,0x9700,0xa000,0xa700,0xb200,0xb700,0xc000,0xcc00,
0xd600,0xdf00,0xef00,0xf500,0xfd00,0x0501,0x0b01,0x1801,
0x1e01,0x2901,0x3101,0x3701,0x4101,0x4901,0x0b01,0x5d01,
0xa700,0xb200,0x6c01,0x8101,0xb200,0x8101,0x8101,0x8101,
0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,
0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,
0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x2e02,
0x3602,0x3d02,0x4102,0x4f02,0x5502,0x5502,0x5f02,0x6402,
0x6d02,0x7302,0x7802,0x7d02,0x8302,0x8a02,0x0165,0x712b,
0x57fe,0x57a2,0xff00,0x0003,0x7c3a,0x436c,0x66ff,0x0000,
0x026c,0x6d43,0xff00,0x0000,0x74a5,0x8373,0x3599,0x9fff,
0x0000,0x074a,0xff00,0x0002,0x8788,0x3331,0x32ff,0x0000,
0x0276,0x8c71,0x2d8c,0xfe12,0x8cff,0x0000,0x0171,0x0d29,
0xfe0d,0x29ff,0x0000,0x0559,0x5a5b,0x8a8b,0xff00,0x0003,
0x0d0e,0x576a,0x641e,0xfe0d,0x0efe,0x64a3,0xff00,0x0006,
0x0262,0xff00,0x0007,0x3e3f,0x7a7b,0xff00,0x0007,0x7584,
0x4c53,0xff00,0x0001,0x6645,0xff00,0x0007,0x0d18,0x2984,
0x5384,0xfe0d,0x29ff,0x0000,0x0457,0x5cff,0x0000,0x0751,
0x5202,0x45fe,0x4575,0xff00,0x0000,0x191a,0x1b6e,0xff00,
0x0006,0x3472,0xff00,0x0000,0x6569,0x090f,0x8b23,0xff00,
0x0004,0x3b3c,0x3d79,0xff00,0x0080,0x770a,0x8176,0x2a65,
0x64fe,0x7776,0xfe2a,0x76fe,0x650a,0xff00,0x0000,0x1011,
0x1226,0x2728,0xa655,0x940f,0x68ff,0x0000,0x8045,0x6477,
0x0a81,0x762a,0x65fe,0x7776,0xfe2a,0x76fe,0x650a,0xff00,
0x0000,0x166b,0xff00,0x0007,0x1e30,0x39ff,0x0000,0x0345,
0x3a77,0x7843,0x4647,0xff00,0x0000,0x7335,0x8399,0x9fff,
0x0000,0x0237,0x38ff,0x0000,0x0044,0x303b,0xff00,0x0000,
0x7d7e,0x7fa1,0x0aff,0x0000,0x0070,0xff00,0x0000,0x3e3f,
0x7a7b,0x6180,0x89a4,0xff00,0x0006,0x86a5,0x4f42,0xff00,
0x0000,0x1011,0x1255,0x0f68,0xff00,0x0002,0x8788,0x4033,
0xff00,0x0005,0x650f,0xff00,0x0008,0x9596,0x9ba7,0xff00,
0x0000,0x4849,0x82ff,0x0000,0x022e,0x2f30,0xff00,0x0001,
0x7778,0x5826,0x2728,0xa6ff,0x0000,0x0813,0x1402,0x51ff,
0x0000,0x072e,0x5c5d,0xff00,0x0006,0x57ff,0x0000,0x0230,
0x391e,0x65fe,0x6530,0xff00,0x0000,0x4bff,0x0000,0x008e,
0x8f90,0x91ff,0x0000,0x0092,0x9d17,0xff00,0x0000,0xff00,
0x0000,0x8d9b,0xa77d,0x7e7f,0xa10a,0x9596,0xff00,0x0001,
0x1993,0xff00,0x0000,0x67ff,0x0000,0x0067,0xff00,0x0000,
0x27ff,0x0000,0x0390,0x8e23,0x978b,0xff00,0x0000,0x1d9e,
0xff00,0x0007,0x3bff,0x0000,0x001d,0xff00,0x0000,0x8e90,
0xff00,0x0005,0x2495,0x96ff,0x0000,0x009a,0xff00,0x0000
};
// MCU executed command: 0400 0400 0033 - 2560 bytes at $200400
static const UINT16 bonkadv_mcu_4_33[] = {
0x00a4,0x0001,0x00a5,0x005a,0x00a6,0x0074,0x00a7,0x009b,
0x00a8,0x00d0,0x00a9,0x00fe,0x00aa,0x015d,0x00ab,0x01b0,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0001,0x0002,0x0019,0x005b,0x0022,0x0075,0x002d,0x009c,
0x0041,0x00d1,0x004e,0x00ff,0x0060,0x015f,0x0072,0x01b1,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0002,0x0008,0x001a,0x0061,0x0023,0x007b,0x002e,0x00a2,
0x0042,0x00d7,0x004f,0x0107,0x0061,0x0165,0x0073,0x01b7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x000a,0x0000,0x0063,0x0000,0x007d,0x0000,0x00a4,
0x0000,0x00d9,0x0000,0x0109,0x0000,0x0167,0x0000,0x01b9,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0003,0x000b,0x001b,0x0064,0x0024,0x007e,0x002f,0x00a5,
0x0043,0x00da,0x0050,0x010a,0x0062,0x0168,0x0074,0x01ba,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x000c,0x0000,0x0065,0x0000,0x007f,0x0000,0x00a6,
0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0004,0x0008,0x001c,0x0061,0x0025,0x007b,0x0030,0x00a2,
0x0044,0x00d7,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0005,0x000d,0x001d,0x0066,0x0025,0x007b,0x0031,0x00a7,
0x0045,0x00dc,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0017,0x0000,0x0069,0x0000,0x0089,0x0000,0x00af,
0x0000,0x00df,0x0000,0x0115,0x0000,0x0173,0x0000,0x01c5,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0009,0x0015,0x001e,0x0067,0x0029,0x0087,0x0034,0x00ad,
0x0046,0x00dd,0x0055,0x0113,0x0067,0x0171,0x0079,0x01c3,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0006,0x000e,0x0006,0x000e,0x0026,0x0080,0x0006,0x000e,
0x0000,0x0000,0x0052,0x010c,0x0064,0x016a,0x0076,0x01bc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0007,0x0010,0x0007,0x0010,0x0027,0x0082,0x0032,0x00a8,
0x0000,0x0000,0x0053,0x010e,0x0065,0x016c,0x0077,0x01be,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0013,0x0000,0x0013,0x0000,0x0085,0x0000,0x00ab,
0x0000,0x0000,0x0000,0x0111,0x0000,0x016f,0x0000,0x01c1,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0008,0x0014,0x0008,0x0014,0x0028,0x0086,0x0033,0x00ac,
0x0000,0x0000,0x0054,0x0112,0x0066,0x0170,0x0078,0x01c2,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0018,0x0000,0x006a,0x0000,0x008a,0x0000,0x00b0,
0x0000,0x00e0,0x0000,0x0116,0x0000,0x0174,0x0000,0x01c6,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x000c,0x0000,0x0065,0x0000,0x007f,0x0000,0x00a6,
0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x000a,0x0019,0x001f,0x006b,0x002a,0x008b,0x0035,0x00b1,
0x0047,0x00e1,0x0056,0x0117,0x0068,0x0175,0x007a,0x01c7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x000b,0x0019,0x0020,0x006b,0x002b,0x008b,0x0036,0x00b1,
0x0048,0x00e1,0x0057,0x0117,0x0069,0x0175,0x007a,0x01c7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0015,0x003e,0x0015,0x003e,0x0099,0x0095,0x0015,0x003e,
0x0000,0x0000,0x009e,0x013a,0x006d,0x018f,0x007e,0x01dc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x000c,0x001d,0x000c,0x001d,0x000c,0x001d,0x000c,0x001d,
0x0049,0x00e5,0x0058,0x011b,0x006a,0x0179,0x007b,0x01c9,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x001f,0x0000,0x001f,0x0000,0x001f,0x0000,0x001f,
0x0000,0x00e7,0x0000,0x011d,0x0000,0x017b,0x0000,0x01cb,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x000d,0x0020,0x0021,0x006f,0x002c,0x008f,0x0037,0x00b5,
0x004a,0x00e8,0x0059,0x011e,0x006b,0x017c,0x007c,0x01cc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0022,0x0000,0x0071,0x0000,0x0091,0x0000,0x00b7,
0x0000,0x00ea,0x0000,0x0120,0x0000,0x017e,0x0000,0x01ce,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0014,0x003b,0x0014,0x003b,0x005d,0x0092,0x0014,0x003b,
0x0014,0x003b,0x009d,0x0137,0x00a0,0x018c,0x00a1,0x01d9,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0012,0x0036,0x0012,0x0036,0x0012,0x0036,0x0012,0x0036,
0x008a,0x00e5,0x00be,0x013c,0x006c,0x0184,0x007d,0x01d1,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0013,0x0038,0x0013,0x0038,0x0013,0x0038,0x0013,0x0038,
0x008a,0x00e5,0x00bf,0x013d,0x006c,0x0184,0x007d,0x01d1,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0038,0x00ba,0x0038,0x00ba,0x0038,0x00ba,0x0038,0x00ba,
0x0038,0x00ba,0x00a2,0x0128,0x006e,0x019c,0x007f,0x01e7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x005c,0x014d,0x005c,0x014d,0x005c,0x014d,0x005c,0x014d,
0x0000,0x0000,0x009c,0x0124,0x0071,0x01a5,0x0082,0x01f0,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x005b,0x014d,0x005b,0x014d,0x005b,0x014d,0x005b,0x014d,
0x0000,0x0000,0x009b,0x0124,0x0070,0x01a1,0x0081,0x01ec,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0044,0x0000,0x0044,0x0000,0x0044,0x0000,0x0044,
0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0018,0x0045,0x0018,0x0045,0x0018,0x0045,0x0018,0x0045,
0x0044,0x00d7,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x008b,0x000e,0x008b,0x000e,0x008c,0x0080,0x008b,0x000e,
0x0000,0x0000,0x008d,0x010c,0x008e,0x016a,0x008f,0x01bc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0090,0x0010,0x0090,0x0010,0x0091,0x0082,0x0092,0x00a8,
0x0000,0x0000,0x0093,0x010e,0x0094,0x016c,0x0095,0x01be,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0096,0x003e,0x0096,0x003e,0x009a,0x0095,0x0096,0x003e,
0x0000,0x0000,0x009f,0x013a,0x0097,0x018f,0x0098,0x01dc,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0049,0x0000,0x0069,0x0000,0x0098,0x0000,0x00af,
0x0000,0x00df,0x0000,0x0145,0x0000,0x0173,0x0000,0x01c5,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x005e,0x0048,0x005f,0x0068,0x006f,0x0097,0x0080,0x00ae,
0x00ac,0x00de,0x00ad,0x0144,0x00ae,0x0172,0x00af,0x01c4,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x004b,0x00ed,0x004b,0x00ed,0x004b,0x00ed,0x004b,0x00ed,
0x004b,0x00ed,0x00b0,0x012b,0x00b6,0x0186,0x00ba,0x01d3,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0087,0x00f2,0x0087,0x00f2,0x0087,0x00f2,0x0087,0x00f2,
0x0087,0x00f2,0x00b3,0x0130,0x00b8,0x018b,0x00bc,0x01d8,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x00c1,0x0050,0x00c1,0x0050,0x00c1,0x0050,0x00c1,0x0050,
0x00c1,0x0050,0x00c3,0x0148,0x00c5,0x019a,0x00c7,0x01e5,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x00c2,0x0050,0x00c2,0x0050,0x00c2,0x0050,0x00c2,0x0050,
0x00c2,0x0050,0x00c4,0x0148,0x00c6,0x019a,0x00c8,0x01e5,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
};
/* nothing here now */

View File

@ -18949,6 +18949,60 @@ m4calicl // California Club (Barcrest)
m4cardcs // Card Cash (Barcrest) m4cardcs // Card Cash (Barcrest)
m4cojok // Carry On Joker (Barcrest) m4cojok // Carry On Joker (Barcrest)
m4cashat // Cash Attack (Barcrest) m4cashat // Cash Attack (Barcrest)
m4cashat__a //
m4cashat__b //
m4cashat__c //
m4cashat__d //
m4cashat__e //
m4cashat__f //
m4cashat__g //
m4cashat__h //
m4cashat__i //
m4cashat__j //
m4cashat__k //
m4cashat__l //
m4cashat__m //
m4cashat__n //
m4cashat__o //
m4cashat__p //
m4cashat__q //
m4cashat__r //
m4cashat__s //
m4cashat__t //
m4cashat__u //
m4cashat__v //
m4cashat__w //
m4cashat__x //
m4cashat__y //
m4cashat__z //
m4cashat__0 //
m4cashat__1 //
m4cashat__2 //
m4cashat__3 //
m4cashat__4 //
m4cashat__5 //
m4cashat__6 //
m4cashat__7 //
m4cashat__8 //
m4cashat__9 //
m4cashat__aa //
m4cashat__ab //
m4cashat__ac //
m4cashat__ad //
m4cashat__ae //
m4cashat__af //
m4cashat__ag //
m4cashat__ah //
m4cashat__ai //
m4cashat__aj //
m4cashat__ak //
m4cashat__al //
m4cashat__am //
m4cashat__an //
m4cashat__ao //
m4cashat__ap //
m4cashat__aq //
m4cashat__ar //
m4cashcn // Cash Connect (Barcrest) m4cashcn // Cash Connect (Barcrest)
m4cashco // Cash Counter (Barcrest) m4cashco // Cash Counter (Barcrest)
m4cashcoa // m4cashcoa //
@ -19905,6 +19959,46 @@ m4nnww__ax //
m4nnww__ay // m4nnww__ay //
m4nnww__az // m4nnww__az //
m4nnwwc // Nudge Nudge Wink Wink Classic (Barcrest) m4nnwwc // Nudge Nudge Wink Wink Classic (Barcrest)
m4nnwwc__a //
m4nnwwc__b //
m4nnwwc__c //
m4nnwwc__d //
m4nnwwc__e //
m4nnwwc__f //
m4nnwwc__g //
m4nnwwc__h //
m4nnwwc__i //
m4nnwwc__j //
m4nnwwc__k //
m4nnwwc__l //
m4nnwwc__m //
m4nnwwc__n //
m4nnwwc__o //
m4nnwwc__p //
m4nnwwc__q //
m4nnwwc__r //
m4nnwwc__s //
m4nnwwc__t //
m4nnwwc__u //
m4nnwwc__v //
m4nnwwc__w //
m4nnwwc__x //
m4nnwwc__y //
m4nnwwc__z //
m4nnwwc__0 //
m4nnwwc__1 //
m4nnwwc__2 //
m4nnwwc__3 //
m4nnwwc__4 //
m4nnwwc__5 //
m4nnwwc__6 //
m4nnwwc__7 //
m4nnwwc__8 //
m4nnwwc__9 //
m4nnwwc__aa //
m4nnwwc__ab //
m4nnwwc__ac //
m4nnwwc__ad //
m4nudqst // Nudge Quest (Barcrest) m4nudqst // Nudge Quest (Barcrest)
m4nudshf // Nudge Shuffle (Barcrest) m4nudshf // Nudge Shuffle (Barcrest)
m4nudup // Nudge Up (Barcrest) m4nudup // Nudge Up (Barcrest)
@ -20122,6 +20216,72 @@ m4ready__a5 //
m4ra // Red Alert (Barcrest) m4ra // Red Alert (Barcrest)
m4rdht // Red Heat (Barcrest) m4rdht // Red Heat (Barcrest)
m4rhr // Red Hot Roll (Barcrest) m4rhr // Red Hot Roll (Barcrest)
m4rhr__a //
m4rhr__b //
m4rhr__c //
m4rhr__d //
m4rhr__e //
m4rhr__f //
m4rhr__g //
m4rhr__h //
m4rhr__i //
m4rhr__j //
m4rhr__k //
m4rhr__l //
m4rhr__m //
m4rhr__n //
m4rhr__o //
m4rhr__p //
m4rhr__q //
m4rhr__r //
m4rhr__s //
m4rhr__t //
m4rhr__u //
m4rhr__v //
m4rhr__w //
m4rhr__x //
m4rhr__y //
m4rhr__z //
m4rhr__0 //
m4rhr__1 //
m4rhr__2 //
m4rhr__3 //
m4rhr__4 //
m4rhr__5 //
m4rhr__6 //
m4rhr__7 //
m4rhr__8 //
m4rhr__9 //
m4rhr__aa //
m4rhr__ab //
m4rhr__ac //
m4rhr__ad //
m4rhr__ae //
m4rhr__af //
m4rhr__ag //
m4rhr__ah //
m4rhr__ai //
m4rhr__aj //
m4rhr__ak //
m4rhr__al //
m4rhr__am //
m4rhr__an //
m4rhr__ao //
m4rhr__ap //
m4rhr__aq //
m4rhr__ar //
m4rhr__as //
m4rhr__at //
m4rhr__au //
m4rhr__av //
m4rhr__aw //
m4rhr__ax //
m4rhr__ay //
m4rhr__az //
m4rhr__a0 //
m4rhr__a1 //
m4rhr__a2 //
m4rhr__a3 //
m4rhrc // Red Hot Roll Classic (Barcrest) m4rhrc // Red Hot Roll Classic (Barcrest)
m4rhrcl // Red Hot Roll Club (Barcrest) m4rhrcl // Red Hot Roll Club (Barcrest)
m4rwb // Red White & Blue (Barcrest) m4rwb // Red White & Blue (Barcrest)
@ -20131,6 +20291,36 @@ m4rmtpd // Reel Magic Turbo Play Deluxe (Barcrest)
m4reelpk // Reel Poker (Barcrest) m4reelpk // Reel Poker (Barcrest)
m4reeltm // Reel Timer (Barcrest) m4reeltm // Reel Timer (Barcrest)
m4richfm // Rich & Famous (Barcrest) m4richfm // Rich & Famous (Barcrest)
m4richfm__a //
m4richfm__b //
m4richfm__c //
m4richfm__d //
m4richfm__e //
m4richfm__f //
m4richfm__g //
m4richfm__h //
m4richfm__i //
m4richfm__j //
m4richfm__k //
m4richfm__l //
m4richfm__m //
m4richfm__n //
m4richfm__o //
m4richfm__p //
m4richfm__q //
m4richfm__r //
m4richfm__s //
m4richfm__t //
m4richfm__u //
m4richfm__v //
m4richfm__w //
m4richfm__x //
m4richfm__y //
m4richfm__z //
m4richfm__0 //
m4richfm__1 //
m4richfm__2 //
m4richfm__3 //
m4ringfr // Ring Of Fire (Barcrest) m4ringfr // Ring Of Fire (Barcrest)
m4rhog // Road Hog (Barcrest) m4rhog // Road Hog (Barcrest)
m4rhog_h1 // m4rhog_h1 //
@ -20301,6 +20491,110 @@ m4supbjc // Super Blackjack Club (Barcrest)
m4supbf // Super Bucks Fizz Club (Barcrest) m4supbf // Super Bucks Fizz Club (Barcrest)
m4suphv // Super Hyper Viper (Barcrest) m4suphv // Super Hyper Viper (Barcrest)
m4supst // Super Streak (Barcrest) m4supst // Super Streak (Barcrest)
m4supst__a //
m4supst__b //
m4supst__c //
m4supst__d //
m4supst__e //
m4supst__f //
m4supst__g //
m4supst__h //
m4supst__i //
m4supst__j //
m4supst__k //
m4supst__l //
m4supst__m //
m4supst__n //
m4supst__o //
m4supst__p //
m4supst__q //
m4supst__r //
m4supst__s //
m4supst__t //
m4supst__u //
m4supst__v //
m4supst__w //
m4supst__x //
m4supst__y //
m4supst__z //
m4supst__0 //
m4supst__1 //
m4supst__2 //
m4supst__3 //
m4supst__4 //
m4supst__5 //
m4supst__6 //
m4supst__7 //
m4supst__8 //
m4supst__9 //
m4supst__aa //
m4supst__ab //
m4supst__ac //
m4supst__ad //
m4supst__ae //
m4supst__af //
m4supst__ag //
m4supst__ah //
m4supst__ai //
m4supst__aj //
m4supst__ak //
m4supst__al //
m4supst__am //
m4supst__an //
m4supst__ao //
m4supst__ap //
m4supst__aq //
m4supst__ar //
m4supst__as //
m4supst__at //
m4supst__au //
m4supst__av //
m4supst__aw //
m4supst__ax //
m4supst__ay //
m4supst__az //
m4supst__a0 //
m4supst__a1 //
m4supst__a2 //
m4supst__a3 //
m4supst__a4 //
m4supst__a5 //
m4supst__a6 //
m4supst__a7 //
m4supst__a8 //
m4supst__a9 //
m4supst__ba //
m4supst__bb //
m4supst__bc //
m4supst__bd //
m4supst__be //
m4supst__bf //
m4supst__bg //
m4supst__bh //
m4supst__bi //
m4supst__bj //
m4supst__bk //
m4supst__bl //
m4supst__bm //
m4supst__bn //
m4supst__bo //
m4supst__bp //
m4supst__bq //
m4supst__br //
m4supst__bs //
m4supst__bt //
m4supst__bu //
m4supst__bv //
m4supst__bw //
m4supst__bx //
m4supst__by //
m4supst__bz //
m4supst__b0 //
m4supst__b1 //
m4supst__b2 //
m4supst__b3 //
m4supst__b4 //
m4supst__b5 //
m4suptub // Super Tubes (Barcrest) m4suptub // Super Tubes (Barcrest)
m4suptuba // m4suptuba //
m4suptwo // Super Two (Barcrest) m4suptwo // Super Two (Barcrest)
@ -20519,6 +20813,59 @@ m4twintm // Twin Timer (Barcrest)
m4twist // Twist Again (Barcrest) m4twist // Twist Again (Barcrest)
m4univ // Universe (Barcrest) m4univ // Universe (Barcrest)
m4uuaw // Up Up and Away (Barcrest) m4uuaw // Up Up and Away (Barcrest)
m4uuaw__a //
m4uuaw__b //
m4uuaw__c //
m4uuaw__d //
m4uuaw__e //
m4uuaw__f //
m4uuaw__g //
m4uuaw__h //
m4uuaw__i //
m4uuaw__j //
m4uuaw__k //
m4uuaw__l //
m4uuaw__m //
m4uuaw__n //
m4uuaw__o //
m4uuaw__p //
m4uuaw__q //
m4uuaw__r //
m4uuaw__s //
m4uuaw__t //
m4uuaw__u //
m4uuaw__v //
m4uuaw__w //
m4uuaw__x //
m4uuaw__y //
m4uuaw__z //
m4uuaw__0 //
m4uuaw__1 //
m4uuaw__2 //
m4uuaw__3 //
m4uuaw__4 //
m4uuaw__5 //
m4uuaw__6 //
m4uuaw__7 //
m4uuaw__8 //
m4uuaw__9 //
m4uuaw__aa //
m4uuaw__ab //
m4uuaw__ac //
m4uuaw__ad //
m4uuaw__ae //
m4uuaw__af //
m4uuaw__ag //
m4uuaw__ah //
m4uuaw__ai //
m4uuaw__aj //
m4uuaw__ak //
m4uuaw__al //
m4uuaw__am //
m4uuaw__an //
m4uuaw__ao //
m4uuaw__ap //
m4uuaw__aq //
m4vegast // Vegas Strip (Barcrest) m4vegast // Vegas Strip (Barcrest)
m4vegastg // m4vegastg //
m4vivaes // Viva Espana (Barcrest) m4vivaes // Viva Espana (Barcrest)

View File

@ -845,11 +845,12 @@ $(MAMEOBJ)/kaneko.a: \
$(DRIVERS)/galpani3.o \ $(DRIVERS)/galpani3.o \
$(DRIVERS)/hvyunit.o \ $(DRIVERS)/hvyunit.o \
$(DRIVERS)/jchan.o \ $(DRIVERS)/jchan.o \
$(DRIVERS)/kaneko16.o $(MACHINE)/kaneko16.o $(VIDEO)/kaneko16.o \ $(DRIVERS)/kaneko16.o $(VIDEO)/kaneko16.o \
$(VIDEO)/kaneko_tmap.o \ $(VIDEO)/kaneko_tmap.o \
$(VIDEO)/kaneko_spr.o \ $(VIDEO)/kaneko_spr.o \
$(MACHINE)/kaneko_hit.o \ $(MACHINE)/kaneko_hit.o \
$(MACHINE)/kaneko_calc3.o \ $(MACHINE)/kaneko_calc3.o \
$(MACHINE)/kaneko_toybox.o \
$(DRIVERS)/sandscrp.o \ $(DRIVERS)/sandscrp.o \
$(DRIVERS)/suprnova.o $(VIDEO)/suprnova.o \ $(DRIVERS)/suprnova.o $(VIDEO)/suprnova.o \
$(VIDEO)/sknsspr.o \ $(VIDEO)/sknsspr.o \