diff options
Diffstat (limited to 'src/mame/drivers/bking.cpp')
-rw-r--r-- | src/mame/drivers/bking.cpp | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/src/mame/drivers/bking.cpp b/src/mame/drivers/bking.cpp index d9344ee4259..930b4417530 100644 --- a/src/mame/drivers/bking.cpp +++ b/src/mame/drivers/bking.cpp @@ -389,33 +389,33 @@ MACHINE_RESET_MEMBER(bking_state,bking3) m_addr_l = 0; } -MACHINE_CONFIG_START(bking_state::bking) - +void bking_state::bking(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("main_cpu", Z80, XTAL(12'000'000)/4) /* 3 MHz */ - MCFG_DEVICE_PROGRAM_MAP(bking_map) - MCFG_DEVICE_IO_MAP(bking_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", bking_state, irq0_line_hold) + z80_device &maincpu(Z80(config, "main_cpu", XTAL(12'000'000)/4)); /* 3 MHz */ + maincpu.set_addrmap(AS_PROGRAM, &bking_state::bking_map); + maincpu.set_addrmap(AS_IO, &bking_state::bking_io_map); + maincpu.set_vblank_int("screen", FUNC(bking_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(6'000'000)/2) /* 3 MHz */ - MCFG_DEVICE_PROGRAM_MAP(bking_audio_map) + Z80(config, m_audiocpu, XTAL(6'000'000)/2); /* 3 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &bking_state::bking_audio_map); /* interrupts (from Jungle King hardware, might be wrong): */ /* - no interrupts synced with vblank */ /* - NMI triggered by the main CPU */ /* - periodic IRQ, with frequency 6000000/(4*16*16*10*16) = 36.621 Hz, */ - MCFG_DEVICE_PERIODIC_INT_DRIVER(bking_state, irq0_line_hold, (double)6000000/(4*16*16*10*16)) + m_audiocpu->set_periodic_int(FUNC(bking_state::irq0_line_hold), attotime::from_hz((double)6000000/(4*16*16*10*16))); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(bking_state, screen_update_bking) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, bking_state, screen_vblank_bking)) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(bking_state::screen_update_bking)); + m_screen->screen_vblank().set(FUNC(bking_state::screen_vblank_bking)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bking); PALETTE(config, m_palette, FUNC(bking_state::bking_palette), 4*8 + 4*4 + 4*2 + 4*2); @@ -434,25 +434,26 @@ MACHINE_CONFIG_START(bking_state::bking) ay2.port_b_write_callback().set(FUNC(bking_state::port_b_w)); ay2.add_route(ALL_OUTPUTS, "speaker", 0.25); - MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) -MACHINE_CONFIG_END + DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); +} -MACHINE_CONFIG_START(bking_state::bking3) +void bking_state::bking3(machine_config &config) +{ bking(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("main_cpu") - MCFG_DEVICE_IO_MAP(bking3_io_map) + subdevice<z80_device>("main_cpu")->set_addrmap(AS_IO, &bking_state::bking3_io_map); - MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU, XTAL(3'000'000)) /* xtal is 3MHz, divided by 4 internally */ + TAITO68705_MCU(config, m_bmcu, XTAL(3'000'000)); /* xtal is 3MHz, divided by 4 internally */ MCFG_MACHINE_START_OVERRIDE(bking_state,bking3) MCFG_MACHINE_RESET_OVERRIDE(bking_state,bking3) - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) -MACHINE_CONFIG_END + config.m_minimum_quantum = attotime::from_hz(6000); +} /*************************************************************************** |