summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/konami/rungun.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/konami/rungun.cpp')
-rw-r--r--src/mame/konami/rungun.cpp23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/mame/konami/rungun.cpp b/src/mame/konami/rungun.cpp
index a8cbb391550..2b015b06cdf 100644
--- a/src/mame/konami/rungun.cpp
+++ b/src/mame/konami/rungun.cpp
@@ -181,7 +181,7 @@ uint16_t rungun_state::sysregs_r(offs_t offset, uint16_t mem_mask)
bit9 : screen output select
*/
{
- uint8_t field_bit = m_screen->frame_number() & 1;
+ uint8_t field_bit = ~m_screen->frame_number() & 1;
if (m_single_screen_mode)
field_bit = 1;
return (m_system->read() & 0xfdff) | (field_bit << 9);
@@ -418,6 +418,7 @@ uint32_t rungun_state::screen_update_rng(screen_device &screen, bitmap_ind16 &bi
{
bitmap.fill(m_palette->black_pen(), cliprect);
screen.priority().fill(0, cliprect);
+
m_current_display_bank = m_screen->frame_number() & 1;
if (m_single_screen_mode)
m_current_display_bank = 0;
@@ -441,21 +442,21 @@ uint32_t rungun_state::screen_update_rng(screen_device &screen, bitmap_ind16 &bi
// the 60hz signal gets split between 2 screens
uint32_t rungun_state::screen_update_rng_dual_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- int m_current_display_bank = m_screen->frame_number() & 1;
+ int current_display_bank = m_screen->frame_number() & 1;
- if (!m_current_display_bank)
+ if (!current_display_bank)
screen_update_rng(screen, m_rng_dual_demultiplex_left_temp, cliprect);
else
screen_update_rng(screen, m_rng_dual_demultiplex_right_temp, cliprect);
- copybitmap( bitmap, m_rng_dual_demultiplex_left_temp, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_rng_dual_demultiplex_left_temp, 0, 0, 0, 0, cliprect);
return 0;
}
// this depends upon the first screen being updated, and the bitmap being copied to the temp bitmap
uint32_t rungun_state::screen_update_rng_dual_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- copybitmap( bitmap, m_rng_dual_demultiplex_right_temp, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_rng_dual_demultiplex_right_temp, 0, 0, 0, 0, cliprect);
return 0;
}
@@ -655,7 +656,6 @@ void rungun_state::rng(machine_config &config)
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
m_screen->set_raw(32_MHz_XTAL / 4, 512, 88, 88+416, 264, 24, 24+224);
m_screen->set_screen_update(FUNC(rungun_state::screen_update_rng));
m_screen->set_palette(m_palette);
@@ -708,19 +708,10 @@ void rungun_state::rng_dual(machine_config &config)
{
rng(config);
- // FIXME: raw parameters cause graphics to desync in dual configuration
- 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_dual_left));
screen_device &screen2(SCREEN(config, "screen2", SCREEN_TYPE_RASTER));
- screen2.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
- screen2.set_refresh_hz(59.185606);
- screen2.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen2.set_size(64*8, 32*8);
- screen2.set_visarea(88, 88+416-1, 24, 24+224-1);
+ screen2.set_raw(32_MHz_XTAL / 4, 512, 88, 88+416, 264, 24, 24+224);
screen2.set_screen_update(FUNC(rungun_state::screen_update_rng_dual_right));
screen2.set_palette(m_palette2);