summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/hshavoc.cpp1
-rw-r--r--src/mame/drivers/megadrvb.cpp30
-rw-r--r--src/mame/drivers/puckpkmn.cpp2
-rw-r--r--src/mame/includes/megadriv.h35
-rw-r--r--src/mame/includes/megadrvb.h37
-rw-r--r--src/mame/machine/megadriv.cpp32
6 files changed, 69 insertions, 68 deletions
diff --git a/src/mame/drivers/hshavoc.cpp b/src/mame/drivers/hshavoc.cpp
index e4d0386c172..2706b98c034 100644
--- a/src/mame/drivers/hshavoc.cpp
+++ b/src/mame/drivers/hshavoc.cpp
@@ -42,6 +42,7 @@ Unfortunately it's read protected.
#include "sound/2612intf.h"
#include "sound/sn76496.h"
#include "includes/megadriv.h"
+#include "includes/megadrvb.h"
static INPUT_PORTS_START( hshavoc )
PORT_START("IN0") /* 16bit */
diff --git a/src/mame/drivers/megadrvb.cpp b/src/mame/drivers/megadrvb.cpp
index c794ec9ff35..b2ed760453a 100644
--- a/src/mame/drivers/megadrvb.cpp
+++ b/src/mame/drivers/megadrvb.cpp
@@ -258,8 +258,38 @@ connector, but of course, I can be wrong.
#include "emu.h"
#include "includes/megadriv.h"
+#include "includes/megadrvb.h"
+/************************************ Megadrive Bootlegs *************************************/
+
+// smaller ROM region because some bootlegs check for RAM there (used by topshoot and hshavoc)
+static ADDRESS_MAP_START( md_bootleg_map, AS_PROGRAM, 16, md_boot_state )
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM /* Cartridge Program Rom */
+ AM_RANGE(0x200000, 0x2023ff) AM_RAM // tested
+
+ AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(megadriv_68k_read_z80_ram, megadriv_68k_write_z80_ram)
+ AM_RANGE(0xa02000, 0xa03fff) AM_WRITE(megadriv_68k_write_z80_ram)
+ AM_RANGE(0xa04000, 0xa04003) AM_READWRITE8(megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff)
+ AM_RANGE(0xa06000, 0xa06001) AM_WRITE(megadriv_68k_z80_bank_write)
+
+ AM_RANGE(0xa10000, 0xa1001f) AM_READWRITE(megadriv_68k_io_read, megadriv_68k_io_write)
+ AM_RANGE(0xa11100, 0xa11101) AM_READWRITE(megadriv_68k_check_z80_bus, megadriv_68k_req_z80_bus)
+ AM_RANGE(0xa11200, 0xa11201) AM_WRITE(megadriv_68k_req_z80_reset)
+
+ AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
+ AM_RANGE(0xd00000, 0xd0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
+
+ AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_SHARE("megadrive_ram")
+ADDRESS_MAP_END
+
+MACHINE_CONFIG_START( md_bootleg, md_boot_state )
+ MCFG_FRAGMENT_ADD( md_ntsc )
+
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(md_bootleg_map)
+MACHINE_CONFIG_END
+
/*************************************
*
* Games memory handlers
diff --git a/src/mame/drivers/puckpkmn.cpp b/src/mame/drivers/puckpkmn.cpp
index e68e01cb1fd..4206a023a85 100644
--- a/src/mame/drivers/puckpkmn.cpp
+++ b/src/mame/drivers/puckpkmn.cpp
@@ -51,7 +51,7 @@ Notes:
#include "sound/2612intf.h"
#include "includes/megadriv.h"
-
+#include "includes/megadrvb.h"
/* Puckman Pockimon Input Ports */
static INPUT_PORTS_START( puckpkmn )
diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h
index 41984596c09..702be472e7a 100644
--- a/src/mame/includes/megadriv.h
+++ b/src/mame/includes/megadriv.h
@@ -137,41 +137,6 @@ public:
DECLARE_WRITE8_MEMBER(megadriv_tas_callback);
};
-
-class md_boot_state : public md_base_state
-{
-public:
- md_boot_state(const machine_config &mconfig, device_type type, const char *tag)
- : md_base_state(mconfig, type, tag) { m_protcount = 0;}
-
- // bootleg specific
- int m_aladmdb_mcu_port;
-
- int m_protcount;
-
- DECLARE_DRIVER_INIT(aladmdb);
- DECLARE_DRIVER_INIT(mk3mdb);
- DECLARE_DRIVER_INIT(ssf2mdb);
- DECLARE_DRIVER_INIT(srmdb);
- DECLARE_DRIVER_INIT(topshoot);
- DECLARE_DRIVER_INIT(puckpkmn);
- DECLARE_DRIVER_INIT(hshavoc);
- DECLARE_WRITE16_MEMBER(bl_710000_w);
- DECLARE_READ16_MEMBER(bl_710000_r);
- DECLARE_WRITE16_MEMBER(aladmdb_w);
- DECLARE_READ16_MEMBER(aladmdb_r);
- DECLARE_READ16_MEMBER(mk3mdb_dsw_r);
- DECLARE_READ16_MEMBER(ssf2mdb_dsw_r);
- DECLARE_READ16_MEMBER(srmdb_dsw_r);
- DECLARE_READ16_MEMBER(topshoot_200051_r);
- DECLARE_READ16_MEMBER(puckpkmna_70001c_r);
- DECLARE_READ16_MEMBER(puckpkmna_4b2476_r);
-
- DECLARE_MACHINE_START(md_bootleg) { MACHINE_START_CALL_MEMBER(megadriv); m_vdp->stop_timers(); }
- DECLARE_MACHINE_START(md_6button);
-};
-
-
class md_cons_state : public md_base_state
{
public:
diff --git a/src/mame/includes/megadrvb.h b/src/mame/includes/megadrvb.h
new file mode 100644
index 00000000000..5be00cf1810
--- /dev/null
+++ b/src/mame/includes/megadrvb.h
@@ -0,0 +1,37 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+
+class md_boot_state : public md_base_state
+{
+public:
+ md_boot_state(const machine_config &mconfig, device_type type, const char *tag)
+ : md_base_state(mconfig, type, tag) { m_protcount = 0;}
+
+ // bootleg specific
+ int m_aladmdb_mcu_port;
+
+ int m_protcount;
+
+ DECLARE_DRIVER_INIT(aladmdb);
+ DECLARE_DRIVER_INIT(mk3mdb);
+ DECLARE_DRIVER_INIT(ssf2mdb);
+ DECLARE_DRIVER_INIT(srmdb);
+ DECLARE_DRIVER_INIT(topshoot);
+ DECLARE_DRIVER_INIT(puckpkmn);
+ DECLARE_DRIVER_INIT(hshavoc);
+ DECLARE_WRITE16_MEMBER(bl_710000_w);
+ DECLARE_READ16_MEMBER(bl_710000_r);
+ DECLARE_WRITE16_MEMBER(aladmdb_w);
+ DECLARE_READ16_MEMBER(aladmdb_r);
+ DECLARE_READ16_MEMBER(mk3mdb_dsw_r);
+ DECLARE_READ16_MEMBER(ssf2mdb_dsw_r);
+ DECLARE_READ16_MEMBER(srmdb_dsw_r);
+ DECLARE_READ16_MEMBER(topshoot_200051_r);
+ DECLARE_READ16_MEMBER(puckpkmna_70001c_r);
+ DECLARE_READ16_MEMBER(puckpkmna_4b2476_r);
+
+ DECLARE_MACHINE_START(md_bootleg) { MACHINE_START_CALL_MEMBER(megadriv); m_vdp->stop_timers(); }
+ DECLARE_MACHINE_START(md_6button);
+};
+
+
diff --git a/src/mame/machine/megadriv.cpp b/src/mame/machine/megadriv.cpp
index ad16299070f..f52ef84af32 100644
--- a/src/mame/machine/megadriv.cpp
+++ b/src/mame/machine/megadriv.cpp
@@ -755,38 +755,6 @@ static ADDRESS_MAP_START( megadriv_z80_io_map, AS_IO, 8, md_base_state )
AM_RANGE(0x0000, 0xff) AM_NOP
ADDRESS_MAP_END
-
-/************************************ Megadrive Bootlegs *************************************/
-
-// smaller ROM region because some bootlegs check for RAM there (used by topshoot and hshavoc)
-static ADDRESS_MAP_START( md_bootleg_map, AS_PROGRAM, 16, md_boot_state )
- AM_RANGE(0x000000, 0x0fffff) AM_ROM /* Cartridge Program Rom */
- AM_RANGE(0x200000, 0x2023ff) AM_RAM // tested
-
- AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(megadriv_68k_read_z80_ram, megadriv_68k_write_z80_ram)
- AM_RANGE(0xa02000, 0xa03fff) AM_WRITE(megadriv_68k_write_z80_ram)
- AM_RANGE(0xa04000, 0xa04003) AM_READWRITE8(megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff)
- AM_RANGE(0xa06000, 0xa06001) AM_WRITE(megadriv_68k_z80_bank_write)
-
- AM_RANGE(0xa10000, 0xa1001f) AM_READWRITE(megadriv_68k_io_read, megadriv_68k_io_write)
- AM_RANGE(0xa11100, 0xa11101) AM_READWRITE(megadriv_68k_check_z80_bus, megadriv_68k_req_z80_bus)
- AM_RANGE(0xa11200, 0xa11201) AM_WRITE(megadriv_68k_req_z80_reset)
-
- AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
- AM_RANGE(0xd00000, 0xd0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
-
- AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_SHARE("megadrive_ram")
-ADDRESS_MAP_END
-
-MACHINE_CONFIG_START( md_bootleg, md_boot_state )
- MCFG_FRAGMENT_ADD( md_ntsc )
-
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_PROGRAM_MAP(md_bootleg_map)
-MACHINE_CONFIG_END
-
-
-
UINT32 md_base_state::screen_update_megadriv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
/* Copy our screen buffer here */