diff options
author | mooglyguy <therealmogminer@gmail.com> | 2018-12-30 23:44:39 +0100 |
---|---|---|
committer | mooglyguy <therealmogminer@gmail.com> | 2018-12-30 23:45:07 +0100 |
commit | f81378ee146149c8a6f66d4bd3b8943507cac567 (patch) | |
tree | e3cbb202f2b3a97661758cfbbaca098567ed25ee /src/mame/drivers/dec0.cpp | |
parent | 98d3d350ccbda5b0174a1d8923cad28b0593984c (diff) |
-devices/sound/3812intf: Removed MCFG macro, nw
-drivers/actfancr, alpha68k, bloodbro, crospang, dcon, dec0, deniam, dynduke, fuukifg2, galspnbl, goodejan, legionna, nmg5, oneshot, prehisle, r2dx_v33, raiden, raiden2, sengokmj, snk68, spbactn, spdodgeb, stadhero, tbowl, toaplan1, toki, twincobr, umipoker, wardner, yunsun16: Removed MACHINE_CONFIG macros, nw
Diffstat (limited to 'src/mame/drivers/dec0.cpp')
-rw-r--r-- | src/mame/drivers/dec0.cpp | 349 |
1 files changed, 173 insertions, 176 deletions
diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp index 8bf10cf762d..f06acb827e0 100644 --- a/src/mame/drivers/dec0.cpp +++ b/src/mame/drivers/dec0.cpp @@ -338,7 +338,6 @@ Notes: #include "sound/2203intf.h" #include "sound/3812intf.h" #include "sound/okim6295.h" -#include "screen.h" #include "speaker.h" @@ -1599,26 +1598,26 @@ GFXDECODE_END // DECO video CRTC, pixel clock is unverified (actually 24MHz/4?) -#define MCFG_SCREEN_RAW_PARAMS_DATA_EAST \ - MCFG_SCREEN_RAW_PARAMS(XTAL(12'000'000)/2,384,0,256,272,8,248) - - - -MACHINE_CONFIG_START(dec0_state::dec0_base) +void dec0_state::set_screen_raw_params_data_east(machine_config &config) +{ + m_screen->set_raw(XTAL(12'000'000)/2,384,0,256,272,8,248); +} +void dec0_state::dec0_base(machine_config &config) +{ /* video hardware */ BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - //MCFG_SCREEN_REFRESH_RATE(57.41) - //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) - MCFG_SCREEN_RAW_PARAMS_DATA_EAST - //MCFG_SCREEN_SIZE(32*8, 32*8) - //MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - //MCFG_SCREEN_UPDATE_DRIVER differs per game - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + set_screen_raw_params_data_east(config); + //m_screen->set_refresh_hz(57.41); + //m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); /* 57.41 Hz, 529us Vblank */ + //m_screen->set_size(32*8, 32*8); + //m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1); + //screen update callback differs per game + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_dec0) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_dec0); PALETTE(config, m_palette); DECO_BAC06(config, m_tilegen[0], 0); @@ -1639,18 +1638,19 @@ MACHINE_CONFIG_START(dec0_state::dec0_base) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(dec0_state::dec0) +void dec0_state::dec0(machine_config &config) +{ dec0_base(config); /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(20'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(dec0_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dec0_state, irq6_line_assert) /* VBL */ + M68000(config, m_maincpu, XTAL(20'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::dec0_map); + m_maincpu->set_vblank_int("screen", FUNC(dec0_state::irq6_line_assert)); /* VBL */ - MCFG_DEVICE_ADD("audiocpu", M6502, XTAL(12'000'000) / 8) - MCFG_DEVICE_PROGRAM_MAP(dec0_s_map) + M6502(config, m_audiocpu, XTAL(12'000'000) / 8); + m_audiocpu->set_addrmap(AS_PROGRAM, &dec0_state::dec0_s_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0) @@ -1660,22 +1660,23 @@ MACHINE_CONFIG_START(dec0_state::dec0) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ym1", YM2203, XTAL(12'000'000) / 8) - MCFG_SOUND_ROUTE(0, "mono", 0.90) - MCFG_SOUND_ROUTE(1, "mono", 0.90) - MCFG_SOUND_ROUTE(2, "mono", 0.90) - MCFG_SOUND_ROUTE(3, "mono", 0.35) + ym2203_device &ym1(YM2203(config, "ym1", XTAL(12'000'000) / 8)); + ym1.add_route(0, "mono", 0.90); + ym1.add_route(1, "mono", 0.90); + ym1.add_route(2, "mono", 0.90); + ym1.add_route(3, "mono", 0.35); - MCFG_DEVICE_ADD("ym2", YM3812, XTAL(12'000'000) / 4) - MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + ym3812_device &ym2(YM3812(config, "ym2", XTAL(12'000'000) / 4)); + ym2.irq_handler().set_inputline(m_audiocpu, 0); + ym2.add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(20'000'000) / 2 / 10, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(20'000'000) / 2 / 10, okim6295_device::PIN7_HIGH)); + oki.add_route(ALL_OUTPUTS, "mono", 0.80); +} -MACHINE_CONFIG_START(dec0_state::dec1) +void dec0_state::dec1(machine_config &config) +{ dec0_base(config); /* basic machine hardware */ /* maincpu and audiocpu clocks and address maps differ per game */ @@ -1688,19 +1689,19 @@ MACHINE_CONFIG_START(dec0_state::dec1) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ym1", YM2203, XTAL(12'000'000)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(0, "mono", 0.90) - MCFG_SOUND_ROUTE(1, "mono", 0.90) - MCFG_SOUND_ROUTE(2, "mono", 0.90) - MCFG_SOUND_ROUTE(3, "mono", 0.35) + ym2203_device &ym1(YM2203(config, "ym1", XTAL(12'000'000)/8)); /* verified on pcb */ + ym1.add_route(0, "mono", 0.90); + ym1.add_route(1, "mono", 0.90); + ym1.add_route(2, "mono", 0.90); + ym1.add_route(3, "mono", 0.35); - MCFG_DEVICE_ADD("ym2", YM3812, XTAL(12'000'000)/4) /* verified on pcb */ - MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 1)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + ym3812_device &ym2(YM3812(config, "ym2", XTAL(12'000'000)/4)); /* verified on pcb */ + ym2.irq_handler().set_inputline(m_audiocpu, 1); + ym2.add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH)); /* verified on pcb */ + oki.add_route(ALL_OUTPUTS, "mono", 0.80); +} WRITE8_MEMBER(dec0_automat_state::sound_bankswitch_w) @@ -1731,27 +1732,27 @@ WRITE_LINE_MEMBER(dec0_automat_state::msm2_vclk_cb) } -MACHINE_CONFIG_START(dec0_automat_state::automat) - +void dec0_automat_state::automat(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(automat_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dec0_state, irq6_line_hold)/* VBL */ + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_automat_state::automat_map); + m_maincpu->set_vblank_int("screen", FUNC(dec0_state::irq6_line_hold)); /* VBL */ - MCFG_DEVICE_ADD("audiocpu", Z80, 3000000)// ? - MCFG_DEVICE_PROGRAM_MAP(automat_s_map) + Z80(config, m_audiocpu, 3000000); // ? + m_audiocpu->set_addrmap(AS_PROGRAM, &dec0_automat_state::automat_s_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(57.41) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) - MCFG_SCREEN_RAW_PARAMS_DATA_EAST - MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_automat) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); +// m_screen->set_refresh_hz(57.41); +// m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); /* 57.41 Hz, 529us Vblank */ + set_screen_raw_params_data_east(config); + m_screen->set_screen_update(FUNC(dec0_automat_state::screen_update_automat)); + m_screen->set_palette(m_palette); DECO_BAC06(config, m_tilegen[0], 0); m_tilegen[0]->set_gfx_region_wide(0, 0, 0); @@ -1770,8 +1771,7 @@ MACHINE_CONFIG_START(dec0_automat_state::automat) m_spritegen->set_gfxdecode_tag("gfxdecode"); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024); - - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_automat) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_automat); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1779,17 +1779,17 @@ MACHINE_CONFIG_START(dec0_automat_state::automat) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); - MCFG_DEVICE_ADD("2203a", YM2203, 1250000) - MCFG_SOUND_ROUTE(0, "mono", 0.90) - MCFG_SOUND_ROUTE(1, "mono", 0.90) - MCFG_SOUND_ROUTE(2, "mono", 0.90) - MCFG_SOUND_ROUTE(3, "mono", 0.35) + ym2203_device &ym2203a(YM2203(config, "2203a", 1250000)); + ym2203a.add_route(0, "mono", 0.90); + ym2203a.add_route(1, "mono", 0.90); + ym2203a.add_route(2, "mono", 0.90); + ym2203a.add_route(3, "mono", 0.35); - MCFG_DEVICE_ADD("2203b", YM2203, 1250000) - MCFG_SOUND_ROUTE(0, "mono", 0.90) - MCFG_SOUND_ROUTE(1, "mono", 0.90) - MCFG_SOUND_ROUTE(2, "mono", 0.90) - MCFG_SOUND_ROUTE(3, "mono", 0.35) + ym2203_device &ym2203b(YM2203(config, "2203b", 1250000)); + ym2203b.add_route(0, "mono", 0.90); + ym2203b.add_route(1, "mono", 0.90); + ym2203b.add_route(2, "mono", 0.90); + ym2203b.add_route(3, "mono", 0.35); LS157(config, m_adpcm_select[0], 0); m_adpcm_select[0]->out_callback().set("msm1", FUNC(msm5205_device::data_w)); @@ -1797,39 +1797,39 @@ MACHINE_CONFIG_START(dec0_automat_state::automat) LS157(config, m_adpcm_select[1], 0); m_adpcm_select[1]->out_callback().set("msm2", FUNC(msm5205_device::data_w)); - MCFG_DEVICE_ADD("msm1", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dec0_automat_state, msm1_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + msm5205_device &msm1(MSM5205(config, "msm1", 384000)); + msm1.vck_legacy_callback().set(FUNC(dec0_automat_state::msm1_vclk_cb)); + msm1.set_prescaler_selector(msm5205_device::S96_4B); + msm1.add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("msm2", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dec0_automat_state, msm2_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + msm5205_device &msm2(MSM5205(config, "msm2", 384000)); + msm2.vck_legacy_callback().set(FUNC(dec0_automat_state::msm2_vclk_cb)); + msm2.set_prescaler_selector(msm5205_device::S96_4B); + msm2.add_route(ALL_OUTPUTS, "mono", 1.0); +} // this seems very similar to the automat bootleg -MACHINE_CONFIG_START(dec0_automat_state::secretab) - +void dec0_automat_state::secretab(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(20'000'000)/2) /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */ - MCFG_DEVICE_PROGRAM_MAP(secretab_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dec0_state, irq6_line_hold)/* VBL */ + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_automat_state::secretab_map); + m_maincpu->set_vblank_int("screen", FUNC(dec0_state::irq6_line_hold)); /* VBL */ - MCFG_DEVICE_ADD("audiocpu", Z80, 3000000)// ? - MCFG_DEVICE_PROGRAM_MAP(secretab_s_map) + Z80(config, m_audiocpu, 3000000); // ? + m_audiocpu->set_addrmap(AS_PROGRAM, &dec0_automat_state::secretab_s_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(57.41) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) - MCFG_SCREEN_RAW_PARAMS_DATA_EAST - MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_secretab) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); +// m_screen->set_refresh_hz(57.41); +// m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); /* 57.41 Hz, 529us Vblank */ + set_screen_raw_params_data_east(config); + m_screen->set_screen_update(FUNC(dec0_automat_state::screen_update_secretab)); + m_screen->set_palette(m_palette); DECO_BAC06(config, m_tilegen[0], 0); m_tilegen[0]->set_gfx_region_wide(0, 0, 0); @@ -1849,7 +1849,7 @@ MACHINE_CONFIG_START(dec0_automat_state::secretab) PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_secretab) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_secretab); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1857,14 +1857,14 @@ MACHINE_CONFIG_START(dec0_automat_state::secretab) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); - MCFG_DEVICE_ADD("2203a", YM2203, 1250000) - MCFG_SOUND_ROUTE(0, "mono", 0.90) - MCFG_SOUND_ROUTE(1, "mono", 0.90) - MCFG_SOUND_ROUTE(2, "mono", 0.90) - MCFG_SOUND_ROUTE(3, "mono", 0.35) + ym2203_device &ym2203a(YM2203(config, "2203a", 1250000)); + ym2203a.add_route(0, "mono", 0.90); + ym2203a.add_route(1, "mono", 0.90); + ym2203a.add_route(2, "mono", 0.90); + ym2203a.add_route(3, "mono", 0.35); - MCFG_DEVICE_ADD("ym3812", YM3812, 2500000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + ym3812_device &ym3812(YM3812(config, "ym3812", 2500000)); + ym3812.add_route(ALL_OUTPUTS, "mono", 0.80); LS157(config, m_adpcm_select[0], 0); m_adpcm_select[0]->out_callback().set("msm1", FUNC(msm5205_device::data_w)); @@ -1872,19 +1872,19 @@ MACHINE_CONFIG_START(dec0_automat_state::secretab) LS157(config, m_adpcm_select[1], 0); m_adpcm_select[1]->out_callback().set("msm2", FUNC(msm5205_device::data_w)); - MCFG_DEVICE_ADD("msm1", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dec0_automat_state, msm1_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MCFG_DEVICE_ADD("msm2", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dec0_automat_state, msm2_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + msm5205_device &msm1(MSM5205(config, "msm1", 384000)); + msm1.vck_legacy_callback().set(FUNC(dec0_automat_state::msm1_vclk_cb)); + msm1.set_prescaler_selector(msm5205_device::S96_4B); + msm1.add_route(ALL_OUTPUTS, "mono", 1.0); + msm5205_device &msm2(MSM5205(config, "msm2", 384000)); + msm2.vck_legacy_callback().set(FUNC(dec0_automat_state::msm2_vclk_cb)); + msm2.set_prescaler_selector(msm5205_device::S96_4B); + msm2.add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(dec0_state::hbarrel) +void dec0_state::hbarrel(machine_config &config) +{ dec0(config); i8751_device &mcu(I8751(config, m_mcu, XTAL(8'000'000))); @@ -1895,11 +1895,11 @@ MACHINE_CONFIG_START(dec0_state::hbarrel) mcu.port_out_cb<3>().set(FUNC(dec0_state::dec0_mcu_port3_w)); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hbarrel) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(dec0_state::screen_update_hbarrel)); +} -MACHINE_CONFIG_START(dec0_state::baddudes) +void dec0_state::baddudes(machine_config &config) +{ dec0(config); i8751_device &mcu(I8751(config, m_mcu, XTAL(8'000'000))); @@ -1910,82 +1910,80 @@ MACHINE_CONFIG_START(dec0_state::baddudes) mcu.port_out_cb<3>().set(FUNC(dec0_state::dec0_mcu_port3_w)); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_baddudes) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(dec0_state::screen_update_baddudes)); +} -MACHINE_CONFIG_START(dec0_state::drgninjab) +void dec0_state::drgninjab(machine_config &config) +{ dec0(config); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_baddudes) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(dec0_state::screen_update_baddudes)); +} -MACHINE_CONFIG_START(dec0_state::birdtry) +void dec0_state::birdtry(machine_config &config) +{ dec0(config); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_birdtry) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(dec0_state::screen_update_birdtry)); +} -MACHINE_CONFIG_START(dec0_state::robocop) +void dec0_state::robocop(machine_config &config) +{ dec0(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(robocop_map) + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::robocop_map); H6280(config, m_subcpu, XTAL(21'477'272) / 16); m_subcpu->set_addrmap(AS_PROGRAM, &dec0_state::robocop_sub_map); m_subcpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused - MCFG_QUANTUM_TIME(attotime::from_hz(3000)) /* Interleave between HuC6280 & 68000 */ + config.m_minimum_quantum = attotime::from_hz(3000); /* Interleave between HuC6280 & 68000 */ /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(dec0_state::screen_update_robocop)); +} -MACHINE_CONFIG_START(dec0_state::robocopb) +void dec0_state::robocopb(machine_config &config) +{ dec0(config); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(dec0_state::screen_update_robocop)); +} -MACHINE_CONFIG_START(dec0_state::hippodrm) +void dec0_state::hippodrm(machine_config &config) +{ dec0(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(hippodrm_map) + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::hippodrm_map); H6280(config, m_subcpu, XTAL(21'477'272) / 16); m_subcpu->set_addrmap(AS_PROGRAM, &dec0_state::hippodrm_sub_map); m_subcpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused - MCFG_QUANTUM_TIME(attotime::from_hz(300)) /* Interleave between H6280 & 68000 */ + config.m_minimum_quantum = attotime::from_hz(300); /* Interleave between H6280 & 68000 */ /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hippodrm) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("sub", 1)) /* VBL */ -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(dec0_state::screen_update_hippodrm)); + m_screen->screen_vblank().set_inputline(m_subcpu, 1); /* VBL */ +} + +void dec0_state::ffantasybl(machine_config &config) -MACHINE_CONFIG_START(dec0_state::ffantasybl) +{ dec0(config); // H6280(config, m_subcpu, XTAL(21'477'272) / 16); // m_subcpu->set_addrmap(AS_PROGRAM, &dec0_state::hippodrm_sub_map); // m_subcpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused -// MCFG_QUANTUM_TIME(attotime::from_hz(300)) /* Interleave between H6280 & 68000 */ +// config.m_minimum_quantum = attotime::from_hz(300); /* Interleave between H6280 & 68000 */ /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hippodrm) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(dec0_state::screen_update_hippodrm)); +} MACHINE_RESET_MEMBER(dec0_state,slyspy) { @@ -1996,13 +1994,14 @@ MACHINE_RESET_MEMBER(dec0_state,slyspy) m_sndprotect->set_bank(m_slyspy_sound_state); } -MACHINE_CONFIG_START(dec0_state::slyspy) +void dec0_state::slyspy(machine_config &config) +{ dec1(config); /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(20'000'000)/2) /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */ - MCFG_DEVICE_PROGRAM_MAP(slyspy_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dec0_state, irq6_line_hold) /* VBL, apparently it auto-acks */ + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::slyspy_map); + m_maincpu->set_vblank_int("screen", FUNC(dec0_state::irq6_line_hold)); /* VBL, apparently it auto-acks */ // TODO: both games doesn't like /3 here, MT #06740 h6280_device &audiocpu(H6280(config, m_audiocpu, XTAL(12'000'000)/2/2)); /* verified on pcb (6Mhz is XIN on pin 10 of H6280) */ @@ -2013,44 +2012,42 @@ MACHINE_CONFIG_START(dec0_state::slyspy) ADDRESS_MAP_BANK(config, "sndprotect").set_map(&dec0_state::slyspy_sound_protection_map).set_options(ENDIANNESS_LITTLE, 8, 21, 0x80000); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_slyspy) + m_screen->set_screen_update(FUNC(dec0_state::screen_update_slyspy)); MCFG_MACHINE_RESET_OVERRIDE(dec0_state,slyspy) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(dec0_state::midres) +void dec0_state::midres(machine_config &config) +{ dec1(config); /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(20'000'000)/2) /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */ - MCFG_DEVICE_PROGRAM_MAP(midres_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dec0_state, irq6_line_hold)/* VBL */ + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::midres_map); + m_maincpu->set_vblank_int("screen", FUNC(dec0_state::irq6_line_hold)); /* VBL */ h6280_device &audiocpu(H6280(config, m_audiocpu, XTAL(24'000'000)/4/3)); /* verified on pcb (6Mhz is XIN on pin 10 of H6280, verified on pcb */ audiocpu.set_addrmap(AS_PROGRAM, &dec0_state::midres_s_map); audiocpu.add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_midres) + m_screen->set_screen_update(FUNC(dec0_state::screen_update_midres)); - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_midres) -MACHINE_CONFIG_END + m_gfxdecode->set_info(gfx_midres); +} -MACHINE_CONFIG_START(dec0_state::midresb) +void dec0_state::midresb(machine_config &config) +{ midres(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(midresb_map) + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::midresb_map); - MCFG_DEVICE_REPLACE("audiocpu", M6502, 1500000 ) - MCFG_DEVICE_PROGRAM_MAP(dec0_s_map) + M6502(config.replace(), m_audiocpu, 1500000); + m_audiocpu->set_addrmap(AS_PROGRAM, &dec0_state::dec0_s_map); - MCFG_DEVICE_ADD("mcu", M68705R3, XTAL(3'579'545)) + M68705R3(config, m_mcu, XTAL(3'579'545)); - MCFG_DEVICE_MODIFY("ym2") - MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + subdevice<ym3812_device>("ym2")->irq_handler().set_inputline(m_audiocpu, 0); + subdevice<ym3812_device>("ym2")->add_route(ALL_OUTPUTS, "mono", 0.80); // bootleg doesn't seem to support row/col scroll (or enable is different) // m_tilegen[0]->disable_16x16(); @@ -2061,7 +2058,7 @@ MACHINE_CONFIG_START(dec0_state::midresb) // m_tilegen[2]->disable_8x8(); m_tilegen[2]->disable_rc_scroll(); -MACHINE_CONFIG_END +} void dec0_state::midresbj(machine_config &config) { |