summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/quasar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/quasar.cpp')
-rw-r--r--src/mame/drivers/quasar.cpp63
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 )