diff options
Diffstat (limited to 'src/mame/drivers/retofinv.cpp')
-rw-r--r-- | src/mame/drivers/retofinv.cpp | 79 |
1 files changed, 39 insertions, 40 deletions
diff --git a/src/mame/drivers/retofinv.cpp b/src/mame/drivers/retofinv.cpp index 1a7f11b9174..bb0be85c97b 100644 --- a/src/mame/drivers/retofinv.cpp +++ b/src/mame/drivers/retofinv.cpp @@ -220,8 +220,8 @@ void retofinv_state::sound_map(address_map &map) map(0x2000, 0x27ff).ram(); /* 6116 sram at IC28 */ map(0x4000, 0x4000).r(m_soundlatch, FUNC(generic_latch_8_device::read)); map(0x6000, 0x6000).w(FUNC(retofinv_state::cpu2_m6000_w)); - map(0x8000, 0x8000).w("sn1", FUNC(sn76489a_device::command_w)); - map(0xa000, 0xa000).w("sn2", FUNC(sn76489a_device::command_w)); + map(0x8000, 0x8000).w("sn1", FUNC(sn76489a_device::write)); + map(0xa000, 0xa000).w("sn2", FUNC(sn76489a_device::write)); map(0xe000, 0xffff).rom(); /* space for diagnostic ROM */ } @@ -412,24 +412,24 @@ INTERRUPT_GEN_MEMBER(retofinv_state::sub_vblank_irq) } -MACHINE_CONFIG_START(retofinv_state::retofinv) - +void retofinv_state::retofinv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, main_vblank_irq) + Z80(config, m_maincpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(retofinv_state::main_vblank_irq)); - MCFG_DEVICE_ADD("sub", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, sub_vblank_irq) + Z80(config, m_subcpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &retofinv_state::sub_map); + m_subcpu->set_vblank_int("screen", FUNC(retofinv_state::sub_vblank_irq)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(retofinv_state, nmi_line_pulse, 2*60) // wrong, should be ~128-132 per frame, not 120. + Z80(config, m_audiocpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &retofinv_state::sound_map); + m_audiocpu->set_periodic_int(FUNC(retofinv_state::nmi_line_pulse), attotime::from_hz(2*60)); // wrong, should be ~128-132 per frame, not 120. - MCFG_DEVICE_ADD("68705", TAITO68705_MCU, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ + TAITO68705_MCU(config, m_68705, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - enough for the sound CPU to read all commands */ + config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - enough for the sound CPU to read all commands */ LS259(config, m_mainlatch); // IC72 - probably shared between CPUs m_mainlatch->q_out_cb<0>().set(FUNC(retofinv_state::irq0_ack_w)); @@ -442,13 +442,13 @@ MACHINE_CONFIG_START(retofinv_state::retofinv) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60.58) // vsync measured at 60.58hz - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // not accurate - MCFG_SCREEN_SIZE(36*8, 28*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60.58); // vsync measured at 60.58hz + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); // not accurate + screen.set_size(36*8, 28*8); + screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(retofinv_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_retofinv); PALETTE(config, m_palette, FUNC(retofinv_state::retofinv_palette), 256*2 + 64*16 + 64*16, 256); @@ -458,42 +458,41 @@ MACHINE_CONFIG_START(retofinv_state::retofinv) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(18'432'000)/6) /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489A(config, "sn1", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */ - MCFG_DEVICE_ADD("sn2", SN76489A, XTAL(18'432'000)/6) /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + SN76489A(config, "sn2", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */ +} /* bootleg which has different palette clut */ -MACHINE_CONFIG_START(retofinv_state::retofinvb1) +void retofinv_state::retofinvb1(machine_config &config) +{ retofinv(config); m_palette->set_init(FUNC(retofinv_state::retofinv_bl_palette)); -MACHINE_CONFIG_END +} /* bootleg which has no mcu */ -MACHINE_CONFIG_START(retofinv_state::retofinvb_nomcu) +void retofinv_state::retofinvb_nomcu(machine_config &config) +{ retofinv(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bootleg_map) + m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map); m_mainlatch->q_out_cb<3>().set_nop(); - MCFG_DEVICE_REMOVE("68705") -MACHINE_CONFIG_END + config.device_remove("68705"); +} -/* bootleg which has different pallete clut and also has no mcu */ -MACHINE_CONFIG_START(retofinv_state::retofinvb1_nomcu) +/* bootleg which has different palette clut and also has no mcu */ +void retofinv_state::retofinvb1_nomcu(machine_config &config) +{ retofinvb1(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bootleg_map) + m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map); m_mainlatch->q_out_cb<3>().set_nop(); - MCFG_DEVICE_REMOVE("68705") -MACHINE_CONFIG_END + config.device_remove("68705"); +} /*************************************************************************** |