diff options
Diffstat (limited to 'src/mame/drivers/msisaac.cpp')
-rw-r--r-- | src/mame/drivers/msisaac.cpp | 69 |
1 files changed, 33 insertions, 36 deletions
diff --git a/src/mame/drivers/msisaac.cpp b/src/mame/drivers/msisaac.cpp index 5f87c45b5b8..0fa86c5eff6 100644 --- a/src/mame/drivers/msisaac.cpp +++ b/src/mame/drivers/msisaac.cpp @@ -446,43 +446,40 @@ void msisaac_state::machine_reset() #endif } -MACHINE_CONFIG_START(msisaac_state::msisaac) - +void msisaac_state::msisaac(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(msisaac_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", msisaac_state, irq0_line_hold) + Z80(config, m_maincpu, 4000000); + m_maincpu->set_addrmap(AS_PROGRAM, &msisaac_state::msisaac_map); + m_maincpu->set_vblank_int("screen", FUNC(msisaac_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(msisaac_sound_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", msisaac_state, irq0_line_hold) /* source of IRQs is unknown */ + Z80(config, m_audiocpu, 4000000); + m_audiocpu->set_addrmap(AS_PROGRAM, &msisaac_state::msisaac_sound_map); + m_audiocpu->set_vblank_int("screen", FUNC(msisaac_state::irq0_line_hold)); /* source of IRQs is unknown */ #ifdef USE_MCU - MCFG_DEVICE_ADD("mcu", M68705,8000000/2) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(buggychl_mcu_map) - MCFG_DEVICE_ADD("bmcu", BUGGYCHL_MCU, 0) + M68705(config, "mcu", 8000000/2).set_addrmap(AS_PROGRAM, &msisaac_state::buggychl_mcu_map); /* 4 MHz */ + BUGGYCHL_MCU(config, m_bmcu, 0); #endif - /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(msisaac_state, screen_update_msisaac) - MCFG_SCREEN_PALETTE("palette") - - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msisaac) - MCFG_PALETTE_ADD("palette", 1024) - MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) - + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(32*8, 32*8); + screen.set_visarea(0, 32*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(msisaac_state::screen_update_msisaac)); + screen.set_palette(m_palette); + + GFXDECODE(config, m_gfxdecode, m_palette, gfx_msisaac); + PALETTE(config, m_palette, 1024); + m_palette->set_format(PALETTE_FORMAT_xxxxRRRRGGGGBBBB); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); - MCFG_TA7630_ADD("ta7630") + TA7630(config, m_ta7630); AY8910(config, "ay1", 2000000).add_route(ALL_OUTPUTS, "mono", 0.15); // port A/B likely to be TA7630 filters @@ -490,20 +487,20 @@ MACHINE_CONFIG_START(msisaac_state::msisaac) AY8910(config, "ay2", 2000000).add_route(ALL_OUTPUTS, "mono", 0.15); // port A/B likely to be TA7630 filters - MCFG_DEVICE_ADD("msm", MSM5232, 2000000) - MCFG_MSM5232_SET_CAPACITORS(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6) /* 0.65 (???) uF capacitors (match the sample, not verified) */ - MCFG_SOUND_ROUTE(0, "mono", 1.0) // pin 28 2'-1 - MCFG_SOUND_ROUTE(1, "mono", 1.0) // pin 29 4'-1 - MCFG_SOUND_ROUTE(2, "mono", 1.0) // pin 30 8'-1 - MCFG_SOUND_ROUTE(3, "mono", 1.0) // pin 31 16'-1 - MCFG_SOUND_ROUTE(4, "mono", 1.0) // pin 36 2'-2 - MCFG_SOUND_ROUTE(5, "mono", 1.0) // pin 35 4'-2 - MCFG_SOUND_ROUTE(6, "mono", 1.0) // pin 34 8'-2 - MCFG_SOUND_ROUTE(7, "mono", 1.0) // pin 33 16'-2 + MSM5232(config, m_msm, 2000000); + m_msm->set_capacitors(0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6); /* 0.65 (???) uF capacitors (match the sample, not verified) */ + m_msm->add_route(0, "mono", 1.0); // pin 28 2'-1 + m_msm->add_route(1, "mono", 1.0); // pin 29 4'-1 + m_msm->add_route(2, "mono", 1.0); // pin 30 8'-1 + m_msm->add_route(3, "mono", 1.0); // pin 31 16'-1 + m_msm->add_route(4, "mono", 1.0); // pin 36 2'-2 + m_msm->add_route(5, "mono", 1.0); // pin 35 4'-2 + m_msm->add_route(6, "mono", 1.0); // pin 34 8'-2 + m_msm->add_route(7, "mono", 1.0); // pin 33 16'-2 // pin 1 SOLO 8' not mapped // pin 2 SOLO 16' not mapped // pin 22 Noise Output not mapped -MACHINE_CONFIG_END +} /*******************************************************************************/ |