diff options
Diffstat (limited to 'src/mame/drivers/shangkid.cpp')
-rw-r--r-- | src/mame/drivers/shangkid.cpp | 61 |
1 files changed, 29 insertions, 32 deletions
diff --git a/src/mame/drivers/shangkid.cpp b/src/mame/drivers/shangkid.cpp index a29db7ce2ba..c771985ddcb 100644 --- a/src/mame/drivers/shangkid.cpp +++ b/src/mame/drivers/shangkid.cpp @@ -378,40 +378,40 @@ void shangkid_state::sound_portmap(address_map &map) MACHINE_CONFIG_START(shangkid_state::chinhero) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) /* verified on pcb */ + MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(18'432'000)/6) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(chinhero_main_map) - MCFG_DEVICE_ADD("bbx", Z80, XTAL(18'432'000)/6) /* verified on pcb */ + MCFG_DEVICE_ADD(m_bbx, Z80, XTAL(18'432'000)/6) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(chinhero_bbx_map) MCFG_DEVICE_IO_MAP(chinhero_bbx_portmap) - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(18'432'000)/6) /* verified on pcb */ + MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(18'432'000)/6) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(chinhero_sound_map) MCFG_DEVICE_IO_MAP(sound_portmap) - MCFG_DEVICE_ADD("mainlatch", LS259, 0) - MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(INPUTLINE("bbx", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT // RESET2 - MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(INPUTLINE("audiocpu", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT // RESET3 - MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(*this, shangkid_state, sound_enable_w)) - MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, shangkid_state, int_enable_1_w)) // INTE1 - MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(*this, shangkid_state, int_enable_2_w)) // INTE2 - MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(*this, shangkid_state, nmi_enable_1_w)) // NMIE1 - MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(*this, shangkid_state, nmi_enable_2_w)) // NMIE2 - MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(*this, shangkid_state, coin_counter_1_w)) - MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(*this, shangkid_state, coin_counter_2_w)) + ls259_device &mainlatch(LS259(config, "mainlatch")); + mainlatch.q_out_cb<0>().set_inputline(m_bbx, INPUT_LINE_RESET).invert(); // RESET2 + mainlatch.q_out_cb<1>().set_inputline(m_audiocpu, INPUT_LINE_RESET).invert(); // RESET3 + mainlatch.q_out_cb<1>().append(FUNC(shangkid_state::sound_enable_w)); + mainlatch.q_out_cb<2>().set(FUNC(shangkid_state::int_enable_1_w)); // INTE1 + mainlatch.q_out_cb<3>().set(FUNC(shangkid_state::int_enable_2_w)); // INTE2 + mainlatch.q_out_cb<4>().set(FUNC(shangkid_state::nmi_enable_1_w)); // NMIE1 + mainlatch.q_out_cb<5>().set(FUNC(shangkid_state::nmi_enable_2_w)); // NMIE2 + mainlatch.q_out_cb<6>().set(FUNC(shangkid_state::coin_counter_1_w)); + mainlatch.q_out_cb<7>().set(FUNC(shangkid_state::coin_counter_2_w)); MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(40*8, 28*8) - MCFG_SCREEN_VISIBLE_AREA(16, 319-16, 0, 223) - MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_shangkid) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, shangkid_state, irq_1_w)) - MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(*this, shangkid_state, irq_2_w)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(40*8, 28*8); + screen.set_visarea(16, 319-16, 0, 223); + screen.set_screen_update(FUNC(shangkid_state::screen_update_shangkid)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(shangkid_state::irq_1_w)); + screen.screen_vblank().append(FUNC(shangkid_state::irq_2_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_chinhero) MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", "proms", 256) @@ -435,20 +435,17 @@ MACHINE_CONFIG_START(shangkid_state::shangkid) chinhero(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(shangkid_main_map) + m_maincpu->set_addrmap(AS_PROGRAM, &shangkid_state::shangkid_main_map); - MCFG_DEVICE_MODIFY("bbx") - MCFG_DEVICE_PROGRAM_MAP(shangkid_bbx_map) - MCFG_DEVICE_IO_MAP(shangkid_bbx_portmap) + m_bbx->set_addrmap(AS_PROGRAM, &shangkid_state::shangkid_bbx_map); + m_bbx->set_addrmap(AS_IO, &shangkid_state::shangkid_bbx_portmap); - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_PROGRAM_MAP(shangkid_sound_map) + m_audiocpu->set_addrmap(AS_PROGRAM, &shangkid_state::shangkid_sound_map); - MCFG_DEVICE_MODIFY("mainlatch") + ls259_device &mainlatch(*subdevice<ls259_device>("mainlatch")); // Q1 should *not* reset the AY-3-8910 here, or else banking writes will be lost! - MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(INPUTLINE("audiocpu", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT - MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(MEMBANK("bank1")) + mainlatch.q_out_cb<1>().set_inputline(m_audiocpu, INPUT_LINE_RESET).invert(); + mainlatch.q_out_cb<7>().set_membank("bank1"); MCFG_MACHINE_RESET_OVERRIDE(shangkid_state,shangkid) |