diff options
Diffstat (limited to 'src/mame/drivers/gberet.cpp')
-rw-r--r-- | src/mame/drivers/gberet.cpp | 70 |
1 files changed, 34 insertions, 36 deletions
diff --git a/src/mame/drivers/gberet.cpp b/src/mame/drivers/gberet.cpp index 51f1e7048bb..c361e9e33af 100644 --- a/src/mame/drivers/gberet.cpp +++ b/src/mame/drivers/gberet.cpp @@ -227,7 +227,7 @@ void gberet_state::gberetb_map(address_map &map) map(0xe900, 0xe9ff).ram().share("spriteram"); map(0xf000, 0xf000).nopw(); // coin counter not supported map(0xf200, 0xf200).portr("DSW2"); - map(0xf400, 0xf400).w(m_sn, FUNC(sn76489a_device::command_w)); + map(0xf400, 0xf400).w(m_sn, FUNC(sn76489a_device::write)); map(0xf600, 0xf600).portr("P2"); map(0xf601, 0xf601).portr("DSW1"); map(0xf602, 0xf602).portr("P1"); @@ -408,25 +408,25 @@ MACHINE_RESET_MEMBER(gberet_state,gberet) m_spritebank = 0; } -MACHINE_CONFIG_START(gberet_state::gberet) - +void gberet_state::gberet(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) // X1S (generated by a custom IC) - MCFG_DEVICE_PROGRAM_MAP(gberet_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gberet_state, gberet_interrupt_tick, "screen", 0, 16) + Z80(config, m_maincpu, XTAL(18'432'000)/6); // X1S (generated by a custom IC) + m_maincpu->set_addrmap(AS_PROGRAM, &gberet_state::gberet_map); + TIMER(config, "scantimer").configure_scanline(FUNC(gberet_state::gberet_interrupt_tick), "screen", 0, 16); WATCHDOG_TIMER(config, "watchdog"); MCFG_MACHINE_START_OVERRIDE(gberet_state,gberet) MCFG_MACHINE_RESET_OVERRIDE(gberet_state,gberet) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60.60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberet) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60.60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(1*8, 31*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(gberet_state::screen_update_gberet)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gberet); PALETTE(config, m_palette, FUNC(gberet_state::gberet_palette), 2*16*16, 32); @@ -435,37 +435,36 @@ MACHINE_CONFIG_START(gberet_state::gberet) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489A, XTAL(18'432'000)/12) /* type verified on real and bootleg pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + SN76489A(config, m_sn, XTAL(18'432'000)/12).add_route(ALL_OUTPUTS, "mono", 1.0); /* type verified on real and bootleg pcb */ +} -MACHINE_CONFIG_START(gberet_state::mrgoemon) +void gberet_state::mrgoemon(machine_config &config) +{ gberet(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mrgoemon_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(gberet_state::gberetb) + m_maincpu->set_addrmap(AS_PROGRAM, &gberet_state::mrgoemon_map); +} +void gberet_state::gberetb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(20'000'000)/4) // divider guessed - MCFG_DEVICE_PROGRAM_MAP(gberetb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gberet_state, irq0_line_assert) - MCFG_DEVICE_PERIODIC_INT_DRIVER(gberet_state, nmi_line_assert, XTAL(20'000'000)/0x8000) // divider guessed + Z80(config, m_maincpu, XTAL(20'000'000)/4); // divider guessed + m_maincpu->set_addrmap(AS_PROGRAM, &gberet_state::gberetb_map); + m_maincpu->set_vblank_int("screen", FUNC(gberet_state::irq0_line_assert)); + m_maincpu->set_periodic_int(FUNC(gberet_state::nmi_line_assert), attotime::from_hz(XTAL(20'000'000)/0x8000)); // divider guessed MCFG_MACHINE_START_OVERRIDE(gberet_state,gberet) MCFG_MACHINE_RESET_OVERRIDE(gberet_state,gberet) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberetb) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(1*8, 31*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(gberet_state::screen_update_gberetb)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gberetb); PALETTE(config, m_palette, FUNC(gberet_state::gberet_palette), 2*16*16, 32); @@ -474,9 +473,8 @@ MACHINE_CONFIG_START(gberet_state::gberetb) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489A, XTAL(20'000'000)/12) // divider guessed - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + SN76489A(config, m_sn, XTAL(20'000'000)/12).add_route(ALL_OUTPUTS, "mono", 1.0); // divider guessed +} /************************************* |