diff options
Diffstat (limited to 'src/mame/drivers/quasar.cpp')
-rw-r--r-- | src/mame/drivers/quasar.cpp | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/src/mame/drivers/quasar.cpp b/src/mame/drivers/quasar.cpp index 302c2805944..dd5ae4a64dc 100644 --- a/src/mame/drivers/quasar.cpp +++ b/src/mame/drivers/quasar.cpp @@ -110,7 +110,7 @@ READ_LINE_MEMBER(quasar_state::audio_t1_r) // memory map taken from the manual -void quasar_state::quasar(address_map &map) +void quasar_state::quasar_program(address_map &map) { map(0x0000, 0x13ff).rom(); map(0x1400, 0x14ff).mirror(0x6000).r(FUNC(quasar_state::cvs_bullet_ram_or_palette_r)).w(FUNC(quasar_state::quasar_bullet_w)).share("bullet_ram"); @@ -279,7 +279,7 @@ INTERRUPT_GEN_MEMBER(quasar_state::quasar_interrupt) // Quasar S2650 Main CPU, I8035 sound board // **************************************** -MACHINE_START_MEMBER(quasar_state,quasar) +void quasar_state::machine_start() { cvs_state::machine_start(); @@ -289,7 +289,7 @@ MACHINE_START_MEMBER(quasar_state,quasar) save_item(NAME(m_io_page)); } -MACHINE_RESET_MEMBER(quasar_state,quasar) +void quasar_state::machine_reset() { cvs_state::machine_reset(); @@ -298,15 +298,15 @@ MACHINE_RESET_MEMBER(quasar_state,quasar) m_io_page = 8; } -MACHINE_CONFIG_START(quasar_state::quasar) - +void quasar_state::quasar(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", S2650, 14318000/4) /* 14 mhz crystal divide by 4 on board */ - MCFG_DEVICE_PROGRAM_MAP(quasar) - MCFG_DEVICE_IO_MAP(quasar_io) - MCFG_DEVICE_DATA_MAP(quasar_data) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quasar_state, quasar_interrupt) - MCFG_S2650_SENSE_INPUT(READLINE("screen", screen_device, vblank)) + S2650(config, m_maincpu, 14318000/4); /* 14 mhz crystal divide by 4 on board */ + m_maincpu->set_addrmap(AS_PROGRAM, &quasar_state::quasar_program); + m_maincpu->set_addrmap(AS_IO, &quasar_state::quasar_io); + m_maincpu->set_addrmap(AS_DATA, &quasar_state::quasar_data); + m_maincpu->set_vblank_int("screen", FUNC(quasar_state::quasar_interrupt)); + m_maincpu->sense_handler().set("screen", FUNC(screen_device::vblank)); i8035_device &soundcpu(I8035(config, "soundcpu", 6000000)); /* 6MHz crystal divide by 15 in CPU */ soundcpu.set_addrmap(AS_PROGRAM, &quasar_state::sound_map); @@ -314,24 +314,21 @@ MACHINE_CONFIG_START(quasar_state::quasar) soundcpu.t1_in_cb().set(FUNC(quasar_state::audio_t1_r)); soundcpu.p1_out_cb().set("dac", FUNC(dac_byte_interface::data_w)); - MCFG_MACHINE_START_OVERRIDE(quasar_state,quasar) - MCFG_MACHINE_RESET_OVERRIDE(quasar_state,quasar) - - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) + config.m_minimum_quantum = attotime::from_hz(6000); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) /* From dot clock */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(1*8+1, 29*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(quasar_state, screen_update_quasar) - MCFG_SCREEN_PALETTE("palette") - - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_quasar) - MCFG_PALETTE_ADD("palette", (64+1)*8+(4*256)) - MCFG_PALETTE_INDIRECT_ENTRIES(0x500) - MCFG_PALETTE_INIT_OWNER(quasar_state,quasar) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(50); /* From dot clock */ + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(256, 256); + m_screen->set_visarea(1*8+1, 29*8-1, 2*8, 32*8-1); + m_screen->set_screen_update(FUNC(quasar_state::screen_update_quasar)); + m_screen->set_palette(m_palette); + + GFXDECODE(config, m_gfxdecode, m_palette, gfx_quasar); + PALETTE(config, m_palette, (64+1)*8+(4*256)); + m_palette->set_indirect_entries(0x500); + m_palette->set_init(FUNC(quasar_state::palette_init_quasar)); S2636(config, m_s2636[0], 0); m_s2636[0]->set_offsets(CVS_S2636_Y_OFFSET - 8, CVS_S2636_X_OFFSET - 9); @@ -342,16 +339,16 @@ MACHINE_CONFIG_START(quasar_state::quasar) S2636(config, m_s2636[2], 0); m_s2636[2]->set_offsets(CVS_S2636_Y_OFFSET - 8, CVS_S2636_X_OFFSET - 9); - MCFG_VIDEO_START_OVERRIDE(quasar_state,quasar) - /* sound hardware */ GENERIC_LATCH_8(config, m_soundlatch); SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_8BIT_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_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); + vref.set_output(5.0); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); +} ROM_START( quasar ) ROM_REGION( 0x8000, "maincpu", 0 ) |