diff options
Diffstat (limited to 'src/mame/drivers/vcombat.cpp')
-rw-r--r-- | src/mame/drivers/vcombat.cpp | 88 |
1 files changed, 46 insertions, 42 deletions
diff --git a/src/mame/drivers/vcombat.cpp b/src/mame/drivers/vcombat.cpp index 8bea4d4a40e..a647059e88e 100644 --- a/src/mame/drivers/vcombat.cpp +++ b/src/mame/drivers/vcombat.cpp @@ -348,9 +348,9 @@ WRITE16_MEMBER(vcombat_state::crtc_w) return; if (m_crtc_select == 0) - m_crtc->address_w(space, 0, data >> 8); + m_crtc->address_w(data >> 8); else - m_crtc->register_w(space, 0, data >> 8); + m_crtc->register_w(data >> 8); m_crtc_select ^= 1; } @@ -560,72 +560,75 @@ WRITE_LINE_MEMBER(vcombat_state::sound_update) m_soundcpu->set_input_line(M68K_IRQ_1, state ? ASSERT_LINE : CLEAR_LINE); } -MACHINE_CONFIG_START(vcombat_state::vcombat) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vcombat_state, irq1_line_assert) +void vcombat_state::vcombat(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &vcombat_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(vcombat_state::irq1_line_assert)); /* The middle board i860 */ - MCFG_DEVICE_ADD("vid_0", I860, XTAL(20'000'000)) - MCFG_DEVICE_PROGRAM_MAP(vid_0_map) + I860(config, m_vid_0, XTAL(20'000'000)); + m_vid_0->set_addrmap(AS_PROGRAM, &vcombat_state::vid_0_map); /* The top board i860 */ - MCFG_DEVICE_ADD("vid_1", I860, XTAL(20'000'000)) - MCFG_DEVICE_PROGRAM_MAP(vid_1_map) + I860(config, m_vid_1, XTAL(20'000'000)); + m_vid_1->set_addrmap(AS_PROGRAM, &vcombat_state::vid_1_map); /* Sound CPU */ - MCFG_DEVICE_ADD("soundcpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(vcombat_state, irq1_line_hold, 15000) /* Remove this if MC6845 is enabled */ + M68000(config, m_soundcpu, XTAL(12'000'000)); + m_soundcpu->set_addrmap(AS_PROGRAM, &vcombat_state::sound_map); + m_soundcpu->set_periodic_int(FUNC(vcombat_state::irq1_line_hold), attotime::from_hz(15000)); /* Remove this if MC6845 is enabled */ NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MCFG_MACHINE_RESET_OVERRIDE(vcombat_state,vcombat) /* Temporary hack for experimenting with timing. */ #if 0 - //MCFG_QUANTUM_TIME(attotime::from_hz(1200)) - MCFG_QUANTUM_PERFECT_CPU("maincpu") + //config.m_minimum_quantum = attotime::from_hz(1200); + config.m_perfect_cpu_quantum = subtag("maincpu"); #endif - MCFG_TLC34076_ADD("tlc34076", TLC34076_6_BIT) + TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT); /* Disabled for now as it can't handle multiple screens */ // MC6845(config, m_crtc, 6000000 / 16); // m_crtc->set_screen("screen"); config.set_default_layout(layout_dualhsxs); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(12'000'000) / 2, 400, 0, 256, 291, 0, 208) - MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_main) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(12'000'000) / 2, 400, 0, 256, 291, 0, 208); + screen.set_screen_update(FUNC(vcombat_state::screen_update_vcombat_main)); - MCFG_SCREEN_ADD("aux", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(12'000'000) / 2, 400, 0, 256, 291, 0, 208) - MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_aux) + screen_device &aux(SCREEN(config, "aux", SCREEN_TYPE_RASTER)); + aux.set_raw(XTAL(12'000'000) / 2, 400, 0, 256, 291, 0, 208); + aux.set_screen_update(FUNC(vcombat_state::screen_update_vcombat_aux)); SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // 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_10BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // 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(vcombat_state::shadfgtr) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vcombat_state, irq1_line_assert) +void vcombat_state::shadfgtr(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &vcombat_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(vcombat_state::irq1_line_assert)); /* The middle board i860 */ - MCFG_DEVICE_ADD("vid_0", I860, XTAL(20'000'000)) - MCFG_DEVICE_PROGRAM_MAP(vid_0_map) + I860(config, m_vid_0, XTAL(20'000'000)); + m_vid_0->set_addrmap(AS_PROGRAM, &vcombat_state::vid_0_map); /* Sound CPU */ - MCFG_DEVICE_ADD("soundcpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + M68000(config, m_soundcpu, XTAL(12'000'000)); + m_soundcpu->set_addrmap(AS_PROGRAM, &vcombat_state::sound_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MCFG_MACHINE_RESET_OVERRIDE(vcombat_state,shadfgtr) - MCFG_TLC34076_ADD("tlc34076", TLC34076_6_BIT) + TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT); MC6845(config, m_crtc, XTAL(20'000'000) / 4 / 16); m_crtc->set_screen("screen"); @@ -633,15 +636,16 @@ MACHINE_CONFIG_START(vcombat_state::shadfgtr) m_crtc->set_char_width(16); m_crtc->out_hsync_callback().set(FUNC(vcombat_state::sound_update)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(20'000'000) / 4, 320, 0, 256, 277, 0, 224) - MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_main) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(20'000'000) / 4, 320, 0, 256, 277, 0, 224); + screen.set_screen_update(FUNC(vcombat_state::screen_update_vcombat_main)); SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // 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_10BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // 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); +} ROM_START( vcombat ) |