summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/liberate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/liberate.cpp')
-rw-r--r--src/mame/drivers/liberate.cpp131
1 files changed, 66 insertions, 65 deletions
diff --git a/src/mame/drivers/liberate.cpp b/src/mame/drivers/liberate.cpp
index 245f906e692..e2c31f14e29 100644
--- a/src/mame/drivers/liberate.cpp
+++ b/src/mame/drivers/liberate.cpp
@@ -741,33 +741,33 @@ MACHINE_RESET_MEMBER(liberate_state,liberate)
m_bank = 0;
}
-void liberate_state::liberate_base(machine_config &config)
-{
+MACHINE_CONFIG_START(liberate_state::liberate_base)
+
/* basic machine hardware */
- DECO16(config, m_maincpu, 2000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &liberate_state::liberate_map);
- m_maincpu->set_addrmap(AS_IO, &liberate_state::deco16_io_map);
+ MCFG_DEVICE_ADD("maincpu",DECO16, 2000000)
+ MCFG_DEVICE_PROGRAM_MAP(liberate_map)
+ MCFG_DEVICE_IO_MAP(deco16_io_map)
- DECO_222(config, m_audiocpu, 1500000); /* is it a real 222 (M6502 with bitswapped opcodes), or the same thing in external logic? */
- m_audiocpu->set_addrmap(AS_PROGRAM, &liberate_state::liberate_sound_map);
- m_audiocpu->set_periodic_int(FUNC(liberate_state::nmi_line_pulse), attotime::from_hz(16*60)); /* ??? */
+ MCFG_DEVICE_ADD("audiocpu",DECO_222, 1500000) /* is it a real 222 (M6502 with bitswapped opcodes), or the same thing in external logic? */
+ MCFG_DEVICE_PROGRAM_MAP(liberate_sound_map)
+ MCFG_DEVICE_PERIODIC_INT_DRIVER(liberate_state, nmi_line_pulse, 16*60) /* ??? */
- config.m_minimum_quantum = attotime::from_hz(12000);
+ MCFG_QUANTUM_TIME(attotime::from_hz(12000))
MCFG_MACHINE_START_OVERRIDE(liberate_state,liberate)
MCFG_MACHINE_RESET_OVERRIDE(liberate_state,liberate)
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(529) /* 529ms Vblank duration?? */);
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(liberate_state::screen_update_liberate));
- screen.set_palette(m_palette);
- screen.screen_vblank().set(FUNC(liberate_state::deco16_interrupt));
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_liberate);
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 529ms Vblank duration?? */)
+ 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(liberate_state, screen_update_liberate)
+ MCFG_SCREEN_PALETTE(m_palette)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, liberate_state, deco16_interrupt))
+
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_liberate)
PALETTE(config, m_palette, FUNC(liberate_state::liberate_palette), 33);
MCFG_VIDEO_START_OVERRIDE(liberate_state,liberate)
@@ -780,80 +780,81 @@ void liberate_state::liberate_base(machine_config &config)
AY8912(config, "ay1", 1500000).add_route(ALL_OUTPUTS, "mono", 0.30);
AY8912(config, "ay2", 1500000).add_route(ALL_OUTPUTS, "mono", 0.50);
-}
+MACHINE_CONFIG_END
-void liberate_state::liberate(machine_config &config)
-{
+MACHINE_CONFIG_START(liberate_state::liberate)
liberate_base(config);
- m_maincpu->set_addrmap(AS_OPCODES, &liberate_state::decrypted_opcodes_map);
-}
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+MACHINE_CONFIG_END
-void liberate_state::liberatb(machine_config &config)
-{
+MACHINE_CONFIG_START(liberate_state::liberatb)
liberate_base(config);
/* basic machine hardware */
- M6502(config.replace(), m_maincpu, 2000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &liberate_state::liberatb_map);
-}
+ MCFG_DEVICE_REPLACE("maincpu", M6502, 2000000)
+ MCFG_DEVICE_PROGRAM_MAP(liberatb_map)
+MACHINE_CONFIG_END
-void liberate_state::boomrang(machine_config &config)
-{
+MACHINE_CONFIG_START(liberate_state::boomrang)
liberate_base(config);
MCFG_VIDEO_START_OVERRIDE(liberate_state,boomrang)
- subdevice<screen_device>("screen")->set_screen_update(FUNC(liberate_state::screen_update_boomrang));
-}
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_boomrang)
+MACHINE_CONFIG_END
-void liberate_state::prosoccr(machine_config &config)
-{
+MACHINE_CONFIG_START(liberate_state::prosoccr)
liberate_base(config);
/* basic machine hardware */
- m_maincpu->set_clock(10000000/8); //xtal is unknown?
- m_maincpu->set_addrmap(AS_PROGRAM, &liberate_state::prosoccr_map);
- m_maincpu->set_addrmap(AS_IO, &liberate_state::prosoccr_io_map);
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_CLOCK(10000000/8) //xtal is unknown?
+ MCFG_DEVICE_PROGRAM_MAP(prosoccr_map)
+ MCFG_DEVICE_IO_MAP(prosoccr_io_map)
- m_audiocpu->set_clock(10000000/8); //xtal is 12 Mhz, divider is unknown
- m_audiocpu->set_addrmap(AS_PROGRAM, &liberate_state::prosoccr_sound_map);
+ MCFG_DEVICE_MODIFY("audiocpu")
+ MCFG_DEVICE_CLOCK(10000000/8) //xtal is 12 Mhz, divider is unknown
+ MCFG_DEVICE_PROGRAM_MAP(prosoccr_sound_map)
- config.m_minimum_quantum = attotime::from_hz(12000);
+ MCFG_QUANTUM_TIME(attotime::from_hz(12000))
- subdevice<screen_device>("screen")->set_visarea(1*8, 31*8-1, 0*8, 32*8-1);
- subdevice<screen_device>("screen")->set_screen_update(FUNC(liberate_state::screen_update_prosoccr));
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_prosoccr)
- m_gfxdecode->set_info(gfx_prosoccr);
+ MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_prosoccr)
MCFG_VIDEO_START_OVERRIDE(liberate_state,prosoccr)
-}
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_START(liberate_state::prosport)
-void liberate_state::prosport(machine_config &config)
-{
/* basic machine hardware */
- DECO16(config, m_maincpu, 2000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &liberate_state::prosport_map);
- m_maincpu->set_addrmap(AS_IO, &liberate_state::deco16_io_map);
+ MCFG_DEVICE_ADD("maincpu", DECO16, 2000000)
+ MCFG_DEVICE_PROGRAM_MAP(prosport_map)
+ MCFG_DEVICE_IO_MAP(deco16_io_map)
- DECO_222(config, m_audiocpu, 1500000/2); /* is it a real 222 (M6502 with bitswapped opcodes), or the same thing in external logic? */
- m_audiocpu->set_addrmap(AS_PROGRAM, &liberate_state::liberate_sound_map);
- m_audiocpu->set_periodic_int(FUNC(liberate_state::nmi_line_pulse), attotime::from_hz(16*60)); /* ??? */
+ MCFG_DEVICE_ADD("audiocpu", DECO_222, 1500000/2) /* is it a real 222 (M6502 with bitswapped opcodes), or the same thing in external logic? */
+ MCFG_DEVICE_PROGRAM_MAP(liberate_sound_map)
+ MCFG_DEVICE_PERIODIC_INT_DRIVER(liberate_state, nmi_line_pulse, 16*60) /* ??? */
-// config.m_minimum_quantum = attotime::from_hz(12000);
+// MCFG_QUANTUM_TIME(attotime::from_hz(12000))
MCFG_MACHINE_START_OVERRIDE(liberate_state,liberate)
MCFG_MACHINE_RESET_OVERRIDE(liberate_state,liberate)
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(1529) /* 529ms Vblank duration?? */);
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(liberate_state::screen_update_prosport));
- screen.set_palette(m_palette);
- screen.screen_vblank().set(FUNC(liberate_state::deco16_interrupt));
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_prosport);
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1529) /* 529ms Vblank duration?? */)
+ 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(liberate_state, screen_update_prosport)
+ MCFG_SCREEN_PALETTE(m_palette)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, liberate_state, deco16_interrupt))
+
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_prosport)
PALETTE(config, m_palette).set_format(palette_device::BGR_233_inverted, 256);
MCFG_VIDEO_START_OVERRIDE(liberate_state,prosport)
@@ -866,7 +867,7 @@ void liberate_state::prosport(machine_config &config)
AY8912(config, "ay1", 1500000).add_route(ALL_OUTPUTS, "mono", 0.30);
AY8912(config, "ay2", 1500000).add_route(ALL_OUTPUTS, "mono", 0.50);
-}
+MACHINE_CONFIG_END
/*************************************