diff options
Diffstat (limited to 'src/mame/drivers/rungun.cpp')
-rw-r--r-- | src/mame/drivers/rungun.cpp | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp index cb332f098f0..08fd70935c7 100644 --- a/src/mame/drivers/rungun.cpp +++ b/src/mame/drivers/rungun.cpp @@ -393,37 +393,37 @@ void rungun_state::machine_reset() m_sound_status = 0; } -MACHINE_CONFIG_START(rungun_state::rng) - +void rungun_state::rng(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) - MCFG_DEVICE_PROGRAM_MAP(rungun_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rungun_state, rng_interrupt) + M68000(config, m_maincpu, 16000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rungun_state::rungun_map); + m_maincpu->set_vblank_int("screen", FUNC(rungun_state::rng_interrupt)); - MCFG_DEVICE_ADD("soundcpu", Z80, 8000000) - MCFG_DEVICE_PROGRAM_MAP(rungun_sound_map) + Z80(config, m_soundcpu, 8000000); + m_soundcpu->set_addrmap(AS_PROGRAM, &rungun_state::rungun_sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // higher if sound stutters + config.m_minimum_quantum = attotime::from_hz(6000); // higher if sound stutters - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rungun) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_rungun); EEPROM_ER5911_8BIT(config, "eeprom"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) - MCFG_SCREEN_REFRESH_RATE(59.185606) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(88, 88+416-1, 24, 24+224-1) - MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - - MCFG_PALETTE_ADD("palette", 1024) - MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_PALETTE_ENABLE_SHADOWS() - MCFG_PALETTE_ENABLE_HILIGHTS() + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); + m_screen->set_refresh_hz(59.185606); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(88, 88+416-1, 24, 24+224-1); + m_screen->set_screen_update(FUNC(rungun_state::screen_update_rng)); + m_screen->set_palette(m_palette); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + + PALETTE(config, m_palette, 1024); + m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR); + m_palette->enable_shadows(); + m_palette->enable_hilights(); K053936(config, m_k053936, 0); m_k053936->set_offsets(34, 9); @@ -438,10 +438,10 @@ MACHINE_CONFIG_START(rungun_state::rng) m_k053252->set_offsets(9*8, 24); m_k053252->set_screen("screen"); - MCFG_PALETTE_ADD("palette2", 1024) - MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_PALETTE_ENABLE_SHADOWS() - MCFG_PALETTE_ENABLE_HILIGHTS() + PALETTE(config, m_palette2, 1024); + m_palette2->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR); + m_palette2->enable_shadows(); + m_palette2->enable_hilights(); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -450,38 +450,38 @@ MACHINE_CONFIG_START(rungun_state::rng) K054321(config, m_k054321, "lspeaker", "rspeaker"); // SFX - MCFG_DEVICE_ADD("k054539_1", K054539, 18.432_MHz_XTAL) - MCFG_DEVICE_ADDRESS_MAP(0, k054539_map) - MCFG_K054539_TIMER_HANDLER(WRITELINE(*this, rungun_state, k054539_nmi_gen)) - MCFG_SOUND_ROUTE(0, "rspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) + K054539(config, m_k054539_1, 18.432_MHz_XTAL); + m_k054539_1->set_addrmap(0, &rungun_state::k054539_map); + m_k054539_1->timer_handler().set(FUNC(rungun_state::k054539_nmi_gen)); + m_k054539_1->add_route(0, "rspeaker", 1.0); + m_k054539_1->add_route(1, "lspeaker", 1.0); // BGM, volumes handtuned to make SFXs audible (still not 100% right tho) - MCFG_DEVICE_ADD("k054539_2", K054539, 18.432_MHz_XTAL) - MCFG_DEVICE_ADDRESS_MAP(0, k054539_map) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.6) - MCFG_SOUND_ROUTE(1, "lspeaker", 0.6) -MACHINE_CONFIG_END + K054539(config, m_k054539_2, 18.432_MHz_XTAL); + m_k054539_2->set_addrmap(0, &rungun_state::k054539_map); + m_k054539_2->add_route(0, "rspeaker", 0.6); + m_k054539_2->add_route(1, "lspeaker", 0.6); +} // for dual-screen output Run and Gun requires the video de-multiplexer board connected to the Jamma output, this gives you 2 Jamma connectors, one for each screen. // this means when operated as a single dedicated cabinet the game runs at 60fps, and has smoother animations than when operated as a twin setup where each // screen only gets an update every other frame. -MACHINE_CONFIG_START(rungun_state::rng_dual) +void rungun_state::rng_dual(machine_config &config) +{ rng(config); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng_dual_left) - - MCFG_SCREEN_ADD("demultiplex2", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) - MCFG_SCREEN_REFRESH_RATE(59.185606) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(88, 88+416-1, 24, 24+224-1) - MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng_dual_right) - MCFG_SCREEN_PALETTE("palette2") + m_screen->set_screen_update(FUNC(rungun_state::screen_update_rng_dual_left)); + + screen_device &demultiplex2(SCREEN(config, "demultiplex2", SCREEN_TYPE_RASTER)); + demultiplex2.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); + demultiplex2.set_refresh_hz(59.185606); + demultiplex2.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + demultiplex2.set_size(64*8, 32*8); + demultiplex2.set_visarea(88, 88+416-1, 24, 24+224-1); + demultiplex2.set_screen_update(FUNC(rungun_state::screen_update_rng_dual_right)); + demultiplex2.set_palette(m_palette2); m_k053252->set_slave_screen("demultiplex2"); -MACHINE_CONFIG_END +} // Older non-US 53936/A13 roms were all returning bad from the mask ROM check. Using the US ROM on non-US reports good therefore I guess that data matches for that |