summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/terracre.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/terracre.cpp')
-rw-r--r--src/mame/drivers/terracre.cpp80
1 files changed, 40 insertions, 40 deletions
diff --git a/src/mame/drivers/terracre.cpp b/src/mame/drivers/terracre.cpp
index b8f18c92070..745c79bf475 100644
--- a/src/mame/drivers/terracre.cpp
+++ b/src/mame/drivers/terracre.cpp
@@ -454,26 +454,27 @@ static GFXDECODE_START( gfx_terracre )
GFXDECODE_END
-MACHINE_CONFIG_START(terracre_state::ym3526)
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) // 8mhz
- MCFG_DEVICE_PROGRAM_MAP(terracre_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", terracre_state, irq1_line_hold)
-
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) // 4.0mhz when compared to sound recordings, should be derived from XTAL(22'000'000)? how?
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_3526_io_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(terracre_state, irq0_line_hold, XTAL(16'000'000)/4/512) // ?
-
- MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16)
-
- 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*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+void terracre_state::ym3526(machine_config &config)
+{
+ M68000(config, m_maincpu, XTAL(16'000'000)/2); // 8mhz
+ m_maincpu->set_addrmap(AS_PROGRAM, &terracre_state::terracre_map);
+ m_maincpu->set_vblank_int("screen", FUNC(terracre_state::irq1_line_hold));
+
+ z80_device &audiocpu(Z80(config, "audiocpu", XTAL(16'000'000)/4)); // 4.0mhz when compared to sound recordings, should be derived from XTAL(22'000'000)? how?
+ audiocpu.set_addrmap(AS_PROGRAM, &terracre_state::sound_map);
+ audiocpu.set_addrmap(AS_IO, &terracre_state::sound_3526_io_map);
+ audiocpu.set_periodic_int(FUNC(terracre_state::irq0_line_hold), attotime::from_hz(XTAL(16'000'000)/4/512)); // ?
+
+ BUFFERED_SPRITERAM16(config, m_spriteram);
+
+ 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*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(terracre_state::screen_update_amazon));
+ screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_terracre);
PALETTE(config, m_palette, FUNC(terracre_state::terracre_palette), 1*16+16*16+16*256, 256);
@@ -482,43 +483,42 @@ MACHINE_CONFIG_START(terracre_state::ym3526)
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("ymsnd", YM3526, XTAL(16'000'000)/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
+ YM3526(config, "ymsnd", XTAL(16'000'000)/4).add_route(ALL_OUTPUTS, "speaker", 1.0);
DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(terracre_state::ym2203)
+void terracre_state::ym2203(machine_config &config)
+{
ym3526(config);
- MCFG_DEVICE_MODIFY("audiocpu")
- MCFG_DEVICE_IO_MAP(sound_2203_io_map)
+ subdevice<z80_device>("audiocpu")->set_addrmap(AS_IO, &terracre_state::sound_2203_io_map);
config.device_remove("ymsnd");
- MCFG_DEVICE_ADD("ym1", YM2203, XTAL(16'000'000)/4)
- MCFG_SOUND_ROUTE(0, "speaker", 0.2)
- MCFG_SOUND_ROUTE(1, "speaker", 0.2)
- MCFG_SOUND_ROUTE(2, "speaker", 0.2)
- MCFG_SOUND_ROUTE(3, "speaker", 0.4)
-MACHINE_CONFIG_END
+ ym2203_device &ym1(YM2203(config, "ym1", XTAL(16'000'000)/4));
+ ym1.add_route(0, "speaker", 0.2);
+ ym1.add_route(1, "speaker", 0.2);
+ ym1.add_route(2, "speaker", 0.2);
+ ym1.add_route(3, "speaker", 0.4);
+}
-MACHINE_CONFIG_START(terracre_state::amazon_base)
+void terracre_state::amazon_base(machine_config &config)
+{
ym3526(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(amazon_base_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &terracre_state::amazon_base_map);
+}
-MACHINE_CONFIG_START(amazon_state::amazon_1412m2)
+void amazon_state::amazon_1412m2(machine_config &config)
+{
amazon_base(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(amazon_1412m2_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &amazon_state::amazon_1412m2_map);
NB1412M2(config, m_prot, XTAL(16'000'000)); // divided by 4 maybe
-MACHINE_CONFIG_END
+}
/**************************************