summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/shangkid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/shangkid.cpp')
-rw-r--r--src/mame/drivers/shangkid.cpp61
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)