diff options
author | 2018-03-29 07:33:03 +0100 | |
---|---|---|
committer | 2018-03-29 08:33:03 +0200 | |
commit | 5cc972ca978ece4192a4d3c7f02a244cade210d0 (patch) | |
tree | 8a5927e56897a4ddd23d0a3f1ed6e7eb39543baf /src | |
parent | 216281cc41c609661d1bd292f07b69d1b51171ba (diff) |
use real C-chip ROM for MegaBlast [Team Caps0ff] (#3401)
(hook it up, for some definition of hook up, since it basically does nothing at all the game cares about)
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/taito_f2.cpp | 22 | ||||
-rw-r--r-- | src/mame/includes/taito_f2.h | 5 |
2 files changed, 24 insertions, 3 deletions
diff --git a/src/mame/drivers/taito_f2.cpp b/src/mame/drivers/taito_f2.cpp index 63daba7d922..9250cc9f0a2 100644 --- a/src/mame/drivers/taito_f2.cpp +++ b/src/mame/drivers/taito_f2.cpp @@ -551,6 +551,18 @@ INTERRUPT_GEN_MEMBER(taitof2_state::taitof2_interrupt) device.execute().set_input_line(5, HOLD_LINE); } +INTERRUPT_GEN_MEMBER(taitof2_state::megab_interrupt) +{ + taitof2_interrupt(device); + m_cchip->ext_interrupt(ASSERT_LINE); + m_cchip_irq_clear->adjust(attotime::zero); +} + +TIMER_DEVICE_CALLBACK_MEMBER(taitof2_state::cchip_irq_clear_cb) +{ + m_cchip->ext_interrupt(CLEAR_LINE); +} + /**************************************************************** SOUND @@ -2985,8 +2997,12 @@ MACHINE_CONFIG_START(taitof2_state::megab) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(megab_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", taitof2_state, megab_interrupt) MCFG_TAITO_CCHIP_ADD("cchip", XTAL(24'000'000)/2) /* 12MHz */ + // the ports don't appear to hook up to anything + + MCFG_TIMER_DRIVER_ADD("cchip_irq_clear", taitof2_state, cchip_irq_clear_cb) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab) @@ -4057,7 +4073,7 @@ ROM_START( megablst ) ROM_LOAD16_BYTE( "c11-11.38", 0x40001, 0x20000, CRC(263ecbf9) SHA1(b49c59058d6d11ea0d9f9b041789e381e5742905) ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) - ROM_LOAD( "cchip_c11", 0x0000, 0x2000, NO_DUMP ) + ROM_LOAD( "cchip_c11", 0x0000, 0x2000, CRC(af49ee7f) SHA1(824d7ed371c19f31768b20117027edba6ffc890e) ) ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ ROM_LOAD( "c11-05.58", 0x00000, 0x80000, CRC(733e6d8e) SHA1(47f3360f7c41b7e4a42e8198fc1bcce4e819181f) ) @@ -4093,7 +4109,7 @@ ROM_START( megablstu ) ROM_LOAD16_BYTE( "c11-10.38", 0x40001, 0x20000, CRC(bf379a43) SHA1(2a0294e55c2ce514caa2885b728e6387311ed482) ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) - ROM_LOAD( "cchip_c11", 0x0000, 0x2000, NO_DUMP ) + ROM_LOAD( "cchip_c11", 0x0000, 0x2000, CRC(af49ee7f) SHA1(824d7ed371c19f31768b20117027edba6ffc890e) ) ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ ROM_LOAD( "c11-05.58", 0x00000, 0x80000, CRC(733e6d8e) SHA1(47f3360f7c41b7e4a42e8198fc1bcce4e819181f) ) @@ -4121,7 +4137,7 @@ ROM_START( megablstj ) ROM_LOAD16_BYTE( "c11-09.38", 0x40001, 0x20000, CRC(c830aad5) SHA1(967ad3e052572300f5f49375e5f8348f2d595680) ) // c11-09.18 ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) - ROM_LOAD( "cchip_c11", 0x0000, 0x2000, NO_DUMP ) + ROM_LOAD( "cchip_c11", 0x0000, 0x2000, CRC(af49ee7f) SHA1(824d7ed371c19f31768b20117027edba6ffc890e) ) ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ ROM_LOAD( "c11-05.58", 0x00000, 0x80000, CRC(733e6d8e) SHA1(47f3360f7c41b7e4a42e8198fc1bcce4e819181f) ) diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h index 1a30481d3b4..09b68adac48 100644 --- a/src/mame/includes/taito_f2.h +++ b/src/mame/includes/taito_f2.h @@ -15,6 +15,7 @@ #include "video/tc0280grd.h" #include "video/tc0360pri.h" #include "video/tc0480scp.h" +#include "machine/timer.h" class taitof2_state : public driver_device @@ -41,6 +42,7 @@ public: m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_cchip(*this, "cchip"), + m_cchip_irq_clear(*this, "cchip_irq_clear"), m_oki(*this, "oki"), m_tc0100scn(*this, "tc0100scn"), m_tc0100scn_1(*this, "tc0100scn_1"), @@ -108,6 +110,7 @@ public: required_device<cpu_device> m_maincpu; required_device<cpu_device> m_audiocpu; optional_device<taito_cchip_device> m_cchip; + optional_device<timer_device> m_cchip_irq_clear; optional_device<okim6295_device> m_oki; optional_device<tc0100scn_device> m_tc0100scn; optional_device<tc0100scn_device> m_tc0100scn_1; @@ -181,6 +184,8 @@ public: DECLARE_WRITE_LINE_MEMBER(screen_vblank_full_buffer_delayed); DECLARE_WRITE_LINE_MEMBER(screen_vblank_partial_buffer_delayed_qzchikyu); INTERRUPT_GEN_MEMBER(taitof2_interrupt); + INTERRUPT_GEN_MEMBER(megab_interrupt); + TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb); void reset_driveout_sound_region(); void taitof2_core_vh_start (int sprite_type, int hide, int flip_hide ); void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int uses_tc360_mixer ); |