diff options
Diffstat (limited to 'src/mame/drivers/sf.cpp')
-rw-r--r-- | src/mame/drivers/sf.cpp | 92 |
1 files changed, 51 insertions, 41 deletions
diff --git a/src/mame/drivers/sf.cpp b/src/mame/drivers/sf.cpp index 4fd07309f70..bd8e1ffd660 100644 --- a/src/mame/drivers/sf.cpp +++ b/src/mame/drivers/sf.cpp @@ -530,31 +530,32 @@ void sf_state::machine_reset() m_fgscroll = 0; } -void sf_state::sfan(machine_config &config) -{ +MACHINE_CONFIG_START(sf_state::sfan) + /* basic machine hardware */ - M68000(config, m_maincpu, XTAL(8'000'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &sf_state::sfan_map); - m_maincpu->set_vblank_int("screen", FUNC(sf_state::irq1_line_hold)); + MCFG_DEVICE_ADD("maincpu", M68000, XTAL(8'000'000)) + MCFG_DEVICE_PROGRAM_MAP(sfan_map) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sf_state, irq1_line_hold) - Z80(config, m_audiocpu, XTAL(3'579'545)); /* ? xtal is 3.579545MHz */ - m_audiocpu->set_addrmap(AS_PROGRAM, &sf_state::sound_map); + MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) /* ? xtal is 3.579545MHz */ + MCFG_DEVICE_PROGRAM_MAP(sound_map) - z80_device &audio2(Z80(config, "audio2", XTAL(3'579'545))); /* ? xtal is 3.579545MHz */ - audio2.set_addrmap(AS_PROGRAM, &sf_state::sound2_map); - audio2.set_addrmap(AS_IO, &sf_state::sound2_io_map); - audio2.set_periodic_int(FUNC(sf_state::irq0_line_hold), attotime::from_hz(8000)); // ? + MCFG_DEVICE_ADD("audio2", Z80, XTAL(3'579'545)) /* ? xtal is 3.579545MHz */ + MCFG_DEVICE_PROGRAM_MAP(sound2_map) + MCFG_DEVICE_IO_MAP(sound2_io_map) + MCFG_DEVICE_PERIODIC_INT_DRIVER(sf_state, irq0_line_hold, 8000) // ? /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(64*8, 32*8); - screen.set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1); - screen.set_screen_update(FUNC(sf_state::screen_update)); - screen.set_palette(m_palette); - - GFXDECODE(config, m_gfxdecode, m_palette, gfx_sf); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(sf_state, screen_update) + MCFG_SCREEN_PALETTE(m_palette) + + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_sf) + PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 1024); /* sound hardware */ @@ -568,34 +569,43 @@ void sf_state::sfan(machine_config &config) ymsnd.add_route(0, "lspeaker", 0.60); ymsnd.add_route(1, "rspeaker", 0.60); - MSM5205(config, m_msm[0], 384000); - m_msm[0]->set_prescaler_selector(msm5205_device::SEX_4B); /* 8KHz playback ? */ - m_msm[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); - m_msm[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); + MCFG_DEVICE_ADD("msm1", MSM5205, 384000) + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* 8KHz playback ? */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MSM5205(config, m_msm[1], 384000); - m_msm[1]->set_prescaler_selector(msm5205_device::SEX_4B); /* 8KHz playback ? */ - m_msm[1]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); - m_msm[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); -} + MCFG_DEVICE_ADD("msm2", MSM5205, 384000) + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* 8KHz playback ? */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) +MACHINE_CONFIG_END -void sf_state::sfus(machine_config &config) -{ + +MACHINE_CONFIG_START(sf_state::sfus) sfan(config); - m_maincpu->set_addrmap(AS_PROGRAM, &sf_state::sfus_map); -} -void sf_state::sfjp(machine_config &config) -{ + /* basic machine hardware */ + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(sfus_map) +MACHINE_CONFIG_END + + +MACHINE_CONFIG_START(sf_state::sfjp) sfan(config); - m_maincpu->set_addrmap(AS_PROGRAM, &sf_state::sfjp_map); -} -void sf_state::sfp(machine_config &config) -{ + /* basic machine hardware */ + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(sfjp_map) +MACHINE_CONFIG_END + + +MACHINE_CONFIG_START(sf_state::sfp) sfan(config); - m_maincpu->set_vblank_int("screen", FUNC(sf_state::irq6_line_hold)); -} + + /* basic machine hardware */ + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sf_state, irq6_line_hold) +MACHINE_CONFIG_END |