diff options
-rw-r--r-- | src/mame/drivers/hshavoc.cpp | 1 | ||||
-rw-r--r-- | src/mame/drivers/megadrvb.cpp | 30 | ||||
-rw-r--r-- | src/mame/drivers/puckpkmn.cpp | 2 | ||||
-rw-r--r-- | src/mame/includes/megadriv.h | 35 | ||||
-rw-r--r-- | src/mame/includes/megadrvb.h | 37 | ||||
-rw-r--r-- | src/mame/machine/megadriv.cpp | 32 |
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 */ |