diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2017-08-14 23:39:59 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2017-08-14 23:39:59 -0400 |
commit | 5a225225f351a6312fd02387fd4181450c07ee59 (patch) | |
tree | 069d8f1d4d14bf00351b863f29a95efc0eeed668 /src/mame/drivers/kingobox.cpp | |
parent | 98c6e4c253c9f74c9ccbc966d1285e29311ab1d1 (diff) |
kingofb, ringking: NMI modernization (nw)
Diffstat (limited to 'src/mame/drivers/kingobox.cpp')
-rw-r--r-- | src/mame/drivers/kingobox.cpp | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/src/mame/drivers/kingobox.cpp b/src/mame/drivers/kingobox.cpp index fbd8ac33a2e..d9e64990d0a 100644 --- a/src/mame/drivers/kingobox.cpp +++ b/src/mame/drivers/kingobox.cpp @@ -21,6 +21,7 @@ Main CPU: #include "includes/kingobox.h" #include "cpu/z80/z80.h" +#include "machine/clock.h" #include "sound/ay8910.h" #include "sound/dac.h" #include "sound/volt_reg.h" @@ -442,22 +443,14 @@ static GFXDECODE_START( rk ) GFXDECODE_ENTRY( "gfx4", 0x00000, rk_bglayout, 0, 32 ) /* bg tiles */ GFXDECODE_END -INTERRUPT_GEN_MEMBER(kingofb_state::kingofb_interrupt) -{ - if (m_nmi_enable) - device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); -} - void kingofb_state::machine_start() { - save_item(NAME(m_nmi_enable)); save_item(NAME(m_palette_bank)); } void kingofb_state::machine_reset() { - m_nmi_enable = 0; - m_palette_bank = 0; + kingofb_f800_w(machine().dummy_space(), 0, 0); // LS174 reset } static MACHINE_CONFIG_START( kingofb ) @@ -465,20 +458,24 @@ static MACHINE_CONFIG_START( kingofb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4.0 MHz */ MCFG_CPU_PROGRAM_MAP(kingobox_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", kingofb_state, kingofb_interrupt) MCFG_CPU_ADD("video", Z80, 4000000) /* 4.0 MHz */ MCFG_CPU_PROGRAM_MAP(kingobox_video_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", kingofb_state, kingofb_interrupt) MCFG_CPU_ADD("sprite", Z80, 4000000) /* 4.0 MHz */ MCFG_CPU_PROGRAM_MAP(kingobox_sprite_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", kingofb_state, kingofb_interrupt) + + MCFG_INPUT_MERGER_ALL_HIGH("nmigate") + MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", INPUT_LINE_NMI)) + MCFG_DEVCB_CHAIN_OUTPUT(INPUTLINE("video", INPUT_LINE_NMI)) + MCFG_DEVCB_CHAIN_OUTPUT(INPUTLINE("sprite", INPUT_LINE_NMI)) MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4.0 MHz */ MCFG_CPU_PROGRAM_MAP(kingobox_sound_map) MCFG_CPU_IO_MAP(kingobox_sound_io_map) - MCFG_CPU_PERIODIC_INT_DRIVER(kingofb_state, nmi_line_pulse, 6000) /* Hz */ + + MCFG_DEVICE_ADD("soundnmi", CLOCK, 6000) /* Hz */ + MCFG_CLOCK_SIGNAL_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI)) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* We really need heavy synching among the processors */ @@ -491,6 +488,7 @@ static MACHINE_CONFIG_START( kingofb ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_kingofb) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(DEVWRITELINE("nmigate", input_merger_device, in_w<0>)) MCFG_GFXDECODE_ADD("gfxdecode", "palette", kingobox) MCFG_PALETTE_ADD("palette", 256+8*2) @@ -519,20 +517,24 @@ static MACHINE_CONFIG_START( ringking ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4.0 MHz */ MCFG_CPU_PROGRAM_MAP(ringking_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", kingofb_state, kingofb_interrupt) MCFG_CPU_ADD("video", Z80, 4000000) /* 4.0 MHz */ MCFG_CPU_PROGRAM_MAP(ringking_video_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", kingofb_state, kingofb_interrupt) MCFG_CPU_ADD("sprite", Z80, 4000000) /* 4.0 MHz */ MCFG_CPU_PROGRAM_MAP(ringking_sprite_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", kingofb_state, kingofb_interrupt) + + MCFG_INPUT_MERGER_ANY_HIGH("nmigate") + MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", INPUT_LINE_NMI)) + MCFG_DEVCB_CHAIN_OUTPUT(INPUTLINE("video", INPUT_LINE_NMI)) + MCFG_DEVCB_CHAIN_OUTPUT(INPUTLINE("sprite", INPUT_LINE_NMI)) MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4.0 MHz */ MCFG_CPU_PROGRAM_MAP(kingobox_sound_map) MCFG_CPU_IO_MAP(ringking_sound_io_map) - MCFG_CPU_PERIODIC_INT_DRIVER(kingofb_state, nmi_line_pulse, 6000) /* Hz */ + + MCFG_DEVICE_ADD("soundnmi", CLOCK, 6000) /* Hz */ + MCFG_CLOCK_SIGNAL_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI)) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* We really need heavy synching among the processors */ @@ -545,6 +547,7 @@ static MACHINE_CONFIG_START( ringking ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_ringking) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(DEVWRITELINE("nmigate", input_merger_device, in_w<0>)) MCFG_GFXDECODE_ADD("gfxdecode", "palette", rk) MCFG_PALETTE_ADD("palette", 256+8*2) |