summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/royalmah.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/royalmah.cpp')
-rw-r--r--src/mame/drivers/royalmah.cpp259
1 files changed, 132 insertions, 127 deletions
diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp
index d6d61f4ff71..e7911dd960b 100644
--- a/src/mame/drivers/royalmah.cpp
+++ b/src/mame/drivers/royalmah.cpp
@@ -3532,26 +3532,26 @@ static INPUT_PORTS_START( mjvegasa )
INPUT_PORTS_END
-MACHINE_CONFIG_START(royalmah_state::royalmah)
-
+void royalmah_state::royalmah(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, 18432000/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(royalmah_map)
- MCFG_DEVICE_IO_MAP(royalmah_iomap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold)
+ Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::royalmah_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap);
+ m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
PALETTE(config, "palette", FUNC(royalmah_state::royalmah_palette), 16*4);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_DRIVER(royalmah_state, screen_update_royalmah)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 255, 8, 247);
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_screen_update(FUNC(royalmah_state::screen_update_royalmah));
+ screen.set_palette("palette");
/* sound hardware */
SPEAKER(config, "speaker").front_center();
@@ -3560,32 +3560,32 @@ MACHINE_CONFIG_START(royalmah_state::royalmah)
m_ay->port_a_read_callback().set(FUNC(royalmah_state::player_1_port_r));
m_ay->port_b_read_callback().set(FUNC(royalmah_state::player_2_port_r));
m_ay->add_route(ALL_OUTPUTS, "speaker", 0.33);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::janoh)
+void royalmah_state::janoh(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(janoh_map)
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::janoh_map);
- MCFG_DEVICE_ADD("sub", Z80, 4000000) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(janoh_sub_map)
- MCFG_DEVICE_IO_MAP(janoh_sub_iomap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold)
-MACHINE_CONFIG_END
+ z80_device &sub(Z80(config, "sub", 4000000)); /* 4 MHz ? */
+ sub.set_addrmap(AS_PROGRAM, &royalmah_state::janoh_sub_map);
+ sub.set_addrmap(AS_IO, &royalmah_state::janoh_sub_iomap);
+ sub.set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold));
+}
-MACHINE_CONFIG_START(royalmah_state::jansou)
+void royalmah_state::jansou(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(jansou_map)
- MCFG_DEVICE_IO_MAP(royalmah_iomap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap);
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4.000 MHz */
- MCFG_DEVICE_PROGRAM_MAP(jansou_sub_map)
- MCFG_DEVICE_IO_MAP(jansou_sub_iomap)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(royalmah_state, irq0_line_hold, 4000000/512)
+ Z80(config, m_audiocpu, 4000000); /* 4.000 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_sub_map);
+ m_audiocpu->set_addrmap(AS_IO, &royalmah_state::jansou_sub_iomap);
+ m_audiocpu->set_periodic_int(FUNC(royalmah_state::irq0_line_hold), attotime::from_hz(4000000/512));
GENERIC_LATCH_8(config, m_soundlatch);
@@ -3593,74 +3593,74 @@ MACHINE_CONFIG_START(royalmah_state::jansou)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::dondenmj)
+void royalmah_state::dondenmj(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(dondenmj_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::dondenmj_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::tahjong)
+void royalmah_state::tahjong(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(tahjong_map)
- MCFG_DEVICE_IO_MAP(tahjong_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::tahjong_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::tahjong_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::makaijan)
+void royalmah_state::makaijan(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(makaijan_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::makaijan_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::daisyari)
+void royalmah_state::daisyari(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(daisyari_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::daisyari_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjclub)
+void royalmah_state::mjclub(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(mjclub_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjclub_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjyarou)
+void royalmah_state::mjyarou(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjyarou_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjyarou_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::ippatsu)
+void royalmah_state::ippatsu(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(ippatsu_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::ippatsu_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::janyoup2)
+void royalmah_state::janyoup2(machine_config &config)
+{
ippatsu(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(XTAL(18'432'000)/4) // unknown divider
- MCFG_DEVICE_IO_MAP(janyoup2_iomap)
+ m_maincpu->set_clock(XTAL(18'432'000)/4); // unknown divider
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::janyoup2_iomap);
h46505_device &crtc(H46505(config, "crtc", XTAL(18'432'000)/12)); // unknown divider
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(4);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::seljan)
+void royalmah_state::seljan(machine_config &config)
+{
janyoup2(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(seljan_map)
- MCFG_DEVICE_IO_MAP(seljan_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::seljan_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::seljan_iomap);
+}
INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq)
{
@@ -3668,12 +3668,12 @@ INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq)
device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-MACHINE_CONFIG_START(royalmah_state::suzume)
+void royalmah_state::suzume(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(suzume_iomap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, suzume_irq)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::suzume_iomap);
+ m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::suzume_irq));
+}
void royalmah_state::jongshin(machine_config &config)
{
@@ -3681,41 +3681,41 @@ void royalmah_state::jongshin(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &royalmah_state::jongshin_iomap);
}
-MACHINE_CONFIG_START(royalmah_state::tontonb)
+void royalmah_state::tontonb(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(tontonb_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::tontonb_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjdiplob)
+void royalmah_state::mjdiplob(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjdiplob_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjdiplob_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::majs101b)
+void royalmah_state::majs101b(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(majs101b_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::majs101b_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjapinky)
+void royalmah_state::mjapinky(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mjapinky_map)
- MCFG_DEVICE_IO_MAP(mjapinky_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::mjapinky_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjapinky_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjderngr)
+void royalmah_state::mjderngr(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjderngr_iomap)
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjderngr_iomap);
/* video hardware */
auto &palette(*subdevice<palette_device>("palette"));
palette.set_entries(16*32);
palette.set_init(FUNC(royalmah_state::mjderngr_palette));
-MACHINE_CONFIG_END
+}
void royalmah_state::janptr96(machine_config &config)
{
@@ -3737,7 +3737,8 @@ void royalmah_state::janptr96(machine_config &config)
}
-MACHINE_CONFIG_START(royalmah_state::mjifb)
+void royalmah_state::mjifb(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjifb_map);
@@ -3750,13 +3751,14 @@ MACHINE_CONFIG_START(royalmah_state::mjifb)
tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r));
tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+}
-MACHINE_CONFIG_START(royalmah_state::mjdejavu)
+void royalmah_state::mjdejavu(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjdejavu_map);
@@ -3769,43 +3771,46 @@ MACHINE_CONFIG_START(royalmah_state::mjdejavu)
tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r));
tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+}
-MACHINE_CONFIG_START(royalmah_state::mjtensin)
+void royalmah_state::mjtensin(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjtensin_map);
tmp.port_read<3>().set(FUNC(royalmah_state::mjtensin_p3_r));
tmp.port_write<4>().set(FUNC(royalmah_state::mjtensin_p4_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::cafetime)
+void royalmah_state::cafetime(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::cafetime_map);
tmp.port_write<3>().set(FUNC(royalmah_state::cafetime_p3_w));
tmp.port_write<4>().set(FUNC(royalmah_state::cafetime_p4_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::mjvegasa)
+void royalmah_state::mjvegasa(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, XTAL(8'000'000))); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjvegasa_map);
@@ -3813,13 +3818,13 @@ MACHINE_CONFIG_START(royalmah_state::mjvegasa)
tmp.port_write<3>().set(FUNC(royalmah_state::mjvegasa_p3_w));
tmp.port_write<4>().set(FUNC(royalmah_state::mjvegasa_p4_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-MACHINE_CONFIG_END
+}
/***************************************************************************