diff options
Diffstat (limited to 'src/mame/drivers/royalmah.cpp')
-rw-r--r-- | src/mame/drivers/royalmah.cpp | 259 |
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 +} /*************************************************************************** |