diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2017-06-08 18:55:11 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2017-06-08 18:55:25 -0400 |
commit | 9b19c8f2cd01039bb360f4fb2e1c1630ffd89d65 (patch) | |
tree | d90414692972f5c54aa989e79b23daa4c0ac434e | |
parent | c614d5b64b455658c53a4b27c7dc0c1bd6f7d6b6 (diff) |
galastrm: Use TC0510NIO device for inputs
-rw-r--r-- | src/mame/drivers/galastrm.cpp | 127 | ||||
-rw-r--r-- | src/mame/drivers/undrfire.cpp | 1 | ||||
-rw-r--r-- | src/mame/includes/galastrm.h | 7 |
3 files changed, 43 insertions, 92 deletions
diff --git a/src/mame/drivers/galastrm.cpp b/src/mame/drivers/galastrm.cpp index a82dfadee9f..4309d745833 100644 --- a/src/mame/drivers/galastrm.cpp +++ b/src/mame/drivers/galastrm.cpp @@ -42,6 +42,7 @@ $305.b invincibility #include "emu.h" #include "cpu/m68000/m68000.h" #include "machine/eepromser.h" +#include "machine/taitoio.h" #include "sound/es5506.h" #include "audio/taito_en.h" #include "includes/galastrm.h" @@ -104,55 +105,12 @@ CUSTOM_INPUT_MEMBER(galastrm_state::frame_counter_r) return m_frame_counter; } -CUSTOM_INPUT_MEMBER(galastrm_state::coin_word_r) +WRITE8_MEMBER(galastrm_state::coin_word_w) { - return m_coin_word; -} - -WRITE32_MEMBER(galastrm_state::galastrm_input_w) -{ -#if 0 -{ -char t[64]; -COMBINE_DATA(&m_mem[offset]); - -sprintf(t,"%08x %08x",m_mem[0],m_mem[1]); -popmessage(t); -} -#endif - - switch (offset) - { - case 0x00: - { - if (ACCESSING_BITS_24_31) /* $400000 is watchdog */ - { - m_watchdog->watchdog_reset(); - } - - if (ACCESSING_BITS_0_7) - { - m_eeprom->clk_write((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - m_eeprom->di_write((data & 0x40) >> 6); - m_eeprom->cs_write((data & 0x10) ? ASSERT_LINE : CLEAR_LINE); - return; - } - return; - } - - case 0x01: - { - if (ACCESSING_BITS_24_31) - { - machine().bookkeeping().coin_lockout_w(0, ~data & 0x01000000); - machine().bookkeeping().coin_lockout_w(1, ~data & 0x02000000); - machine().bookkeeping().coin_counter_w(0, data & 0x04000000); - machine().bookkeeping().coin_counter_w(1, data & 0x04000000); - m_coin_word = (data >> 16) &0xffff; - } -//logerror("CPU #0 PC %06x: write input %06x\n",device->safe_pc(),offset); - } - } + machine().bookkeeping().coin_lockout_w(0, ~data & 0x01); + machine().bookkeeping().coin_lockout_w(1, ~data & 0x02); + machine().bookkeeping().coin_counter_w(0, data & 0x04); + machine().bookkeeping().coin_counter_w(1, data & 0x04); } READ32_MEMBER(galastrm_state::galastrm_adstick_ctrl_r) @@ -180,9 +138,7 @@ static ADDRESS_MAP_START( galastrm_map, AS_PROGRAM, 32, galastrm_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_SHARE("ram") /* main CPUA ram */ AM_RANGE(0x300000, 0x303fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x400000, 0x400003) AM_READ_PORT("IN0") - AM_RANGE(0x400004, 0x400007) AM_READ_PORT("IN1") - AM_RANGE(0x400000, 0x400007) AM_WRITE(galastrm_input_w) /* eerom etc. */ + AM_RANGE(0x400000, 0x400007) AM_DEVREADWRITE8("tc0510nio", tc0510nio_device, read, write, 0xffffffff) AM_RANGE(0x40fff0, 0x40fff3) AM_WRITENOP AM_RANGE(0x500000, 0x500007) AM_READWRITE(galastrm_adstick_ctrl_r, galastrm_adstick_ctrl_w) AM_RANGE(0x600000, 0x6007ff) AM_RAM AM_SHARE("snd_shared") /* Sound shared ram */ @@ -201,42 +157,34 @@ ADDRESS_MAP_END static INPUT_PORTS_START( galastrm ) PORT_START("IN0") -// PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) /* Freeze input */ - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) - PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galastrm_state,frame_counter_r, nullptr) - PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galastrm_state,frame_counter_r, nullptr) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") - PORT_SERVICE_NO_TOGGLE( 0x00000001, IP_ACTIVE_LOW ) - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galastrm_state,coin_word_r, nullptr) +// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) /* Freeze input */ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START("IN2") + PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_START("STICKX") PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_PLAYER(1) @@ -293,7 +241,14 @@ static MACHINE_CONFIG_START( galastrm ) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") - MCFG_WATCHDOG_ADD("watchdog") + MCFG_DEVICE_ADD("tc0510nio", TC0510NIO, 0) + MCFG_TC0510NIO_READ_2_CB(IOPORT("IN0")) + MCFG_TC0510NIO_READ_3_CB(IOPORT("IN1")) + MCFG_TC0510NIO_WRITE_3_CB(DEVWRITELINE("eeprom", eeprom_serial_93cxx_device, clk_write)) MCFG_DEVCB_BIT(5) + MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("eeprom", eeprom_serial_93cxx_device, di_write)) MCFG_DEVCB_BIT(6) + MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("eeprom", eeprom_serial_93cxx_device, cs_write)) MCFG_DEVCB_BIT(4) + MCFG_TC0510NIO_WRITE_4_CB(WRITE8(galastrm_state, coin_word_w)) + MCFG_TC0510NIO_READ_7_CB(IOPORT("IN2")) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/undrfire.cpp b/src/mame/drivers/undrfire.cpp index fa109834b19..51bf097d5d7 100644 --- a/src/mame/drivers/undrfire.cpp +++ b/src/mame/drivers/undrfire.cpp @@ -194,6 +194,7 @@ Board contains only 29 ROMs and not much else. #include "cpu/m68000/m68000.h" #include "machine/eepromser.h" +#include "machine/taitoio.h" #include "machine/watchdog.h" #include "sound/es5506.h" #include "screen.h" diff --git a/src/mame/includes/galastrm.h b/src/mame/includes/galastrm.h index ac1044ab734..d0320986d64 100644 --- a/src/mame/includes/galastrm.h +++ b/src/mame/includes/galastrm.h @@ -1,7 +1,6 @@ // license:BSD-3-Clause // copyright-holders:Hau #include "machine/eepromser.h" -#include "machine/watchdog.h" #include "video/poly.h" #include "video/tc0100scn.h" @@ -57,7 +56,6 @@ public: m_spriteram(*this,"spriteram") , m_maincpu(*this, "maincpu"), m_eeprom(*this, "eeprom"), - m_watchdog(*this, "watchdog"), m_tc0100scn(*this, "tc0100scn"), m_tc0480scp(*this, "tc0480scp"), m_gfxdecode(*this, "gfxdecode"), @@ -69,14 +67,12 @@ public: required_device<cpu_device> m_maincpu; required_device<eeprom_serial_93cxx_device> m_eeprom; - required_device<watchdog_timer_device> m_watchdog; required_device<tc0100scn_device> m_tc0100scn; required_device<tc0480scp_device> m_tc0480scp; required_device<gfxdecode_device> m_gfxdecode; required_device<screen_device> m_screen; required_device<palette_device> m_palette; - uint16_t m_coin_word; uint16_t m_frame_counter; int m_tc0110pcr_addr; int m_tc0610_0_addr; @@ -97,11 +93,10 @@ public: DECLARE_WRITE32_MEMBER(galastrm_palette_w); DECLARE_WRITE32_MEMBER(galastrm_tc0610_0_w); DECLARE_WRITE32_MEMBER(galastrm_tc0610_1_w); - DECLARE_WRITE32_MEMBER(galastrm_input_w); DECLARE_READ32_MEMBER(galastrm_adstick_ctrl_r); DECLARE_WRITE32_MEMBER(galastrm_adstick_ctrl_w); DECLARE_CUSTOM_INPUT_MEMBER(frame_counter_r); - DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r); + DECLARE_WRITE8_MEMBER(coin_word_w); virtual void machine_start() override; virtual void video_start() override; uint32_t screen_update_galastrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |