summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-03-08 18:18:17 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2018-03-08 18:18:17 +0100
commit48ade6ac7b4368eb76888667c9cdc2b4bd689a1a (patch)
treeec675119ae6418b8cc99dfef5a0a916c9f735ab5 /src/mame
parentaa5f2c5ac7c1be5f54ce752f817b87260e0fd4ca (diff)
misc first_screen() removal (nw)
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/drivers/apple1.cpp41
-rw-r--r--src/mame/drivers/casloopy.cpp31
-rw-r--r--src/mame/drivers/lynx.cpp3
-rw-r--r--src/mame/drivers/popper.cpp40
-rw-r--r--src/mame/drivers/rungun.cpp2
-rw-r--r--src/mame/drivers/tk2000.cpp39
-rw-r--r--src/mame/includes/lynx.h75
-rw-r--r--src/mame/includes/rungun.h17
-rw-r--r--src/mame/machine/lynx.cpp2
-rw-r--r--src/mame/video/laserbat.cpp6
-rw-r--r--src/mame/video/rungun.cpp4
11 files changed, 145 insertions, 115 deletions
diff --git a/src/mame/drivers/apple1.cpp b/src/mame/drivers/apple1.cpp
index 46396fcc91e..b513796eb9e 100644
--- a/src/mame/drivers/apple1.cpp
+++ b/src/mame/drivers/apple1.cpp
@@ -96,6 +96,7 @@ public:
m_maincpu(*this, A1_CPU_TAG),
m_pia(*this, A1_PIA_TAG),
m_ram(*this, RAM_TAG),
+ m_screen(*this, "screen"),
m_basicram(*this, A1_BASICRAM_TAG),
m_kb0(*this, "KEY0"),
m_kb1(*this, "KEY1"),
@@ -104,14 +105,33 @@ public:
m_kbspecial(*this, "KBSPECIAL")
{ }
+ void apple1(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+private:
required_device<cpu_device> m_maincpu;
required_device<pia6821_device> m_pia;
required_device<ram_device> m_ram;
+ required_device<screen_device> m_screen;
required_shared_ptr<uint8_t> m_basicram;
required_ioport m_kb0, m_kb1, m_kb2, m_kb3, m_kbspecial;
- virtual void machine_start() override;
- virtual void machine_reset() override;
+ uint8_t *m_ram_ptr, *m_char_ptr;
+ int m_ram_size, m_char_size;
+
+ uint8_t m_vram[40*24];
+ int m_cursx, m_cursy;
+
+ bool m_reset_down;
+ bool m_clear_down;
+
+ uint8_t m_transchar;
+ uint16_t m_lastports[4];
+
+ emu_timer *m_ready_start_timer, *m_ready_end_timer, *m_kbd_strobe_timer;
DECLARE_PALETTE_INIT(apple2);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -126,25 +146,10 @@ public:
TIMER_CALLBACK_MEMBER(ready_end_cb);
TIMER_CALLBACK_MEMBER(keyboard_strobe_cb);
- void apple1(machine_config &config);
void apple1_map(address_map &map);
-private:
- uint8_t *m_ram_ptr, *m_char_ptr;
- int m_ram_size, m_char_size;
-
- uint8_t m_vram[40*24];
- int m_cursx, m_cursy;
-
- bool m_reset_down;
- bool m_clear_down;
-
- uint8_t m_transchar;
- uint16_t m_lastports[4];
void plot_text_character(bitmap_ind16 &bitmap, int xpos, int ypos, int xscale, uint32_t code, const uint8_t *textgfx_data, uint32_t textgfx_datalen);
void poll_keyboard();
-
- emu_timer *m_ready_start_timer, *m_ready_end_timer, *m_kbd_strobe_timer;
};
static const uint8_t apple1_keymap[] =
@@ -493,7 +498,7 @@ WRITE_LINE_MEMBER(apple1_state::pia_display_gate_w)
// falling edge means start the display timer
if (state == CLEAR_LINE)
{
- m_ready_start_timer->adjust(machine().first_screen()->time_until_pos(m_cursy, m_cursx));
+ m_ready_start_timer->adjust(m_screen->time_until_pos(m_cursy, m_cursx));
}
}
diff --git a/src/mame/drivers/casloopy.cpp b/src/mame/drivers/casloopy.cpp
index 7c4eaf05e1b..a4eadcd402d 100644
--- a/src/mame/drivers/casloopy.cpp
+++ b/src/mame/drivers/casloopy.cpp
@@ -167,25 +167,34 @@ public:
m_maincpu(*this, "maincpu"),
m_cart(*this, "cartslot"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_screen(*this, "screen") { }
+ void casloopy(machine_config &config);
+
+ DECLARE_DRIVER_INIT(casloopy);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+
+private:
required_shared_ptr<uint32_t> m_bios_rom;
required_shared_ptr<uint32_t> m_vregs;
required_device<cpu_device> m_maincpu;
required_device<generic_slot_device> m_cart;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_device<screen_device> m_screen;
std::unique_ptr<uint16_t[]> m_paletteram;
std::unique_ptr<uint8_t[]> m_vram;
std::unique_ptr<uint8_t[]> m_bitmap_vram;
uint16_t sh7021_regs[0x100];
int m_gfx_index;
- DECLARE_DRIVER_INIT(casloopy);
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void video_start() override;
- uint32_t screen_update_casloopy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_READ16_MEMBER(vregs_r);
DECLARE_WRITE16_MEMBER(vregs_w);
DECLARE_READ16_MEMBER(pal_r);
@@ -198,7 +207,7 @@ public:
DECLARE_READ8_MEMBER(bitmap_r);
DECLARE_WRITE8_MEMBER(bitmap_w);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(loopy_cart);
- void casloopy(machine_config &config);
+
void casloopy_map(address_map &map);
void casloopy_sub_map(address_map &map);
};
@@ -244,7 +253,7 @@ void casloopy_state::video_start()
m_gfxdecode->set_gfx(m_gfx_index+1, std::make_unique<gfx_element>(m_palette, casloopy_8bpp_layout, m_vram.get(), 0, 1, 0));
}
-uint32_t casloopy_state::screen_update_casloopy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+uint32_t casloopy_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
gfx_element *gfx = m_gfxdecode->gfx(m_gfx_index);
int x,y;
@@ -308,11 +317,11 @@ READ16_MEMBER(casloopy_state::vregs_r)
{
if(offset == 4/2)
{
- return (machine().first_screen()->vblank() << 8) | (machine().rand() & 0xff); // vblank + vpos?
+ return (m_screen->vblank() << 8) | (machine().rand() & 0xff); // vblank + vpos?
}
if(offset == 2/2)
- return machine().rand();/*(machine().first_screen()->hblank() << 8) | (machine().first_screen()->hpos() & 0xff);*/ // hblank + hpos?
+ return machine().rand();/*(m_screen->hblank() << 8) | (m_screen->hpos() & 0xff);*/ // hblank + hpos?
if(offset == 0/2)
return machine().rand(); // pccllect
@@ -522,7 +531,7 @@ MACHINE_CONFIG_START(casloopy_state::casloopy)
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
// MCFG_SCREEN_SIZE(444, 263)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(casloopy_state, screen_update_casloopy)
+ MCFG_SCREEN_UPDATE_DRIVER(casloopy_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 512)
diff --git a/src/mame/drivers/lynx.cpp b/src/mame/drivers/lynx.cpp
index 24d89a0a289..3e7d54aa1a6 100644
--- a/src/mame/drivers/lynx.cpp
+++ b/src/mame/drivers/lynx.cpp
@@ -13,7 +13,6 @@
#include "audio/lynx.h"
#include "cpu/m6502/m65sc02.h"
-#include "screen.h"
#include "softlist.h"
#include "speaker.h"
@@ -60,7 +59,7 @@ PALETTE_INIT_MEMBER(lynx_state, lynx)
void lynx_state::video_start()
{
- machine().first_screen()->register_screen_bitmap(m_bitmap);
+ m_screen->register_screen_bitmap(m_bitmap);
}
uint32_t lynx_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/popper.cpp b/src/mame/drivers/popper.cpp
index f1b6be4c994..13bd773ca13 100644
--- a/src/mame/drivers/popper.cpp
+++ b/src/mame/drivers/popper.cpp
@@ -69,25 +69,8 @@ public:
m_nmi_enable(0), m_back_color(0), m_vram_page(0)
{ }
- DECLARE_PALETTE_INIT(popper);
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TILE_GET_INFO_MEMBER(layer0_tile_info);
- TILE_GET_INFO_MEMBER(layer1_tile_info);
-
- DECLARE_WRITE8_MEMBER(nmi_control_w);
- DECLARE_WRITE8_MEMBER(crt_direction_w);
- DECLARE_WRITE8_MEMBER(back_color_select_w);
- DECLARE_WRITE8_MEMBER(vram_page_select_w);
- DECLARE_WRITE8_MEMBER(intcycle_w);
- DECLARE_READ8_MEMBER(subcpu_nmi_r);
- DECLARE_READ8_MEMBER(subcpu_reset_r);
- DECLARE_WRITE8_MEMBER(ay1_w);
- DECLARE_READ8_MEMBER(watchdog_clear_r);
- DECLARE_READ8_MEMBER(inputs_r);
-
void popper(machine_config &config);
- void main_map(address_map &map);
- void sub_map(address_map &map);
+
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
@@ -111,6 +94,25 @@ private:
int m_nmi_enable;
int m_back_color;
int m_vram_page;
+
+ void main_map(address_map &map);
+ void sub_map(address_map &map);
+
+ DECLARE_PALETTE_INIT(popper);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ TILE_GET_INFO_MEMBER(layer0_tile_info);
+ TILE_GET_INFO_MEMBER(layer1_tile_info);
+
+ DECLARE_WRITE8_MEMBER(nmi_control_w);
+ DECLARE_WRITE8_MEMBER(crt_direction_w);
+ DECLARE_WRITE8_MEMBER(back_color_select_w);
+ DECLARE_WRITE8_MEMBER(vram_page_select_w);
+ DECLARE_WRITE8_MEMBER(intcycle_w);
+ DECLARE_READ8_MEMBER(subcpu_nmi_r);
+ DECLARE_READ8_MEMBER(subcpu_reset_r);
+ DECLARE_WRITE8_MEMBER(ay1_w);
+ DECLARE_READ8_MEMBER(watchdog_clear_r);
+ DECLARE_READ8_MEMBER(inputs_r);
};
@@ -509,7 +511,7 @@ void popper_state::machine_start()
// allocate and start scanline timer
m_scanline_timer = timer_alloc(0);
- m_scanline_timer->adjust(machine().first_screen()->time_until_pos(0, 0));
+ m_scanline_timer->adjust(m_screen->time_until_pos(0, 0));
// register for save states
save_item(NAME(m_nmi_enable));
diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp
index 0be791f2a65..400fae0b805 100644
--- a/src/mame/drivers/rungun.cpp
+++ b/src/mame/drivers/rungun.cpp
@@ -69,7 +69,7 @@ READ16_MEMBER(rungun_state::rng_sysregs_r)
bit9 : screen output select
*/
{
- uint8_t field_bit = machine().first_screen()->frame_number() & 1;
+ uint8_t field_bit = m_screen->frame_number() & 1;
if(m_single_screen_mode == true)
field_bit = 1;
return (ioport("SYSTEM")->read() & 0xfdff) | (field_bit << 9);
diff --git a/src/mame/drivers/tk2000.cpp b/src/mame/drivers/tk2000.cpp
index 40fe47e4fec..567a5856e4c 100644
--- a/src/mame/drivers/tk2000.cpp
+++ b/src/mame/drivers/tk2000.cpp
@@ -2,7 +2,7 @@
// copyright-holders:R. Belmont
/***************************************************************************
- tk2000.c - Microdigital TK2000
+ tk2000.cpp - Microdigital TK2000
Driver by R. Belmont
@@ -45,6 +45,7 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, A2_CPU_TAG),
m_ram(*this, RAM_TAG),
+ m_screen(*this, "screen"),
m_video(*this, A2_VIDEO_TAG),
m_row0(*this, "ROW0"),
m_row1(*this, "ROW1"),
@@ -59,10 +60,18 @@ public:
m_speaker(*this, A2_SPEAKER_TAG),
m_cassette(*this, A2_CASSETTE_TAG),
m_upperbank(*this, A2_UPPERBANK_TAG)
- { }
+ { }
+ void tk2000(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+private:
required_device<cpu_device> m_maincpu;
required_device<ram_device> m_ram;
+ required_device<screen_device> m_screen;
required_device<a2_video_device> m_video;
required_ioport m_row0, m_row1, m_row2, m_row3, m_row4, m_row5, m_row6, m_row7;
required_ioport m_kbspecial;
@@ -71,10 +80,17 @@ public:
required_device<cassette_image_device> m_cassette;
required_device<address_map_bank_device> m_upperbank;
- TIMER_DEVICE_CALLBACK_MEMBER(apple2_interrupt);
+ int m_speaker_state;
+ int m_cassette_state;
- virtual void machine_start() override;
- virtual void machine_reset() override;
+ uint8_t m_strobe;
+
+ bool m_page2;
+
+ uint8_t *m_ram_ptr;
+ int m_ram_size;
+
+ TIMER_DEVICE_CALLBACK_MEMBER(apple2_interrupt);
DECLARE_PALETTE_INIT(tk2000);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -88,19 +104,8 @@ public:
DECLARE_READ8_MEMBER(c100_r);
DECLARE_WRITE8_MEMBER(c100_w);
- void tk2000(machine_config &config);
void apple2_map(address_map &map);
void inhbank_map(address_map &map);
-private:
- int m_speaker_state;
- int m_cassette_state;
-
- uint8_t m_strobe;
-
- bool m_page2;
-
- uint8_t *m_ram_ptr;
- int m_ram_size;
void do_io(address_space &space, int offset);
uint8_t read_floatingbus();
@@ -148,7 +153,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(tk2000_state::apple2_interrupt)
int scanline = param;
if((scanline % 8) == 0)
- machine().first_screen()->update_partial(machine().first_screen()->vpos());
+ m_screen->update_partial(m_screen->vpos());
// update the video system's shadow copy of the system config at the end of the frame
if (scanline == 192)
diff --git a/src/mame/includes/lynx.h b/src/mame/includes/lynx.h
index 17e321cf868..3396ccb08a8 100644
--- a/src/mame/includes/lynx.h
+++ b/src/mame/includes/lynx.h
@@ -10,6 +10,7 @@
#pragma once
+#include "screen.h"
#include "audio/lynx.h"
#include "imagedev/snapquik.h"
#include "bus/generic/slot.h"
@@ -117,9 +118,47 @@ public:
m_maincpu(*this, "maincpu"),
m_sound(*this, "custom"),
m_cart(*this, "cartslot"),
- m_palette(*this, "palette")
+ m_palette(*this, "palette"),
+ m_screen(*this, "screen")
{ }
+ void lynx(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+
+private:
+ required_shared_ptr<uint8_t> m_mem_0000;
+ required_shared_ptr<uint8_t> m_mem_fc00;
+ required_shared_ptr<uint8_t> m_mem_fd00;
+ required_shared_ptr<uint8_t> m_mem_fe00;
+ required_shared_ptr<uint8_t> m_mem_fffa;
+ required_device<cpu_device> m_maincpu;
+ required_device<lynx_sound_device> m_sound;
+ required_device<generic_slot_device> m_cart;
+ required_device<palette_device> m_palette;
+ required_device<screen_device> m_screen;
+ uint16_t m_granularity;
+ int m_sign_AB;
+ int m_sign_CD;
+ uint32_t m_lynx_palette[0x10];
+ int m_rotate;
+ uint8_t m_memory_config;
+
+ BLITTER m_blitter;
+ SUZY m_suzy;
+ MIKEY m_mikey;
+ UART m_uart;
+ LYNX_TIMER m_timer[NR_LYNX_TIMERS];
+
+ bitmap_ind16 m_bitmap;
+ bitmap_ind16 m_bitmap_temp;
+
+ void lynx_mem(address_map &map);
+
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_READ8_MEMBER(suzy_read);
@@ -157,40 +196,6 @@ public:
void lynx_uart_reset();
image_verify_result lynx_verify_cart(char *header, int kind);
DECLARE_QUICKLOAD_LOAD_MEMBER( lynx );
- void lynx(machine_config &config);
-
-protected:
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void video_start() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
- void lynx_mem(address_map &map);
-
-private:
- required_shared_ptr<uint8_t> m_mem_0000;
- required_shared_ptr<uint8_t> m_mem_fc00;
- required_shared_ptr<uint8_t> m_mem_fd00;
- required_shared_ptr<uint8_t> m_mem_fe00;
- required_shared_ptr<uint8_t> m_mem_fffa;
- required_device<cpu_device> m_maincpu;
- required_device<lynx_sound_device> m_sound;
- required_device<generic_slot_device> m_cart;
- required_device<palette_device> m_palette;
- uint16_t m_granularity;
- int m_sign_AB;
- int m_sign_CD;
- uint32_t m_lynx_palette[0x10];
- int m_rotate;
- uint8_t m_memory_config;
-
- BLITTER m_blitter;
- SUZY m_suzy;
- MIKEY m_mikey;
- UART m_uart;
- LYNX_TIMER m_timer[NR_LYNX_TIMERS];
-
- bitmap_ind16 m_bitmap;
- bitmap_ind16 m_bitmap_temp;
};
diff --git a/src/mame/includes/rungun.h b/src/mame/includes/rungun.h
index b0e88d63bb0..bcc661c0d07 100644
--- a/src/mame/includes/rungun.h
+++ b/src/mame/includes/rungun.h
@@ -32,8 +32,17 @@ public:
m_screen(*this, "screen"),
m_k054321(*this, "k054321"),
m_sysreg(*this, "sysreg")
- { }
+ { }
+ void rng(machine_config &config);
+ void rng_dual(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+
+private:
/* devices */
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
@@ -96,9 +105,6 @@ public:
K055673_CB_MEMBER(sprite_callback);
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void video_start() override;
uint32_t screen_update_rng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_rng_dual_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -108,8 +114,7 @@ public:
void sprite_dma_trigger(void);
INTERRUPT_GEN_MEMBER(rng_interrupt);
- void rng(machine_config &config);
- void rng_dual(machine_config &config);
+
void rungun_k054539_map(address_map &map);
void rungun_map(address_map &map);
void rungun_sound_map(address_map &map);
diff --git a/src/mame/machine/lynx.cpp b/src/mame/machine/lynx.cpp
index 0f2a17b12fb..715986ba7e0 100644
--- a/src/mame/machine/lynx.cpp
+++ b/src/mame/machine/lynx.cpp
@@ -1421,7 +1421,7 @@ void lynx_state::lynx_timer_signal_irq(int which)
lynx_timer_count_down(2);
break;
case 2:
- copybitmap(m_bitmap, m_bitmap_temp, 0, 0, 0, 0, machine().first_screen()->cliprect());
+ copybitmap(m_bitmap, m_bitmap_temp, 0, 0, 0, 0, m_screen->cliprect());
lynx_timer_count_down(4);
break;
case 1:
diff --git a/src/mame/video/laserbat.cpp b/src/mame/video/laserbat.cpp
index eb99d555173..69c01bff9d6 100644
--- a/src/mame/video/laserbat.cpp
+++ b/src/mame/video/laserbat.cpp
@@ -164,8 +164,8 @@ void laserbat_state_base::video_start()
m_gfx2 = memregion("gfx2")->base();
// start rendering scanlines
- machine().first_screen()->register_screen_bitmap(m_bitmap);
- m_scanline_timer->adjust(machine().first_screen()->time_until_pos(1, 0));
+ m_screen->register_screen_bitmap(m_bitmap);
+ m_scanline_timer->adjust(m_screen->time_until_pos(1, 0));
}
@@ -226,7 +226,7 @@ TIMER_CALLBACK_MEMBER(laserbat_state_base::video_line)
uint16_t *const row = &m_bitmap.pix16(y);
// wait for next scanline
- m_scanline_timer->adjust(machine().first_screen()->time_until_pos(y + 1, 0));
+ m_scanline_timer->adjust(m_screen->time_until_pos(y + 1, 0));
// update the PVIs
if (!y)
diff --git a/src/mame/video/rungun.cpp b/src/mame/video/rungun.cpp
index c488ef37842..556489d789e 100644
--- a/src/mame/video/rungun.cpp
+++ b/src/mame/video/rungun.cpp
@@ -120,7 +120,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 = machine().first_screen()->frame_number() & 1;
+ m_current_display_bank = m_screen->frame_number() & 1;
if(m_single_screen_mode == true)
m_current_display_bank = 0;
@@ -144,7 +144,7 @@ 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 = machine().first_screen()->frame_number() & 1;
+ int m_current_display_bank = m_screen->frame_number() & 1;
if (!m_current_display_bank)
screen_update_rng(screen, m_rng_dual_demultiplex_left_temp, cliprect);