summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/psikyo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/psikyo.cpp')
-rw-r--r--src/mame/drivers/psikyo.cpp194
1 files changed, 94 insertions, 100 deletions
diff --git a/src/mame/drivers/psikyo.cpp b/src/mame/drivers/psikyo.cpp
index 935ca51809d..9f9f49b00f4 100644
--- a/src/mame/drivers/psikyo.cpp
+++ b/src/mame/drivers/psikyo.cpp
@@ -1023,44 +1023,43 @@ void psikyo_state::machine_reset()
***************************************************************************/
-MACHINE_CONFIG_START(psikyo_state::sngkace)
-
+void psikyo_state::sngkace(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68EC020, XTAL(32'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(sngkace_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", psikyo_state, irq1_line_hold)
+ M68EC020(config, m_maincpu, XTAL(32'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &psikyo_state::sngkace_map);
+ m_maincpu->set_vblank_int("screen", FUNC(psikyo_state::irq1_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(32'000'000)/8) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(sngkace_sound_map)
- MCFG_DEVICE_IO_MAP(sngkace_sound_io_map)
+ Z80(config, m_audiocpu, XTAL(32'000'000)/8); /* verified on pcb */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &psikyo_state::sngkace_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &psikyo_state::sngkace_sound_io_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.3)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
- MCFG_SCREEN_SIZE(320, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, psikyo_state, screen_vblank_psikyo))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_psikyo)
- MCFG_PALETTE_ADD("palette", 0x1000)
- MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(59.3);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ // we're using PORT_VBLANK
+ m_screen->set_size(320, 256);
+ m_screen->set_visarea(0, 320-1, 0, 256-32-1);
+ m_screen->set_screen_update(FUNC(psikyo_state::screen_update_psikyo));
+ m_screen->screen_vblank().set(FUNC(psikyo_state::screen_vblank_psikyo));
+ m_screen->set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_psikyo);
+ PALETTE(config, m_palette, 0x1000).set_format(PALETTE_FORMAT_xRRRRRGGGGGBBBBB);
MCFG_VIDEO_START_OVERRIDE(psikyo_state,sngkace)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(32'000'000)/4) /* verified on pcb */
- MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(32'000'000)/4)); /* verified on pcb */
+ ymsnd.irq_handler().set_inputline("audiocpu", 0);
+ ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_soundlatch->set_separate_acknowledge(true);
-MACHINE_CONFIG_END
+}
@@ -1069,81 +1068,79 @@ MACHINE_CONFIG_END
***************************************************************************/
-MACHINE_CONFIG_START(psikyo_state::gunbird)
-
+void psikyo_state::gunbird(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68EC020, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(gunbird_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", psikyo_state, irq1_line_hold)
+ M68EC020(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &psikyo_state::gunbird_map);
+ m_maincpu->set_vblank_int("screen", FUNC(psikyo_state::irq1_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* ! LZ8420M (Z80 core) ! */
- MCFG_DEVICE_PROGRAM_MAP(gunbird_sound_map)
- MCFG_DEVICE_IO_MAP(gunbird_sound_io_map)
+ Z80(config, m_audiocpu, 4000000); /* ! LZ8420M (Z80 core) ! */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &psikyo_state::gunbird_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &psikyo_state::gunbird_sound_io_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.3)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
- MCFG_SCREEN_SIZE(320, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, psikyo_state, screen_vblank_psikyo))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_psikyo)
- MCFG_PALETTE_ADD("palette", 0x1000)
- MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(59.3);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ // we're using PORT_VBLANK
+ m_screen->set_size(320, 256);
+ m_screen->set_visarea(0, 320-1, 0, 256-32-1);
+ m_screen->set_screen_update(FUNC(psikyo_state::screen_update_psikyo));
+ m_screen->screen_vblank().set(FUNC(psikyo_state::screen_vblank_psikyo));
+ m_screen->set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_psikyo);
+ PALETTE(config, m_palette, 0x1000).set_format(PALETTE_FORMAT_xRRRRRGGGGGBBBBB);
MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000)
- MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000));
+ ymsnd.irq_handler().set_inputline("audiocpu", 0);
+ ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_soundlatch->set_separate_acknowledge(true);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(psikyo_state::s1945jn)
+void psikyo_state::s1945jn(machine_config &config)
+{
gunbird(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(s1945jn_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(psikyo_state::s1945bl) /* Bootleg hardware based on the unprotected Japanese Strikers 1945 set */
+ m_maincpu->set_addrmap(AS_PROGRAM, &psikyo_state::s1945jn_map);
+}
+void psikyo_state::s1945bl(machine_config &config) /* Bootleg hardware based on the unprotected Japanese Strikers 1945 set */
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68EC020, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(psikyo_bootleg_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", psikyo_state, irq1_line_hold)
+ M68EC020(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &psikyo_state::psikyo_bootleg_map);
+ m_maincpu->set_vblank_int("screen", FUNC(psikyo_state::irq1_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.3)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
- MCFG_SCREEN_SIZE(320, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo_bootleg)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, psikyo_state, screen_vblank_psikyo))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_psikyo)
- MCFG_PALETTE_ADD("palette", 0x1000)
- MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(59.3);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ // we're using PORT_VBLANK
+ m_screen->set_size(320, 256);
+ m_screen->set_visarea(0, 320-1, 0, 256-32-1);
+ m_screen->set_screen_update(FUNC(psikyo_state::screen_update_psikyo_bootleg));
+ m_screen->screen_vblank().set(FUNC(psikyo_state::screen_vblank_psikyo));
+ m_screen->set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_psikyo);
+ PALETTE(config, m_palette, 0x1000).set_format(PALETTE_FORMAT_xRRRRRGGGGGBBBBB);
MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/16, okim6295_device::PIN7_LOW) // ?? clock
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, s1945bl_oki_map)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, XTAL(16'000'000)/16, okim6295_device::PIN7_LOW); // ?? clock
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &psikyo_state::s1945bl_oki_map);
+}
@@ -1151,48 +1148,45 @@ MACHINE_CONFIG_END
Strikers 1945 / Tengai
***************************************************************************/
-
-MACHINE_CONFIG_START(psikyo_state::s1945)
-
+void psikyo_state::s1945(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68EC020, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(s1945_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", psikyo_state, irq1_line_hold)
+ M68EC020(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &psikyo_state::s1945_map);
+ m_maincpu->set_vblank_int("screen", FUNC(psikyo_state::irq1_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* ! LZ8420M (Z80 core) ! */
- MCFG_DEVICE_PROGRAM_MAP(gunbird_sound_map)
- MCFG_DEVICE_IO_MAP(s1945_sound_io_map)
+ Z80(config, m_audiocpu, 4000000); /* ! LZ8420M (Z80 core) ! */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &psikyo_state::gunbird_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &psikyo_state::s1945_sound_io_map);
- MCFG_DEVICE_ADD("mcu", PIC16C57, 4000000) /* 4 MHz? */
- MCFG_DEVICE_DISABLE() /* Internal ROM aren't dumped */
+ PIC16C57(config, "mcu", 4000000).set_disable(); /* 4 MHz? */ /* Internal ROM is't dumped */
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.90) /* verified on pcb */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
- MCFG_SCREEN_SIZE(320, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, psikyo_state, screen_vblank_psikyo))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_psikyo)
- MCFG_PALETTE_ADD("palette", 0x1000)
- MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(59.90); /* verified on pcb */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ // we're using PORT_VBLANK
+ m_screen->set_size(320, 256);
+ m_screen->set_visarea(0, 320-1, 0, 256-32-1);
+ m_screen->set_screen_update(FUNC(psikyo_state::screen_update_psikyo));
+ m_screen->screen_vblank().set(FUNC(psikyo_state::screen_vblank_psikyo));
+ m_screen->set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_psikyo);
+ PALETTE(config, m_palette, 0x1000).set_format(PALETTE_FORMAT_xRRRRRGGGGGBBBBB);
MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymf", YMF278B, YMF278B_STD_CLOCK)
- MCFG_YMF278B_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ ymf278b_device &ymf(YMF278B(config, "ymf", YMF278B_STD_CLOCK));
+ ymf.irq_handler().set_inputline("audiocpu", 0);
+ ymf.add_route(ALL_OUTPUTS, "mono", 1.0);
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_soundlatch->set_separate_acknowledge(true);
-MACHINE_CONFIG_END
+}
/***************************************************************************