summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/firebeat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/firebeat.cpp')
-rw-r--r--src/mame/drivers/firebeat.cpp117
1 files changed, 57 insertions, 60 deletions
diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp
index b5d76a95180..2b73831a706 100644
--- a/src/mame/drivers/firebeat.cpp
+++ b/src/mame/drivers/firebeat.cpp
@@ -1165,9 +1165,9 @@ WRITE_LINE_MEMBER( firebeat_state::ata_interrupt )
void firebeat_state::cdrom_config(device_t *device)
{
+ device->subdevice<cdda_device>("cdda")->add_route(0, "^^lspeaker", 1.0);
+ device->subdevice<cdda_device>("cdda")->add_route(1, "^^rspeaker", 1.0);
device = device->subdevice("cdda");
- MCFG_SOUND_ROUTE(0, "^^lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "^^rspeaker", 1.0)
}
static void firebeat_ata_devices(device_slot_interface &device)
@@ -1178,9 +1178,9 @@ static void firebeat_ata_devices(device_slot_interface &device)
MACHINE_CONFIG_START(firebeat_state::firebeat)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", PPC403GCX, XTAL(64'000'000))
- MCFG_DEVICE_PROGRAM_MAP(firebeat_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", firebeat_state, firebeat_interrupt)
+ PPC403GCX(config, m_maincpu, XTAL(64'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &firebeat_state::firebeat_map);
+ m_maincpu->set_vblank_int("screen", FUNC(firebeat_state::firebeat_interrupt));
MCFG_MACHINE_START_OVERRIDE(firebeat_state,firebeat)
MCFG_MACHINE_RESET_OVERRIDE(firebeat_state,firebeat)
@@ -1193,23 +1193,21 @@ MACHINE_CONFIG_START(firebeat_state::firebeat)
ATA_INTERFACE(config, m_ata).options(firebeat_ata_devices, "cdrom", "cdrom", true);
m_ata->irq_handler().set(FUNC(firebeat_state::ata_interrupt));
-
- MCFG_DEVICE_MODIFY("ata:1")
- MCFG_SLOT_OPTION_MACHINE_CONFIG( "cdrom", cdrom_config )
+ m_ata->slot(1).set_option_machine_config("cdrom", cdrom_config);
/* video hardware */
- MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
+ PALETTE(config, "palette", 32768).set_init("palette", FUNC(palette_device::palette_init_RRRRRGGGGGBBBBB));
K057714(config, m_gcu[0], 0);
m_gcu[0]->irq_callback().set(FUNC(firebeat_state::gcu0_interrupt));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_0)
- MCFG_SCREEN_PALETTE("palette")
+ 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(640, 480);
+ screen.set_visarea(0, 639, 0, 479);
+ screen.set_screen_update(FUNC(firebeat_state::screen_update_firebeat_0));
+ screen.set_palette("palette");
MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat)
@@ -1217,11 +1215,11 @@ MACHINE_CONFIG_START(firebeat_state::firebeat)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymz", YMZ280B, 16934400)
- MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(*this, firebeat_state, sound_irq_callback))
- MCFG_DEVICE_ADDRESS_MAP(0, ymz280b_map)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+ ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400));
+ ymz.irq_handler().set(FUNC(firebeat_state::sound_irq_callback));
+ ymz.set_addrmap(0, &firebeat_state::ymz280b_map);
+ ymz.add_route(0, "lspeaker", 1.0);
+ ymz.add_route(1, "rspeaker", 1.0);
PC16552D(config, "duart_com", 0); // pgmd to 9600baud
NS16550(config, "duart_com:chan0", XTAL(19'660'800));
@@ -1231,14 +1229,14 @@ MACHINE_CONFIG_START(firebeat_state::firebeat)
midi_chan0.out_int_callback().set(FUNC(firebeat_state::midi_uart_ch0_irq_callback));
ns16550_device &midi_chan1(NS16550(config, "duart_midi:chan1", XTAL(24'000'000)));
midi_chan1.out_int_callback().set(FUNC(firebeat_state::midi_uart_ch1_irq_callback));
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(firebeat_state::firebeat2)
+}
+void firebeat_state::firebeat2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", PPC403GCX, XTAL(64'000'000))
- MCFG_DEVICE_PROGRAM_MAP(firebeat2_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", firebeat_state, firebeat_interrupt)
+ PPC403GCX(config, m_maincpu, XTAL(64'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &firebeat_state::firebeat2_map);
+ m_maincpu->set_vblank_int("lscreen", FUNC(firebeat_state::firebeat_interrupt));
MCFG_MACHINE_START_OVERRIDE(firebeat_state,firebeat)
MCFG_MACHINE_RESET_OVERRIDE(firebeat_state,firebeat)
@@ -1251,12 +1249,10 @@ MACHINE_CONFIG_START(firebeat_state::firebeat2)
ATA_INTERFACE(config, m_ata).options(firebeat_ata_devices, "cdrom", "cdrom", true);
m_ata->irq_handler().set(FUNC(firebeat_state::ata_interrupt));
-
- MCFG_DEVICE_MODIFY("ata:1")
- MCFG_SLOT_OPTION_MACHINE_CONFIG( "cdrom", cdrom_config )
+ m_ata->slot(1).set_option_machine_config("cdrom", cdrom_config);
/* video hardware */
- MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
+ PALETTE(config, "palette", 32768).set_init("palette", FUNC(palette_device::palette_init_RRRRRGGGGGBBBBB));
K057714(config, m_gcu[0], 0);
m_gcu[0]->irq_callback().set(FUNC(firebeat_state::gcu0_interrupt));
@@ -1264,21 +1260,21 @@ MACHINE_CONFIG_START(firebeat_state::firebeat2)
K057714(config, m_gcu[1], 0);
m_gcu[1]->irq_callback().set(FUNC(firebeat_state::gcu1_interrupt));
- MCFG_SCREEN_ADD("lscreen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_0)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_SCREEN_ADD("rscreen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER));
+ lscreen.set_refresh_hz(60);
+ lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ lscreen.set_size(640, 480);
+ lscreen.set_visarea(0, 639, 0, 479);
+ lscreen.set_screen_update(FUNC(firebeat_state::screen_update_firebeat_0));
+ lscreen.set_palette("palette");
+
+ screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER));
+ rscreen.set_refresh_hz(60);
+ rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ rscreen.set_size(640, 480);
+ rscreen.set_visarea(0, 639, 0, 479);
+ rscreen.set_screen_update(FUNC(firebeat_state::screen_update_firebeat_1));
+ rscreen.set_palette("palette");
MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat)
@@ -1286,11 +1282,11 @@ MACHINE_CONFIG_START(firebeat_state::firebeat2)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymz", YMZ280B, 16934400)
- MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(*this, firebeat_state, sound_irq_callback))
- MCFG_DEVICE_ADDRESS_MAP(0, ymz280b_map)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+ ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400));
+ ymz.irq_handler().set(FUNC(firebeat_state::sound_irq_callback));
+ ymz.set_addrmap(0, &firebeat_state::ymz280b_map);
+ ymz.add_route(0, "lspeaker", 1.0);
+ ymz.add_route(1, "rspeaker", 1.0);
PC16552D(config, "duart_com", 0);
NS16550(config, "duart_com:chan0", XTAL(19'660'800));
@@ -1303,24 +1299,25 @@ MACHINE_CONFIG_START(firebeat_state::firebeat2)
MIDI_KBD(config, m_kbd[0], 31250).tx_callback().set(midi_chan0, FUNC(ins8250_uart_device::rx_w));
MIDI_KBD(config, m_kbd[1], 31250).tx_callback().set(midi_chan1, FUNC(ins8250_uart_device::rx_w));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(firebeat_state::firebeat_spu)
+void firebeat_state::firebeat_spu(machine_config &config)
+{
firebeat(config);
/* basic machine hardware */
- MCFG_DEVICE_ADD("audiocpu", M68000, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(spu_map)
+ M68000(config, m_audiocpu, 16000000);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &firebeat_state::spu_map);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("sputimer", firebeat_state, spu_timer_callback, attotime::from_hz(1000));
+ TIMER(config, "sputimer").configure_periodic(FUNC(firebeat_state::spu_timer_callback), attotime::from_hz(1000));
- MCFG_DEVICE_ADD("rf5c400", RF5C400, XTAL(16'934'400))
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+ rf5c400_device &rf5c400(RF5C400(config, "rf5c400", XTAL(16'934'400)));
+ rf5c400.add_route(0, "lspeaker", 1.0);
+ rf5c400.add_route(1, "rspeaker", 1.0);
ATA_INTERFACE(config, m_spuata).options(firebeat_ata_devices, "cdrom", nullptr, true);
m_spuata->irq_handler().set(FUNC(firebeat_state::spu_ata_interrupt));
-MACHINE_CONFIG_END
+}
/*****************************************************************************/
/* Security dongle is a Dallas DS1411 RS232 Adapter with a DS1991 Multikey iButton */