diff options
author | David Haywood <mamehaze@users.noreply.github.com> | 2013-07-21 14:03:11 +0000 |
---|---|---|
committer | David Haywood <mamehaze@users.noreply.github.com> | 2013-07-21 14:03:11 +0000 |
commit | 2199cdb59ca17eafb2617ac55a8d21491eceb5c2 (patch) | |
tree | 8968ad2cde5e9b303cd3885514e3b6588375397c | |
parent | b782d13f206a2f6ae84d9d23c0c9065bef05eff2 (diff) |
misc deco (nw)
-rw-r--r-- | src/mame/drivers/boogwing.c | 34 | ||||
-rw-r--r-- | src/mame/drivers/deco32.c | 4 | ||||
-rw-r--r-- | src/mame/drivers/dreambal.c | 5 | ||||
-rw-r--r-- | src/mame/drivers/pktgaldx.c | 2 | ||||
-rw-r--r-- | src/mame/includes/boogwing.h | 5 | ||||
-rw-r--r-- | src/mame/includes/pktgaldx.h | 6 | ||||
-rw-r--r-- | src/mame/machine/deco104.c | 25 | ||||
-rw-r--r-- | src/mame/machine/deco104.h | 2 |
8 files changed, 50 insertions, 33 deletions
diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c index e23948121aa..35c28b864cd 100644 --- a/src/mame/drivers/boogwing.c +++ b/src/mame/drivers/boogwing.c @@ -86,6 +86,23 @@ #include "sound/2151intf.h" #include "sound/okim6295.h" +READ16_MEMBER( boogwing_state::boogwing_protection_region_0_104_r ) +{ + int real_address = 0 + (offset *2); + int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff; + UINT8 cs = 0; + UINT16 data = m_deco104->read_data( deco146_addr, mem_mask, cs ); + return data; +} + +WRITE16_MEMBER( boogwing_state::boogwing_protection_region_0_104_w ) +{ + int real_address = 0 + (offset *2); + int deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff; + UINT8 cs = 0; + m_deco104->write_data( space, deco146_addr, data, mem_mask, cs ); +} + static ADDRESS_MAP_START( boogwing_map, AS_PROGRAM, 16, boogwing_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM @@ -99,10 +116,11 @@ static ADDRESS_MAP_START( boogwing_map, AS_PROGRAM, 16, boogwing_state ) AM_RANGE(0x244000, 0x244001) AM_DEVWRITE("spriteram2", buffered_spriteram16_device, write) AM_RANGE(0x246000, 0x2467ff) AM_RAM AM_SHARE("spriteram2") - AM_RANGE(0x24e6c0, 0x24e6c1) AM_READ_PORT("DSW") - AM_RANGE(0x24e138, 0x24e139) AM_READ_PORT("SYSTEM") - AM_RANGE(0x24e344, 0x24e345) AM_READ_PORT("INPUTS") - /*READD AM_RANGE(0x24e000, 0x24e7ff) AM_WRITE_LEGACY(deco16_104_prot_w) AM_SHARE("prot16ram") */ +// AM_RANGE(0x24e6c0, 0x24e6c1) AM_READ_PORT("DSW") +// AM_RANGE(0x24e138, 0x24e139) AM_READ_PORT("SYSTEM") +// AM_RANGE(0x24e344, 0x24e345) AM_READ_PORT("INPUTS") +// /*READD AM_RANGE(0x24e000, 0x24e7ff) AM_WRITE_LEGACY(deco16_104_prot_w) AM_SHARE("prot16ram") */ + AM_RANGE(0x24e000, 0x24efff) AM_READWRITE(boogwing_protection_region_0_104_r,boogwing_protection_region_0_104_w) AM_SHARE("prot16ram") /* Protection device */ AM_RANGE(0x260000, 0x26000f) AM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w) AM_RANGE(0x264000, 0x265fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf1_data_r, pf1_data_w) @@ -141,7 +159,7 @@ ADDRESS_MAP_END /**********************************************************************************/ static INPUT_PORTS_START( boogwing ) - PORT_START("SYSTEM") + PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) @@ -195,7 +213,7 @@ static INPUT_PORTS_START( boogwing ) PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_START("INPUTS") + PORT_START("IN0") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) @@ -359,6 +377,10 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state ) MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 4); + MCFG_DECO104_ADD("ioprot104") + MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE + MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR + /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c index da94a35d40a..c2de00e1e42 100644 --- a/src/mame/drivers/deco32.c +++ b/src/mame/drivers/deco32.c @@ -2163,6 +2163,8 @@ static MACHINE_CONFIG_START( tattass, deco32_state ) MCFG_GFXDECODE(tattass) MCFG_PALETTE_LENGTH(2048) + MCFG_DECO104_ADD("ioprot104") + MCFG_VIDEO_START_OVERRIDE(deco32_state,nslasher) /* sound hardware */ @@ -2204,6 +2206,8 @@ static MACHINE_CONFIG_START( nslasher, deco32_state ) MCFG_VIDEO_START_OVERRIDE(deco32_state,nslasher) + MCFG_DECO104_ADD("ioprot104") + /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/dreambal.c b/src/mame/drivers/dreambal.c index 98f7b3a0dd2..db6c8fbf388 100644 --- a/src/mame/drivers/dreambal.c +++ b/src/mame/drivers/dreambal.c @@ -26,6 +26,7 @@ lamps? #include "video/deco16ic.h" #include "video/decospr.h" #include "machine/eeprom.h" +#include "machine/deco104.h" class dreambal_state : public driver_device { @@ -34,6 +35,7 @@ public: : driver_device(mconfig, type, tag), m_eeprom(*this, "eeprom"), m_maincpu(*this, "maincpu"), + m_deco104(*this, "ioprot104"), m_deco_tilegen1(*this, "tilegen1") { } @@ -41,6 +43,7 @@ public: /* devices */ required_device<cpu_device> m_maincpu; + optional_device<deco104_device> m_deco104; required_device<deco16ic_device> m_deco_tilegen1; DECLARE_DRIVER_INIT(dreambal); @@ -311,6 +314,8 @@ static MACHINE_CONFIG_START( dreambal, dreambal_state ) MCFG_EEPROM_93C46_ADD("eeprom") // 93lc46b + MCFG_DECO104_ADD("ioprot104") + MCFG_DECO16IC_ADD("tilegen1", dreambal_deco16ic_tilegen1_intf) /* sound hardware */ diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c index 5a6f5a208eb..7a8f138bbec 100644 --- a/src/mame/drivers/pktgaldx.c +++ b/src/mame/drivers/pktgaldx.c @@ -340,6 +340,8 @@ static MACHINE_CONFIG_START( pktgaldx, pktgaldx_state ) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); + MCFG_DECO104_ADD("ioprot104") + /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/includes/boogwing.h b/src/mame/includes/boogwing.h index fbf9ad03711..9f804621b89 100644 --- a/src/mame/includes/boogwing.h +++ b/src/mame/includes/boogwing.h @@ -19,6 +19,7 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), + m_deco104(*this, "ioprot104"), m_decocomn(*this, "deco_common"), m_deco_tilegen1(*this, "tilegen1"), m_deco_tilegen2(*this, "tilegen2"), @@ -37,6 +38,7 @@ public: /* devices */ required_device<cpu_device> m_maincpu; required_device<cpu_device> m_audiocpu; + optional_device<deco104_device> m_deco104; required_device<decocomn_device> m_decocomn; required_device<deco16ic_device> m_deco_tilegen1; required_device<deco16ic_device> m_deco_tilegen2; @@ -57,4 +59,7 @@ public: virtual void video_start(); UINT32 screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void mix_boogwing(bitmap_rgb32 &bitmap, const rectangle &cliprect); + DECLARE_READ16_MEMBER( boogwing_protection_region_0_104_r ); + DECLARE_WRITE16_MEMBER( boogwing_protection_region_0_104_w ); + }; diff --git a/src/mame/includes/pktgaldx.h b/src/mame/includes/pktgaldx.h index e9f8440b18d..183fefc6947 100644 --- a/src/mame/includes/pktgaldx.h +++ b/src/mame/includes/pktgaldx.h @@ -14,6 +14,7 @@ class pktgaldx_state : public driver_device public: pktgaldx_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), + m_deco104(*this, "ioprot104"), m_pf1_rowscroll(*this, "pf1_rowscroll"), m_pf2_rowscroll(*this, "pf2_rowscroll"), m_spriteram(*this, "spriteram"), @@ -25,6 +26,8 @@ public: m_deco_tilegen1(*this, "tilegen1"), m_decocomn(*this, "deco_common") { } + optional_device<deco104_device> m_deco104; + /* memory pointers */ optional_shared_ptr<UINT16> m_pf1_rowscroll; optional_shared_ptr<UINT16> m_pf2_rowscroll; @@ -47,4 +50,7 @@ public: virtual void machine_start(); UINT32 screen_update_pktgaldx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_pktgaldb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + READ16_MEMBER( pktgaldx_protection_region_0_104_r ); + WRITE16_MEMBER( pktgaldx_protection_region_0_104_w ); }; diff --git a/src/mame/machine/deco104.c b/src/mame/machine/deco104.c index 659b66f342b..4654b522828 100644 --- a/src/mame/machine/deco104.c +++ b/src/mame/machine/deco104.c @@ -532,31 +532,6 @@ UINT16 deco104_device::read_data_getloc(UINT16 offset, int& location) /**********************************************************************************/ -READ16_HANDLER( dietgo_104_prot_r ) -{ - switch (offset * 2) - { - case 0x298: return space.machine().root_device().ioport("IN0")->read(); - case 0x342: return space.machine().root_device().ioport("IN1")->read(); - case 0x506: return space.machine().root_device().ioport("DSW")->read(); - } - - logerror("Protection PC %06x: warning - read unmapped memory address %04x\n", space.device().safe_pc(), offset<<1); - - return 0; -} - -WRITE16_HANDLER( dietgo_104_prot_w ) -{ - driver_device *state = space.machine().driver_data<driver_device>(); - if (offset == (0x380 / 2)) - { - state->soundlatch_byte_w(space, 0, data & 0xff); - space.machine().device("audiocpu")->execute().set_input_line(0, HOLD_LINE); - return; - } - logerror("Protection PC %06x: warning - write unmapped memory address %04x %04x\n", space.device().safe_pc(), offset << 1, data); -} /**********************************************************************************/ diff --git a/src/mame/machine/deco104.h b/src/mame/machine/deco104.h index 9d090acf8cc..ca5efc053d1 100644 --- a/src/mame/machine/deco104.h +++ b/src/mame/machine/deco104.h @@ -80,8 +80,6 @@ extern const device_type DECO104PROT; DECLARE_READ16_HANDLER( deco16_104_pktgaldx_prot_r ); DECLARE_WRITE16_HANDLER( deco16_104_pktgaldx_prot_w ); -DECLARE_READ16_HANDLER( dietgo_104_prot_r ); -DECLARE_WRITE16_HANDLER( dietgo_104_prot_w ); #endif |