diff --git a/src/mame/drivers/3x3puzzl.c b/src/mame/drivers/3x3puzzl.c index 0f1d46e494b..183a063338d 100644 --- a/src/mame/drivers/3x3puzzl.c +++ b/src/mame/drivers/3x3puzzl.c @@ -147,11 +147,11 @@ WRITE16_MEMBER(_3x3puzzle_state::gfx_ctrl_w) if ( BIT(data,4) ) { - machine().primary_screen->set_visible_area(0*8, 64*8-1, 0*8, 30*8-1); + m_screen->set_visible_area(0*8, 64*8-1, 0*8, 30*8-1); } else { - machine().primary_screen->set_visible_area(0*8, 40*8-1, 0*8, 30*8-1); + m_screen->set_visible_area(0*8, 40*8-1, 0*8, 30*8-1); } if ( (data&0x06) != m_oki_bank ) diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index 8bcf02cb4d2..21c65bbd575 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -1466,7 +1466,7 @@ MACHINE_CONFIG_END CUSTOM_INPUT_MEMBER(_8080bw_state::sflush_80_r) { - return (machine().primary_screen->vpos() & 0x80) ? 1 : 0; + return (m_screen->vpos() & 0x80) ? 1 : 0; } static ADDRESS_MAP_START( sflush_map, AS_PROGRAM, 8, _8080bw_state ) diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c index fddb110af8c..b09175a1b2b 100644 --- a/src/mame/drivers/acefruit.c +++ b/src/mame/drivers/acefruit.c @@ -71,14 +71,14 @@ void acefruit_state::acefruit_update_irq(int vpos) TIMER_CALLBACK_MEMBER(acefruit_state::acefruit_refresh) { - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); - machine().primary_screen->update_partial(vpos ); + m_screen->update_partial(vpos ); acefruit_update_irq(vpos); vpos = ( ( vpos / 8 ) + 1 ) * 8; - m_refresh_timer->adjust( machine().primary_screen->time_until_pos(vpos) ); + m_refresh_timer->adjust( m_screen->time_until_pos(vpos) ); } void acefruit_state::video_start() diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c index a4ec67b5600..c735f335ccc 100644 --- a/src/mame/drivers/adp.c +++ b/src/mame/drivers/adp.c @@ -405,15 +405,15 @@ READ8_MEMBER(adp_state::t2_r) UINT8 res; int h,w; res = 0; - h = machine().primary_screen->height(); - w = machine().primary_screen->width(); + h = m_screen->height(); + w = m_screen->width(); // popmessage("%d %d",h,w); - if (machine().primary_screen->hpos() > h) + if (m_screen->hpos() > h) res|= 0x20; //hblank - if (machine().primary_screen->vpos() > w) + if (m_screen->vpos() > w) res|= 0x40; //vblank return res; diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c index c0ba0291180..53cb0f7c8f5 100644 --- a/src/mame/drivers/alg.c +++ b/src/mame/drivers/alg.c @@ -206,7 +206,7 @@ CUSTOM_INPUT_MEMBER(alg_state::lightgun_pos_r) int x = 0, y = 0; /* get the position based on the input select */ - get_lightgun_pos(*machine().primary_screen, m_input_select, &x, &y); + get_lightgun_pos(*m_screen, m_input_select, &x, &y); return (y << 8) | (x >> 2); } diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c index 6bf5ea14da2..d56975be7d1 100644 --- a/src/mame/drivers/arcadecl.c +++ b/src/mame/drivers/arcadecl.c @@ -106,7 +106,7 @@ void arcadecl_state::scanline_update(screen_device &screen, int scanline) MACHINE_RESET_MEMBER(arcadecl_state,arcadecl) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); } diff --git a/src/mame/drivers/aristmk5.c b/src/mame/drivers/aristmk5.c index e6ab2050c71..413f6e4e584 100644 --- a/src/mame/drivers/aristmk5.c +++ b/src/mame/drivers/aristmk5.c @@ -200,7 +200,7 @@ READ32_MEMBER(aristmk5_state::mk5_ioc_r) { int vert_pos; - vert_pos = machine().primary_screen->vpos(); + vert_pos = m_screen->vpos(); m_flyback = (vert_pos <= m_vidc_regs[VIDC_VDSR] || vert_pos >= m_vidc_regs[VIDC_VDER]) ? 0x80 : 0x00; //i2c_data = (i2cmem_sda_read(machine().device("i2cmem")) & 1); diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c index f4b8cf07ec8..5d44ef3c158 100644 --- a/src/mame/drivers/astinvad.c +++ b/src/mame/drivers/astinvad.c @@ -267,7 +267,7 @@ TIMER_CALLBACK_MEMBER(astinvad_state::kamizake_int_gen) /* interrupts are asserted on every state change of the 128V line */ m_maincpu->set_input_line(0, ASSERT_LINE); param ^= 128; - m_int_timer->adjust(machine().primary_screen->time_until_pos(param), param); + m_int_timer->adjust(m_screen->time_until_pos(param), param); /* an RC circuit turns the interrupt off after a short amount of time */ timer_set(attotime::from_double(300 * 0.1e-6), TIMER_INT_OFF); @@ -277,7 +277,7 @@ TIMER_CALLBACK_MEMBER(astinvad_state::kamizake_int_gen) MACHINE_START_MEMBER(astinvad_state,kamikaze) { m_int_timer = timer_alloc(TIMER_INT_GEN); - m_int_timer->adjust(machine().primary_screen->time_until_pos(128), 128); + m_int_timer->adjust(m_screen->time_until_pos(128), 128); save_item(NAME(m_screen_flip)); save_item(NAME(m_screen_red)); diff --git a/src/mame/drivers/astrcorp.c b/src/mame/drivers/astrcorp.c index 90a7159d164..d885fb90a34 100644 --- a/src/mame/drivers/astrcorp.c +++ b/src/mame/drivers/astrcorp.c @@ -83,7 +83,7 @@ public: VIDEO_START_MEMBER(astrocorp_state,astrocorp) { - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); save_item(NAME(m_bitmap)); save_item (NAME(m_screen_enable)); @@ -180,7 +180,7 @@ WRITE16_MEMBER(astrocorp_state::astrocorp_draw_sprites_w) UINT16 now = COMBINE_DATA(&m_draw_sprites); if (!old && now) - draw_sprites(m_bitmap, machine().primary_screen->visible_area()); + draw_sprites(m_bitmap, m_screen->visible_area()); } WRITE16_MEMBER(astrocorp_state::astrocorp_eeprom_w) diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c index 1774b7178bf..f4cd6eba219 100644 --- a/src/mame/drivers/astrof.c +++ b/src/mame/drivers/astrof.c @@ -292,7 +292,7 @@ WRITE8_MEMBER(astrof_state::video_control_1_w) /* D2 - not connected in the schematics, but at one point Astro Fighter sets it to 1 */ /* D3-D7 - not connected */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } @@ -313,7 +313,7 @@ void astrof_state::astrof_set_video_control_2( UINT8 data ) WRITE8_MEMBER(astrof_state::astrof_video_control_2_w) { astrof_set_video_control_2(data); - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } @@ -331,7 +331,7 @@ void astrof_state::spfghmk2_set_video_control_2( UINT8 data ) WRITE8_MEMBER(astrof_state::spfghmk2_video_control_2_w) { spfghmk2_set_video_control_2(data); - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } @@ -348,7 +348,7 @@ void astrof_state::tomahawk_set_video_control_2( UINT8 data ) WRITE8_MEMBER(astrof_state::tomahawk_video_control_2_w) { tomahawk_set_video_control_2(data); - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c index 1563732c39b..b726ba97c9a 100644 --- a/src/mame/drivers/atarig1.c +++ b/src/mame/drivers/atarig1.c @@ -47,7 +47,7 @@ MACHINE_START_MEMBER(atarig1_state,atarig1) MACHINE_RESET_MEMBER(atarig1_state,atarig1) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c index dac5afdd190..0b04e719eae 100644 --- a/src/mame/drivers/atarig42.c +++ b/src/mame/drivers/atarig42.c @@ -51,7 +51,7 @@ MACHINE_START_MEMBER(atarig42_state,atarig42) MACHINE_RESET_MEMBER(atarig42_state,atarig42) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c index 191635b6751..25366b8c0d6 100644 --- a/src/mame/drivers/atarigt.c +++ b/src/mame/drivers/atarigt.c @@ -90,7 +90,7 @@ void atarigt_state::update_interrupts() MACHINE_RESET_MEMBER(atarigt_state,atarigt) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c index 2977834df71..b3a8ef8a148 100644 --- a/src/mame/drivers/atarigx2.c +++ b/src/mame/drivers/atarigx2.c @@ -42,7 +42,7 @@ void atarigx2_state::update_interrupts() MACHINE_RESET_MEMBER(atarigx2_state,atarigx2) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c index 8216e16891f..bfc3155b7be 100644 --- a/src/mame/drivers/atarisy2.c +++ b/src/mame/drivers/atarisy2.c @@ -221,7 +221,7 @@ MACHINE_RESET_MEMBER(atarisy2_state,atarisy2) { atarigen_state::machine_reset(); slapstic_reset(); - scanline_timer_reset(*machine().primary_screen, 64); + scanline_timer_reset(*m_screen, 64); m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(atarisy2_state::atarisy2_direct_handler), this)); diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c index b1804c5fe0f..27252f3c46a 100644 --- a/src/mame/drivers/atetris.c +++ b/src/mame/drivers/atetris.c @@ -77,7 +77,7 @@ TIMER_CALLBACK_MEMBER(atetris_state::interrupt_gen) scanline += 32; if (scanline >= 256) scanline -= 256; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -120,7 +120,7 @@ void atetris_state::machine_reset() reset_bank(); /* start interrupts going (32V clocked by 16V) */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(48), 48); + m_interrupt_timer->adjust(m_screen->time_until_pos(48), 48); } diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c index 541cd35bcb6..0e0b1bdf974 100644 --- a/src/mame/drivers/badlands.c +++ b/src/mame/drivers/badlands.c @@ -213,7 +213,7 @@ MACHINE_RESET_MEMBER(badlands_state,badlands) m_pedal_value[0] = m_pedal_value[1] = 0x80; atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); memcpy(m_bank_base, &m_bank_source_data[0x0000], 0x1000); } @@ -687,7 +687,7 @@ MACHINE_RESET_MEMBER(badlands_state,badlandsb) // m_pedal_value[0] = m_pedal_value[1] = 0x80; atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); // memcpy(m_bank_base, &m_bank_source_data[0x0000], 0x1000); } diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c index ec126d8a528..77427df3eeb 100644 --- a/src/mame/drivers/batman.c +++ b/src/mame/drivers/batman.c @@ -73,7 +73,7 @@ WRITE16_MEMBER(batman_state::latch_w) /* alpha bank is selected by the upper 4 bits */ if ((oldword ^ m_latch_data) & 0x7000) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_vad->alpha()->mark_all_dirty(); m_alpha_tile_bank = (m_latch_data >> 12) & 7; } diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c index fc3edfd936f..72f33416868 100644 --- a/src/mame/drivers/beaminv.c +++ b/src/mame/drivers/beaminv.c @@ -113,7 +113,7 @@ TIMER_CALLBACK_MEMBER(beaminv_state::interrupt_callback) next_interrupt_number = (interrupt_number + 1) % INTERRUPTS_PER_FRAME; next_vpos = interrupt_lines[next_interrupt_number]; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(next_vpos), next_interrupt_number); + m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos), next_interrupt_number); } @@ -126,7 +126,7 @@ void beaminv_state::create_interrupt_timer() void beaminv_state::start_interrupt_timer() { int vpos = interrupt_lines[0]; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_interrupt_timer->adjust(m_screen->time_until_pos(vpos)); } @@ -197,7 +197,7 @@ UINT32 beaminv_state::screen_update_beaminv(screen_device &screen, bitmap_rgb32 READ8_MEMBER(beaminv_state::v128_r) { - return (machine().primary_screen->vpos() >> 7) & 0x01; + return (m_screen->vpos() >> 7) & 0x01; } diff --git a/src/mame/drivers/beathead.c b/src/mame/drivers/beathead.c index fb89246d5be..4bd8aca9ae8 100644 --- a/src/mame/drivers/beathead.c +++ b/src/mame/drivers/beathead.c @@ -149,7 +149,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(beathead_state::scanline_callback) int scanline = param; /* update the video */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* on scanline zero, clear any halt condition */ if (scanline == 0) @@ -165,7 +165,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(beathead_state::scanline_callback) update_interrupts(); /* set the timer for the next one */ - timer.adjust(machine().primary_screen->time_until_pos(scanline) - m_hblank_offset, scanline); + timer.adjust(m_screen->time_until_pos(scanline) - m_hblank_offset, scanline); } @@ -179,9 +179,9 @@ void beathead_state::machine_reset() memcpy(m_ram_base, m_rom_base, 0x40); /* compute the timing of the HBLANK interrupt and set the first timer */ - m_hblank_offset = machine().primary_screen->scan_period() * (455 - 336 - 25) / 455; + m_hblank_offset = m_screen->scan_period() * (455 - 336 - 25) / 455; timer_device *scanline_timer = machine().device("scan_timer"); - scanline_timer->adjust(machine().primary_screen->time_until_pos(0) - m_hblank_offset); + scanline_timer->adjust(m_screen->time_until_pos(0) - m_hblank_offset); /* reset IRQs */ m_irq_line_state = CLEAR_LINE; diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c index e760ae9f410..ba4b041f390 100644 --- a/src/mame/drivers/berzerk.c +++ b/src/mame/drivers/berzerk.c @@ -217,7 +217,7 @@ TIMER_CALLBACK_MEMBER(berzerk_state::irq_callback) next_v256 = irq_trigger_v256s[next_irq_number]; next_vpos = vsync_chain_counter_to_vpos(next_counter, next_v256); - m_irq_timer->adjust(machine().primary_screen->time_until_pos(next_vpos), next_irq_number); + m_irq_timer->adjust(m_screen->time_until_pos(next_vpos), next_irq_number); } @@ -230,7 +230,7 @@ void berzerk_state::create_irq_timer() void berzerk_state::start_irq_timer() { int vpos = vsync_chain_counter_to_vpos(irq_trigger_counts[0], irq_trigger_v256s[0]); - m_irq_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_irq_timer->adjust(m_screen->time_until_pos(vpos)); } @@ -294,7 +294,7 @@ TIMER_CALLBACK_MEMBER(berzerk_state::nmi_callback) next_v256 = nmi_trigger_v256s[next_nmi_number]; next_vpos = vsync_chain_counter_to_vpos(next_counter, next_v256); - m_nmi_timer->adjust(machine().primary_screen->time_until_pos(next_vpos), next_nmi_number); + m_nmi_timer->adjust(m_screen->time_until_pos(next_vpos), next_nmi_number); } @@ -307,7 +307,7 @@ void berzerk_state::create_nmi_timer() void berzerk_state::start_nmi_timer() { int vpos = vsync_chain_counter_to_vpos(nmi_trigger_counts[0], nmi_trigger_v256s[0]); - m_nmi_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_nmi_timer->adjust(m_screen->time_until_pos(vpos)); } @@ -427,7 +427,7 @@ READ8_MEMBER(berzerk_state::intercept_v256_r) UINT8 counter; UINT8 v256; - vpos_to_vsync_chain_counter(machine().primary_screen->vpos(), &counter, &v256); + vpos_to_vsync_chain_counter(m_screen->vpos(), &counter, &v256); return (!m_intercept << 7) | v256; } diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c index 4c00146aff4..af2b5c18b2d 100644 --- a/src/mame/drivers/blstroid.c +++ b/src/mame/drivers/blstroid.c @@ -40,14 +40,14 @@ void blstroid_state::update_interrupts() WRITE16_MEMBER(blstroid_state::blstroid_halt_until_hblank_0_w) { - halt_until_hblank_0(space.device(), *machine().primary_screen); + halt_until_hblank_0(space.device(), *m_screen); } MACHINE_RESET_MEMBER(blstroid_state,blstroid) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c index e07bfad6261..4c0ef558ef0 100644 --- a/src/mame/drivers/boxer.c +++ b/src/mame/drivers/boxer.c @@ -120,7 +120,7 @@ TIMER_CALLBACK_MEMBER(boxer_state::periodic_callback) for (i = 1; i < 256; i++) if (mask[i] != 0) - timer_set(machine().primary_screen->time_until_pos(i), TIMER_POT_INTERRUPT, mask[i]); + timer_set(m_screen->time_until_pos(i), TIMER_POT_INTERRUPT, mask[i]); m_pot_state = 0; } @@ -130,7 +130,7 @@ TIMER_CALLBACK_MEMBER(boxer_state::periodic_callback) if (scanline >= 262) scanline = 0; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); } @@ -233,7 +233,7 @@ READ8_MEMBER(boxer_state::boxer_input_r) { UINT8 val = ioport("IN0")->read(); - if (ioport("IN3")->read() < machine().primary_screen->vpos()) + if (ioport("IN3")->read() < m_screen->vpos()) val |= 0x02; return (val << ((offset & 7) ^ 7)) & 0x80; @@ -251,7 +251,7 @@ READ8_MEMBER(boxer_state::boxer_misc_r) break; case 1: - val = machine().primary_screen->vpos(); + val = m_screen->vpos(); break; case 2: @@ -458,7 +458,7 @@ void boxer_state::machine_start() void boxer_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(0), TIMER_PERIODIC); + timer_set(m_screen->time_until_pos(0), TIMER_PERIODIC); m_pot_state = 0; m_pot_latch = 0; diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c index 738c023d4e2..c4eb1ba7fef 100644 --- a/src/mame/drivers/btime.c +++ b/src/mame/drivers/btime.c @@ -377,7 +377,7 @@ READ8_MEMBER(btime_state::audio_command_r) READ8_MEMBER(btime_state::zoar_dsw1_read) { - return (!machine().primary_screen->vblank() << 7) | (ioport("DSW1")->read() & 0x7f); + return (!m_screen->vblank() << 7) | (ioport("DSW1")->read() & 0x7f); } static INPUT_PORTS_START( btime ) diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c index f3385105f82..36de64fa633 100644 --- a/src/mame/drivers/capbowl.c +++ b/src/mame/drivers/capbowl.c @@ -136,10 +136,10 @@ TIMER_CALLBACK_MEMBER(capbowl_state::capbowl_update) { int scanline = param; - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); scanline += 32; if (scanline > 240) scanline = 32; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_CAPBOWL_UPDATE, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_CAPBOWL_UPDATE, scanline); } @@ -370,7 +370,7 @@ void capbowl_state::machine_start() void capbowl_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(32), TIMER_CAPBOWL_UPDATE, 32); + timer_set(m_screen->time_until_pos(32), TIMER_CAPBOWL_UPDATE, 32); m_blitter_addr = 0; m_last_trackball_val[0] = 0; diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index ff5503f421c..4d280faf23e 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -905,7 +905,7 @@ WRITE16_MEMBER(cave_state::tjumpman_leds_w) CUSTOM_INPUT_MEMBER(cave_state::tjumpman_hopper_r) { - return (m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : 1; + return (m_hopper && !(m_screen->frame_number() % 10)) ? 0 : 1; } static ADDRESS_MAP_START( tjumpman_map, AS_PROGRAM, 16, cave_state ) diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c index bcae43b16ff..5d6e463d7d5 100644 --- a/src/mame/drivers/cball.c +++ b/src/mame/drivers/cball.c @@ -107,7 +107,7 @@ TIMER_CALLBACK_MEMBER(cball_state::interrupt_callback) if (scanline >= 262) scanline = 16; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); } @@ -117,7 +117,7 @@ void cball_state::machine_start() void cball_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(16), TIMER_INTERRUPT, 16); + timer_set(m_screen->time_until_pos(16), TIMER_INTERRUPT, 16); } diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c index 12bec67bf25..49e4f70e50f 100644 --- a/src/mame/drivers/ccastles.c +++ b/src/mame/drivers/ccastles.c @@ -146,7 +146,7 @@ inline void ccastles_state::schedule_next_irq( int curscanline ) break; /* next one at the start of this scanline */ - m_irq_timer->adjust(machine().primary_screen->time_until_pos(curscanline), curscanline); + m_irq_timer->adjust(m_screen->time_until_pos(curscanline), curscanline); } @@ -160,7 +160,7 @@ TIMER_CALLBACK_MEMBER(ccastles_state::clock_irq) } /* force an update now */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* find the next edge */ schedule_next_irq(param); @@ -169,7 +169,7 @@ TIMER_CALLBACK_MEMBER(ccastles_state::clock_irq) CUSTOM_INPUT_MEMBER(ccastles_state::get_vblank) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); return m_syncprom[scanline & 0xff] & 1; } @@ -205,7 +205,7 @@ void ccastles_state::machine_start() /* reconfigure the visible area to match */ visarea.set(0, 255, m_vblank_end, m_vblank_start - 1); - machine().primary_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL); + m_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL); /* configure the ROM banking */ membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0xa000, 0x6000); diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c index 6993501e047..0feeb7283aa 100644 --- a/src/mame/drivers/cdi.c +++ b/src/mame/drivers/cdi.c @@ -326,6 +326,8 @@ static MACHINE_CONFIG_START( cdi, cdi_state ) MCFG_CPU_PROGRAM_MAP(cdimono1_mem) MCFG_MCD212_ADD("mcd212") + MCFG_MCD212_SET_SCREEN("screen") + MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c index 7b7ede7fdf3..e15df69e025 100644 --- a/src/mame/drivers/centiped.c +++ b/src/mame/drivers/centiped.c @@ -450,7 +450,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(centiped_state::generate_interrupt) m_maincpu->set_input_line(0, ((scanline - 1) & 32) ? ASSERT_LINE : CLEAR_LINE); /* do a partial update now to handle sprite multiplexing (Maze Invaders) */ - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); } diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c index 0af1f4e9658..f5e4aaf7434 100644 --- a/src/mame/drivers/champbwl.c +++ b/src/mame/drivers/champbwl.c @@ -461,7 +461,7 @@ UINT32 champbwl_state::screen_update_champbwl(screen_device &screen, bitmap_ind1 m_seta001->set_fg_yoffsets( -0x12, 0x0e ); m_seta001->set_bg_yoffsets( 0x1, -0x1 ); - m_seta001->draw_sprites(bitmap, cliprect, 0x800, 1 ); + m_seta001->draw_sprites(screen, bitmap, cliprect, 0x800, 1 ); return 0; } @@ -520,7 +520,7 @@ UINT32 champbwl_state::screen_update_doraemon(screen_device &screen, bitmap_ind1 m_seta001->set_bg_yoffsets( 0x00, 0x01 ); m_seta001->set_fg_yoffsets( 0x00, 0x10 ); - m_seta001->draw_sprites(bitmap, cliprect, 0x800, 1 ); + m_seta001->draw_sprites(screen, bitmap, cliprect, 0x800, 1 ); return 0; } diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c index a987e1972ed..018adaff950 100644 --- a/src/mame/drivers/changela.c +++ b/src/mame/drivers/changela.c @@ -159,7 +159,7 @@ READ8_MEMBER(changela_state::changela_2d_r) int v8 = 0; int gas; - if ((machine().primary_screen->vpos() & 0xf8) == 0xf8) + if ((m_screen->vpos() & 0xf8) == 0xf8) v8 = 1; /* Gas pedal is made up of 2 switches, 1 active low, 1 active high */ diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c index 9fcb8e0df2b..0dc109c94bc 100644 --- a/src/mame/drivers/chinagat.c +++ b/src/mame/drivers/chinagat.c @@ -138,13 +138,13 @@ VIDEO_START_MEMBER(chinagat_state,chinagat) TIMER_DEVICE_CALLBACK_MEMBER(chinagat_state::chinagat_scanline) { int scanline = param; - int screen_height = machine().primary_screen->height(); + int screen_height = m_screen->height(); int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); int vcount = scanline_to_vcount(scanline); /* update to the current point */ if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* on the rising edge of VBLK (vcount == F8), signal an NMI */ if (vcount == 0xf8) diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c index c59f173fff9..e70eddaa030 100644 --- a/src/mame/drivers/cinemat.c +++ b/src/mame/drivers/cinemat.c @@ -262,8 +262,8 @@ READ8_MEMBER(cinemat_state::boxingb_dial_r) READ8_MEMBER(cinemat_state::qb3_frame_r) { - attotime next_update = machine().primary_screen->time_until_update(); - attotime frame_period = machine().primary_screen->frame_period(); + attotime next_update = m_screen->time_until_update(); + attotime frame_period = m_screen->frame_period(); int percent = next_update.attoseconds / (frame_period.attoseconds / 100); /* note this is just an approximation... */ diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c index c486d7c6037..f49ba01f1bf 100644 --- a/src/mame/drivers/cliffhgr.c +++ b/src/mame/drivers/cliffhgr.c @@ -213,7 +213,7 @@ TIMER_CALLBACK_MEMBER(cliffhgr_state::cliff_irq_callback) m_maincpu->set_input_line(0, ASSERT_LINE); } - m_irq_timer->adjust(machine().primary_screen->time_until_pos(param * 2), param); + m_irq_timer->adjust(m_screen->time_until_pos(param * 2), param); } WRITE_LINE_MEMBER(cliffhgr_state::vdp_interrupt) @@ -232,7 +232,7 @@ void cliffhgr_state::machine_reset() { m_port_bank = 0; m_phillips_code = 0; - m_irq_timer->adjust(machine().primary_screen->time_until_pos(17), 17); + m_irq_timer->adjust(m_screen->time_until_pos(17), 17); } /********************************************************/ diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c index 7f634aa26c6..af1e1ebc78e 100644 --- a/src/mame/drivers/cloud9.c +++ b/src/mame/drivers/cloud9.c @@ -116,7 +116,7 @@ inline void cloud9_state::schedule_next_irq(int curscanline) curscanline = (curscanline + 64) & 255; /* next one at the start of this scanline */ - m_irq_timer->adjust(machine().primary_screen->time_until_pos(curscanline), curscanline); + m_irq_timer->adjust(m_screen->time_until_pos(curscanline), curscanline); } @@ -130,7 +130,7 @@ TIMER_CALLBACK_MEMBER(cloud9_state::clock_irq) } /* force an update now */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* find the next edge */ schedule_next_irq(param); @@ -139,7 +139,7 @@ TIMER_CALLBACK_MEMBER(cloud9_state::clock_irq) CUSTOM_INPUT_MEMBER(cloud9_state::get_vblank) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); return (~m_syncprom[scanline & 0xff] >> 1) & 1; } @@ -175,7 +175,7 @@ void cloud9_state::machine_start() /* reconfigure the visible area to match */ visarea.set(0, 255, m_vblank_end + 1, m_vblank_start); - machine().primary_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL); + m_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL); /* create a timer for IRQs and set up the first callback */ m_irq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cloud9_state::clock_irq),this)); diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c index d1843afa0af..bd5fd7c0c19 100644 --- a/src/mame/drivers/cninja.c +++ b/src/mame/drivers/cninja.c @@ -110,7 +110,7 @@ WRITE16_MEMBER(cninja_state::cninja_irq_w) && m_scanline > 0 && m_scanline < 240) - m_raster_irq_timer->adjust(machine().primary_screen->time_until_pos(m_scanline), m_scanline); + m_raster_irq_timer->adjust(m_screen->time_until_pos(m_scanline), m_scanline); else m_raster_irq_timer->reset(); return; @@ -127,14 +127,14 @@ WRITE16_MEMBER(cninja_state::cninja_irq_w) WRITE16_MEMBER(cninja_state::cninja_pf12_control_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_deco_tilegen1->pf_control_w(space, offset, data, mem_mask); } WRITE16_MEMBER(cninja_state::cninja_pf34_control_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_deco_tilegen2->pf_control_w(space, offset, data, mem_mask); } diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c index 67eca955810..c25c5699fb2 100644 --- a/src/mame/drivers/coolridr.c +++ b/src/mame/drivers/coolridr.c @@ -547,15 +547,15 @@ void coolridr_state::video_start() if (machine().gfx[m_gfx_index] == 0) break; - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites); - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites2); - //machine().primary_screen->register_screen_bitmap(m_zbuffer_bitmap); - //machine().primary_screen->register_screen_bitmap(m_zbuffer_bitmap2); - machine().primary_screen->register_screen_bitmap(m_bg_bitmap); - machine().primary_screen->register_screen_bitmap(m_bg_bitmap2); + m_screen->register_screen_bitmap(m_temp_bitmap_sprites); + m_screen->register_screen_bitmap(m_temp_bitmap_sprites2); + //m_screen->register_screen_bitmap(m_zbuffer_bitmap); + //m_screen->register_screen_bitmap(m_zbuffer_bitmap2); + m_screen->register_screen_bitmap(m_bg_bitmap); + m_screen->register_screen_bitmap(m_bg_bitmap2); - machine().primary_screen->register_screen_bitmap(m_screen1_bitmap); - machine().primary_screen->register_screen_bitmap(m_screen2_bitmap); + m_screen->register_screen_bitmap(m_screen1_bitmap); + m_screen->register_screen_bitmap(m_screen2_bitmap); machine().gfx[m_gfx_index] = auto_alloc(machine(), gfx_element(machine(), h1_tile_layout, m_h1_pcg, 8, 0)); } @@ -2546,7 +2546,7 @@ WRITE32_MEMBER(coolridr_state::sysh1_fb_data_w) printf("Blitter Clear Count == 3 used with param %08x\n",data); { - const rectangle& visarea = machine().primary_screen->visible_area(); + const rectangle& visarea = m_screen->visible_area(); if(m_blitterClearMode == 0x8c200000) { diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c index 45c786a96be..b5a63472ab0 100644 --- a/src/mame/drivers/copsnrob.c +++ b/src/mame/drivers/copsnrob.c @@ -81,7 +81,7 @@ void copsnrob_state::palette_init() READ8_MEMBER(copsnrob_state::copsnrob_misc_r) { - return machine().primary_screen->vblank() ? 0x00 : 0x80; + return m_screen->vblank() ? 0x00 : 0x80; } WRITE8_MEMBER(copsnrob_state::copsnrob_misc2_w) diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c index 473b4914d44..4a8feb5a022 100644 --- a/src/mame/drivers/corona.c +++ b/src/mame/drivers/corona.c @@ -418,7 +418,7 @@ READ8_MEMBER(corona_state::blitter_status_r) -x-- ---- vblank */ - return 0x80 | ((machine().primary_screen->vblank() & 1) << 6); + return 0x80 | ((m_screen->vblank() & 1) << 6); } void corona_state::blitter_execute(int x, int y, int color, int width, int flag) diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c index e7d06a11a90..ddfe377c861 100644 --- a/src/mame/drivers/cosmic.c +++ b/src/mame/drivers/cosmic.c @@ -306,13 +306,13 @@ WRITE8_MEMBER(cosmic_state::cosmica_sound_output_w) READ8_MEMBER(cosmic_state::cosmica_pixel_clock_r) { - return (machine().primary_screen->vpos() >> 2) & 0x3f; + return (m_screen->vpos() >> 2) & 0x3f; } READ8_MEMBER(cosmic_state::cosmicg_port_0_r) { /* The top four address lines from the CRTC are bits 0-3 */ - return (ioport("IN0")->read() & 0xf0) | ((machine().primary_screen->vpos() & 0xf0) >> 4); + return (ioport("IN0")->read() & 0xf0) | ((m_screen->vpos() & 0xf0) >> 4); } READ8_MEMBER(cosmic_state::magspot_coinage_dip_r) diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c index 353d62f6288..cbdab621839 100644 --- a/src/mame/drivers/cps2.c +++ b/src/mame/drivers/cps2.c @@ -641,7 +641,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::cps2_interrupt) m_cps_b_regs[0x10/2] = 0; m_maincpu->set_input_line(4, HOLD_LINE); cps2_set_sprite_priorities(); - timer.machine().primary_screen->update_partial(param); + m_screen->update_partial(param); m_scancalls++; // popmessage("IRQ4 scancounter = %04i", param); } @@ -652,7 +652,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::cps2_interrupt) m_cps_b_regs[0x12 / 2] = 0; m_maincpu->set_input_line(4, HOLD_LINE); cps2_set_sprite_priorities(); - timer.machine().primary_screen->update_partial(param); + m_screen->update_partial(param); m_scancalls++; // popmessage("IRQ4 scancounter = %04i", param); } @@ -665,7 +665,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::cps2_interrupt) if(m_scancalls) { cps2_set_sprite_priorities(); - timer.machine().primary_screen->update_partial(256); + m_screen->update_partial(256); } cps2_objram_latch(); } diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c index 91b54e9d3df..62b4e171437 100644 --- a/src/mame/drivers/cps3.c +++ b/src/mame/drivers/cps3.c @@ -1130,7 +1130,7 @@ UINT32 cps3_state::screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitma if (current_ypos&0x200) current_ypos-=0x400; - //if ( (whichbpp) && (machine().primary_screen->frame_number() & 1)) continue; + //if ( (whichbpp) && (m_screen->frame_number() & 1)) continue; /* use the palette value from the main list or the sublists? */ if (whichpal) diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c index ab787fd09ba..67e0db77378 100644 --- a/src/mame/drivers/cubeqst.c +++ b/src/mame/drivers/cubeqst.c @@ -116,7 +116,7 @@ void cubeqst_state::palette_init() WRITE16_MEMBER(cubeqst_state::palette_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); COMBINE_DATA(&m_generic_paletteram_16[offset]); } @@ -199,7 +199,7 @@ UINT32 cubeqst_state::screen_update_cubeqst(screen_device &screen, bitmap_rgb32 READ16_MEMBER(cubeqst_state::line_r) { /* I think this is unusued */ - return machine().primary_screen->vpos(); + return m_screen->vpos(); } INTERRUPT_GEN_MEMBER(cubeqst_state::vblank) diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c index 46fc0109b99..3ad685eb303 100644 --- a/src/mame/drivers/cyberbal.c +++ b/src/mame/drivers/cyberbal.c @@ -62,7 +62,7 @@ MACHINE_START_MEMBER(cyberbal_state,cyberbal) MACHINE_RESET_MEMBER(cyberbal_state,cyberbal) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); cyberbal_sound_reset(); @@ -74,7 +74,7 @@ MACHINE_RESET_MEMBER(cyberbal_state,cyberbal) MACHINE_RESET_MEMBER(cyberbal_state,cyberbal2p) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c index 1d9b6818621..6cdec254519 100644 --- a/src/mame/drivers/ddenlovr.c +++ b/src/mame/drivers/ddenlovr.c @@ -3270,7 +3270,7 @@ ADDRESS_MAP_END UINT8 ddenlovr_state::hgokou_player_r(int player ) { - UINT8 hopper_bit = ((m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : (1 << 6)); + UINT8 hopper_bit = ((m_hopper && !(m_screen->frame_number() % 10)) ? 0 : (1 << 6)); if (!BIT(m_input_sel, 0)) return ioport(player ? "KEY5" : "KEY0")->read() | hopper_bit; if (!BIT(m_input_sel, 1)) return ioport(player ? "KEY6" : "KEY1")->read() | hopper_bit; @@ -4120,7 +4120,7 @@ READ8_MEMBER(ddenlovr_state::htengoku_coin_r) { case 0x00: return ioport("COINS")->read(); case 0x01: return 0xff; //? - case 0x02: return 0xbf | ((m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : (1 << 6)); // bit 7 = blitter busy, bit 6 = hopper + case 0x02: return 0xbf | ((m_hopper && !(m_screen->frame_number() % 10)) ? 0 : (1 << 6)); // bit 7 = blitter busy, bit 6 = hopper case 0x03: return m_coins; } logerror("%04x: coin_r with select = %02x\n", space.device().safe_pc(), m_input_sel); @@ -4254,7 +4254,7 @@ READ8_MEMBER(ddenlovr_state::daimyojn_keyb1_r) { UINT8 val = 0x3f; - UINT8 hopper_bit = ((m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : (1 << 6)); + UINT8 hopper_bit = ((m_hopper && !(m_screen->frame_number() % 10)) ? 0 : (1 << 6)); if (!BIT(m_keyb, 0)) val = ioport("KEY0")->read() | hopper_bit; else if (!BIT(m_keyb, 1)) val = ioport("KEY1")->read() | hopper_bit; diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c index 1e0793ff2ab..5f0560d69e2 100644 --- a/src/mame/drivers/ddragon.c +++ b/src/mame/drivers/ddragon.c @@ -119,13 +119,13 @@ int ddragon_state::scanline_to_vcount( int scanline ) TIMER_DEVICE_CALLBACK_MEMBER(ddragon_state::ddragon_scanline) { int scanline = param; - int screen_height = machine().primary_screen->height(); + int screen_height = m_screen->height(); int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); int vcount = scanline_to_vcount(scanline); /* update to the current point */ if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* on the rising edge of VBLK (vcount == F8), signal an NMI */ if (vcount == 0xf8) diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c index 8dc7477a181..3be80762768 100644 --- a/src/mame/drivers/ddragon3.c +++ b/src/mame/drivers/ddragon3.c @@ -520,14 +520,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(ddragon3_state::ddragon3_scanline) if (scanline % 16 == 0) { if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(5, ASSERT_LINE); } /* Vblank is raised on scanline 248 */ if (scanline == 248) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(6, ASSERT_LINE); } } diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c index 7d381cbb7d0..dc38e41132a 100644 --- a/src/mame/drivers/deco32.c +++ b/src/mame/drivers/deco32.c @@ -301,7 +301,7 @@ READ32_MEMBER(deco32_state::deco32_irq_controller_r) /* ZV03082007 - video_screen_get_vblank() doesn't work for Captain America, as it expects that this bit is NOT set in rows 0-7. */ - vblank = machine().primary_screen->vpos() > machine().primary_screen->visible_area().max_y; + vblank = m_screen->vpos() > m_screen->visible_area().max_y; if (vblank) return 0xffffff80 | 0x1 | 0x10; /* Assume VBL takes priority over possible raster/lightgun irq */ @@ -327,7 +327,7 @@ WRITE32_MEMBER(deco32_state::deco32_irq_controller_w) scanline=(data&0xff); if (m_raster_enable && scanline>0 && scanline<240) { - m_raster_irq_timer->adjust(machine().primary_screen->time_until_pos(scanline-1, 0)); + m_raster_irq_timer->adjust(m_screen->time_until_pos(scanline-1, 0)); } else m_raster_irq_timer->reset(); diff --git a/src/mame/drivers/deco_ld.c b/src/mame/drivers/deco_ld.c index 21023faf2d9..8465d27a50d 100644 --- a/src/mame/drivers/deco_ld.c +++ b/src/mame/drivers/deco_ld.c @@ -315,7 +315,7 @@ ADDRESS_MAP_END CUSTOM_INPUT_MEMBER( deco_ld_state::begas_vblank_r ) { - return machine().primary_screen->vpos() >= 240*2; + return m_screen->vpos() >= 240*2; } INPUT_CHANGED_MEMBER(deco_ld_state::coin_inserted) diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c index aba9a4e0f22..8639d1c94d0 100644 --- a/src/mame/drivers/deco_mlc.c +++ b/src/mame/drivers/deco_mlc.c @@ -174,8 +174,8 @@ READ32_MEMBER(deco_mlc_state::mlc_20007c_r) READ32_MEMBER(deco_mlc_state::mlc_scanline_r) { -// logerror("read scanline counter (%d)\n", machine().primary_screen->vpos()); - return machine().primary_screen->vpos(); +// logerror("read scanline counter (%d)\n", m_screen->vpos()); + return m_screen->vpos(); } @@ -212,7 +212,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(deco_mlc_state::interrupt_gen) WRITE32_MEMBER(deco_mlc_state::mlc_irq_w) { -// int scanline=machine().primary_screen->vpos(); +// int scanline=m_screen->vpos(); COMBINE_DATA(&m_irq_ram[offset]); @@ -222,8 +222,8 @@ WRITE32_MEMBER(deco_mlc_state::mlc_irq_w) m_maincpu->set_input_line(m_mainCpuIsArm ? ARM_IRQ_LINE : 1, CLEAR_LINE); return; case 0x14: /* Prepare scanline interrupt */ - m_raster_irq_timer->adjust(machine().primary_screen->time_until_pos(m_irq_ram[0x14/4])); - //logerror("prepare scanline to fire at %d (currently on %d)\n", m_irq_ram[0x14/4], machine().primary_screen->vpos()); + m_raster_irq_timer->adjust(m_screen->time_until_pos(m_irq_ram[0x14/4])); + //logerror("prepare scanline to fire at %d (currently on %d)\n", m_irq_ram[0x14/4], m_screen->vpos()); return; default: diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c index bb8c1d6052e..6fbc8949f36 100644 --- a/src/mame/drivers/destroyr.c +++ b/src/mame/drivers/destroyr.c @@ -176,14 +176,14 @@ TIMER_CALLBACK_MEMBER(destroyr_state::destroyr_frame_callback) m_potsense[1] = 0; /* PCB supports two dials, but cab has only got one */ - timer_set(machine().primary_screen->time_until_pos(ioport("PADDLE")->read()), TIMER_DESTROYR_DIAL); - timer_set(machine().primary_screen->time_until_pos(0), TIMER_DESTROYR_FRAME); + timer_set(m_screen->time_until_pos(ioport("PADDLE")->read()), TIMER_DESTROYR_DIAL); + timer_set(m_screen->time_until_pos(0), TIMER_DESTROYR_FRAME); } void destroyr_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(0), TIMER_DESTROYR_FRAME); + timer_set(m_screen->time_until_pos(0), TIMER_DESTROYR_FRAME); m_cursor = 0; m_wavemod = 0; @@ -282,7 +282,7 @@ READ8_MEMBER(destroyr_state::destroyr_input_r) READ8_MEMBER(destroyr_state::destroyr_scanline_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c index 5cea3474a25..34a3af8cf53 100644 --- a/src/mame/drivers/diverboy.c +++ b/src/mame/drivers/diverboy.c @@ -105,7 +105,7 @@ void diverboy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipr bank = (source[1] & 0x0002) >> 1; - if (!flash || (machine().primary_screen->frame_number() & 1)) + if (!flash || (m_screen->frame_number() & 1)) { drawgfx_transpen(bitmap,cliprect,machine().gfx[bank], number, diff --git a/src/mame/drivers/dorachan.c b/src/mame/drivers/dorachan.c index be5479ac045..9430e1aae02 100644 --- a/src/mame/drivers/dorachan.c +++ b/src/mame/drivers/dorachan.c @@ -134,7 +134,7 @@ WRITE8_MEMBER(dorachan_state::dorachan_ctrl_w) CUSTOM_INPUT_MEMBER(dorachan_state::dorachan_v128_r) { /* to avoid resetting (when player 2 starts) bit 0 need to be inverted when screen is flipped */ - return ((machine().primary_screen->vpos() >> 7) & 0x01) ^ m_flip_screen; + return ((m_screen->vpos() >> 7) & 0x01) ^ m_flip_screen; } diff --git a/src/mame/drivers/dotrikun.c b/src/mame/drivers/dotrikun.c index 91014491923..31906749e9d 100644 --- a/src/mame/drivers/dotrikun.c +++ b/src/mame/drivers/dotrikun.c @@ -61,7 +61,7 @@ WRITE8_MEMBER(dotrikun_state::dotrikun_color_w) */ m_color = data; - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c index 1c77096ea7a..ee7ea2455be 100644 --- a/src/mame/drivers/dragrace.c +++ b/src/mame/drivers/dragrace.c @@ -157,7 +157,7 @@ READ8_MEMBER(dragrace_state::dragrace_steering_r) READ8_MEMBER(dragrace_state::dragrace_scanline_r) { - return (machine().primary_screen->vpos() ^ 0xf0) | 0x0f; + return (m_screen->vpos() ^ 0xf0) | 0x0f; } diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c index 95656b9b89d..2dcd615078c 100644 --- a/src/mame/drivers/dunhuang.c +++ b/src/mame/drivers/dunhuang.c @@ -438,7 +438,7 @@ WRITE8_MEMBER(dunhuang_state::dunhuang_input_w) READ8_MEMBER(dunhuang_state::dunhuang_service_r) { return ioport("SERVICE")->read() - | ((m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0x00 : 0x08) // bit 3: hopper sensor + | ((m_hopper && !(m_screen->frame_number() % 10)) ? 0x00 : 0x08) // bit 3: hopper sensor | 0x80 // bit 7 low -> tiles block transferrer busy ; } diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c index b03b55a42b0..d076473268b 100644 --- a/src/mame/drivers/enigma2.c +++ b/src/mame/drivers/enigma2.c @@ -134,7 +134,7 @@ TIMER_CALLBACK_MEMBER(enigma2_state::interrupt_assert_callback) int next_vpos; /* compute vector and set the interrupt line */ - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); UINT16 counter = vpos_to_vysnc_chain_counter(vpos); UINT8 vector = 0xc7 | ((counter & 0x80) >> 3) | ((~counter & 0x80) >> 4); m_maincpu->set_input_line_and_vector(0, ASSERT_LINE, vector); @@ -146,8 +146,8 @@ TIMER_CALLBACK_MEMBER(enigma2_state::interrupt_assert_callback) next_counter = INT_TRIGGER_COUNT_1; next_vpos = vysnc_chain_counter_to_vpos(next_counter); - m_interrupt_assert_timer->adjust(machine().primary_screen->time_until_pos(next_vpos)); - m_interrupt_clear_timer->adjust(machine().primary_screen->time_until_pos(vpos + 1)); + m_interrupt_assert_timer->adjust(m_screen->time_until_pos(next_vpos)); + m_interrupt_clear_timer->adjust(m_screen->time_until_pos(vpos + 1)); } @@ -161,7 +161,7 @@ void enigma2_state::create_interrupt_timers( ) void enigma2_state::start_interrupt_timers( ) { int vpos = vysnc_chain_counter_to_vpos(INT_TRIGGER_COUNT_1); - m_interrupt_assert_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_interrupt_assert_timer->adjust(m_screen->time_until_pos(vpos)); } diff --git a/src/mame/drivers/eolithsp.c b/src/mame/drivers/eolithsp.c index 44d17194a33..6a2be221534 100644 --- a/src/mame/drivers/eolithsp.c +++ b/src/mame/drivers/eolithsp.c @@ -113,7 +113,7 @@ CUSTOM_INPUT_MEMBER(eolith_state::eolith_speedup_getvblank) // printf("%s:eolith speedup_read data %02x\n",machine().describe_context(), eolith_vblank); - return (machine().primary_screen->vpos() >= 240); + return (m_screen->vpos() >= 240); } // StealSee doesn't use interrupts, just the vblank @@ -125,5 +125,5 @@ CUSTOM_INPUT_MEMBER(eolith_state::stealsee_speedup_getvblank) if(!eolith_vblank) m_maincpu->eat_cycles(500); - return (machine().primary_screen->vpos() >= 240); + return (m_screen->vpos() >= 240); } diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c index a7968ce7b79..c08e770dccf 100644 --- a/src/mame/drivers/eprom.c +++ b/src/mame/drivers/eprom.c @@ -49,7 +49,7 @@ void eprom_state::update_interrupts() MACHINE_RESET_MEMBER(eprom_state,eprom) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c index fab44fb05dd..d7a44d13bdd 100644 --- a/src/mame/drivers/esripsys.c +++ b/src/mame/drivers/esripsys.c @@ -94,7 +94,7 @@ READ8_MEMBER(esripsys_state::uart_r) READ8_MEMBER(esripsys_state::g_status_r) { int bank4 = BIT(m_videocpu->get_rip_status(), 2); - int vblank = machine().primary_screen->vblank(); + int vblank = m_screen->vblank(); return (!vblank << 7) | (bank4 << 6) | (m_f_status & 0x2f); } @@ -141,7 +141,7 @@ WRITE8_MEMBER(esripsys_state::g_status_w) READ8_MEMBER(esripsys_state::f_status_r) { - int vblank = machine().primary_screen->vblank(); + int vblank = m_screen->vblank(); UINT8 rip_status = m_videocpu->get_rip_status(); rip_status = (rip_status & 0x18) | (BIT(rip_status, 6) << 1) | BIT(rip_status, 7); diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c index 32a8ddcc64b..972868148fa 100644 --- a/src/mame/drivers/fantland.c +++ b/src/mame/drivers/fantland.c @@ -190,7 +190,7 @@ READ8_MEMBER(fantland_state::borntofi_inputs_r) x = ioport(offset ? "P2 Trackball X" : "P1 Trackball X")->read(); y = ioport(offset ? "P2 Trackball Y" : "P1 Trackball Y")->read(); - f = machine().primary_screen->frame_number(); + f = m_screen->frame_number(); m_input_ret[offset] = (m_input_ret[offset] & 0x14) | (ioport(offset ? "P2_TRACK" : "P1_TRACK")->read() & 0xc3); diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c index 9a7aa03a377..7873ddca9d3 100644 --- a/src/mame/drivers/fgoal.c +++ b/src/mame/drivers/fgoal.c @@ -93,12 +93,12 @@ TIMER_CALLBACK_MEMBER(fgoal_state::interrupt_callback) m_prev_coin = coin; - scanline = machine().primary_screen->vpos() + 128; + scanline = m_screen->vpos() + 128; if (scanline > 256) scanline = 0; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_INTERRUPT); + timer_set(m_screen->time_until_pos(scanline), TIMER_INTERRUPT); } @@ -116,7 +116,7 @@ READ8_MEMBER(fgoal_state::fgoal_analog_r) CUSTOM_INPUT_MEMBER(fgoal_state::fgoal_80_r) { - UINT8 ret = (machine().primary_screen->vpos() & 0x80) ? 1 : 0; + UINT8 ret = (m_screen->vpos() & 0x80) ? 1 : 0; return ret; } @@ -349,7 +349,7 @@ void fgoal_state::machine_start() void fgoal_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(0), TIMER_INTERRUPT); + timer_set(m_screen->time_until_pos(0), TIMER_INTERRUPT); m_xpos = 0; m_ypos = 0; diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c index 1d39b2e540d..18b92561c77 100644 --- a/src/mame/drivers/firefox.c +++ b/src/mame/drivers/firefox.c @@ -218,7 +218,7 @@ void firefox_state::video_start() { m_bgtiles = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firefox_state::bgtile_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,64); m_bgtiles->set_transparent_pen(0); - m_bgtiles->set_scrolldy(machine().primary_screen->visible_area().min_y, 0); + m_bgtiles->set_scrolldy(m_screen->visible_area().min_y, 0); } @@ -259,7 +259,7 @@ UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32 TIMER_DEVICE_CALLBACK_MEMBER(firefox_state::video_timer_callback) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE ); } diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c index 2b0ae2bc7dc..5195511ea53 100644 --- a/src/mame/drivers/firetrk.c +++ b/src/mame/drivers/firetrk.c @@ -80,7 +80,7 @@ TIMER_CALLBACK_MEMBER(firetrk_state::periodic_callback) if (scanline > 262) scanline = 0; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); } diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c index 525e8796db2..2dd968e43a3 100644 --- a/src/mame/drivers/flyball.c +++ b/src/mame/drivers/flyball.c @@ -182,12 +182,12 @@ TIMER_CALLBACK_MEMBER(flyball_state::flyball_quarter_callback) for (i = 0; i < 64; i++) if (potsense[i] != 0) - timer_set(machine().primary_screen->time_until_pos(scanline + i), TIMER_FLYBALL_JOYSTICK, potsense[i]); + timer_set(m_screen->time_until_pos(scanline + i), TIMER_FLYBALL_JOYSTICK, potsense[i]); scanline += 0x40; scanline &= 0xff; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_FLYBALL_QUARTER, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_FLYBALL_QUARTER, scanline); m_potsense = 0; m_potmask = 0; @@ -208,7 +208,7 @@ READ8_MEMBER(flyball_state::flyball_input_r) READ8_MEMBER(flyball_state::flyball_scanline_r) { - return machine().primary_screen->vpos() & 0x3f; + return m_screen->vpos() & 0x3f; } READ8_MEMBER(flyball_state::flyball_potsense_r) @@ -421,7 +421,7 @@ void flyball_state::machine_reset() m_maincpu->reset(); - timer_set(machine().primary_screen->time_until_pos(0), TIMER_FLYBALL_QUARTER); + timer_set(m_screen->time_until_pos(0), TIMER_FLYBALL_QUARTER); m_pitcher_vert = 0; m_pitcher_horz = 0; diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c index 7bd6d75724c..2daec67f343 100644 --- a/src/mame/drivers/foodf.c +++ b/src/mame/drivers/foodf.c @@ -130,7 +130,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(foodf_state::scanline_update_timer) scanline = 0; /* set a timer for it */ - timer.adjust(machine().primary_screen->time_until_pos(scanline), scanline); + timer.adjust(m_screen->time_until_pos(scanline), scanline); } @@ -144,7 +144,7 @@ MACHINE_START_MEMBER(foodf_state,foodf) MACHINE_RESET_MEMBER(foodf_state,foodf) { timer_device *scan_timer = machine().device("scan_timer"); - scan_timer->adjust(machine().primary_screen->time_until_pos(0)); + scan_timer->adjust(m_screen->time_until_pos(0)); } diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c index cfe136c8df5..1d52e05919f 100644 --- a/src/mame/drivers/fuukifg2.c +++ b/src/mame/drivers/fuukifg2.c @@ -66,9 +66,9 @@ WRITE16_MEMBER(fuuki16_state::fuuki16_vregs_w) UINT16 new_data = COMBINE_DATA(&m_vregs[offset]); if ((offset == 0x1c/2) && old_data != new_data) { - const rectangle &visarea = machine().primary_screen->visible_area(); - attotime period = machine().primary_screen->frame_period(); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(new_data, visarea.max_x + 1), 0, period); + const rectangle &visarea = m_screen->visible_area(); + attotime period = m_screen->frame_period(); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(new_data, visarea.max_x + 1), 0, period); } } @@ -410,16 +410,16 @@ void fuuki16_state::device_timer(emu_timer &timer, device_timer_id id, int param { case TIMER_LEVEL_1_INTERRUPT: m_maincpu->set_input_line(1, HOLD_LINE); - timer_set(machine().primary_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); + timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); break; case TIMER_VBLANK_INTERRUPT: m_maincpu->set_input_line(3, HOLD_LINE); // VBlank IRQ - timer_set(machine().primary_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); break; case TIMER_RASTER_INTERRUPT: m_maincpu->set_input_line(5, HOLD_LINE); // Raster Line IRQ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); - m_raster_interrupt_timer->adjust(machine().primary_screen->frame_period()); + m_screen->update_partial(m_screen->vpos()); + m_raster_interrupt_timer->adjust(m_screen->frame_period()); break; default: assert_always(FALSE, "Unknown id in fuuki16_state::device_timer"); @@ -439,11 +439,11 @@ void fuuki16_state::machine_start() void fuuki16_state::machine_reset() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); - timer_set(machine().primary_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); - timer_set(machine().primary_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0, visarea.max_x + 1)); + timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); + timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(0, visarea.max_x + 1)); } diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c index 5b69d3d3240..a607201ae72 100644 --- a/src/mame/drivers/fuukifg3.c +++ b/src/mame/drivers/fuukifg3.c @@ -225,9 +225,9 @@ WRITE32_MEMBER(fuuki32_state::fuuki32_vregs_w) COMBINE_DATA(&m_vregs[offset]); if (offset == 0x1c / 4) { - const rectangle &visarea = machine().primary_screen->visible_area(); - attotime period = machine().primary_screen->frame_period(); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(m_vregs[0x1c / 4] >> 16, visarea.max_x + 1), 0, period); + const rectangle &visarea = m_screen->visible_area(); + attotime period = m_screen->frame_period(); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(m_vregs[0x1c / 4] >> 16, visarea.max_x + 1), 0, period); } } } @@ -527,16 +527,16 @@ void fuuki32_state::device_timer(emu_timer &timer, device_timer_id id, int param { case TIMER_LEVEL_1_INTERRUPT: m_maincpu->set_input_line(1, HOLD_LINE); - timer_set(machine().primary_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); + timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); break; case TIMER_VBLANK_INTERRUPT: m_maincpu->set_input_line(3, HOLD_LINE); // VBlank IRQ - timer_set(machine().primary_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); break; case TIMER_RASTER_INTERRUPT: m_maincpu->set_input_line(5, HOLD_LINE); // Raster Line IRQ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); - m_raster_interrupt_timer->adjust(machine().primary_screen->frame_period()); + m_screen->update_partial(m_screen->vpos()); + m_raster_interrupt_timer->adjust(m_screen->frame_period()); break; default: assert_always(FALSE, "Unknown id in fuuki32_state::device_timer"); @@ -559,11 +559,11 @@ void fuuki32_state::machine_start() void fuuki32_state::machine_reset() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); - timer_set(machine().primary_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); - timer_set(machine().primary_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0, visarea.max_x + 1)); + timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); + timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(0, visarea.max_x + 1)); } diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c index 90a604c7396..7735c9569a1 100644 --- a/src/mame/drivers/gaelco3d.c +++ b/src/mame/drivers/gaelco3d.c @@ -250,7 +250,7 @@ MACHINE_RESET_MEMBER(gaelco3d_state,gaelco3d2) INTERRUPT_GEN_MEMBER(gaelco3d_state::vblank_gen) { - gaelco3d_render(*machine().primary_screen); + gaelco3d_render(*m_screen); device.execute().set_input_line(2, ASSERT_LINE); } diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c index 54e40136216..66c9735bea1 100644 --- a/src/mame/drivers/galaga.c +++ b/src/mame/drivers/galaga.c @@ -866,7 +866,7 @@ TIMER_CALLBACK_MEMBER(galaga_state::cpu3_interrupt_callback) scanline = 64; /* the vertical synch chain is clocked by H256 -- this is probably not important, but oh well */ - m_cpu3_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_cpu3_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -896,7 +896,7 @@ MACHINE_RESET_MEMBER(galaga_state,galaga) /* Reset all latches */ bosco_latch_reset(); - m_cpu3_interrupt_timer->adjust(machine().primary_screen->time_until_pos(64), 64); + m_cpu3_interrupt_timer->adjust(m_screen->time_until_pos(64), 64); } MACHINE_RESET_MEMBER(xevious_state,battles) diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c index a4d59810584..b038d437616 100644 --- a/src/mame/drivers/galaxi.c +++ b/src/mame/drivers/galaxi.c @@ -270,12 +270,12 @@ WRITE16_MEMBER(galaxi_state::galaxi_500004_w) CUSTOM_INPUT_MEMBER(galaxi_state::ticket_r) { - return m_ticket && !(machine().primary_screen->frame_number() % 10); + return m_ticket && !(m_screen->frame_number() % 10); } CUSTOM_INPUT_MEMBER(galaxi_state::hopper_r) { - return m_hopper && !(machine().primary_screen->frame_number() % 10); + return m_hopper && !(m_screen->frame_number() % 10); } diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c index 2c8ab9ac1a4..caef850bf0f 100644 --- a/src/mame/drivers/galaxia.c +++ b/src/mame/drivers/galaxia.c @@ -82,14 +82,14 @@ INTERRUPT_GEN_MEMBER(galaxia_state::galaxia_interrupt) WRITE8_MEMBER(galaxia_state::galaxia_video_w) { -// machine().primary_screen->update_partial(machine().primary_screen->vpos()); +// m_screen->update_partial(m_screen->vpos()); m_bg_tilemap->mark_tile_dirty(offset); cvs_video_or_color_ram_w(space, offset, data); } WRITE8_MEMBER(galaxia_state::galaxia_scroll_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); // fixed scrolling area for (int i = 1; i < 6; i++) @@ -109,13 +109,13 @@ WRITE8_MEMBER(galaxia_state::galaxia_dataport_w) READ8_MEMBER(galaxia_state::galaxia_collision_r) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); return m_collision_register; } READ8_MEMBER(galaxia_state::galaxia_collision_clear) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_collision_register = 0; return 0xff; } diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index 98ad02dc540..aa2c28e8739 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -2253,7 +2253,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(galaxian_state::timefgtr_scanline) // change spriteram base per each 64-line part of the screen if ((split & 0x3f) == 0) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_sprites_base = 0x40 | (split << 2 & 0x300); } } diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c index 5d1efdd7269..e00899ad10a 100644 --- a/src/mame/drivers/galpanic.c +++ b/src/mame/drivers/galpanic.c @@ -229,7 +229,7 @@ ADDRESS_MAP_END READ16_MEMBER(galpanic_state::comad_timer_r) { - return (machine().primary_screen->vpos() & 0x07) << 8; + return (m_screen->vpos() & 0x07) << 8; } /* a kludge! */ diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c index 8a971047866..85dbf9abc5b 100644 --- a/src/mame/drivers/gauntlet.c +++ b/src/mame/drivers/gauntlet.c @@ -165,7 +165,7 @@ MACHINE_RESET_MEMBER(gauntlet_state,gauntlet) m_sound_reset_val = 1; atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); } diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c index 45240fb1dc7..000fe188208 100644 --- a/src/mame/drivers/gei.c +++ b/src/mame/drivers/gei.c @@ -192,7 +192,7 @@ PALETTE_INIT_MEMBER(gei_state,quizvid) void gei_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); } UINT32 gei_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c index e84e32d5223..9dc0c84099b 100644 --- a/src/mame/drivers/go2000.c +++ b/src/mame/drivers/go2000.c @@ -207,8 +207,8 @@ UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &b } /*Sprite RAM code actually copied from video/suna16.c with minor modifications.*/ - int max_x = machine().primary_screen->width() - 8; - int max_y = machine().primary_screen->height() - 8; + int max_x = m_screen->width() - 8; + int max_y = m_screen->height() - 8; for (int offs = 0xf800 / 2; offs < 0x10000 / 2 ; offs += 4/2) { diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c index 1044b6b6c0f..f4b3993d5cd 100644 --- a/src/mame/drivers/gottlieb.c +++ b/src/mame/drivers/gottlieb.c @@ -264,7 +264,7 @@ void gottlieb_state::machine_reset() { /* if we have a laserdisc, reset our philips code callback for the next line 17 */ if (m_laserdisc != NULL) - m_laserdisc_philips_timer->adjust(machine().primary_screen->time_until_pos(17), 17); + m_laserdisc_philips_timer->adjust(m_screen->time_until_pos(17), 17); } @@ -439,7 +439,7 @@ TIMER_CALLBACK_MEMBER(gottlieb_state::laserdisc_philips_callback) /* toggle to the next one */ param = (param == 17) ? 18 : 17; - m_laserdisc_philips_timer->adjust(machine().primary_screen->time_until_pos(param * 2), param); + m_laserdisc_philips_timer->adjust(m_screen->time_until_pos(param * 2), param); } @@ -681,7 +681,7 @@ INTERRUPT_GEN_MEMBER(gottlieb_state::gottlieb_interrupt) { /* assert the NMI and set a timer to clear it at the first visible line */ device.execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(0), TIMER_NMI_CLEAR); + timer_set(m_screen->time_until_pos(0), TIMER_NMI_CLEAR); /* if we have a laserdisc, update it */ if (m_laserdisc != NULL) diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c index 44560e264cf..a67d470d2a2 100644 --- a/src/mame/drivers/grchamp.c +++ b/src/mame/drivers/grchamp.c @@ -334,7 +334,7 @@ UINT8 grchamp_state::get_pc3259_bits(int offs) int bits; /* force a partial update to the current position */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* get the relevant 4 bits */ bits = (m_collide >> (offs*4)) & 0x0f; diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c index d8486f50494..790aac3d645 100644 --- a/src/mame/drivers/gridlee.c +++ b/src/mame/drivers/gridlee.c @@ -103,15 +103,15 @@ TIMER_CALLBACK_MEMBER(gridlee_state::irq_timer_tick) { /* next interrupt after scanline 256 is scanline 64 */ if (param == 256) - m_irq_timer->adjust(machine().primary_screen->time_until_pos(64), 64); + m_irq_timer->adjust(m_screen->time_until_pos(64), 64); else - m_irq_timer->adjust(machine().primary_screen->time_until_pos(param + 64), param + 64); + m_irq_timer->adjust(m_screen->time_until_pos(param + 64), param + 64); /* IRQ starts on scanline 0, 64, 128, etc. */ m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* it will turn off on the next HBLANK */ - m_irq_off->adjust(machine().primary_screen->time_until_pos(param, GRIDLEE_HBSTART)); + m_irq_off->adjust(m_screen->time_until_pos(param, GRIDLEE_HBSTART)); } @@ -124,13 +124,13 @@ TIMER_CALLBACK_MEMBER(gridlee_state::firq_off_tick) TIMER_CALLBACK_MEMBER(gridlee_state::firq_timer_tick) { /* same time next frame */ - m_firq_timer->adjust(machine().primary_screen->time_until_pos(FIRQ_SCANLINE)); + m_firq_timer->adjust(m_screen->time_until_pos(FIRQ_SCANLINE)); /* IRQ starts on scanline FIRQ_SCANLINE? */ m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE); /* it will turn off on the next HBLANK */ - m_firq_off->adjust(machine().primary_screen->time_until_pos(FIRQ_SCANLINE, GRIDLEE_HBSTART)); + m_firq_off->adjust(m_screen->time_until_pos(FIRQ_SCANLINE, GRIDLEE_HBSTART)); } void gridlee_state::machine_start() @@ -151,8 +151,8 @@ void gridlee_state::machine_start() void gridlee_state::machine_reset() { /* start timers to generate interrupts */ - m_irq_timer->adjust(machine().primary_screen->time_until_pos(0)); - m_firq_timer->adjust(machine().primary_screen->time_until_pos(FIRQ_SCANLINE)); + m_irq_timer->adjust(m_screen->time_until_pos(0)); + m_firq_timer->adjust(m_screen->time_until_pos(FIRQ_SCANLINE)); } diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c index 7136261f33d..9fad05d27bd 100644 --- a/src/mame/drivers/hitme.c +++ b/src/mame/drivers/hitme.c @@ -140,7 +140,7 @@ UINT8 hitme_state::read_port_and_t0( int port ) UINT8 hitme_state::read_port_and_t0_and_hblank( int port ) { UINT8 val = read_port_and_t0(port); - if (machine().primary_screen->hpos() < (machine().primary_screen->width() * 9 / 10)) + if (m_screen->hpos() < (m_screen->width() * 9 / 10)) val ^= 0x04; return val; } diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c index 3b43a2b34df..c6d84e690c1 100644 --- a/src/mame/drivers/hng64.c +++ b/src/mame/drivers/hng64.c @@ -892,7 +892,7 @@ WRITE32_MEMBER(hng64_state::tcram_w) if(offset == 0x02) { UINT16 min_x, min_y, max_x, max_y; - rectangle visarea = machine().primary_screen->visible_area(); + rectangle visarea = m_screen->visible_area(); min_x = (hng64_tcram[1] & 0xffff0000) >> 16; min_y = (hng64_tcram[1] & 0x0000ffff) >> 0; @@ -908,7 +908,7 @@ WRITE32_MEMBER(hng64_state::tcram_w) m_screen_dis = 0; visarea.set(min_x, min_x + max_x - 1, min_y, min_y + max_y - 1); - machine().primary_screen->configure(HTOTAL, VTOTAL, visarea, machine().primary_screen->frame_period().attoseconds ); + m_screen->configure(HTOTAL, VTOTAL, visarea, m_screen->frame_period().attoseconds ); } } diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c index d097de6353a..ca0630708a3 100644 --- a/src/mame/drivers/igs009.c +++ b/src/mame/drivers/igs009.c @@ -365,7 +365,7 @@ UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16 CUSTOM_INPUT_MEMBER(igs009_state::hopper_r) { - return m_hopper && !(machine().primary_screen->frame_number()%10); + return m_hopper && !(m_screen->frame_number()%10); } diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c index 5333ffb8f81..516229fed8e 100644 --- a/src/mame/drivers/igs011.c +++ b/src/mame/drivers/igs011.c @@ -462,7 +462,7 @@ WRITE16_MEMBER(igs011_state::igs011_blit_flags_w) int gfx_size = memregion("blitter")->bytes(); int gfx2_size = memregion("blitter_hi")->bytes(); - const rectangle &clip = machine().primary_screen->visible_area(); + const rectangle &clip = m_screen->visible_area(); COMBINE_DATA(&blitter.flags); @@ -567,7 +567,7 @@ WRITE16_MEMBER(igs011_state::igs011_blit_flags_w) CUSTOM_INPUT_MEMBER(igs011_state::igs_hopper_r) { - return (m_igs_hopper && ((machine().primary_screen->frame_number()/5)&1)) ? 0x0000 : 0x0001; + return (m_igs_hopper && ((m_screen->frame_number()/5)&1)) ? 0x0000 : 0x0001; } WRITE16_MEMBER(igs011_state::igs_dips_w) diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c index 4870097712f..7862545485b 100644 --- a/src/mame/drivers/igs017.c +++ b/src/mame/drivers/igs017.c @@ -1567,7 +1567,7 @@ READ16_MEMBER(igs017_state::sdmg2_magic_r) { case 0x00: { - UINT16 hopper_bit = (m_hopper && ((machine().primary_screen->frame_number()/10)&1)) ? 0x0000 : 0x0001; + UINT16 hopper_bit = (m_hopper && ((m_screen->frame_number()/10)&1)) ? 0x0000 : 0x0001; return ioport("COINS")->read() | hopper_bit; } @@ -1688,7 +1688,7 @@ READ16_MEMBER(igs017_state::mgdha_magic_r) case 0x03: { - UINT16 hopper_bit = (m_hopper && ((machine().primary_screen->frame_number()/10)&1)) ? 0x0000 : 0x0001; + UINT16 hopper_bit = (m_hopper && ((m_screen->frame_number()/10)&1)) ? 0x0000 : 0x0001; return ioport("COINS")->read() | hopper_bit; } @@ -1772,7 +1772,7 @@ READ8_MEMBER(igs017_state::tjsb_input_r) case 0x02: return ioport("COINS")->read(); case 0x03: { - UINT8 hopper_bit = (m_hopper && ((machine().primary_screen->frame_number()/10)&1)) ? 0x00 : 0x20; + UINT8 hopper_bit = (m_hopper && ((m_screen->frame_number()/10)&1)) ? 0x00 : 0x20; return ioport("HOPPER")->read() | hopper_bit; } @@ -2215,7 +2215,7 @@ READ16_MEMBER(igs017_state::lhzb2a_input_r) case 0x02: { - UINT16 hopper_bit = (m_hopper && ((machine().primary_screen->frame_number()/10)&1)) ? 0x0000 : 0x0002; + UINT16 hopper_bit = (m_hopper && ((m_screen->frame_number()/10)&1)) ? 0x0000 : 0x0002; return (ioport("DSW1")->read() << 8) | ioport("COINS")->read() | hopper_bit; } diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c index d492ccb28d5..fce8673fcb4 100644 --- a/src/mame/drivers/igspoker.c +++ b/src/mame/drivers/igspoker.c @@ -346,7 +346,7 @@ WRITE8_MEMBER(igspoker_state::custom_io_w) CUSTOM_INPUT_MEMBER(igspoker_state::hopper_r) { - if (m_hopper) return !(machine().primary_screen->frame_number()%10); + if (m_hopper) return !(m_screen->frame_number()%10); return machine().input().code_pressed(KEYCODE_H); } diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c index 1865206850a..2af323d7f64 100644 --- a/src/mame/drivers/itech32.c +++ b/src/mame/drivers/itech32.c @@ -420,7 +420,7 @@ INTERRUPT_GEN_MEMBER(itech32_state::generate_int1) { /* signal the NMI */ itech32_update_interrupts(1, -1, -1); - if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", machine().primary_screen->vpos()); + if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", m_screen->vpos()); } @@ -503,7 +503,7 @@ READ32_MEMBER(itech32_state::trackball32_4bit_p1_r) { attotime curtime = machine().time(); - if ((curtime - m_p1_lasttime) > machine().primary_screen->scan_period()) + if ((curtime - m_p1_lasttime) > m_screen->scan_period()) { int upper, lower; int dx, dy; @@ -539,7 +539,7 @@ READ32_MEMBER(itech32_state::trackball32_4bit_p2_r) { attotime curtime = machine().time(); - if ((curtime - m_p2_lasttime) > machine().primary_screen->scan_period()) + if ((curtime - m_p2_lasttime) > m_screen->scan_period()) { int upper, lower; int dx, dy; diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c index 5242a7f5ee1..2ea0b4462ba 100644 --- a/src/mame/drivers/itech8.c +++ b/src/mame/drivers/itech8.c @@ -614,7 +614,7 @@ INTERRUPT_GEN_MEMBER(itech8_state::generate_nmi) itech8_update_interrupts(1, -1, -1); machine().scheduler().timer_set(attotime::from_usec(1), timer_expired_delegate(FUNC(itech8_state::irq_off),this)); - if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", machine().primary_screen->vpos()); + if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", m_screen->vpos()); } @@ -644,7 +644,7 @@ WRITE_LINE_MEMBER(itech8_state::generate_sound_irq) MACHINE_START_MEMBER(itech8_state,sstrike) { /* we need to update behind the beam as well */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), timer_expired_delegate(FUNC(itech8_state::behind_the_beam_update),this), 32); + machine().scheduler().timer_set(m_screen->time_until_pos(0), timer_expired_delegate(FUNC(itech8_state::behind_the_beam_update),this), 32); } void itech8_state::machine_reset() @@ -661,7 +661,7 @@ void itech8_state::machine_reset() /* set the visible area */ if (m_visarea.width() > 1) { - machine().primary_screen->set_visible_area(m_visarea.min_x, m_visarea.max_x, m_visarea.min_y, m_visarea.max_y); + m_screen->set_visible_area(m_visarea.min_x, m_visarea.max_x, m_visarea.min_y, m_visarea.max_y); m_visarea.set(0, 0, 0, 0); } } @@ -680,14 +680,14 @@ TIMER_CALLBACK_MEMBER(itech8_state::behind_the_beam_update) int interval = param & 0xff; /* force a partial update to the current scanline */ - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* advance by the interval, and wrap to 0 */ scanline += interval; if (scanline >= 256) scanline = 0; /* set a new timer */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(itech8_state::behind_the_beam_update),this), (scanline << 8) + interval); + machine().scheduler().timer_set(m_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(itech8_state::behind_the_beam_update),this), (scanline << 8) + interval); } diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c index d206aabbb4a..4185f082f4c 100644 --- a/src/mame/drivers/jackie.c +++ b/src/mame/drivers/jackie.c @@ -395,7 +395,7 @@ ADDRESS_MAP_END CUSTOM_INPUT_MEMBER(jackie_state::hopper_r) { - if (m_hopper) return !(machine().primary_screen->frame_number()%10); + if (m_hopper) return !(m_screen->frame_number()%10); return machine().input().code_pressed(KEYCODE_H); } diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c index adf1326592c..d011ab3ce65 100644 --- a/src/mame/drivers/jedi.c +++ b/src/mame/drivers/jedi.c @@ -135,7 +135,7 @@ TIMER_CALLBACK_MEMBER(jedi_state::generate_interrupt) scanline += 32; if (scanline > 256) scanline = 32; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -156,7 +156,7 @@ void jedi_state::machine_start() { /* set a timer to run the interrupts */ m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(jedi_state::generate_interrupt),this)); - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(32), 32); + m_interrupt_timer->adjust(m_screen->time_until_pos(32), 32); /* configure the banks */ membank("bank1")->configure_entries(0, 3, memregion("maincpu")->base() + 0x10000, 0x4000); diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c index 98ed3c60f5b..32a29ac7f41 100644 --- a/src/mame/drivers/klax.c +++ b/src/mame/drivers/klax.c @@ -61,7 +61,7 @@ WRITE16_MEMBER(klax_state::interrupt_ack_w) MACHINE_RESET_MEMBER(klax_state,klax) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); } diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c index ba479f60756..36d53a5ac91 100644 --- a/src/mame/drivers/konamigx.c +++ b/src/mame/drivers/konamigx.c @@ -670,7 +670,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(konamigx_state::konamigx_hbinterrupt) // maybe this interrupt should only be every 30fps, or maybe there are flags to prevent the game running too fast // the real hardware should output the display for each screen on alternate frames - // if(device->machine().primary_screen->frame_number() & 1) + // if(device->m_screen->frame_number() & 1) if (1) // gx_syncen & 0x20) { gx_syncen &= ~0x20; diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c index 937cae1eb63..8fb4a330ee2 100644 --- a/src/mame/drivers/lastfght.c +++ b/src/mame/drivers/lastfght.c @@ -137,7 +137,7 @@ void lastfght_state::video_start() { int i; for (i = 0; i < 2; i++) - machine().primary_screen->register_screen_bitmap(m_bitmap[i]); + m_screen->register_screen_bitmap(m_bitmap[i]); save_item(NAME(m_bitmap[0])); save_item(NAME(m_bitmap[1])); diff --git a/src/mame/drivers/littlerb.c b/src/mame/drivers/littlerb.c index 547d0ff6e05..26f8840ea1e 100644 --- a/src/mame/drivers/littlerb.c +++ b/src/mame/drivers/littlerb.c @@ -432,7 +432,7 @@ WRITE16_MEMBER(littlerb_state::littlerb_vdp_w) /* could be slightly different (timing wise, directly related to the irqs), but certainly they smoked some bad pot for this messy way ... */ UINT8 littlerb_state::sound_data_shift() { - return ((machine().primary_screen->frame_number() % 16) == 0) ? 8 : 0; + return ((m_screen->frame_number() % 16) == 0) ? 8 : 0; } /* l is SFX, r is BGM (they doesn't seem to share the same data ROM) */ @@ -469,7 +469,7 @@ ADDRESS_MAP_END /* guess according to DASM code and checking the gameplay speed, could be different */ CUSTOM_INPUT_MEMBER(littlerb_state::littlerb_frame_step_r) { - UINT32 ret = machine().primary_screen->frame_number(); + UINT32 ret = m_screen->frame_number(); return (ret) & 7; } @@ -593,8 +593,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(littlerb_state::littlerb_scanline) void littlerb_state::video_start() { -// machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites_back); -// machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites); +// m_screen->register_screen_bitmap(m_temp_bitmap_sprites_back); +// m_screen->register_screen_bitmap(m_temp_bitmap_sprites); m_temp_bitmap_sprites_back = auto_bitmap_ind16_alloc(machine(),512,512); m_temp_bitmap_sprites = auto_bitmap_ind16_alloc(machine(),512,512); diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c index 3ee44b89a43..435ace8f220 100644 --- a/src/mame/drivers/m10.c +++ b/src/mame/drivers/m10.c @@ -130,7 +130,7 @@ Notes (couriersud) WRITE8_MEMBER(m10_state::ic8j1_output_changed) { - LOG(("ic8j1: %d %d\n", data, machine().primary_screen->vpos())); + LOG(("ic8j1: %d %d\n", data, m_screen->vpos())); m_maincpu->set_input_line(0, !data ? CLEAR_LINE : ASSERT_LINE); } @@ -464,7 +464,7 @@ WRITE8_MEMBER(m10_state::m15_a100_w) READ8_MEMBER(m10_state::m10_a700_r) { - //LOG(("rd:%d\n",machine().primary_screen->vpos())); + //LOG(("rd:%d\n",m_screen->vpos())); LOG(("clear\n")); ttl74123_clear_w(m_ic8j1, space, 0, 0); ttl74123_clear_w(m_ic8j1, space, 0, 1); @@ -473,7 +473,7 @@ READ8_MEMBER(m10_state::m10_a700_r) READ8_MEMBER(m10_state::m11_a700_r) { - //LOG(("rd:%d\n",machine().primary_screen->vpos())); + //LOG(("rd:%d\n",m_screen->vpos())); //m_maincpu->set_input_line(0, CLEAR_LINE); LOG(("clear\n")); ttl74123_clear_w(m_ic8j1, space, 0, 0); @@ -499,12 +499,12 @@ TIMER_CALLBACK_MEMBER(m10_state::interrupt_callback) if (param == 0) { m_maincpu->set_input_line(0, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(IREMM10_VBSTART + 16), TIMER_INTERRUPT, 1); + timer_set(m_screen->time_until_pos(IREMM10_VBSTART + 16), TIMER_INTERRUPT, 1); } if (param == 1) { m_maincpu->set_input_line(0, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(IREMM10_VBSTART + 24), TIMER_INTERRUPT, 2); + timer_set(m_screen->time_until_pos(IREMM10_VBSTART + 24), TIMER_INTERRUPT, 2); } if (param == -1) m_maincpu->set_input_line(0, CLEAR_LINE); @@ -538,7 +538,7 @@ INTERRUPT_GEN_MEMBER(m10_state::m10_interrupt) INTERRUPT_GEN_MEMBER(m10_state::m15_interrupt) { device.execute().set_input_line(0, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(IREMM10_VBSTART + 1, 80), TIMER_INTERRUPT, -1); + timer_set(m_screen->time_until_pos(IREMM10_VBSTART + 1, 80), TIMER_INTERRUPT, -1); } /************************************* diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c index 6cdedd0f886..27b7f8be10a 100644 --- a/src/mame/drivers/m107.c +++ b/src/mame/drivers/m107.c @@ -55,14 +55,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(m107_state::m107_scanline_interrupt) /* raster interrupt */ if (scanline == m_raster_irq_position) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M107_IRQ_2); } /* VBLANK interrupt */ - else if (scanline == machine().primary_screen->visible_area().max_y + 1) + else if (scanline == m_screen->visible_area().max_y + 1) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M107_IRQ_0); } } diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c index 982a5284f65..19f3e733079 100644 --- a/src/mame/drivers/m72.c +++ b/src/mame/drivers/m72.c @@ -128,19 +128,19 @@ MACHINE_RESET_MEMBER(m72_state,m72) m_mcu_sample_addr = 0; m_mcu_snd_cmd_latch = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); machine().scheduler().synchronize(timer_expired_delegate(FUNC(m72_state::synch_callback),this)); } MACHINE_RESET_MEMBER(m72_state,xmultipl) { m_irq_base = 0x08; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } MACHINE_RESET_MEMBER(m72_state,kengo) { - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } TIMER_CALLBACK_MEMBER(m72_state::m72_scanline_interrupt) @@ -150,21 +150,21 @@ TIMER_CALLBACK_MEMBER(m72_state::m72_scanline_interrupt) /* raster interrupt - visible area only? */ if (scanline < 256 && scanline == m_raster_irq_position - 128) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_irq_base + 2); } /* VBLANK interrupt */ else if (scanline == 256) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_irq_base + 0); } /* adjust for next scanline */ - if (++scanline >= machine().primary_screen->height()) + if (++scanline >= m_screen->height()) scanline = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } TIMER_CALLBACK_MEMBER(m72_state::kengo_scanline_interrupt) @@ -174,7 +174,7 @@ TIMER_CALLBACK_MEMBER(m72_state::kengo_scanline_interrupt) /* raster interrupt - visible area only? */ if (scanline < 256 && scanline == m_raster_irq_position - 128) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line(NEC_INPUT_LINE_INTP2, ASSERT_LINE); } else @@ -183,16 +183,16 @@ TIMER_CALLBACK_MEMBER(m72_state::kengo_scanline_interrupt) /* VBLANK interrupt */ if (scanline == 256) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line(NEC_INPUT_LINE_INTP0, ASSERT_LINE); } else m_maincpu->set_input_line(NEC_INPUT_LINE_INTP0, CLEAR_LINE); /* adjust for next scanline */ - if (++scanline >= machine().primary_screen->height()) + if (++scanline >= m_screen->height()) scanline = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } /*************************************************************************** diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c index 6c8cd6f872b..1a70d7148bc 100644 --- a/src/mame/drivers/m92.c +++ b/src/mame/drivers/m92.c @@ -231,14 +231,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(m92_state::m92_scanline_interrupt) /* raster interrupt */ if (scanline == m_raster_irq_position) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_2); } /* VBLANK interrupt */ - else if (scanline == machine().primary_screen->visible_area().max_y + 1) + else if (scanline == m_screen->visible_area().max_y + 1) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_0); } } diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c index 541ca66cd1b..e9b51302980 100644 --- a/src/mame/drivers/magmax.c +++ b/src/mame/drivers/magmax.c @@ -70,7 +70,7 @@ TIMER_CALLBACK_MEMBER(magmax_state::scanline_callback) scanline += 128; scanline &= 255; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } void magmax_state::machine_start() @@ -87,7 +87,7 @@ void magmax_state::machine_start() void magmax_state::machine_reset() { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(64), 64); + m_interrupt_timer->adjust(m_screen->time_until_pos(64), 64); #if 0 { diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c index ebec8134f20..4cd0b53ab85 100644 --- a/src/mame/drivers/malzak.c +++ b/src/mame/drivers/malzak.c @@ -74,7 +74,7 @@ READ8_MEMBER(malzak_state::fake_VRLE_r) { - return (s2636_work_ram_r(m_s2636_0, space, 0xcb) & 0x3f) + (machine().primary_screen->vblank() * 0x40); + return (s2636_work_ram_r(m_s2636_0, space, 0xcb) & 0x3f) + (m_screen->vblank() * 0x40); } READ8_MEMBER(malzak_state::s2636_portA_r) diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c index ecbe427eea2..53a9a375270 100644 --- a/src/mame/drivers/marinedt.c +++ b/src/mame/drivers/marinedt.c @@ -310,7 +310,7 @@ WRITE8_MEMBER(marinedt_state::marinedt_pf_w) //if (data & 0xf0) // logerror("pf:%02x %d\n", m_pf); - //logerror("pd:%02x %d\n", m_pd, machine().primary_screen->frame_number()); + //logerror("pd:%02x %d\n", m_pd, m_screen->frame_number()); } diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c index 41b4df6c143..fa44edb2f68 100644 --- a/src/mame/drivers/mazerbla.c +++ b/src/mame/drivers/mazerbla.c @@ -247,10 +247,10 @@ void mazerbla_state::video_start() m_dbg_lookup = 4; #endif - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[0]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[1]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[2]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[3]); + m_screen->register_screen_bitmap(m_tmpbitmaps[0]); + m_screen->register_screen_bitmap(m_tmpbitmaps[1]); + m_screen->register_screen_bitmap(m_tmpbitmaps[2]); + m_screen->register_screen_bitmap(m_tmpbitmaps[3]); save_item(NAME(m_tmpbitmaps[0])); save_item(NAME(m_tmpbitmaps[1])); diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c index 1744effd802..f51c7cecbf2 100644 --- a/src/mame/drivers/mcr3.c +++ b/src/mame/drivers/mcr3.c @@ -451,7 +451,7 @@ READ8_MEMBER(mcr3_state::turbotag_ip2_r) if (m_input_mux) return ioport("ssio:IP2.ALT")->read(); - return ioport("ssio:IP2")->read() + 5 * (machine().primary_screen->frame_number() & 1); + return ioport("ssio:IP2")->read() + 5 * (m_screen->frame_number() & 1); } diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c index cec49b43c74..9f894a043ad 100644 --- a/src/mame/drivers/meadows.c +++ b/src/mame/drivers/meadows.c @@ -138,21 +138,21 @@ READ8_MEMBER(meadows_state::hsync_chain_r) { - UINT8 val = machine().primary_screen->hpos(); + UINT8 val = m_screen->hpos(); return BITSWAP8(val,0,1,2,3,4,5,6,7); } READ8_MEMBER(meadows_state::vsync_chain_hi_r) { - UINT8 val = machine().primary_screen->vpos(); + UINT8 val = m_screen->vpos(); return ((val >> 1) & 0x08) | ((val >> 3) & 0x04) | ((val >> 5) & 0x02) | (val >> 7); } READ8_MEMBER(meadows_state::vsync_chain_lo_r) { - UINT8 val = machine().primary_screen->vpos(); + UINT8 val = m_screen->vpos(); return val & 0x0f; } diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c index 1e4a74a4549..ef01c5848fc 100644 --- a/src/mame/drivers/mediagx.c +++ b/src/mame/drivers/mediagx.c @@ -279,7 +279,7 @@ void mediagx_state::draw_framebuffer(bitmap_rgb32 &bitmap, const rectangle &clip m_frame_height = height; visarea.set(0, width - 1, 0, height - 1); - machine().primary_screen->configure(width, height * 262 / 240, visarea, machine().primary_screen->frame_period().attoseconds); + m_screen->configure(width, height * 262 / 240, visarea, m_screen->frame_period().attoseconds); } if (m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // 8-bit mode @@ -390,7 +390,7 @@ READ32_MEMBER(mediagx_state::disp_ctrl_r) case DC_TIMING_CFG: r |= 0x40000000; - if (machine().primary_screen->vpos() >= m_frame_height) + if (m_screen->vpos() >= m_frame_height) r &= ~0x40000000; #if SPEEDUP_HACKS diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c index c176211c22b..64c1c2b6b44 100644 --- a/src/mame/drivers/megaplay.c +++ b/src/mame/drivers/megaplay.c @@ -70,7 +70,7 @@ static UINT8 hintcount; /* line interrupt counter, decreased each scan static INTERRUPT_GEN (megaplay_bios_irq) { int sline; - sline = device->machine().primary_screen->vpos(); + sline = device->m_screen->vpos(); if (sline ==0) { hintcount = segae_vdp_regs[0][10]; diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c index c122c2543b7..9239877e26d 100644 --- a/src/mame/drivers/merit.c +++ b/src/mame/drivers/merit.c @@ -226,7 +226,7 @@ WRITE8_MEMBER(merit_state::palette_w) { int co; - machine().primary_screen->update_now(); + m_screen->update_now(); data &= 0x0f; co = ((m_ram_attr[offset] & 0x7F) << 3) | (offset & 0x07); @@ -307,7 +307,7 @@ static MC6845_UPDATE_ROW( update_row ) WRITE_LINE_MEMBER(merit_state::hsync_changed) { /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); } WRITE_LINE_MEMBER(merit_state::vsync_changed) diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c index bb4884694a0..47aa87de67f 100644 --- a/src/mame/drivers/mgolf.c +++ b/src/mame/drivers/mgolf.c @@ -150,7 +150,7 @@ TIMER_CALLBACK_MEMBER(mgolf_state::interrupt_callback) if (scanline >= 262) scanline = 16; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); } @@ -335,7 +335,7 @@ void mgolf_state::machine_start() void mgolf_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(16), TIMER_INTERRUPT, 16); + timer_set(m_screen->time_until_pos(16), TIMER_INTERRUPT, 16); m_mask = 0; m_prev = 0; diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index 2647e3a731a..e926f176469 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -485,7 +485,7 @@ static void update_gun_irq(running_machine &machine) TIMER_CALLBACK_MEMBER(midzeus_state::invasn_gun_callback) { int player = param; - int beamy = machine().primary_screen->vpos(); + int beamy = m_screen->vpos(); /* set the appropriate IRQ in the internal gun control and update */ gun_irq_state |= 0x01 << player; @@ -493,8 +493,8 @@ TIMER_CALLBACK_MEMBER(midzeus_state::invasn_gun_callback) /* generate another interrupt on the next scanline while we are within the BEAM_DY */ beamy++; - if (beamy <= machine().primary_screen->visible_area().max_y && beamy <= gun_y[player] + BEAM_DY) - gun_timer[player]->adjust(machine().primary_screen->time_until_pos(beamy, MAX(0, gun_x[player] - BEAM_DX)), player); + if (beamy <= m_screen->visible_area().max_y && beamy <= gun_y[player] + BEAM_DY) + gun_timer[player]->adjust(m_screen->time_until_pos(beamy, MAX(0, gun_x[player] - BEAM_DX)), player); } @@ -515,7 +515,7 @@ WRITE32_MEMBER(midzeus_state::invasn_gun_w) UINT8 pmask = 0x04 << player; if (((old_control ^ gun_control) & pmask) != 0 && (gun_control & pmask) == 0) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); static const char *const names[2][2] = { { "GUNX1", "GUNY1" }, @@ -523,7 +523,7 @@ WRITE32_MEMBER(midzeus_state::invasn_gun_w) }; gun_x[player] = ioport(names[player][0])->read() * visarea.width() / 255 + visarea.min_x + BEAM_XOFFS; gun_y[player] = ioport(names[player][1])->read() * visarea.height() / 255 + visarea.min_y; - gun_timer[player]->adjust(machine().primary_screen->time_until_pos(MAX(0, gun_y[player] - BEAM_DY), MAX(0, gun_x[player] - BEAM_DX)), player); + gun_timer[player]->adjust(m_screen->time_until_pos(MAX(0, gun_y[player] - BEAM_DY), MAX(0, gun_x[player] - BEAM_DX)), player); } } } @@ -531,8 +531,8 @@ WRITE32_MEMBER(midzeus_state::invasn_gun_w) READ32_MEMBER(midzeus_state::invasn_gun_r) { - int beamx = machine().primary_screen->hpos(); - int beamy = machine().primary_screen->vpos(); + int beamx = m_screen->hpos(); + int beamy = m_screen->vpos(); UINT32 result = 0xffff; int player; diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c index cab16e4841d..2cf00e114c4 100644 --- a/src/mame/drivers/missile.c +++ b/src/mame/drivers/missile.c @@ -460,7 +460,7 @@ void missile_state::schedule_next_irq(int curv) curv = ((curv + 32) & 0xff) & ~0x10; /* next one at the start of this scanline */ - m_irq_timer->adjust(machine().primary_screen->time_until_pos(v_to_scanline(curv)), curv); + m_irq_timer->adjust(m_screen->time_until_pos(v_to_scanline(curv)), curv); } @@ -473,7 +473,7 @@ TIMER_CALLBACK_MEMBER(missile_state::clock_irq) m_maincpu->set_input_line(0, m_irq_state ? ASSERT_LINE : CLEAR_LINE); /* force an update while we're here */ - machine().primary_screen->update_partial(v_to_scanline(curv)); + m_screen->update_partial(v_to_scanline(curv)); /* find the next edge */ schedule_next_irq(curv); @@ -482,7 +482,7 @@ TIMER_CALLBACK_MEMBER(missile_state::clock_irq) CUSTOM_INPUT_MEMBER(missile_state::get_vblank) { - int v = scanline_to_v(machine().primary_screen->vpos()); + int v = scanline_to_v(m_screen->vpos()); return v < 24; } @@ -506,7 +506,7 @@ TIMER_CALLBACK_MEMBER(missile_state::adjust_cpu_speed) /* scanline for the next run */ curv ^= 224; - m_cpu_timer->adjust(machine().primary_screen->time_until_pos(v_to_scanline(curv)), curv); + m_cpu_timer->adjust(m_screen->time_until_pos(v_to_scanline(curv)), curv); } @@ -519,7 +519,7 @@ void missile_state::machine_start() /* create a timer to speed/slow the CPU */ m_cpu_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(missile_state::adjust_cpu_speed),this)); - m_cpu_timer->adjust(machine().primary_screen->time_until_pos(v_to_scanline(0), 0)); + m_cpu_timer->adjust(m_screen->time_until_pos(v_to_scanline(0), 0)); /* create a timer for IRQs and set up the first callback */ m_irq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(missile_state::clock_irq),this)); diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index b33e719b5e5..5867bd26846 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -439,7 +439,7 @@ READ32_MEMBER(model2_state::fifoctl_r) READ32_MEMBER(model2_state::videoctl_r) { - return (machine().primary_screen->frame_number() & 1) << 2; + return (m_screen->frame_number() & 1) << 2; } CUSTOM_INPUT_MEMBER(model2_state::_1c00000_r) diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index 36a061e2f9a..a5c3902a0ac 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -1604,7 +1604,7 @@ READ64_MEMBER(model3_state::real3d_status_r) { /* pretty sure this is VBLANK */ m_real3d_status &= ~U64(0x0000000200000000); - if (machine().primary_screen->vblank()) + if (m_screen->vblank()) m_real3d_status |= U64(0x0000000200000000); return m_real3d_status; } diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index 679a9d58ecb..cf69b1d6736 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -423,7 +423,7 @@ READ8_MEMBER(multfish_state::ray_r) { // the games read the raster beam position as part of the hardware checks.. // with a 6mhz clock and 640x480 resolution this seems to give the right results. - return machine().primary_screen->vpos(); + return m_screen->vpos(); } CUSTOM_INPUT_MEMBER(multfish_state::multfish_hopper_r) diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index 91b637bbef3..6919253239c 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -206,7 +206,7 @@ WRITE32_MEMBER(namcofl_state::namcofl_paletteram_w) UINT16 v = m_generic_paletteram_32[offset] >> 16; UINT16 triggerscanline=(((v>>8)&0xff)|((v&0xff)<<8))-(32+1); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(triggerscanline)); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(triggerscanline)); } } @@ -525,22 +525,22 @@ GFXDECODE_END TIMER_CALLBACK_MEMBER(namcofl_state::network_interrupt_callback) { m_maincpu->set_input_line(I960_IRQ0, ASSERT_LINE); - machine().scheduler().timer_set(machine().primary_screen->frame_period(), timer_expired_delegate(FUNC(namcofl_state::network_interrupt_callback),this)); + machine().scheduler().timer_set(m_screen->frame_period(), timer_expired_delegate(FUNC(namcofl_state::network_interrupt_callback),this)); } TIMER_CALLBACK_MEMBER(namcofl_state::vblank_interrupt_callback) { m_maincpu->set_input_line(I960_IRQ2, ASSERT_LINE); - machine().scheduler().timer_set(machine().primary_screen->frame_period(), timer_expired_delegate(FUNC(namcofl_state::vblank_interrupt_callback),this)); + machine().scheduler().timer_set(m_screen->frame_period(), timer_expired_delegate(FUNC(namcofl_state::vblank_interrupt_callback),this)); } TIMER_CALLBACK_MEMBER(namcofl_state::raster_interrupt_callback) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_maincpu->set_input_line(I960_IRQ1, ASSERT_LINE); - m_raster_interrupt_timer->adjust(machine().primary_screen->frame_period()); + m_raster_interrupt_timer->adjust(m_screen->frame_period()); } TIMER_DEVICE_CALLBACK_MEMBER(namcofl_state::mcu_irq0_cb) @@ -567,8 +567,8 @@ MACHINE_START_MEMBER(namcofl_state,namcofl) MACHINE_RESET_MEMBER(namcofl_state,namcofl) { - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(machine().primary_screen->visible_area().max_y + 3), timer_expired_delegate(FUNC(namcofl_state::network_interrupt_callback),this)); - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(machine().primary_screen->visible_area().max_y + 1), timer_expired_delegate(FUNC(namcofl_state::vblank_interrupt_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(m_screen->visible_area().max_y + 3), timer_expired_delegate(FUNC(namcofl_state::network_interrupt_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(m_screen->visible_area().max_y + 1), timer_expired_delegate(FUNC(namcofl_state::vblank_interrupt_callback),this)); membank("bank1")->set_base(memregion("maincpu")->base() ); membank("bank2")->set_base(m_workram ); diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c index d96615c928a..dda0fdff540 100644 --- a/src/mame/drivers/namcona1.c +++ b/src/mame/drivers/namcona1.c @@ -974,7 +974,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcona1_state::namcona1_interrupt) if (scanline == posirq_scanline && enabled & 4) { if (posirq_scanline) - machine().primary_screen->update_partial(posirq_scanline); + m_screen->update_partial(posirq_scanline); m_maincpu->set_input_line(3, HOLD_LINE); } diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c index 83ba16049f7..ce1877bfcfb 100644 --- a/src/mame/drivers/namconb1.c +++ b/src/mame/drivers/namconb1.c @@ -302,7 +302,7 @@ TIMER_CALLBACK_MEMBER(namconb1_state::namconb1_TriggerPOSIRQ) if(m_pos_irq_active || !(m_namconb_cpureg[0x02] & 0xf0)) return; - machine().primary_screen->update_partial(param); + m_screen->update_partial(param); m_pos_irq_active = 1; m_maincpu->set_input_line(m_namconb_cpureg[0x02] & 0xf, ASSERT_LINE); } @@ -356,14 +356,14 @@ INTERRUPT_GEN_MEMBER(namconb1_state::namconb1_interrupt) } if( scanline < NAMCONB1_VBSTART ) { - machine().scheduler().timer_set( machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(namconb1_state::namconb1_TriggerPOSIRQ),this), scanline); + machine().scheduler().timer_set( m_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(namconb1_state::namconb1_TriggerPOSIRQ),this), scanline); } } /* namconb1_interrupt */ TIMER_CALLBACK_MEMBER(namconb1_state::namconb2_TriggerPOSIRQ) { - machine().primary_screen->update_partial(param); + m_screen->update_partial(param); m_pos_irq_active = 1; m_maincpu->set_input_line(m_namconb_cpureg[0x02], ASSERT_LINE); } @@ -410,7 +410,7 @@ INTERRUPT_GEN_MEMBER(namconb1_state::namconb2_interrupt) scanline = 0; if( scanline < NAMCONB1_VBSTART ) - machine().scheduler().timer_set( machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(namconb1_state::namconb2_TriggerPOSIRQ),this), scanline); + machine().scheduler().timer_set( m_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(namconb1_state::namconb2_TriggerPOSIRQ),this), scanline); } /* namconb2_interrupt */ static void namconb1_cpureg8_w(running_machine &machine, int reg, UINT8 data) diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index c2590e158f1..5fe08456d8f 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -2242,7 +2242,7 @@ READ16_MEMBER(namcos23_state::s23_c417_r) 0: xcpreq */ case 0: - return 0x8e | (machine().primary_screen->vblank() ? 0x0000 : 0x8000); + return 0x8e | (m_screen->vblank() ? 0x0000 : 0x8000); case 1: return m_c417.adr; case 4: @@ -2479,11 +2479,11 @@ TIMER_CALLBACK_MEMBER(namcos23_state::c361_timer_cb) if (m_c361.scanline != 0x1ff) { // need to do a partial update here, but doesn't work properly yet - //machine().primary_screen->update_partial(machine().primary_screen->vpos()); + //m_screen->update_partial(m_screen->vpos()); update_main_interrupts(m_main_irqcause | MAIN_C361_IRQ); // TC2 indicates it's probably one-shot since it resets it each VBL... - //c361.timer->adjust(machine().primary_screen->time_until_pos(c361.scanline)); + //c361.timer->adjust(m_screen->time_until_pos(c361.scanline)); } else update_main_interrupts(m_main_irqcause & ~MAIN_C361_IRQ); @@ -2503,7 +2503,7 @@ WRITE16_MEMBER(namcos23_state::s23_c361_w) case 4: // interrupt control m_c361.scanline = data & 0x1ff; - m_c361.timer->adjust(machine().primary_screen->time_until_pos(m_c361.scanline)); + m_c361.timer->adjust(m_screen->time_until_pos(m_c361.scanline)); break; default: @@ -2520,10 +2520,10 @@ READ16_MEMBER(namcos23_state::s23_c361_r) // how does it work exactly? it's not understood in namcos22 either (also has a c361) case 5: update_main_interrupts(m_main_irqcause & ~MAIN_C361_IRQ); - return machine().primary_screen->vpos()*2 | (machine().primary_screen->vblank() ? 1 : 0); + return m_screen->vpos()*2 | (m_screen->vblank() ? 1 : 0); case 6: update_main_interrupts(m_main_irqcause & ~MAIN_C361_IRQ); - return machine().primary_screen->vblank() ? 1 : 0; + return m_screen->vblank() ? 1 : 0; } logerror("c361_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31)); diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c index 65e9b4188ca..0de90e6056d 100644 --- a/src/mame/drivers/nemesis.c +++ b/src/mame/drivers/nemesis.c @@ -73,7 +73,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(nemesis_state::konamigt_interrupt) { int scanline = param; - if (scanline == 240 && m_irq_on && (machine().primary_screen->frame_number() & 1) == 0) + if (scanline == 240 && m_irq_on && (m_screen->frame_number() & 1) == 0) m_maincpu->set_input_line(1, HOLD_LINE); if (scanline == 0 && m_irq2_on) @@ -84,7 +84,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(nemesis_state::gx400_interrupt) { int scanline = param; - if (scanline == 240 && m_irq1_on && (machine().primary_screen->frame_number() & 1) == 0) + if (scanline == 240 && m_irq1_on && (m_screen->frame_number() & 1) == 0) m_maincpu->set_input_line(1, HOLD_LINE); if (scanline == 0 && m_irq2_on) diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c index 0dc214c574b..af9a0f56578 100644 --- a/src/mame/drivers/neogeo.c +++ b/src/mame/drivers/neogeo.c @@ -191,7 +191,7 @@ void neogeo_state::adjust_display_position_interrupt_timer() if ((m_display_counter + 1) != 0) { attotime period = attotime::from_hz(NEOGEO_PIXEL_CLOCK) * (m_display_counter + 1); - if (LOG_VIDEO_SYSTEM) logerror("adjust_display_position_interrupt_timer current y: %02x current x: %02x target y: %x target x: %x\n", machine().primary_screen->vpos(), machine().primary_screen->hpos(), (m_display_counter + 1) / NEOGEO_HTOTAL, (m_display_counter + 1) % NEOGEO_HTOTAL); + if (LOG_VIDEO_SYSTEM) logerror("adjust_display_position_interrupt_timer current y: %02x current x: %02x target y: %x target x: %x\n", m_screen->vpos(), m_screen->hpos(), (m_display_counter + 1) / NEOGEO_HTOTAL, (m_display_counter + 1) % NEOGEO_HTOTAL); m_display_position_interrupt_timer->adjust(period); } @@ -249,11 +249,11 @@ void neogeo_state::neogeo_acknowledge_interrupt( UINT16 data ) TIMER_CALLBACK_MEMBER(neogeo_state::display_position_interrupt_callback) { - if (LOG_VIDEO_SYSTEM) logerror("--- Scanline @ %d,%d\n", machine().primary_screen->vpos(), machine().primary_screen->hpos()); + if (LOG_VIDEO_SYSTEM) logerror("--- Scanline @ %d,%d\n", m_screen->vpos(), m_screen->hpos()); if (m_display_position_interrupt_control & IRQ2CTRL_ENABLE) { - if (LOG_VIDEO_SYSTEM) logerror("*** Scanline interrupt (IRQ2) *** y: %02x x: %02x\n", machine().primary_screen->vpos(), machine().primary_screen->hpos()); + if (LOG_VIDEO_SYSTEM) logerror("*** Scanline interrupt (IRQ2) *** y: %02x x: %02x\n", m_screen->vpos(), m_screen->hpos()); m_display_position_interrupt_pending = 1; update_interrupts(); @@ -276,13 +276,13 @@ TIMER_CALLBACK_MEMBER(neogeo_state::display_position_vblank_callback) } /* set timer for next screen */ - m_display_position_vblank_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS)); + m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS)); } TIMER_CALLBACK_MEMBER(neogeo_state::vblank_interrupt_callback) { - if (LOG_VIDEO_SYSTEM) logerror("+++ VBLANK @ %d,%d\n", machine().primary_screen->vpos(), machine().primary_screen->hpos()); + if (LOG_VIDEO_SYSTEM) logerror("+++ VBLANK @ %d,%d\n", m_screen->vpos(), m_screen->hpos()); /* add a timer tick to the pd4990a */ upd4990a_addretrace(m_upd4990a); @@ -292,7 +292,7 @@ TIMER_CALLBACK_MEMBER(neogeo_state::vblank_interrupt_callback) update_interrupts(); /* set timer for next screen */ - m_vblank_interrupt_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VBSTART)); + m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART)); } @@ -306,8 +306,8 @@ void neogeo_state::create_interrupt_timers() void neogeo_state::start_interrupt_timers() { - m_vblank_interrupt_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VBSTART)); - m_display_position_vblank_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS)); + m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART)); + m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS)); } diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c index cf6062f1376..a7806975d6d 100644 --- a/src/mame/drivers/neoprint.c +++ b/src/mame/drivers/neoprint.c @@ -158,7 +158,7 @@ READ8_MEMBER(neoprint_state::neoprint_unk_r) /* ---- xx-- one of these two must be high */ /* ---- --xx checked right before entering into attract mode, presumably printer/camera related */ - m_vblank = (machine().primary_screen->frame_number() & 0x1) ? 0x10 : 0x00; + m_vblank = (m_screen->frame_number() & 0x1) ? 0x10 : 0x00; //if(space.device().safe_pc() != 0x1504 && space.device().safe_pc() != 0x5f86 && space.device().safe_pc() != 0x5f90) // printf("%08x\n",space.device().safe_pc()); diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c index 499db0d5d1b..e63fb9e9e99 100644 --- a/src/mame/drivers/nss.c +++ b/src/mame/drivers/nss.c @@ -515,7 +515,7 @@ READ8_MEMBER(nss_state::port_00_r) UINT8 res; res = (m_joy_flag) << 7; - res|= (machine().primary_screen->vblank() & 1) << 6; + res|= (m_screen->vblank() & 1) << 6; res|= (BIT(ioport("SERIAL1_DATA1")->read(), 15) << 5); res|= (BIT(ioport("SERIAL1_DATA1")->read(), 7) << 4); res|= (BIT(ioport("SERIAL1_DATA1")->read(), 10) << 3); diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c index 63d135425a1..04a1f13693d 100644 --- a/src/mame/drivers/nyny.c +++ b/src/mame/drivers/nyny.c @@ -465,7 +465,7 @@ WRITE8_MEMBER(nyny_state::nyny_ay8910_37_port_a_w) { /* not sure what this does */ - /*logerror("%x PORT A write %x at Y=%x X=%x\n", space.device().safe_pc(), data, space.machine().primary_screen->vpos(), space.machine().primary_screen->hpos());*/ + /*logerror("%x PORT A write %x at Y=%x X=%x\n", space.device().safe_pc(), data, m_screen->vpos(), m_screen->hpos());*/ } diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c index 2ce05271ec9..1be72a01e8b 100644 --- a/src/mame/drivers/orbit.c +++ b/src/mame/drivers/orbit.c @@ -48,7 +48,7 @@ TIMER_CALLBACK_MEMBER(orbit_state::irq_off) INTERRUPT_GEN_MEMBER(orbit_state::orbit_interrupt) { device.execute().set_input_line(0, ASSERT_LINE); - machine().scheduler().timer_set(machine().primary_screen->time_until_vblank_end(), timer_expired_delegate(FUNC(orbit_state::irq_off),this)); + machine().scheduler().timer_set(m_screen->time_until_vblank_end(), timer_expired_delegate(FUNC(orbit_state::irq_off),this)); } diff --git a/src/mame/drivers/othldrby.c b/src/mame/drivers/othldrby.c index 2e1f094104b..542ce8e889f 100644 --- a/src/mame/drivers/othldrby.c +++ b/src/mame/drivers/othldrby.c @@ -26,7 +26,7 @@ Notes: /* Guess: reads when doing r/w to video device */ READ16_MEMBER(othldrby_state::othldrby_scanline_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c index 99586e7811f..901a4fe125d 100644 --- a/src/mame/drivers/overdriv.c +++ b/src/mame/drivers/overdriv.c @@ -72,7 +72,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(overdriv_state::overdriv_cpuA_scanline) /* TODO: irqs routines are TOO slow right now, it ends up firing spurious irqs for whatever reason (shared ram fighting?) */ /* this is a temporary solution to get rid of deprecat lib and the crashes, but also makes the game timer to be too slow */ - if(scanline == 256 && machine().primary_screen->frame_number() & 1) // vblank-out irq + if(scanline == 256 && m_screen->frame_number() & 1) // vblank-out irq m_maincpu->set_input_line(4, HOLD_LINE); else if((scanline % 128) == 0) // timer irq m_maincpu->set_input_line(5, HOLD_LINE); diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c index ca8c8b32aa8..768c4282d7e 100644 --- a/src/mame/drivers/peplus.c +++ b/src/mame/drivers/peplus.c @@ -396,23 +396,23 @@ void peplus_state::device_timer(emu_timer &timer, device_timer_id id, int param, } -static void handle_lightpen( device_t *device ) +static void handle_lightpen( mc6845_device *device ) { peplus_state *state = device->machine().driver_data(); int x_val = device->machine().root_device().ioport("TOUCH_X")->read_safe(0x00); int y_val = device->machine().root_device().ioport("TOUCH_Y")->read_safe(0x00); - const rectangle &vis_area = device->machine().primary_screen->visible_area(); + const rectangle &vis_area = device->screen().visible_area(); int xt, yt; xt = x_val * vis_area.width() / 1024 + vis_area.min_x; yt = y_val * vis_area.height() / 1024 + vis_area.min_y; - state->timer_set(device->machine().primary_screen->time_until_pos(yt, xt), peplus_state::TIMER_ASSERT_LP, 0, device); + state->timer_set(device->screen().time_until_pos(yt, xt), peplus_state::TIMER_ASSERT_LP, 0, device); } WRITE_LINE_MEMBER(peplus_state::crtc_vsync) { - device_t *device = machine().device("crtc"); + mc6845_device *device = machine().device("crtc"); m_maincpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); handle_lightpen(device); } diff --git a/src/mame/drivers/pinball2k.c b/src/mame/drivers/pinball2k.c index 9ce9d9f70b1..4c90f13c443 100644 --- a/src/mame/drivers/pinball2k.c +++ b/src/mame/drivers/pinball2k.c @@ -188,7 +188,7 @@ void pinball2k_state::draw_framebuffer(bitmap_rgb32 &bitmap, const rectangle &cl m_frame_height = height; visarea.set(0, width - 1, 0, height - 1); - machine().primary_screen->configure(width, height * 262 / 240, visarea, machine().primary_screen->frame_period().attoseconds); + m_screen->configure(width, height * 262 / 240, visarea, m_screen->frame_period().attoseconds); } if (m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // 8-bit mode @@ -299,7 +299,7 @@ READ32_MEMBER(pinball2k_state::disp_ctrl_r) case DC_TIMING_CFG: r |= 0x40000000; - if (machine().primary_screen->vpos() >= m_frame_height) + if (m_screen->vpos() >= m_frame_height) r &= ~0x40000000; break; } diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c index 3f27a7cbe68..d088584d552 100644 --- a/src/mame/drivers/pkscram.c +++ b/src/mame/drivers/pkscram.c @@ -225,14 +225,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(pkscram_state::scanline_callback) { if (m_out & 0x2000) m_maincpu->set_input_line(1, ASSERT_LINE); - timer.adjust(machine().primary_screen->time_until_pos(param + 1), param+1); + timer.adjust(m_screen->time_until_pos(param + 1), param+1); m_interrupt_line_active = 1; } else { if (m_interrupt_line_active) m_maincpu->set_input_line(1, CLEAR_LINE); - timer.adjust(machine().primary_screen->time_until_pos(interrupt_scanline), interrupt_scanline); + timer.adjust(m_screen->time_until_pos(interrupt_scanline), interrupt_scanline); m_interrupt_line_active = 0; } } @@ -295,7 +295,7 @@ void pkscram_state::machine_reset() m_out = 0; m_interrupt_line_active=0; timer_device *scanline_timer = machine().device("scan_timer"); - scanline_timer->adjust(machine().primary_screen->time_until_pos(interrupt_scanline), interrupt_scanline); + scanline_timer->adjust(m_screen->time_until_pos(interrupt_scanline), interrupt_scanline); } static MACHINE_CONFIG_START( pkscramble, pkscram_state ) diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c index 62bc128ee53..0a061c360a6 100644 --- a/src/mame/drivers/polepos.c +++ b/src/mame/drivers/polepos.c @@ -273,7 +273,7 @@ READ8_MEMBER(polepos_state::polepos_ready_r) { int ret = 0xff; - if (machine().primary_screen->vpos() >= 128) + if (m_screen->vpos() >= 128) ret ^= 0x02; ret ^= 0x08; /* ADC End Flag */ diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c index 47dda5c25cd..3f6bd2d59ed 100644 --- a/src/mame/drivers/policetr.c +++ b/src/mame/drivers/policetr.c @@ -117,7 +117,7 @@ void policetr_state::device_timer(emu_timer &timer, device_timer_id id, int para INTERRUPT_GEN_MEMBER(policetr_state::irq4_gen) { device.execute().set_input_line(R3000_IRQ4, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(0), TIMER_IRQ5_GEN); + timer_set(m_screen->time_until_pos(0), TIMER_IRQ5_GEN); } diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c index ba7e0d811f8..f9a6e5b65cd 100644 --- a/src/mame/drivers/pzletime.c +++ b/src/mame/drivers/pzletime.c @@ -218,7 +218,7 @@ WRITE16_MEMBER(pzletime_state::oki_bank_w) CUSTOM_INPUT_MEMBER(pzletime_state::ticket_status_r) { - return (m_ticket && !(machine().primary_screen->frame_number() % 128)); + return (m_ticket && !(m_screen->frame_number() % 128)); } static ADDRESS_MAP_START( pzletime_map, AS_PROGRAM, 16, pzletime_state ) diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c index 549bdba0975..bd0ed92f327 100644 --- a/src/mame/drivers/quizshow.c +++ b/src/mame/drivers/quizshow.c @@ -194,7 +194,7 @@ READ8_MEMBER(quizshow_state::quizshow_timing_r) ret |= m_clocks >> 2 & 0x60; // d7: display busy/idle, during in-between tilerows(?) and blanking - if (machine().primary_screen->vpos() >= VBSTART || (machine().primary_screen->vpos() + 4) & 8) + if (m_screen->vpos() >= VBSTART || (m_screen->vpos() + 4) & 8) ret &= 0x7f; return ret; diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c index 647370506da..19ed52c3303 100644 --- a/src/mame/drivers/rampart.c +++ b/src/mame/drivers/rampart.c @@ -62,7 +62,7 @@ void rampart_state::scanline_update(screen_device &screen, int scanline) MACHINE_RESET_MEMBER(rampart_state,rampart) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); } diff --git a/src/mame/drivers/redalert.c b/src/mame/drivers/redalert.c index ea73498055f..6eff5ad8d8d 100644 --- a/src/mame/drivers/redalert.c +++ b/src/mame/drivers/redalert.c @@ -122,7 +122,7 @@ READ8_MEMBER(redalert_state::redalert_interrupt_clear_r) m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE); /* the result never seems to be actually used */ - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c index 1699a4cf7f0..a6f8483aeb4 100644 --- a/src/mame/drivers/relief.c +++ b/src/mame/drivers/relief.c @@ -65,7 +65,7 @@ MACHINE_RESET_MEMBER(relief_state,relief) READ16_MEMBER(relief_state::special_port2_r) { int result = ioport("260010")->read(); - if (!(result & 0x0080) || get_hblank(*machine().primary_screen)) result ^= 0x0001; + if (!(result & 0x0080) || get_hblank(*m_screen)) result ^= 0x0001; return result; } diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c index ece8d3bec58..0036e47d709 100644 --- a/src/mame/drivers/runaway.c +++ b/src/mame/drivers/runaway.c @@ -29,7 +29,7 @@ TIMER_CALLBACK_MEMBER(runaway_state::interrupt_callback) if (scanline >= 263) scanline = 16; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } void runaway_state::machine_start() @@ -39,7 +39,7 @@ void runaway_state::machine_start() void runaway_state::machine_reset() { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(16), 16); + m_interrupt_timer->adjust(m_screen->time_until_pos(16), 16); } diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c index 3a54cd662af..24d64dd7749 100644 --- a/src/mame/drivers/sbrkout.c +++ b/src/mame/drivers/sbrkout.c @@ -122,7 +122,7 @@ void sbrkout_state::machine_start() void sbrkout_state::machine_reset() { - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } @@ -139,7 +139,7 @@ TIMER_CALLBACK_MEMBER(sbrkout_state::scanline_callback) int scanline = param; /* force a partial update before anything happens */ - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* if this is a rising edge of 16V, assert the CPU interrupt */ if (scanline % 32 == 16) @@ -149,17 +149,17 @@ TIMER_CALLBACK_MEMBER(sbrkout_state::scanline_callback) m_dac->write_unsigned8((videoram[0x380 + 0x11] & (scanline >> 2)) ? 255 : 0); /* on the VBLANK, read the pot and schedule an interrupt time for it */ - if (scanline == machine().primary_screen->visible_area().max_y + 1) + if (scanline == m_screen->visible_area().max_y + 1) { UINT8 potvalue = ioport("PADDLE")->read(); - m_pot_timer->adjust(machine().primary_screen->time_until_pos(56 + (potvalue / 2), (potvalue % 2) * 128)); + m_pot_timer->adjust(m_screen->time_until_pos(56 + (potvalue / 2), (potvalue % 2) * 128)); } /* call us back in 4 scanlines */ scanline += 4; - if (scanline >= machine().primary_screen->height()) + if (scanline >= m_screen->height()) scanline = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -284,9 +284,9 @@ WRITE8_MEMBER(sbrkout_state::coincount_w) READ8_MEMBER(sbrkout_state::sync_r) { - int hpos = machine().primary_screen->hpos(); - m_sync2_value = (hpos >= 128 && hpos <= machine().primary_screen->visible_area().max_x); - return machine().primary_screen->vpos(); + int hpos = m_screen->hpos(); + m_sync2_value = (hpos >= 128 && hpos <= m_screen->visible_area().max_x); + return m_screen->vpos(); } diff --git a/src/mame/drivers/seabattl.c b/src/mame/drivers/seabattl.c index e39151edd7d..53bc2d072b4 100644 --- a/src/mame/drivers/seabattl.c +++ b/src/mame/drivers/seabattl.c @@ -224,7 +224,7 @@ UINT32 seabattl_state::screen_update_seabattl(screen_device &screen, bitmap_ind1 void seabattl_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_collision_bg); + m_screen->register_screen_bitmap(m_collision_bg); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(seabattl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_bg_tilemap->set_transparent_pen(0); m_bg_tilemap->set_scrolldx(-12, 0); @@ -263,7 +263,7 @@ ADDRESS_MAP_END READ8_HANDLER(seabattl_state::seabattl_collision_r) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); return m_collision; } @@ -282,14 +282,14 @@ WRITE8_MEMBER(seabattl_state::seabattl_control_w) READ8_HANDLER(seabattl_state::seabattl_collision_clear_r) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_collision = 0; return 0; } WRITE8_HANDLER(seabattl_state::seabattl_collision_clear_w ) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_collision = 0; } diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index 48bb6988f71..dede2d5eeff 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -406,7 +406,7 @@ WRITE16_MEMBER(segac2_state::io_chip_w ) newbank = data & 3; if (newbank != m_palbank) { - //space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos() + 1); + //m_screen->update_partial(m_screen->vpos() + 1); m_palbank = newbank; recompute_palette_tables(); } @@ -505,11 +505,11 @@ WRITE16_MEMBER(segac2_state::prot_w ) /* if the palette changed, force an update */ if (new_sp_palbase != m_sp_palbase || new_bg_palbase != m_bg_palbase) { - //space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos() + 1); + //m_screen->update_partial(m_screen->vpos() + 1); m_sp_palbase = new_sp_palbase; m_bg_palbase = new_bg_palbase; recompute_palette_tables(); - if (LOG_PALETTE) logerror("Set palbank: %d/%d (scan=%d)\n", m_bg_palbase, m_sp_palbase, space.machine().primary_screen->vpos()); + if (LOG_PALETTE) logerror("Set palbank: %d/%d (scan=%d)\n", m_bg_palbase, m_sp_palbase, m_screen->vpos()); } } diff --git a/src/mame/drivers/segahang.c b/src/mame/drivers/segahang.c index fb508db8d74..fbca7e5dc5c 100644 --- a/src/mame/drivers/segahang.c +++ b/src/mame/drivers/segahang.c @@ -118,14 +118,14 @@ WRITE8_MEMBER( segahang_state::video_lamps_w ) // // bit 7: screen flip - m_segaic16vid->segaic16_tilemap_set_flip(machine(), 0, data & 0x80); + m_segaic16vid->segaic16_tilemap_set_flip(0, data & 0x80); m_sprites->set_flip(data & 0x80); // bit 6: shadow/highlight control m_shadow = ~data & 0x40; // bit 4: enable display - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x10); + m_segaic16vid->segaic16_set_display_enable(data & 0x10); // bits 2 & 3: control the lamps set_led_status(machine(), 1, data & 0x08); @@ -161,8 +161,8 @@ WRITE8_MEMBER( segahang_state::tilemap_sound_w ) m_soundcpu->set_input_line(INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); // bits 1 & 2: tilemap origin - m_segaic16vid->segaic16_tilemap_set_colscroll(machine(), 0, ~data & 0x04); - m_segaic16vid->segaic16_tilemap_set_rowscroll(machine(), 0, ~data & 0x02); + m_segaic16vid->segaic16_tilemap_set_colscroll(0, ~data & 0x04); + m_segaic16vid->segaic16_tilemap_set_rowscroll(0, ~data & 0x02); // bit 0: sound mute machine().sound().system_enable(data & 0x01); diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c index 2c674ae89ee..513afab922f 100644 --- a/src/mame/drivers/segaorun.c +++ b/src/mame/drivers/segaorun.c @@ -396,7 +396,7 @@ WRITE8_MEMBER( segaorun_state::video_control_w ) // D1: (CONT) - affects sprite hardware // D0: Sound section reset (1= normal operation, 0= reset) - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x20); + m_segaic16vid->segaic16_set_display_enable(data & 0x20); m_adc_select = (data >> 2) & 7; m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); } @@ -549,7 +549,7 @@ void segaorun_state::machine_reset() m68k_set_reset_callback(m_maincpu, m68k_reset_callback); // start timers to track interrupts - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(223), 223); + m_scanline_timer->adjust(m_screen->time_until_pos(223), 223); } @@ -584,7 +584,7 @@ void segaorun_state::device_timer(emu_timer &timer, device_timer_id id, int para case 65: case 129: case 193: - timer_set(machine().primary_screen->time_until_pos(scanline, machine().primary_screen->visible_area().max_x + 1), TID_IRQ2_GEN); + timer_set(m_screen->time_until_pos(scanline, m_screen->visible_area().max_x + 1), TID_IRQ2_GEN); next_scanline = scanline + 1; break; @@ -615,7 +615,7 @@ void segaorun_state::device_timer(emu_timer &timer, device_timer_id id, int para update_main_irqs(); // come back at the next targeted scanline - timer.adjust(machine().primary_screen->time_until_pos(next_scanline), next_scanline); + timer.adjust(m_screen->time_until_pos(next_scanline), next_scanline); break; } } @@ -747,7 +747,7 @@ WRITE16_MEMBER( segaorun_state::shangon_custom_io_w ) // D7-D6: (ADC1-0) // D5: Screen display m_adc_select = (data >> 6) & 3; - m_segaic16vid->segaic16_set_display_enable(*m_screen, (data >> 5) & 1); + m_segaic16vid->segaic16_set_display_enable((data >> 5) & 1); return; case 0x0020/2: diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c index 58cfe847fef..103911c9f18 100644 --- a/src/mame/drivers/segas16a.c +++ b/src/mame/drivers/segas16a.c @@ -232,7 +232,7 @@ WRITE8_MEMBER( segas16a_state::misc_control_w ) m_video_control = data; // bit 7: screen flip - m_segaic16vid->segaic16_tilemap_set_flip(machine(), 0, data & 0x80); + m_segaic16vid->segaic16_tilemap_set_flip(0, data & 0x80); m_sprites->set_flip(data & 0x80); // bit 6: set 8751 interrupt line @@ -240,7 +240,7 @@ WRITE8_MEMBER( segas16a_state::misc_control_w ) m_mcu->set_input_line(MCS51_INT1_LINE, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); // bit 4: enable display - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x10); + m_segaic16vid->segaic16_set_display_enable(data & 0x10); // bits 0 & 1: update coin counters coin_counter_w(machine(), 1, data & 0x02); @@ -269,8 +269,8 @@ WRITE8_MEMBER( segas16a_state::tilemap_sound_w ) // 1= sound is enabled // m_soundcpu->set_input_line(INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); - m_segaic16vid->segaic16_tilemap_set_colscroll(machine(), 0, ~data & 0x04); - m_segaic16vid->segaic16_tilemap_set_rowscroll(machine(), 0, ~data & 0x02); + m_segaic16vid->segaic16_tilemap_set_colscroll(0, ~data & 0x04); + m_segaic16vid->segaic16_tilemap_set_rowscroll(0, ~data & 0x02); } @@ -500,7 +500,7 @@ WRITE8_MEMBER( segas16a_state::mcu_control_w ) // enable/disable the display if (data & 0x40) - m_segaic16vid->segaic16_set_display_enable(*m_screen, 1); + m_segaic16vid->segaic16_set_display_enable(1); // apply an extra boost if the main CPU is just waking up if ((m_mcu_control ^ data) & 0x40) diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c index c9515602758..7b1ef6a9cec 100644 --- a/src/mame/drivers/segas16b.c +++ b/src/mame/drivers/segas16b.c @@ -1032,7 +1032,7 @@ void segas16b_state::mapper_sound_w(UINT8 data) WRITE16_MEMBER( segas16b_state::rom_5704_bank_w ) { if (ACCESSING_BITS_0_7) - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, offset & 1, data & 7); + m_segaic16vid->segaic16_tilemap_set_bank(0, offset & 1, data & 7); } @@ -1080,7 +1080,7 @@ WRITE16_MEMBER( segas16b_state::rom_5797_bank_math_w ) case 0x2000/2: if (ACCESSING_BITS_0_7) - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, offset & 1, data & 7); + m_segaic16vid->segaic16_tilemap_set_bank(0, offset & 1, data & 7); break; } } @@ -1153,10 +1153,10 @@ WRITE16_MEMBER( segas16b_state::standard_io_w ) // D1 : (Output to coin counter 2?) // D0 : Output to coin counter 1 // - m_segaic16vid->segaic16_tilemap_set_flip(machine(), 0, data & 0x40); + m_segaic16vid->segaic16_tilemap_set_flip(0, data & 0x40); m_sprites->set_flip(data & 0x40); if (!m_disable_screen_blanking) - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x20); + m_segaic16vid->segaic16_set_display_enable(data & 0x20); set_led_status(machine(), 1, data & 0x08); set_led_status(machine(), 0, data & 0x04); coin_counter_w(machine(), 1, data & 0x02); diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c index 10296f21aa7..b4083aa3b24 100644 --- a/src/mame/drivers/segas18.c +++ b/src/mame/drivers/segas18.c @@ -297,7 +297,7 @@ WRITE16_MEMBER( segas18_state::io_chip_w ) // miscellaneous output case 0x06/2: set_grayscale(~data & 0x40); - m_segaic16vid->segaic16_tilemap_set_flip(machine(), 0, data & 0x20); + m_segaic16vid->segaic16_tilemap_set_flip(0, data & 0x20); m_sprites->set_flip(data & 0x20); // These are correct according to cgfm's docs, but mwalker and ddcrew both // enable the lockout and never turn it off @@ -312,14 +312,14 @@ WRITE16_MEMBER( segas18_state::io_chip_w ) if (m_romboard == ROM_BOARD_171_5874 || m_romboard == ROM_BOARD_171_SHADOW) for (int i = 0; i < 4; i++) { - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, 0 + i, (data & 0xf) * 4 + i); - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, 4 + i, ((data >> 4) & 0xf) * 4 + i); + m_segaic16vid->segaic16_tilemap_set_bank(0, 0 + i, (data & 0xf) * 4 + i); + m_segaic16vid->segaic16_tilemap_set_bank(0, 4 + i, ((data >> 4) & 0xf) * 4 + i); } break; // CNT register case 0x1c/2: - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 2); + m_segaic16vid->segaic16_set_display_enable(data & 2); if ((old ^ data) & 4) set_vdp_enable(data & 4); break; @@ -404,7 +404,7 @@ WRITE16_MEMBER( segas18_state::rom_5987_bank_w ) int maxbanks = machine().gfx[0]->elements() / 1024; if (data >= maxbanks) data %= maxbanks; - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, offset, data); + m_segaic16vid->segaic16_tilemap_set_bank(0, offset, data); } // sprite banking diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c index 099ff6df674..a84aca41b35 100644 --- a/src/mame/drivers/segas24.c +++ b/src/mame/drivers/segas24.c @@ -878,7 +878,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(segas24_state::irq_timer_cb) m_subcpu->set_input_line(IRQ_TIMER+1, ASSERT_LINE); if(irq_tmode == 1 || irq_tmode == 2) - machine().primary_screen->update_now(); + m_screen->update_now(); } TIMER_DEVICE_CALLBACK_MEMBER(segas24_state::irq_timer_clear_cb) diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c index 7f78e65dd33..cb38c441e00 100644 --- a/src/mame/drivers/segas32.c +++ b/src/mame/drivers/segas32.c @@ -568,7 +568,7 @@ INTERRUPT_GEN_MEMBER(segas32_state::start_of_vblank_int) { signal_v60_irq(MAIN_IRQ_VBSTART); system32_set_vblank(1); - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), timer_expired_delegate(FUNC(segas32_state::end_of_vblank_int),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(0), timer_expired_delegate(FUNC(segas32_state::end_of_vblank_int),this)); if (m_system32_prot_vblank) (*m_system32_prot_vblank)(&device); } diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c index c8ee5ca57f4..b8b57abefa2 100644 --- a/src/mame/drivers/segaxbd.c +++ b/src/mame/drivers/segaxbd.c @@ -479,7 +479,7 @@ WRITE16_MEMBER( segaxbd_state::iochip_0_w ) if (((oldval ^ data) & 0x40) && !(data & 0x40)) machine().watchdog_reset(); - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x20); + m_segaic16vid->segaic16_set_display_enable(data & 0x20); m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); if (m_soundcpu2 != NULL) @@ -676,7 +676,7 @@ void segaxbd_state::machine_reset() m68k_set_reset_callback(m_maincpu, &segaxbd_state::m68k_reset_callback); // start timers to track interrupts - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(1), 1); + m_scanline_timer->adjust(m_screen->time_until_pos(1), 1); } @@ -730,7 +730,7 @@ void segaxbd_state::device_timer(emu_timer &timer, device_timer_id id, int param update_main_irqs(); // come back in 2 scanlines - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(next_scanline), next_scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(next_scanline), next_scanline); break; } } diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c index 8fa694d33f5..55e8cd2aa93 100644 --- a/src/mame/drivers/segaybd.c +++ b/src/mame/drivers/segaybd.c @@ -204,7 +204,7 @@ WRITE16_MEMBER( segaybd_state::io_chip_w ) // D2 = YRES // D1-D0 = ADC0-1 // - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x80); + m_segaic16vid->segaic16_set_display_enable(data & 0x80); if (((old ^ data) & 0x20) && !(data & 0x20)) machine().watchdog_reset(); m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); @@ -270,7 +270,7 @@ READ8_MEMBER( segaybd_state::sound_data_r ) void segaybd_state::machine_reset() { m_irq2_scanline = 170; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(223), 223); + m_scanline_timer->adjust(m_screen->time_until_pos(223), 223); } @@ -350,7 +350,7 @@ void segaybd_state::device_timer(emu_timer &timer, device_timer_id id, int param update_irqs(); // come back at the next appropriate scanline - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); #if TWEAK_IRQ2_SCANLINE if (scanline == 223) diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index e129e750095..50f2679d7f0 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -550,7 +550,7 @@ READ32_MEMBER(seta2_state::funcube_debug_r) UINT32 ret = ioport("DEBUG")->read(); // This bits let you move the crosshair in the inputs / touch panel test with a joystick - if (!(machine().primary_screen->frame_number() % 3)) + if (!(m_screen->frame_number() % 3)) ret |= 0x3f; return ret; @@ -632,7 +632,7 @@ READ8_MEMBER(seta2_state::funcube_coins_r) UINT8 coin_bit0 = 1; // active low UINT8 coin_bit1 = 1; - UINT8 hopper_bit = (m_funcube_hopper_motor && !(machine().primary_screen->frame_number()%20)) ? 1 : 0; + UINT8 hopper_bit = (m_funcube_hopper_motor && !(m_screen->frame_number()%20)) ? 1 : 0; const UINT64 coin_total_cycles = FUNCUBE_SUB_CPU_CLOCK / (1000/20); diff --git a/src/mame/drivers/sfcbox.c b/src/mame/drivers/sfcbox.c index aa91f99ae69..0eb65859615 100644 --- a/src/mame/drivers/sfcbox.c +++ b/src/mame/drivers/sfcbox.c @@ -222,7 +222,7 @@ READ8_MEMBER( sfcbox_state::port_81_r ) */ UINT8 res; - res = (machine().primary_screen->vblank() & 1) << 7; + res = (m_screen->vblank() & 1) << 7; res = 1 << 6; res = 0 << 5; res = 0 << 4; diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c index ff387796c0c..39fae0099a6 100644 --- a/src/mame/drivers/shadfrce.c +++ b/src/mame/drivers/shadfrce.c @@ -327,7 +327,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(shadfrce_state::shadfrce_scanline) { m_raster_scanline = (m_raster_scanline + 1) % 240; if (m_raster_scanline > 0) - machine().primary_screen->update_partial(m_raster_scanline - 1); + m_screen->update_partial(m_raster_scanline - 1); m_maincpu->set_input_line(1, ASSERT_LINE); } } @@ -338,7 +338,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(shadfrce_state::shadfrce_scanline) if (scanline % 16 == 0) { if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(2, ASSERT_LINE); } } @@ -348,7 +348,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(shadfrce_state::shadfrce_scanline) { if (scanline == 248) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(3, ASSERT_LINE); } } diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c index 124047f21a8..cd174a8971b 100644 --- a/src/mame/drivers/shuuz.c +++ b/src/mame/drivers/shuuz.c @@ -86,7 +86,7 @@ READ16_MEMBER(shuuz_state::special_port0_r) { int result = ioport("SYSTEM")->read(); - if ((result & 0x0800) && get_hblank(*machine().primary_screen)) + if ((result & 0x0800) && get_hblank(*m_screen)) result &= ~0x0800; return result; diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c index 374852b6b82..c9ca87afeb5 100644 --- a/src/mame/drivers/sigmab98.c +++ b/src/mame/drivers/sigmab98.c @@ -886,7 +886,7 @@ READ8_MEMBER(sigmab98_state::haekaka_rambank_r) READ8_MEMBER(sigmab98_state::haekaka_vblank_r) { - return machine().primary_screen->vblank() ? 0 : 0x1c; + return m_screen->vblank() ? 0 : 0x1c; } READ8_MEMBER(sigmab98_state::haekaka_b000_r) diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c index 8a3f6f485e3..c0d566fa8e6 100644 --- a/src/mame/drivers/skullxbo.c +++ b/src/mame/drivers/skullxbo.c @@ -62,14 +62,14 @@ void skullxbo_state::scanline_update(screen_device &screen, int scanline) WRITE16_MEMBER(skullxbo_state::skullxbo_halt_until_hblank_0_w) { - halt_until_hblank_0(space.device(), *machine().primary_screen); + halt_until_hblank_0(space.device(), *m_screen); } MACHINE_RESET_MEMBER(skullxbo_state,skullxbo) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c index c19c3c8e0c6..6b374553656 100644 --- a/src/mame/drivers/sliver.c +++ b/src/mame/drivers/sliver.c @@ -365,8 +365,8 @@ ADDRESS_MAP_END void sliver_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_bitmap_fg); + m_screen->register_screen_bitmap(m_bitmap_bg); + m_screen->register_screen_bitmap(m_bitmap_fg); } UINT32 sliver_state::screen_update_sliver(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) diff --git a/src/mame/drivers/slotcarn.c b/src/mame/drivers/slotcarn.c index e83c0f6b34c..795a3529a60 100644 --- a/src/mame/drivers/slotcarn.c +++ b/src/mame/drivers/slotcarn.c @@ -76,7 +76,7 @@ WRITE8_MEMBER(slotcarn_state::palette_w) { int co; - machine().primary_screen->update_now(); + m_screen->update_now(); data &= 0x0f; co = ((m_ram_attr[offset] & 0x7F) << 3) | (offset & 0x07); @@ -160,7 +160,7 @@ static MC6845_UPDATE_ROW( update_row ) WRITE_LINE_MEMBER(slotcarn_state::hsync_changed) { /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); } WRITE_LINE_MEMBER(slotcarn_state::vsync_changed) diff --git a/src/mame/drivers/smsmcorp.c b/src/mame/drivers/smsmcorp.c index 4ec8d2d10f9..ac7dab35a94 100644 --- a/src/mame/drivers/smsmcorp.c +++ b/src/mame/drivers/smsmcorp.c @@ -477,7 +477,7 @@ WRITE8_MEMBER(smsmfg_state::video_w) void smsmfg_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); save_item(NAME(m_vid_regs)); save_item(NAME(m_bitmap)); diff --git a/src/mame/drivers/spacefb.c b/src/mame/drivers/spacefb.c index 5d2e43e0384..bfd8f44b142 100644 --- a/src/mame/drivers/spacefb.c +++ b/src/mame/drivers/spacefb.c @@ -129,7 +129,7 @@ TIMER_CALLBACK_MEMBER(spacefb_state::interrupt_callback) int next_vpos; /* compute vector and set the interrupt line */ - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); UINT8 vector = 0xc7 | ((vpos & 0x40) >> 2) | ((~vpos & 0x40) >> 3); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector); @@ -139,7 +139,7 @@ TIMER_CALLBACK_MEMBER(spacefb_state::interrupt_callback) else next_vpos = SPACEFB_INT_TRIGGER_COUNT_1; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(next_vpos)); + m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos)); } @@ -151,7 +151,7 @@ void spacefb_state::create_interrupt_timer() void spacefb_state::start_interrupt_timer() { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(SPACEFB_INT_TRIGGER_COUNT_1)); + m_interrupt_timer->adjust(m_screen->time_until_pos(SPACEFB_INT_TRIGGER_COUNT_1)); } diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c index b11c464b0b5..346b637528e 100644 --- a/src/mame/drivers/spoker.c +++ b/src/mame/drivers/spoker.c @@ -115,7 +115,7 @@ UINT32 spoker_state::screen_update_spoker(screen_device &screen, bitmap_ind16 &b CUSTOM_INPUT_MEMBER(spoker_state::hopper_r) { - if (m_hopper) return !(machine().primary_screen->frame_number()%10); + if (m_hopper) return !(m_screen->frame_number()%10); return machine().input().code_pressed(KEYCODE_H); } diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c index d14adac741b..ebb9d28760f 100644 --- a/src/mame/drivers/sprint2.c +++ b/src/mame/drivers/sprint2.c @@ -159,13 +159,13 @@ READ8_MEMBER(sprint2_state::sprint2_sync_r) if (m_attract != 0) val |= 0x10; - if (machine().primary_screen->vpos() == 261) + if (m_screen->vpos() == 261) val |= 0x20; /* VRESET */ - if (machine().primary_screen->vpos() >= 224) + if (m_screen->vpos() >= 224) val |= 0x40; /* VBLANK */ - if (machine().primary_screen->vpos() >= 131) + if (m_screen->vpos() >= 131) val |= 0x80; /* 60 Hz? */ return val; diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c index c53a4aecb3e..b1cd93a0a50 100644 --- a/src/mame/drivers/sprint4.c +++ b/src/mame/drivers/sprint4.c @@ -116,13 +116,13 @@ TIMER_CALLBACK_MEMBER(sprint4_state::nmi_callback) if (ioport("IN0")->read() & 0x40) m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_NMI, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_NMI, scanline); } void sprint4_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(32), TIMER_NMI, 32); + timer_set(m_screen->time_until_pos(32), TIMER_NMI, 32); memset(m_steer_FF1, 0, sizeof m_steer_FF1); memset(m_steer_FF2, 0, sizeof m_steer_FF2); diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c index fd0689b084c..175b1ead79b 100644 --- a/src/mame/drivers/subsino2.c +++ b/src/mame/drivers/subsino2.c @@ -815,11 +815,11 @@ READ8_MEMBER(subsino2_state::dsw_r) READ8_MEMBER(subsino2_state::vblank_bit2_r) { - return machine().primary_screen->vblank() ? 0x04 : 0x00; + return m_screen->vblank() ? 0x04 : 0x00; } READ8_MEMBER(subsino2_state::vblank_bit6_r) { - return machine().primary_screen->vblank() ? 0x40 : 0x00; + return m_screen->vblank() ? 0x40 : 0x00; } WRITE8_MEMBER(subsino2_state::oki_bank_bit0_w) @@ -917,7 +917,7 @@ READ16_MEMBER(subsino2_state::bishjan_serial_r) (machine().rand() & 0x9800) | // bit 7 - serial communication (((m_bishjan_sel==0x12) ? 0x40:0x00) << 8) | // (machine.rand() & 0xff); -// (((machine().primary_screen->frame_number()%60)==0)?0x18:0x00); +// (((m_screen->frame_number()%60)==0)?0x18:0x00); 0x18; } diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c index fc1ca06987f..b7047f2ae89 100644 --- a/src/mame/drivers/suna8.c +++ b/src/mame/drivers/suna8.c @@ -1136,7 +1136,7 @@ WRITE8_MEMBER(suna8_state::sparkman_coin_counter_w) // To do: implement this, affects the duration of copyright screen READ8_MEMBER(suna8_state::sparkman_c0a3_r) { - return (machine().primary_screen->frame_number() & 1) ? 0x80 : 0; + return (m_screen->frame_number() & 1) ? 0x80 : 0; } static ADDRESS_MAP_START( sparkman_map, AS_PROGRAM, 8, suna8_state ) diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c index cd7c6850a89..e436c3658b2 100644 --- a/src/mame/drivers/taitoair.c +++ b/src/mame/drivers/taitoair.c @@ -251,7 +251,7 @@ WRITE16_MEMBER(taitoair_state::lineram_w) m_line_ram[offset] = data; //if(offset == 0x3fff) - // printf("LineRAM go %d\n",(int)machine().primary_screen->frame_number()); + // printf("LineRAM go %d\n",(int)m_screen->frame_number()); } READ16_MEMBER(taitoair_state::dspram_r) diff --git a/src/mame/drivers/taitotz.c b/src/mame/drivers/taitotz.c index 5ece695874d..5373fb9b015 100644 --- a/src/mame/drivers/taitotz.c +++ b/src/mame/drivers/taitotz.c @@ -743,8 +743,8 @@ void taitotz_state::taitotz_exit() */ void taitotz_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_screen_ram = auto_alloc_array(machine(), UINT32, 0x200000); m_frame_ram = auto_alloc_array(machine(), UINT32, 0x80000); diff --git a/src/mame/drivers/tasman.c b/src/mame/drivers/tasman.c index 4843a0cd2c6..b347279550a 100644 --- a/src/mame/drivers/tasman.c +++ b/src/mame/drivers/tasman.c @@ -68,7 +68,7 @@ UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind1 { UINT32 tile = m_vram[count] & 0xffff; - if(machine().primary_screen->visible_area().contains(x*8, y*8)) + if(m_screen->visible_area().contains(x*8, y*8)) drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); count++; @@ -83,7 +83,7 @@ UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind1 { UINT32 tile = m_vram[count] & 0xffff; - if(machine().primary_screen->visible_area().contains(x*8, y*8)) + if(m_screen->visible_area().contains(x*8, y*8)) drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8,0); count++; diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c index 9140bef31f5..bbf54ee75f1 100644 --- a/src/mame/drivers/tecmosys.c +++ b/src/mame/drivers/tecmosys.c @@ -259,7 +259,7 @@ READ16_MEMBER(tecmosys_state::unk880000_r) switch( offset ) { case 0: - if ( machine().primary_screen->vpos() >= 240) return 0; + if ( m_screen->vpos() >= 240) return 0; else return 1; default: diff --git a/src/mame/drivers/tgtpanic.c b/src/mame/drivers/tgtpanic.c index 44184d8b924..e83bcdb30aa 100644 --- a/src/mame/drivers/tgtpanic.c +++ b/src/mame/drivers/tgtpanic.c @@ -72,7 +72,7 @@ UINT32 tgtpanic_state::screen_update_tgtpanic(screen_device &screen, bitmap_rgb3 WRITE8_MEMBER(tgtpanic_state::color_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_color = data; } diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c index edf28af889c..846a6e9149b 100644 --- a/src/mame/drivers/thunderj.c +++ b/src/mame/drivers/thunderj.c @@ -97,7 +97,7 @@ WRITE16_MEMBER(thunderj_state::latch_w) /* bits 2-5 are the alpha bank */ if (m_alpha_tile_bank != ((data >> 2) & 7)) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_vad->alpha()->mark_all_dirty(); m_alpha_tile_bank = (data >> 2) & 7; } diff --git a/src/mame/drivers/tickee.c b/src/mame/drivers/tickee.c index 858dedf1e77..0129da3addf 100644 --- a/src/mame/drivers/tickee.c +++ b/src/mame/drivers/tickee.c @@ -127,7 +127,7 @@ void tickee_state::device_timer(emu_timer &timer, device_timer_id id, int param, TIMER_CALLBACK_MEMBER(tickee_state::trigger_gun_interrupt) { int which = param & 1; - int beamx = (machine().primary_screen->hpos()/2)-58; + int beamx = (m_screen->hpos()/2)-58; /* once we're ready to fire, set the X coordinate and assert the line */ m_gunx[which] = beamx; @@ -149,7 +149,7 @@ TIMER_CALLBACK_MEMBER(tickee_state::setup_gun_interrupts) int beamx, beamy; /* set a timer to do this again next frame */ - m_setup_gun_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_setup_gun_timer->adjust(m_screen->time_until_pos(0)); /* only do work if the palette is flashed */ if (m_control) @@ -158,13 +158,13 @@ TIMER_CALLBACK_MEMBER(tickee_state::setup_gun_interrupts) /* generate interrupts for player 1's gun */ get_crosshair_xy(machine(), 0, &beamx, &beamy); - timer_set(machine().primary_screen->time_until_pos(beamy + m_beamyadd, beamx + m_beamxadd), TIMER_TRIGGER_GUN_INTERRUPT, 0); - timer_set(machine().primary_screen->time_until_pos(beamy + m_beamyadd + 1, beamx + m_beamxadd), TIMER_CLEAR_GUN_INTERRUPT, 0); + timer_set(m_screen->time_until_pos(beamy + m_beamyadd, beamx + m_beamxadd), TIMER_TRIGGER_GUN_INTERRUPT, 0); + timer_set(m_screen->time_until_pos(beamy + m_beamyadd + 1, beamx + m_beamxadd), TIMER_CLEAR_GUN_INTERRUPT, 0); /* generate interrupts for player 2's gun */ get_crosshair_xy(machine(), 1, &beamx, &beamy); - timer_set(machine().primary_screen->time_until_pos(beamy + m_beamyadd, beamx + m_beamxadd), TIMER_TRIGGER_GUN_INTERRUPT, 1); - timer_set(machine().primary_screen->time_until_pos(beamy + m_beamyadd + 1, beamx + m_beamxadd), TIMER_CLEAR_GUN_INTERRUPT, 1); + timer_set(m_screen->time_until_pos(beamy + m_beamyadd, beamx + m_beamxadd), TIMER_TRIGGER_GUN_INTERRUPT, 1); + timer_set(m_screen->time_until_pos(beamy + m_beamyadd + 1, beamx + m_beamxadd), TIMER_CLEAR_GUN_INTERRUPT, 1); } @@ -179,7 +179,7 @@ VIDEO_START_MEMBER(tickee_state,tickee) { /* start a timer going on the first scanline of every frame */ m_setup_gun_timer = timer_alloc(TIMER_SETUP_GUN_INTERRUPTS); - m_setup_gun_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_setup_gun_timer->adjust(m_screen->time_until_pos(0)); } diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c index dbffc77331a..4e449b09276 100644 --- a/src/mame/drivers/tmaster.c +++ b/src/mame/drivers/tmaster.c @@ -332,7 +332,7 @@ VIDEO_START_MEMBER(tmaster_state,tmaster) { for (buffer = 0; buffer < 2; buffer++) { - machine().primary_screen->register_screen_bitmap(m_bitmap[layer][buffer]); + m_screen->register_screen_bitmap(m_bitmap[layer][buffer]); m_bitmap[layer][buffer].fill(0xff); } } diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c index ef5308da56d..ea4fb54ae6d 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -487,7 +487,7 @@ void toaplan2_state::device_timer(emu_timer &timer, device_timer_id id, int para void toaplan2_state::toaplan2_vblank_irq(int irq_line) { // the IRQ appears to fire at line 0xe6 - timer_set(machine().primary_screen->time_until_pos(0xe6), TIMER_RAISE_IRQ, irq_line); + timer_set(m_screen->time_until_pos(0xe6), TIMER_RAISE_IRQ, irq_line); } INTERRUPT_GEN_MEMBER(toaplan2_state::toaplan2_vblank_irq1){ toaplan2_vblank_irq(1); } @@ -503,8 +503,8 @@ READ16_MEMBER(toaplan2_state::video_count_r) /* +---------+---------+--------+---------------------------+ */ /*************** Control Signals are active low ***************/ - int hpos = machine().primary_screen->hpos(); - int vpos = machine().primary_screen->vpos(); + int hpos = m_screen->hpos(); + int vpos = m_screen->vpos(); m_video_status = 0xff00; // Set signals inactive @@ -526,7 +526,7 @@ READ16_MEMBER(toaplan2_state::video_count_r) else m_video_status |= 0xff; -// logerror("VC: vpos=%04x hpos=%04x VBL=%04x\n",vpos,hpos,machine().primary_screen->vblank()); +// logerror("VC: vpos=%04x hpos=%04x VBL=%04x\n",vpos,hpos,m_screen->vblank()); return m_video_status; } diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c index 06b6492ed13..9e4f7900b30 100644 --- a/src/mame/drivers/toobin.c +++ b/src/mame/drivers/toobin.c @@ -63,7 +63,7 @@ WRITE16_MEMBER(toobin_state::interrupt_scan_w) if (oldword != newword) { m_interrupt_scan[offset] = newword; - scanline_int_set(*machine().primary_screen, newword & 0x1ff); + scanline_int_set(*m_screen, newword & 0x1ff); } } diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c index b12287ca966..aeaf9a3d874 100644 --- a/src/mame/drivers/tubep.c +++ b/src/mame/drivers/tubep.c @@ -322,16 +322,16 @@ TIMER_CALLBACK_MEMBER(tubep_state::tubep_scanline_callback) } - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); //debug - logerror("scanline=%3i scrgetvpos(0)=%3i\n",scanline,machine().primary_screen->vpos()); + logerror("scanline=%3i scrgetvpos(0)=%3i\n",scanline,m_screen->vpos()); scanline++; if (scanline >= 264) scanline = 0; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -363,7 +363,7 @@ MACHINE_START_MEMBER(tubep_state,tubep) MACHINE_RESET_MEMBER(tubep_state,tubep) { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_interrupt_timer->adjust(m_screen->time_until_pos(0)); } @@ -503,15 +503,15 @@ TIMER_CALLBACK_MEMBER(tubep_state::rjammer_scanline_callback) } - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); - logerror("scanline=%3i scrgetvpos(0)=%3i\n", scanline, machine().primary_screen->vpos()); + logerror("scanline=%3i scrgetvpos(0)=%3i\n", scanline, m_screen->vpos()); scanline++; if (scanline >= 264) scanline = 0; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -525,7 +525,7 @@ MACHINE_START_MEMBER(tubep_state,rjammer) MACHINE_RESET_MEMBER(tubep_state,rjammer) { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_interrupt_timer->adjust(m_screen->time_until_pos(0)); } diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c index f5d09e28b67..5a0582a42c1 100644 --- a/src/mame/drivers/tugboat.c +++ b/src/mame/drivers/tugboat.c @@ -218,7 +218,7 @@ void tugboat_state::device_timer(emu_timer &timer, device_timer_id id, int param { case TIMER_INTERRUPT: m_maincpu->set_input_line(0, HOLD_LINE); - timer_set(machine().primary_screen->frame_period(), TIMER_INTERRUPT); + timer_set(m_screen->frame_period(), TIMER_INTERRUPT); break; default: assert_always(FALSE, "Unknown id in tugboat_state::device_timer"); @@ -227,7 +227,7 @@ void tugboat_state::device_timer(emu_timer &timer, device_timer_id id, int param void tugboat_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(30*8+4), TIMER_INTERRUPT); + timer_set(m_screen->time_until_pos(30*8+4), TIMER_INTERRUPT); } diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c index 1a4fabaa2ae..98fcfac174b 100644 --- a/src/mame/drivers/turbo.c +++ b/src/mame/drivers/turbo.c @@ -476,14 +476,14 @@ static I8279_INTERFACE( turbo_i8279_intf ) READ8_MEMBER(turbo_state::turbo_collision_r) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); return ioport("DSW3")->read() | (m_turbo_collision & 15); } WRITE8_MEMBER(turbo_state::turbo_collision_clear_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_turbo_collision = 0; } diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c index 30e2efde1d8..612eef81715 100644 --- a/src/mame/drivers/tx1.c +++ b/src/mame/drivers/tx1.c @@ -717,7 +717,7 @@ static MACHINE_CONFIG_START( tx1, tx1_state ) MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_left) - MCFG_SCREEN_ADD("cscreen", RASTER) + MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_middle) @@ -767,7 +767,7 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state ) MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_left) - MCFG_SCREEN_ADD("cscreen", RASTER) + MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_middle) diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c index 33c5f826250..e53122ecd89 100644 --- a/src/mame/drivers/ultratnk.c +++ b/src/mame/drivers/ultratnk.c @@ -68,13 +68,13 @@ TIMER_CALLBACK_MEMBER(ultratnk_state::nmi_callback) if (ioport("IN0")->read() & 0x40) m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_NMI, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_NMI, scanline); } void ultratnk_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(32), TIMER_NMI, 32); + timer_set(m_screen->time_until_pos(32), TIMER_NMI, 32); } diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c index ee52f812f45..d178f867f2c 100644 --- a/src/mame/drivers/unico.c +++ b/src/mame/drivers/unico.c @@ -110,7 +110,7 @@ READ16_MEMBER(unico_state::unico_gunx_0_msb_r) if (x<0x160) x=0x30 + (x*0xd0/0x15f); else x=((x-0x160) * 0x20)/0x1f; - return ((x&0xff) ^ (machine().primary_screen->frame_number()&1))<<8; + return ((x&0xff) ^ (m_screen->frame_number()&1))<<8; } READ16_MEMBER(unico_state::unico_guny_0_msb_r) @@ -119,7 +119,7 @@ READ16_MEMBER(unico_state::unico_guny_0_msb_r) y=0x18+((y*0xe0)/0xff); - return ((y&0xff) ^ (machine().primary_screen->frame_number()&1))<<8; + return ((y&0xff) ^ (m_screen->frame_number()&1))<<8; } READ16_MEMBER(unico_state::unico_gunx_1_msb_r) @@ -130,7 +130,7 @@ READ16_MEMBER(unico_state::unico_gunx_1_msb_r) if (x<0x160) x=0x30 + (x*0xd0/0x15f); else x=((x-0x160) * 0x20)/0x1f; - return ((x&0xff) ^ (machine().primary_screen->frame_number()&1))<<8; + return ((x&0xff) ^ (m_screen->frame_number()&1))<<8; } READ16_MEMBER(unico_state::unico_guny_1_msb_r) @@ -139,7 +139,7 @@ READ16_MEMBER(unico_state::unico_guny_1_msb_r) y=0x18+((y*0xe0)/0xff); - return ((y&0xff) ^ (machine().primary_screen->frame_number()&1))<<8; + return ((y&0xff) ^ (m_screen->frame_number()&1))<<8; } static ADDRESS_MAP_START( zeropnt_map, AS_PROGRAM, 16, unico_state ) diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c index 33688171f28..807359a8aba 100644 --- a/src/mame/drivers/vamphalf.c +++ b/src/mame/drivers/vamphalf.c @@ -738,13 +738,13 @@ void vamphalf_handle_flipped_visible_area( screen_device &screen ) { rectangle visarea; visarea.set(31, 350, 16, 251); - screen.machine().primary_screen->configure(512, 256, visarea, HZ_TO_ATTOSECONDS(60)); + screen.configure(512, 256, visarea, HZ_TO_ATTOSECONDS(60)); } else { rectangle visarea; visarea.set(31, 350, 20, 255); - screen.machine().primary_screen->configure(512, 256, visarea, HZ_TO_ATTOSECONDS(60)); + screen.configure(512, 256, visarea, HZ_TO_ATTOSECONDS(60)); } } diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c index 42bb963e400..cf25090eb71 100644 --- a/src/mame/drivers/vball.c +++ b/src/mame/drivers/vball.c @@ -106,14 +106,14 @@ inline int vball_state::scanline_to_vcount(int scanline) TIMER_DEVICE_CALLBACK_MEMBER(vball_state::vball_scanline) { int scanline = param; - int screen_height = machine().primary_screen->height(); + int screen_height = m_screen->height(); int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); int vcount = scanline_to_vcount(scanline); /* Update to the current point */ if (scanline > 0) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); } /* IRQ fires every on every 8th scanline */ diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c index dd66c450e5e..44008df6e8c 100644 --- a/src/mame/drivers/vicdual.c +++ b/src/mame/drivers/vicdual.c @@ -137,11 +137,11 @@ INPUT_CHANGED_MEMBER(vicdual_state::coin_changed) int vicdual_state::get_vcounter() { - int vcounter = machine().primary_screen->vpos(); + int vcounter = m_screen->vpos(); /* the vertical synch counter gets incremented at the end of HSYNC, compensate for this */ - if (machine().primary_screen->hpos() >= VICDUAL_HSEND) + if (m_screen->hpos() >= VICDUAL_HSEND) vcounter = (vcounter + 1) % VICDUAL_VTOTAL; return vcounter; @@ -162,7 +162,7 @@ CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_get_vblank_comp) CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_get_composite_blank_comp) { - return (vicdual_get_vblank_comp(field, 0) && !machine().primary_screen->hblank()); + return (vicdual_get_vblank_comp(field, 0) && !m_screen->hblank()); } @@ -205,14 +205,14 @@ int vicdual_state::vicdual_is_cabinet_color() WRITE8_MEMBER(vicdual_state::vicdual_videoram_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_videoram[offset] = data; } WRITE8_MEMBER(vicdual_state::vicdual_characterram_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_characterram[offset] = data; } diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c index 7d9097bb9a9..e5e78e22997 100644 --- a/src/mame/drivers/videopin.c +++ b/src/mame/drivers/videopin.c @@ -69,13 +69,13 @@ TIMER_CALLBACK_MEMBER(videopin_state::interrupt_callback) if (scanline >= 263) scanline = 32; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); } void videopin_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(32), TIMER_INTERRUPT, 32); + timer_set(m_screen->time_until_pos(32), TIMER_INTERRUPT, 32); /* both output latches are cleared on reset */ @@ -120,7 +120,7 @@ READ8_MEMBER(videopin_state::videopin_misc_r) WRITE8_MEMBER(videopin_state::videopin_led_w) { - int i = (machine().primary_screen->vpos() >> 5) & 7; + int i = (m_screen->vpos() >> 5) & 7; static const char *const matrix[8][4] = { { "LED26", "LED18", "LED11", "LED13" }, diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c index f6d424c2879..65c17902c3e 100644 --- a/src/mame/drivers/vindictr.c +++ b/src/mame/drivers/vindictr.c @@ -39,7 +39,7 @@ void vindictr_state::update_interrupts() MACHINE_RESET_MEMBER(vindictr_state,vindictr) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c index e8798eecf56..43fd0b65782 100644 --- a/src/mame/drivers/wheelfir.c +++ b/src/mame/drivers/wheelfir.c @@ -385,8 +385,8 @@ WRITE16_MEMBER(wheelfir_state::wheelfir_blit_w) { UINT8 *rom = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); int src_x0=(m_blitter_data[0]>>8)+((m_blitter_data[6]&0x100)?256:0); int src_y0=(m_blitter_data[2]>>8)+((m_blitter_data[6]&0x200)?256:0); diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c index 0ae05c88f88..5e7fa1277cd 100644 --- a/src/mame/drivers/wolfpack.c +++ b/src/mame/drivers/wolfpack.c @@ -33,13 +33,13 @@ TIMER_CALLBACK_MEMBER(wolfpack_state::periodic_callback) if (scanline >= 262) scanline = 0; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); } void wolfpack_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(0), TIMER_PERIODIC); + timer_set(m_screen->time_until_pos(0), TIMER_PERIODIC); } @@ -69,7 +69,7 @@ READ8_MEMBER(wolfpack_state::wolfpack_misc_r) if (!m_collision) val |= 0x10; - if (machine().primary_screen->vpos() >= 240) + if (m_screen->vpos() >= 240) val |= 0x80; return val; diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c index 34eaac284f9..b19b7ab1085 100644 --- a/src/mame/drivers/wwfsstar.c +++ b/src/mame/drivers/wwfsstar.c @@ -266,14 +266,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(wwfsstar_state::wwfsstar_scanline) if (scanline % 16 == 0) { if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(5, ASSERT_LINE); } /* Vblank is raised on scanline 240 */ if (scanline == 240) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(6, ASSERT_LINE); } } diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c index 25c40e870b3..5b6288ceb59 100644 --- a/src/mame/drivers/wwfwfest.c +++ b/src/mame/drivers/wwfwfest.c @@ -358,14 +358,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(wwfwfest_state::wwfwfest_scanline) if (scanline % 16 == 0) { if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(2, ASSERT_LINE); } /* Vblank is raised on scanline 248 */ if (scanline == 248) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(3, ASSERT_LINE); } } diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c index 0c1992d072d..fa4ec1a2f90 100644 --- a/src/mame/drivers/xain.c +++ b/src/mame/drivers/xain.c @@ -176,14 +176,14 @@ inline int xain_state::scanline_to_vcount(int scanline) TIMER_DEVICE_CALLBACK_MEMBER(xain_state::xain_scanline) { int scanline = param; - int screen_height = machine().primary_screen->height(); + int screen_height = m_screen->height(); int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); int vcount = scanline_to_vcount(scanline); /* update to the current point */ if (scanline > 0) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); } /* FIRQ (IMS) fires every on every 8th scanline (except 0) */ diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c index 71f5f64d829..42c093d6732 100644 --- a/src/mame/drivers/xexex.c +++ b/src/mame/drivers/xexex.c @@ -108,7 +108,7 @@ void xexex_state::xexex_objdma( int limiter ) UINT16 *src, *dst; counter = m_frame; - m_frame = machine().primary_screen->frame_number(); + m_frame = m_screen->frame_number(); if (limiter && counter == m_frame) return; // make sure we only do DMA transfer once per frame diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 5267ac7d09f..ffa3e24ab14 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -242,7 +242,7 @@ INPUT_PORTS_END CUSTOM_INPUT_MEMBER(xmen_state::xmen_frame_r) { - return machine().primary_screen->frame_number() & 1; + return m_screen->frame_number() & 1; } static INPUT_PORTS_START( xmen6p ) diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index 51378d2ff14..3c9173c21a4 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -359,7 +359,7 @@ READ8_MEMBER(zn_state::boardconfig_r) int boardconfig = 64 | 32; - if( machine().primary_screen->height() == 1024 ) + if( m_screen->height() == 1024 ) { boardconfig |= 8; } diff --git a/src/mame/includes/n64.h b/src/mame/includes/n64.h index 57f141bee63..e3bfbc6c67d 100644 --- a/src/mame/includes/n64.h +++ b/src/mame/includes/n64.h @@ -43,7 +43,8 @@ struct n64_savable_data_t UINT8 mempak[2][0x8000]; }; -class n64_periphs : public device_t +class n64_periphs : public device_t, + public device_video_interface { private: struct AUDIO_DMA diff --git a/src/mame/includes/snes.h b/src/mame/includes/snes.h index 846a32e222a..ee2305a7da5 100644 --- a/src/mame/includes/snes.h +++ b/src/mame/includes/snes.h @@ -450,6 +450,8 @@ public: UINT16 ver_offset; UINT8 extbg; } m_mode7; + + screen_device *m_screen; UINT8 m_mosaic_size; UINT8 m_clip_to_black; @@ -525,7 +527,7 @@ public: inline UINT32 get_vram_address(running_machine &machine); UINT8 dbg_video(running_machine &machine, UINT16 curline); - void ppu_start(running_machine &machine); + void ppu_start(screen_device &screen); UINT8 read(address_space &space, UINT32 offset, UINT8 wrio_bit7); void write(address_space &space, UINT32 offset, UINT8 data); diff --git a/src/mame/machine/amiga.c b/src/mame/machine/amiga.c index f28a4999d6e..214f9b30026 100644 --- a/src/mame/machine/amiga.c +++ b/src/mame/machine/amiga.c @@ -298,7 +298,7 @@ MACHINE_RESET_MEMBER(amiga_state,amiga) (*m_intf->reset_callback)(machine()); /* start the scanline timer */ - timer_set(machine().primary_screen->time_until_pos(0), TIMER_SCANLINE); + timer_set(m_screen->time_until_pos(0), TIMER_SCANLINE); } @@ -352,7 +352,7 @@ TIMER_CALLBACK_MEMBER(amiga_state::scanline_callback) mos6526_tod_w(m_cia_0, 1); /* render up to this scanline */ - if (!machine().primary_screen->update_partial(scanline)) + if (!m_screen->update_partial(scanline)) { if (IS_AGA(m_intf)) { @@ -370,8 +370,8 @@ TIMER_CALLBACK_MEMBER(amiga_state::scanline_callback) amiga_audio_update(m_sound_device); /* set timer for next line */ - scanline = (scanline + 1) % machine().primary_screen->height(); - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_SCANLINE, scanline); + scanline = (scanline + 1) % m_screen->height(); + timer_set(m_screen->time_until_pos(scanline), TIMER_SCANLINE, scanline); } @@ -1189,14 +1189,14 @@ READ16_MEMBER( amiga_state::amiga_custom_r ) case REG_VPOSR: CUSTOM_REG(REG_VPOSR) &= 0x7f00; - CUSTOM_REG(REG_VPOSR) |= amiga_gethvpos(*space.machine().primary_screen) >> 16; - if(CUSTOM_REG(REG_BPLCON0) & BPLCON0_LACE && space.machine().primary_screen->frame_number() & 0x1) + CUSTOM_REG(REG_VPOSR) |= amiga_gethvpos(*m_screen) >> 16; + if(CUSTOM_REG(REG_BPLCON0) & BPLCON0_LACE && m_screen->frame_number() & 0x1) CUSTOM_REG(REG_VPOSR) |= 0x8000; // LOF bit return CUSTOM_REG(REG_VPOSR); case REG_VHPOSR: - return amiga_gethvpos(*space.machine().primary_screen) & 0xffff; + return amiga_gethvpos(*m_screen) & 0xffff; case REG_SERDATR: CUSTOM_REG(REG_SERDATR) &= ~0x4000; diff --git a/src/mame/machine/archimds.c b/src/mame/machine/archimds.c index c3362623ef4..28f4b681ffa 100644 --- a/src/mame/machine/archimds.c +++ b/src/mame/machine/archimds.c @@ -106,7 +106,7 @@ void archimedes_state::vidc_vblank() archimedes_request_irq_a(ARCHIMEDES_IRQA_VBL); // set up for next vbl - m_vbl_timer->adjust(machine().primary_screen->time_until_pos(m_vidc_regs[0xb4])); + m_vbl_timer->adjust(m_screen->time_until_pos(m_vidc_regs[0xb4])); } /* video DMA */ @@ -123,7 +123,7 @@ void archimedes_state::vidc_video_tick() vram[m_vidc_vidcur] = (space.read_byte(m_vidc_vidstart+m_vidc_vidcur)); if(m_video_dma_on) - m_vid_timer->adjust(machine().primary_screen->time_until_pos(m_vidc_regs[0xb4])); + m_vid_timer->adjust(m_screen->time_until_pos(m_vidc_regs[0xb4])); else m_vid_timer->adjust(attotime::never); } @@ -464,7 +464,7 @@ READ32_MEMBER( archimedes_state::ioc_ctrl_r ) static UINT8 flyback; //internal name for vblank here int vert_pos; - vert_pos = machine().primary_screen->vpos(); + vert_pos = m_screen->vpos(); flyback = (vert_pos <= m_vidc_regs[VIDC_VDSR] || vert_pos >= m_vidc_regs[VIDC_VDER]) ? 0x80 : 0x00; if ( m_i2cmem ) @@ -554,7 +554,7 @@ WRITE32_MEMBER( archimedes_state::ioc_ctrl_w ) archimedes_request_irq_a((data & 0x80) ? ARCHIMEDES_IRQA_FORCE : 0); if(data & 0x08) //set up the VBLANK timer - m_vbl_timer->adjust(machine().primary_screen->time_until_pos(m_vidc_regs[0xb4])); + m_vbl_timer->adjust(m_screen->time_until_pos(m_vidc_regs[0xb4])); break; @@ -800,7 +800,7 @@ void archimedes_state::vidc_dynamic_res_change() /* FIXME: pixel clock */ refresh = HZ_TO_ATTOSECONDS(pixel_rate[m_vidc_pixel_clk]*2) * m_vidc_regs[VIDC_HCR] * m_vidc_regs[VIDC_VCR]; - machine().primary_screen->configure(m_vidc_regs[VIDC_HCR], m_vidc_regs[VIDC_VCR], visarea, refresh); + m_screen->configure(m_vidc_regs[VIDC_HCR], m_vidc_regs[VIDC_VCR], visarea, refresh); } } } @@ -970,7 +970,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_memc_w) if ((data>>10)&1) { m_vidc_vidcur = 0; - m_vid_timer->adjust(machine().primary_screen->time_until_pos(m_vidc_regs[0xb4])); + m_vid_timer->adjust(m_screen->time_until_pos(m_vidc_regs[0xb4])); } if ((data>>11)&1) diff --git a/src/mame/machine/atarifb.c b/src/mame/machine/atarifb.c index 5850fbb486e..960313fea11 100644 --- a/src/mame/machine/atarifb.c +++ b/src/mame/machine/atarifb.c @@ -107,7 +107,7 @@ WRITE8_MEMBER(atarifb_state::soccer_out2_w) /* FIXME: almost surely not tied with screen vertical position */ WRITE8_MEMBER(atarifb_state::atarifb_out3_w) { - int loop = machine().primary_screen->vpos() >= 123; + int loop = m_screen->vpos() >= 123; switch (loop) { diff --git a/src/mame/machine/balsente.c b/src/mame/machine/balsente.c index 97b46a7c8e5..0d2701538a6 100644 --- a/src/mame/machine/balsente.c +++ b/src/mame/machine/balsente.c @@ -30,15 +30,15 @@ TIMER_DEVICE_CALLBACK_MEMBER(balsente_state::balsente_interrupt_timer) { /* next interrupt after scanline 256 is scanline 64 */ if (param == 256) - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(64), 64); + m_scanline_timer->adjust(m_screen->time_until_pos(64), 64); else - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(param + 64), param + 64); + m_scanline_timer->adjust(m_screen->time_until_pos(param + 64), param + 64); /* IRQ starts on scanline 0, 64, 128, etc. */ m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* it will turn off on the next HBLANK */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(param, BALSENTE_HBSTART), timer_expired_delegate(FUNC(balsente_state::irq_off),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(param, BALSENTE_HBSTART), timer_expired_delegate(FUNC(balsente_state::irq_off),this)); /* if this is Grudge Match, update the steering */ if (m_grudge_steering_result & 0x80) @@ -168,7 +168,7 @@ void balsente_state::machine_reset() m_maincpu->reset(); /* start a timer to generate interrupts */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } @@ -1144,7 +1144,7 @@ void balsente_state::update_grudge_steering() READ8_MEMBER(balsente_state::grudge_steering_r) { - logerror("%04X:grudge_steering_r(@%d)\n", space.device().safe_pc(), machine().primary_screen->vpos()); + logerror("%04X:grudge_steering_r(@%d)\n", space.device().safe_pc(), m_screen->vpos()); m_grudge_steering_result |= 0x80; return m_grudge_steering_result; } diff --git a/src/mame/machine/galaxold.c b/src/mame/machine/galaxold.c index 453342fa922..094ef0d5805 100644 --- a/src/mame/machine/galaxold.c +++ b/src/mame/machine/galaxold.c @@ -60,7 +60,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(galaxold_state::galaxold_interrupt_timer) param = (param + 0x10) & 0xff; - timer.adjust(machine().primary_screen->time_until_pos(param), param); + timer.adjust(m_screen->time_until_pos(param), param); } @@ -80,7 +80,7 @@ void galaxold_state::machine_reset_common(int line) /* start a timer to generate interrupts */ timer_device *int_timer = machine().device("int_timer"); - int_timer->adjust(machine().primary_screen->time_until_pos(0)); + int_timer->adjust(m_screen->time_until_pos(0)); } MACHINE_RESET_MEMBER(galaxold_state,galaxold) diff --git a/src/mame/machine/harddriv.c b/src/mame/machine/harddriv.c index caa49c0789f..997f3ef0b27 100644 --- a/src/mame/machine/harddriv.c +++ b/src/mame/machine/harddriv.c @@ -236,7 +236,7 @@ READ16_HANDLER( hd68k_port0_r ) */ harddriv_state *state = space.machine().driver_data(); int temp = (space.machine().root_device().ioport("SW1")->read() << 8) | space.machine().root_device().ioport("IN0")->read(); - if (state->get_hblank(*space.machine().primary_screen)) temp ^= 0x0002; + if (state->get_hblank(*state->m_screen)) temp ^= 0x0002; temp ^= 0x0018; /* both EOCs always high for now */ return temp; } @@ -510,7 +510,7 @@ WRITE16_HANDLER( hdgsp_io_w ) /* detect changes to HEBLNK and HSBLNK and force an update before they change */ if ((offset == REG_HEBLNK || offset == REG_HSBLNK) && data != tms34010_io_register_r(space, offset, 0xffff)) - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos() - 1); + state->m_screen->update_partial(state->m_screen->vpos() - 1); tms34010_io_register_w(space, offset, data, mem_mask); } diff --git a/src/mame/machine/irobot.c b/src/mame/machine/irobot.c index 1e7ace99483..290d1a237c1 100644 --- a/src/mame/machine/irobot.c +++ b/src/mame/machine/irobot.c @@ -155,7 +155,7 @@ TIMER_CALLBACK_MEMBER(irobot_state::scanline_callback) /* set a callback for the next 32-scanline increment */ scanline += 32; if (scanline >= 256) scanline = 0; - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this), scanline); + machine().scheduler().timer_set(m_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this), scanline); } void irobot_state::machine_reset() @@ -175,7 +175,7 @@ void irobot_state::machine_reset() m_irmb_timer = machine().device("irmb_timer"); /* set an initial timer to go off on scanline 0 */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(0), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this)); irobot_rom_banksel_w(m_maincpu->space(AS_PROGRAM),0,0); irobot_out0_w(m_maincpu->space(AS_PROGRAM),0,0); diff --git a/src/mame/machine/leland.c b/src/mame/machine/leland.c index 2dbc1ba48f5..708a09f5bec 100644 --- a/src/mame/machine/leland.c +++ b/src/mame/machine/leland.c @@ -326,7 +326,7 @@ MACHINE_START_MEMBER(leland_state,leland) MACHINE_RESET_MEMBER(leland_state,leland) { - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(8), 8); + m_master_int_timer->adjust(m_screen->time_until_pos(8), 8); /* reset globals */ m_gfx_control = 0x00; @@ -377,7 +377,7 @@ MACHINE_START_MEMBER(leland_state,ataxx) MACHINE_RESET_MEMBER(leland_state,ataxx) { memset(m_extra_tram, 0, ATAXX_EXTRA_TRAM_SIZE); - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(8), 8); + m_master_int_timer->adjust(m_screen->time_until_pos(8), 8); /* initialize the XROM */ m_xrom_length = memregion("user1")->bytes(); @@ -426,7 +426,7 @@ TIMER_CALLBACK_MEMBER(leland_state::leland_interrupt_callback) scanline += 16; if (scanline > 248) scanline = 8; - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_master_int_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -438,7 +438,7 @@ TIMER_CALLBACK_MEMBER(leland_state::ataxx_interrupt_callback) m_master->set_input_line(0, HOLD_LINE); /* set a timer for the next one */ - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_master_int_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -1196,7 +1196,7 @@ WRITE8_MEMBER(leland_state::ataxx_master_output_w) break; case 0x08: /* */ - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(data + 1), data + 1); + m_master_int_timer->adjust(m_screen->time_until_pos(data + 1), data + 1); break; default: @@ -1381,7 +1381,7 @@ WRITE8_MEMBER(leland_state::ataxx_slave_banksw_w) READ8_MEMBER(leland_state::leland_raster_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/machine/mcr68.c b/src/mame/machine/mcr68.c index 30462060377..c8792017e47 100644 --- a/src/mame/machine/mcr68.c +++ b/src/mame/machine/mcr68.c @@ -228,7 +228,7 @@ TIMER_CALLBACK_MEMBER(mcr68_state::mcr68_493_callback) { m_v493_irq_state = 1; update_mcr68_interrupts(); - machine().scheduler().timer_set(machine().primary_screen->scan_period(), timer_expired_delegate(FUNC(mcr68_state::mcr68_493_off_callback),this)); + machine().scheduler().timer_set(m_screen->scan_period(), timer_expired_delegate(FUNC(mcr68_state::mcr68_493_off_callback),this)); logerror("--- (INT1) ---\n"); } @@ -284,7 +284,7 @@ TIMER_CALLBACK_MEMBER(mcr68_state::zwackery_493_callback) pia6821_device *pia = machine().device("pia0"); pia->ca1_w(1); - machine().scheduler().timer_set(machine().primary_screen->scan_period(), timer_expired_delegate(FUNC(mcr68_state::zwackery_493_off_callback),this)); + machine().scheduler().timer_set(m_screen->scan_period(), timer_expired_delegate(FUNC(mcr68_state::zwackery_493_off_callback),this)); } diff --git a/src/mame/machine/megavdp.c b/src/mame/machine/megavdp.c index d223009d032..830430cb6a9 100644 --- a/src/mame/machine/megavdp.c +++ b/src/mame/machine/megavdp.c @@ -173,11 +173,11 @@ void sega_genesis_vdp_device::device_start() if (!m_use_alt_timing) - m_render_bitmap = auto_bitmap_ind16_alloc(machine(), machine().primary_screen->width(), machine().primary_screen->height()); + m_render_bitmap = auto_bitmap_ind16_alloc(machine(), m_screen->width(), m_screen->height()); else - m_render_line = auto_alloc_array(machine(), UINT16, machine().primary_screen->width()); + m_render_line = auto_alloc_array(machine(), UINT16, m_screen->width()); - m_render_line_raw = auto_alloc_array(machine(), UINT16, machine().primary_screen->width()); + m_render_line_raw = auto_alloc_array(machine(), UINT16, m_screen->width()); // FIXME: are these all needed? I'm pretty sure some of these (most?) are just helpers which don't need to be saved, // but better safe than sorry... @@ -188,9 +188,9 @@ void sega_genesis_vdp_device::device_start() save_pointer(NAME(megadrive_vdp_palette_lookup_sprite), 0x40/2); save_pointer(NAME(megadrive_vdp_palette_lookup_shadow), 0x40/2); save_pointer(NAME(megadrive_vdp_palette_lookup_highlight), 0x40/2); - save_pointer(NAME(m_render_line_raw), machine().primary_screen->width()/2); + save_pointer(NAME(m_render_line_raw), m_screen->width()/2); if (m_use_alt_timing) - save_pointer(NAME(m_render_line), machine().primary_screen->width()/2); + save_pointer(NAME(m_render_line), m_screen->width()/2); irq6_on_timer = machine().scheduler().timer_alloc(FUNC(irq6_on_timer_callback), (void*)this); irq4_on_timer = machine().scheduler().timer_alloc(FUNC(irq4_on_timer_callback), (void*)this); @@ -2789,7 +2789,7 @@ TIMER_DEVICE_CALLBACK( megadriv_scanline_timer_callback_alt_timing ) { if (param==0) { - //printf("where are we? %d %d\n", timer.machine().primary_screen->vpos(), timer.machine().primary_screen->hpos()); + //printf("where are we? %d %d\n", m_screen->vpos(), vdp->screen().hpos()); vdp->vdp_handle_eof(timer.machine()); //vdp->vdp_clear_bitmap(); } @@ -2797,8 +2797,8 @@ TIMER_DEVICE_CALLBACK( megadriv_scanline_timer_callback_alt_timing ) vdp->vdp_handle_scanline_callback(timer.machine(), param); - int vpos = timer.machine().primary_screen->vpos(); + int vpos = vdp->screen().vpos(); if (vpos > 0) - timer.machine().primary_screen->update_partial(vpos-1); + vdp->screen().update_partial(vpos-1); } } diff --git a/src/mame/machine/mw8080bw.c b/src/mame/machine/mw8080bw.c index 1feed4bbfd3..66aae58cba1 100644 --- a/src/mame/machine/mw8080bw.c +++ b/src/mame/machine/mw8080bw.c @@ -49,7 +49,7 @@ TIMER_CALLBACK_MEMBER(mw8080bw_state::mw8080bw_interrupt_callback) int next_vblank; /* compute vector and set the interrupt line */ - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); UINT8 counter = vpos_to_vysnc_chain_counter(vpos); UINT8 vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector); @@ -67,7 +67,7 @@ TIMER_CALLBACK_MEMBER(mw8080bw_state::mw8080bw_interrupt_callback) } next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank); - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(next_vpos)); + m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos)); } @@ -80,7 +80,7 @@ void mw8080bw_state::mw8080bw_create_interrupt_timer( ) void mw8080bw_state::mw8080bw_start_interrupt_timer( ) { int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1); - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_interrupt_timer->adjust(m_screen->time_until_pos(vpos)); } diff --git a/src/mame/machine/n64.c b/src/mame/machine/n64.c index b5844b1a32e..cb3a51258be 100644 --- a/src/mame/machine/n64.c +++ b/src/mame/machine/n64.c @@ -21,6 +21,7 @@ const device_type N64PERIPH = &device_creator; n64_periphs::n64_periphs(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, N64PERIPH, "N64 Periphal Chips", tag, owner, clock, "n64_periphs", __FILE__) + , device_video_interface(mconfig, *this) , m_nvram_image(NULL) { } @@ -1056,7 +1057,7 @@ TIMER_CALLBACK_MEMBER(n64_periphs::vi_scanline_callback) void n64_periphs::vi_scanline_tick() { signal_rcp_interrupt(VI_INTERRUPT); - vi_scanline_timer->adjust(machine().primary_screen->time_until_pos(vi_intr >> 1)); + vi_scanline_timer->adjust(m_screen->time_until_pos(vi_intr >> 1)); } // Video Interface @@ -1071,8 +1072,8 @@ void n64_periphs::vi_recalculate_resolution() int width = ((vi_xscale & 0x00000fff) * (x_end - x_start)) / 0x400; int height = ((vi_yscale & 0x00000fff) * (y_end - y_start)) / 0x400; //printf("%04x | %02x | ", vi_xscale >> 16, vi_burst & 0x000000ff); - rectangle visarea = machine().primary_screen->visible_area(); - attoseconds_t period = machine().primary_screen->frame_period().attoseconds; + rectangle visarea = m_screen->visible_area(); + attoseconds_t period = m_screen->frame_period().attoseconds; if (width == 0 || height == 0) { @@ -1099,7 +1100,7 @@ void n64_periphs::vi_recalculate_resolution() visarea.max_x = width - 1; visarea.max_y = height - 1; //printf("Reconfig %d, %d (%d - %d), %08x, %08x, %08x, %08x, %08x\n", width, height, x_start, x_end, vi_width, vi_xscale, vi_hsync, vi_hstart, vi_burst); - machine().primary_screen->configure(width, 525, visarea, period); + m_screen->configure(width, 525, visarea, period); } READ32_MEMBER( n64_periphs::vi_reg_r ) @@ -1124,7 +1125,7 @@ READ32_MEMBER( n64_periphs::vi_reg_r ) break; case 0x10/4: // VI_CURRENT_REG - ret = machine().primary_screen->vpos() << 1; + ret = m_screen->vpos() << 1; break; case 0x14/4: // VI_BURST_REG @@ -1199,7 +1200,7 @@ WRITE32_MEMBER( n64_periphs::vi_reg_w ) case 0x0c/4: // VI_INTR_REG vi_intr = data; - vi_scanline_timer->adjust(machine().primary_screen->time_until_pos(vi_intr >> 1)); + vi_scanline_timer->adjust(m_screen->time_until_pos(vi_intr >> 1)); break; case 0x10/4: // VI_CURRENT_REG diff --git a/src/mame/machine/namco51.c b/src/mame/machine/namco51.c index 3ebf2f4c4f5..c1eddafb8d1 100644 --- a/src/mame/machine/namco51.c +++ b/src/mame/machine/namco51.c @@ -266,7 +266,7 @@ READ8_DEVICE_HANDLER( namco_51xx_read ) if (state->m_mode == 1) { - int on = (space.machine().primary_screen->frame_number() & 0x10) >> 4; + int on = (device->machine().first_screen()->frame_number() & 0x10) >> 4; if (state->m_credits >= 2) WRITE_PORT(state,0,0x0c | 3*on); // lamps diff --git a/src/mame/machine/namcos2.c b/src/mame/machine/namcos2.c index c39af12a41c..a6715125de8 100644 --- a/src/mame/machine/namcos2.c +++ b/src/mame/machine/namcos2.c @@ -664,14 +664,14 @@ TIMER_CALLBACK_MEMBER(namcos2_shared_state::namcos2_posirq_tick) { if (is_system21()) { if (namcos2_68k_gpu_C148[NAMCOS2_C148_POSIRQ]) { - machine().primary_screen->update_partial(param); + m_screen->update_partial(param); machine().device("gpu")->execute().set_input_line(namcos2_68k_gpu_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); } return; } if (namcos2_68k_master_C148[NAMCOS2_C148_POSIRQ]|namcos2_68k_slave_C148[NAMCOS2_C148_POSIRQ]) { - machine().primary_screen->update_partial(param); + m_screen->update_partial(param); if (namcos2_68k_master_C148[NAMCOS2_C148_POSIRQ]) m_maincpu->set_input_line(namcos2_68k_master_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); if (namcos2_68k_slave_C148[NAMCOS2_C148_POSIRQ]) m_slave->set_input_line(namcos2_68k_slave_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); } diff --git a/src/mame/machine/nb1414m4.c b/src/mame/machine/nb1414m4.c index 72af3684a5e..cc72be69e05 100644 --- a/src/mame/machine/nb1414m4.c +++ b/src/mame/machine/nb1414m4.c @@ -63,7 +63,7 @@ static void insert_coin_msg(address_space &space,UINT8 *vram) { UINT8 * data = (UINT8 *)space.machine().root_device().memregion("blit_data")->base(); int credit_count = (vram[0xf] & 0xff); - UINT8 fl_cond = space.machine().primary_screen->frame_number() & 0x10; /* for insert coin "flickering" */ + UINT8 fl_cond = space.machine().first_screen()->frame_number() & 0x10; /* for insert coin "flickering" */ UINT16 dst; if(credit_count == 0) @@ -84,7 +84,7 @@ static void credit_msg(address_space &space,UINT8 *vram) { UINT8 * data = (UINT8 *)space.machine().root_device().memregion("blit_data")->base(); int credit_count = (vram[0xf] & 0xff); - UINT8 fl_cond = space.machine().primary_screen->frame_number() & 0x10; /* for insert coin "flickering" */ + UINT8 fl_cond = space.machine().first_screen()->frame_number() & 0x10; /* for insert coin "flickering" */ UINT16 dst; dst = ((data[0x023]<<8)|(data[0x024]&0xff)) & 0x3fff; diff --git a/src/mame/machine/snes.c b/src/mame/machine/snes.c index 2dcd0360cb7..7d6bb6c4e4a 100644 --- a/src/mame/machine/snes.c +++ b/src/mame/machine/snes.c @@ -32,7 +32,7 @@ void snes_state::video_start() { - m_ppu.ppu_start(machine()); + m_ppu.ppu_start(m_screen); } UINT32 snes_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) @@ -137,7 +137,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_update_io) TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) { /* Increase current line - we want to latch on this line during it, not after it */ - m_ppu.m_beam.current_vert = machine().primary_screen->vpos(); + m_ppu.m_beam.current_vert = m_screen->vpos(); // not in hblank SNES_CPU_REG(HVBJOY) &= ~0x40; @@ -177,7 +177,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) } else { - m_hirq_timer->adjust(machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert, pixel * m_ppu.m_htmult)); + m_hirq_timer->adjust(m_screen->time_until_pos(m_ppu.m_beam.current_vert, pixel * m_ppu.m_htmult)); } } } @@ -185,7 +185,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) /* Start of VBlank */ if (m_ppu.m_beam.current_vert == m_ppu.m_beam.last_visible_line) { - timer_set(machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert, 10), TIMER_RESET_OAM_ADDRESS); + timer_set(m_screen->time_until_pos(m_ppu.m_beam.current_vert, 10), TIMER_RESET_OAM_ADDRESS); SNES_CPU_REG(HVBJOY) |= 0x81; /* Set vblank bit to on & indicate controllers being read */ SNES_CPU_REG(RDNMI) |= 0x80; /* Set NMI occurred bit */ @@ -197,7 +197,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) } /* three lines after start of vblank we update the controllers (value from snes9x) */ - m_io_timer->adjust(machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert + 2, m_hblank_offset * m_ppu.m_htmult)); + m_io_timer->adjust(m_screen->time_until_pos(m_ppu.m_beam.current_vert + 2, m_hblank_offset * m_ppu.m_htmult)); } // hdma reset happens at scanline 0, H=~6 @@ -218,7 +218,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) } m_scanline_timer->adjust(attotime::never); - m_hblank_timer->adjust(machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert, m_hblank_offset * m_ppu.m_htmult)); + m_hblank_timer->adjust(m_screen->time_until_pos(m_ppu.m_beam.current_vert, m_hblank_offset * m_ppu.m_htmult)); // printf("%02x %d\n",SNES_CPU_REG(HVBJOY),m_ppu.m_beam.current_vert); } @@ -229,7 +229,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_hblank_tick) address_space &cpu0space = m_maincpu->space(AS_PROGRAM); int nextscan; - m_ppu.m_beam.current_vert = machine().primary_screen->vpos(); + m_ppu.m_beam.current_vert = m_screen->vpos(); /* make sure we halt */ m_hblank_timer->adjust(attotime::never); @@ -237,13 +237,13 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_hblank_tick) /* draw a scanline */ if (m_ppu.m_beam.current_vert <= m_ppu.m_beam.last_visible_line) { - if (machine().primary_screen->vpos() > 0) + if (m_screen->vpos() > 0) { /* Do HDMA */ if (SNES_CPU_REG(HDMAEN)) hdma(cpu0space); - machine().primary_screen->update_partial((m_ppu.m_interlace == 2) ? (m_ppu.m_beam.current_vert * m_ppu.m_interlace) : m_ppu.m_beam.current_vert - 1); + m_screen->update_partial((m_ppu.m_interlace == 2) ? (m_ppu.m_beam.current_vert * m_ppu.m_interlace) : m_ppu.m_beam.current_vert - 1); } } @@ -257,7 +257,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_hblank_tick) nextscan = 0; } - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(nextscan)); + m_scanline_timer->adjust(m_screen->time_until_pos(nextscan)); } @@ -441,7 +441,7 @@ READ8_MEMBER( snes_state::snes_r_io ) return value; case HVBJOY: /* H/V blank and joypad controller enable */ // electronics test says hcounter 272 is start of hblank, which is beampos 363 -// if (space.machine().primary_screen->hpos() >= 363) SNES_CPU_REG(HVBJOY) |= 0x40; +// if (m_screen->hpos() >= 363) SNES_CPU_REG(HVBJOY) |= 0x40; // else SNES_CPU_REG(HVBJOY) &= ~0x40; return (SNES_CPU_REG(HVBJOY) & 0xc1) | (snes_open_bus_r(space, 0) & 0x3e); case RDIO: /* Programmable I/O port - echos back what's written to WRIO */ @@ -572,7 +572,7 @@ WRITE8_MEMBER( snes_state::snes_w_io ) return; case HDMAEN: /* HDMA channel designation */ if (data) //if a HDMA is enabled, data is inited at the next scanline - timer_set(space.machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert + 1), TIMER_RESET_HDMA); + timer_set(m_screen->time_until_pos(m_ppu.m_beam.current_vert + 1), TIMER_RESET_HDMA); SNES_CPU_REG(HDMAEN) = data; return; case TIMEUP: // IRQ Flag is cleared on both read and write @@ -1040,7 +1040,7 @@ void snes_state::snes_init_timers() // SNES hcounter has a 0-339 range. hblank starts at counter 260. // clayfighter sets an HIRQ at 260, apparently it wants it to be before hdma kicks off, so we'll delay 2 pixels. m_hblank_offset = 274; - m_hblank_timer->adjust(machine().primary_screen->time_until_pos(((m_ppu.m_stat78 & 0x10) == SNES_NTSC) ? SNES_VTOTAL_NTSC - 1 : SNES_VTOTAL_PAL - 1, m_hblank_offset)); + m_hblank_timer->adjust(m_screen->time_until_pos(((m_ppu.m_stat78 & 0x10) == SNES_NTSC) ? SNES_VTOTAL_NTSC - 1 : SNES_VTOTAL_PAL - 1, m_hblank_offset)); } void snes_state::snes_init_ram() @@ -1066,7 +1066,7 @@ void snes_state::snes_init_ram() SNES_CPU_REG(WRIO) = 0xff; // init frame counter so first line is 0 - if (ATTOSECONDS_TO_HZ(machine().primary_screen->frame_period().attoseconds) >= 59) + if (ATTOSECONDS_TO_HZ(m_screen->frame_period().attoseconds) >= 59) m_ppu.m_beam.current_vert = SNES_VTOTAL_NTSC; else m_ppu.m_beam.current_vert = SNES_VTOTAL_PAL; @@ -1132,7 +1132,7 @@ void snes_state::machine_reset() } /* Set STAT78 to NTSC or PAL */ - if (ATTOSECONDS_TO_HZ(machine().primary_screen->frame_period().attoseconds) >= 59.0f) + if (ATTOSECONDS_TO_HZ(m_screen->frame_period().attoseconds) >= 59.0f) m_ppu.m_stat78 = SNES_NTSC; else /* if (ATTOSECONDS_TO_HZ(machine.primary_screen->frame_period().attoseconds) == 50.0f) */ m_ppu.m_stat78 = SNES_PAL; diff --git a/src/mame/machine/williams.c b/src/mame/machine/williams.c index ad241d253dc..b6db4c45cb3 100644 --- a/src/mame/machine/williams.c +++ b/src/mame/machine/williams.c @@ -231,7 +231,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(williams_state::williams_va11_callback) /* set a timer for the next update */ scanline += 0x20; if (scanline >= 256) scanline = 0; - timer.adjust(machine().primary_screen->time_until_pos(scanline), scanline); + timer.adjust(m_screen->time_until_pos(scanline), scanline); } @@ -252,10 +252,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(williams_state::williams_count240_callback) pia_1->ca1_w(1); /* set a timer to turn it off once the scanline counter resets */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), timer_expired_delegate(FUNC(williams_state::williams_count240_off_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(0), timer_expired_delegate(FUNC(williams_state::williams_count240_off_callback),this)); /* set a timer for next frame */ - timer.adjust(machine().primary_screen->time_until_pos(240)); + timer.adjust(m_screen->time_until_pos(240)); } @@ -345,11 +345,11 @@ MACHINE_RESET_MEMBER(williams_state,williams_common) { /* set a timer to go off every 16 scanlines, to toggle the VA11 line and update the screen */ timer_device *scan_timer = machine().device("scan_timer"); - scan_timer->adjust(machine().primary_screen->time_until_pos(0)); + scan_timer->adjust(m_screen->time_until_pos(0)); /* also set a timer to go off on scanline 240 */ timer_device *l240_timer = machine().device("240_timer"); - l240_timer->adjust(machine().primary_screen->time_until_pos(240)); + l240_timer->adjust(m_screen->time_until_pos(240)); } @@ -385,7 +385,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(williams_state::williams2_va11_callback) /* set a timer for the next update */ scanline += 0x20; if (scanline >= 256) scanline = 0; - timer.adjust(machine().primary_screen->time_until_pos(scanline), scanline); + timer.adjust(m_screen->time_until_pos(scanline), scanline); } @@ -406,10 +406,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(williams_state::williams2_endscreen_callback) pia_0->ca1_w(0); /* set a timer to turn it off once the scanline counter resets */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(8), timer_expired_delegate(FUNC(williams_state::williams2_endscreen_off_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(8), timer_expired_delegate(FUNC(williams_state::williams2_endscreen_off_callback),this)); /* set a timer for next frame */ - timer.adjust(machine().primary_screen->time_until_pos(254)); + timer.adjust(m_screen->time_until_pos(254)); } @@ -448,11 +448,11 @@ MACHINE_RESET_MEMBER(williams_state,williams2) /* set a timer to go off every 16 scanlines, to toggle the VA11 line and update the screen */ timer_device *scan_timer = machine().device("scan_timer"); - scan_timer->adjust(machine().primary_screen->time_until_pos(0)); + scan_timer->adjust(m_screen->time_until_pos(0)); /* also set a timer to go off on scanline 254 */ timer_device *l254_timer = machine().device("254_timer"); - l254_timer->adjust(machine().primary_screen->time_until_pos(254)); + l254_timer->adjust(m_screen->time_until_pos(254)); } diff --git a/src/mame/video/airbustr.c b/src/mame/video/airbustr.c index 355f23776af..a83bce7f8c5 100644 --- a/src/mame/video/airbustr.c +++ b/src/mame/video/airbustr.c @@ -112,7 +112,7 @@ void airbustr_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(airbustr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(airbustr_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - machine().primary_screen->register_screen_bitmap(m_sprites_bitmap); + m_screen->register_screen_bitmap(m_sprites_bitmap); m_fg_tilemap->set_transparent_pen(0); m_bg_tilemap->set_scrolldx(0x094, 0x06a); diff --git a/src/mame/video/amspdwy.c b/src/mame/video/amspdwy.c index 984d64b0bc4..395290a465c 100644 --- a/src/mame/video/amspdwy.c +++ b/src/mame/video/amspdwy.c @@ -102,8 +102,8 @@ void amspdwy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec { UINT8 *spriteram = m_spriteram; int i; - int max_x = machine().primary_screen->width() - 1; - int max_y = machine().primary_screen->height() - 1; + int max_x = m_screen->width() - 1; + int max_y = m_screen->height() - 1; for (i = 0; i < m_spriteram.bytes() ; i += 4) { diff --git a/src/mame/video/argus.c b/src/mame/video/argus.c index c3dfef88bb0..c683691d81f 100644 --- a/src/mame/video/argus.c +++ b/src/mame/video/argus.c @@ -300,7 +300,7 @@ VIDEO_START_MEMBER(argus_state,valtric) m_tx_tilemap->set_transparent_pen(15); - machine().primary_screen->register_screen_bitmap(m_mosaicbitmap); + m_screen->register_screen_bitmap(m_mosaicbitmap); jal_blend_init(machine(), 1); } diff --git a/src/mame/video/astrocde.c b/src/mame/video/astrocde.c index c6545a0227b..df6c59245b1 100644 --- a/src/mame/video/astrocde.c +++ b/src/mame/video/astrocde.c @@ -166,7 +166,7 @@ void astrocde_state::video_start() { /* allocate timers */ m_scanline_timer = timer_alloc(TIMER_SCANLINE); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(1), 1); + m_scanline_timer->adjust(m_screen->time_until_pos(1), 1); m_intoff_timer = timer_alloc(TIMER_INTERRUPT_OFF); /* register for save states */ @@ -182,7 +182,7 @@ VIDEO_START_MEMBER(astrocde_state,profpac) { /* allocate timers */ m_scanline_timer = timer_alloc(TIMER_SCANLINE); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(1), 1); + m_scanline_timer->adjust(m_screen->time_until_pos(1), 1); m_intoff_timer = timer_alloc(TIMER_INTERRUPT_OFF); /* allocate videoram */ @@ -398,7 +398,7 @@ void astrocde_state::astrocade_trigger_lightpen(UINT8 vfeedback, UINT8 hfeedback if ((m_interrupt_enabl & 0x01) == 0) { m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_interrupt_vector & 0xf0); - m_intoff_timer->adjust(machine().primary_screen->time_until_pos(vfeedback)); + m_intoff_timer->adjust(m_screen->time_until_pos(vfeedback)); } /* mode 1 means assert for 1 instruction */ @@ -429,7 +429,7 @@ TIMER_CALLBACK_MEMBER(astrocde_state::scanline_callback) /* force an update against the current scanline */ if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* generate a scanline interrupt if it's time */ if (astrocade_scanline == m_interrupt_scanline && (m_interrupt_enabl & 0x08) != 0) @@ -438,7 +438,7 @@ TIMER_CALLBACK_MEMBER(astrocde_state::scanline_callback) if ((m_interrupt_enabl & 0x04) == 0) { m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_interrupt_vector); - timer_set(machine().primary_screen->time_until_vblank_end(), TIMER_INTERRUPT_OFF); + timer_set(m_screen->time_until_vblank_end(), TIMER_INTERRUPT_OFF); } /* mode 1 means assert for 1 instruction */ @@ -455,9 +455,9 @@ TIMER_CALLBACK_MEMBER(astrocde_state::scanline_callback) /* advance to the next scanline */ scanline++; - if (scanline >= machine().primary_screen->height()) + if (scanline >= m_screen->height()) scanline = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } diff --git a/src/mame/video/atarigt.c b/src/mame/video/atarigt.c index 7c100498c7d..fbd6cf8042a 100644 --- a/src/mame/video/atarigt.c +++ b/src/mame/video/atarigt.c @@ -86,8 +86,8 @@ VIDEO_START_MEMBER(atarigt_state,atarigt) m_rle = machine().device("rle"); /* allocate temp bitmaps */ - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_pf_bitmap = auto_bitmap_ind16_alloc(machine(), width, height); m_an_bitmap = auto_bitmap_ind16_alloc(machine(), width, height); diff --git a/src/mame/video/atarigx2.c b/src/mame/video/atarigx2.c index bf34999e58d..5c9969797c4 100644 --- a/src/mame/video/atarigx2.c +++ b/src/mame/video/atarigx2.c @@ -91,7 +91,7 @@ VIDEO_START_MEMBER(atarigx2_state,atarigx2) WRITE16_MEMBER( atarigx2_state::atarigx2_mo_control_w ) { - logerror("MOCONT = %d (scan = %d)\n", data, machine().primary_screen->vpos()); + logerror("MOCONT = %d (scan = %d)\n", data, m_screen->vpos()); /* set the control value */ COMBINE_DATA(&m_current_control); diff --git a/src/mame/video/atarirle.c b/src/mame/video/atarirle.c index dcbf8a078cb..8b858db1130 100644 --- a/src/mame/video/atarirle.c +++ b/src/mame/video/atarirle.c @@ -404,7 +404,8 @@ void atarirle_device::device_start() void atarirle_control_w(device_t *device, UINT8 bits) { atarirle_data *mo = get_safe_token(device); - int scanline = device->machine().primary_screen->vpos(); + screen_device *screen = device->machine().first_screen(); + int scanline = screen->vpos(); int oldbits = mo->control_bits; //logerror("atarirle_control_w(%d)\n", bits); @@ -414,7 +415,7 @@ void atarirle_control_w(device_t *device, UINT8 bits) return; /* force a partial update first */ - device->machine().primary_screen->update_partial(scanline); + screen->update_partial(scanline); /* if the erase flag was set, erase the front map */ if (oldbits & ATARIRLE_CONTROL_ERASE) diff --git a/src/mame/video/atarisy1.c b/src/mame/video/atarisy1.c index 79b2f02e50b..0586d69606d 100644 --- a/src/mame/video/atarisy1.c +++ b/src/mame/video/atarisy1.c @@ -183,7 +183,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_bankselect_w ) { UINT16 oldselect = *m_bankselect; UINT16 newselect = oldselect, diff; - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); /* update memory */ COMBINE_DATA(&newselect); @@ -198,7 +198,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_bankselect_w ) /* if MO or playfield banks change, force a partial update */ if (diff & 0x003c) - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* motion object bank select */ m_mob->set_bank((newselect >> 3) & 7); @@ -231,7 +231,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_priority_w ) /* force a partial update in case this changes mid-screen */ COMBINE_DATA(&newpens); if (oldpens != newpens) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_playfield_priority_pens = newpens; } @@ -251,7 +251,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_xscroll_w ) /* force a partial update in case this changes mid-screen */ COMBINE_DATA(&newscroll); if (oldscroll != newscroll) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* set the new scroll value */ m_playfield_tilemap->set_scrollx(0, newscroll); @@ -278,23 +278,23 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_yscroll_w ) { UINT16 oldscroll = *m_yscroll; UINT16 newscroll = oldscroll; - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); int adjusted_scroll; /* force a partial update in case this changes mid-screen */ COMBINE_DATA(&newscroll); - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* because this latches a new value into the scroll base, we need to adjust for the scanline */ adjusted_scroll = newscroll; - if (scanline <= machine().primary_screen->visible_area().max_y) + if (scanline <= m_screen->visible_area().max_y) adjusted_scroll -= (scanline + 1); m_playfield_tilemap->set_scrolly(0, adjusted_scroll); /* but since we've adjusted it, we must reset it to the normal value once we hit scanline 0 again */ - m_yscroll_reset_timer->adjust(machine().primary_screen->time_until_pos(0), newscroll); + m_yscroll_reset_timer->adjust(m_screen->time_until_pos(0), newscroll); /* update the data */ *m_yscroll = newscroll; @@ -325,7 +325,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_spriteram_w ) { /* if the timer is in the active bank, update the display list */ spriteram[offset] = data; - update_timers(machine().primary_screen->vpos()); + update_timers(m_screen->vpos()); } /* if we're about to modify data in the active sprite bank, make sure the video is up-to-date */ @@ -333,7 +333,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_spriteram_w ) /* renders the next scanline's sprites to the line buffers, but Road Runner still glitches */ /* without the extra +1 */ else - machine().primary_screen->update_partial(machine().primary_screen->vpos() + 2); + m_screen->update_partial(m_screen->vpos() + 2); } /* let the MO handler do the basic work */ @@ -365,7 +365,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(atarisy1_state::atarisy1_int3_callback) scanline_int_gen(m_maincpu); /* set a timer to turn it off */ - m_int3off_timer->adjust(machine().primary_screen->scan_period()); + m_int3off_timer->adjust(m_screen->scan_period()); /* determine the time of the next one */ m_next_timer_scanline = -1; @@ -444,7 +444,7 @@ void atarisy1_state::update_timers(int scanline) /* set a new one */ if (best != -1) - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(best), best); + m_scanline_timer->adjust(m_screen->time_until_pos(best), best); else m_scanline_timer->reset(); } diff --git a/src/mame/video/atarisy2.c b/src/mame/video/atarisy2.c index f4c7c02f44c..3ea140ff273 100644 --- a/src/mame/video/atarisy2.c +++ b/src/mame/video/atarisy2.c @@ -110,7 +110,7 @@ WRITE16_MEMBER( atarisy2_state::xscroll_w ) /* if anything has changed, force a partial update */ if (newscroll != oldscroll) - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* update the playfield scrolling - hscroll is clocked on the following scanline */ m_playfield_tilemap->set_scrollx(0, newscroll >> 6); @@ -141,13 +141,13 @@ WRITE16_MEMBER( atarisy2_state::yscroll_w ) /* if anything has changed, force a partial update */ if (newscroll != oldscroll) - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* if bit 4 is zero, the scroll value is clocked in right away */ if (!(newscroll & 0x10)) - m_playfield_tilemap->set_scrolly(0, (newscroll >> 6) - space.machine().primary_screen->vpos()); + m_playfield_tilemap->set_scrolly(0, (newscroll >> 6) - m_screen->vpos()); else - m_yscroll_reset_timer->adjust(space.machine().primary_screen->time_until_pos(0), newscroll >> 6); + m_yscroll_reset_timer->adjust(m_screen->time_until_pos(0), newscroll >> 6); /* update the playfield banking */ if (m_playfield_tile_bank[1] != (newscroll & 0x0f) * 0x400) @@ -250,7 +250,7 @@ WRITE16_MEMBER( atarisy2_state::videoram_w ) { /* force an update if the link of object 0 is about to change */ if (offs == 0x0c03) - space.machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); COMBINE_DATA(&m_mob->spriteram()[offs - 0x0c00]); } diff --git a/src/mame/video/aztarac.c b/src/mame/video/aztarac.c index c8477b572e9..e712401e37b 100644 --- a/src/mame/video/aztarac.c +++ b/src/mame/video/aztarac.c @@ -82,7 +82,7 @@ WRITE16_MEMBER(aztarac_state::aztarac_ubr_w) void aztarac_state::video_start() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int xmin = visarea.min_x; int ymin = visarea.min_y; diff --git a/src/mame/video/badlands.c b/src/mame/video/badlands.c index 9ba12abf52a..03fe50cefe2 100644 --- a/src/mame/video/badlands.c +++ b/src/mame/video/badlands.c @@ -85,7 +85,7 @@ WRITE16_MEMBER( badlands_state::badlands_pf_bank_w ) if (ACCESSING_BITS_0_7) if (m_playfield_tile_bank != (data & 1)) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_playfield_tile_bank = data & 1; m_playfield_tilemap->mark_all_dirty(); } diff --git a/src/mame/video/balsente.c b/src/mame/video/balsente.c index f4900ebf599..ad935d7e2e5 100644 --- a/src/mame/video/balsente.c +++ b/src/mame/video/balsente.c @@ -63,11 +63,11 @@ WRITE8_MEMBER(balsente_state::balsente_palette_select_w) if (m_palettebank_vis != (data & 3)) { /* update the scanline palette */ - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1 + BALSENTE_VBEND); + m_screen->update_partial(m_screen->vpos() - 1 + BALSENTE_VBEND); m_palettebank_vis = data & 3; } - logerror("balsente_palette_select_w(%d) scanline=%d\n", data & 3, machine().primary_screen->vpos()); + logerror("balsente_palette_select_w(%d) scanline=%d\n", data & 3, m_screen->vpos()); } @@ -104,7 +104,7 @@ WRITE8_MEMBER(balsente_state::shrike_sprite_select_w) if( m_sprite_data != m_sprite_bank[(data & 0x80 >> 7) ^ 1 ]) { logerror( "shrike_sprite_select_w( 0x%02x )\n", data ); - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1 + BALSENTE_VBEND); + m_screen->update_partial(m_screen->vpos() - 1 + BALSENTE_VBEND); m_sprite_data = m_sprite_bank[(data & 0x80 >> 7) ^ 1]; } diff --git a/src/mame/video/battlera.c b/src/mame/video/battlera.c index f0d9140921e..6ad5b8cbd46 100644 --- a/src/mame/video/battlera.c +++ b/src/mame/video/battlera.c @@ -364,14 +364,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(battlera_state::battlera_irq) /* If raster interrupt occurs, refresh screen _up_ to this point */ if (m_rcr_enable && (m_current_scanline+56)==m_HuC6270_registers[6]) { - machine().primary_screen->update_partial(m_current_scanline); + m_screen->update_partial(m_current_scanline); m_maincpu->set_input_line(0, HOLD_LINE); /* RCR interrupt */ } /* Start of vblank */ else if (m_current_scanline==240) { m_bldwolf_vblank=1; - machine().primary_screen->update_partial(240); + m_screen->update_partial(240); if (m_irq_enable) m_maincpu->set_input_line(0, HOLD_LINE); /* VBL */ } diff --git a/src/mame/video/beathead.c b/src/mame/video/beathead.c index f6d06d2edc7..07a52c7e385 100644 --- a/src/mame/video/beathead.c +++ b/src/mame/video/beathead.c @@ -117,9 +117,9 @@ WRITE32_MEMBER( beathead_state::finescroll_w ) UINT32 newword = COMBINE_DATA(&m_finescroll); /* if VBLANK is going off on a scanline other than the last, suspend time */ - if ((oldword & 8) && !(newword & 8) && space.machine().primary_screen->vpos() != 261) + if ((oldword & 8) && !(newword & 8) && m_screen->vpos() != 261) { - logerror("Suspending time! (scanline = %d)\n", space.machine().primary_screen->vpos()); + logerror("Suspending time! (scanline = %d)\n", m_screen->vpos()); m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); } } diff --git a/src/mame/video/beezer.c b/src/mame/video/beezer.c index 3ac27fe9f39..1c80b1273cd 100644 --- a/src/mame/video/beezer.c +++ b/src/mame/video/beezer.c @@ -68,6 +68,6 @@ WRITE8_MEMBER(beezer_state::beezer_map_w) READ8_MEMBER(beezer_state::beezer_line_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); // Note: was (m_scanline & 0xfe) << 1; with scanline % 128 } diff --git a/src/mame/video/bigevglf.c b/src/mame/video/bigevglf.c index 4345cd91af9..439c4e8a194 100644 --- a/src/mame/video/bigevglf.c +++ b/src/mame/video/bigevglf.c @@ -50,10 +50,10 @@ READ8_MEMBER(bigevglf_state::bigevglf_vidram_r) void bigevglf_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap[0]); - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap[1]); - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap[2]); - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap[3]); + m_screen->register_screen_bitmap(m_tmp_bitmap[0]); + m_screen->register_screen_bitmap(m_tmp_bitmap[1]); + m_screen->register_screen_bitmap(m_tmp_bitmap[2]); + m_screen->register_screen_bitmap(m_tmp_bitmap[3]); save_item(NAME(m_tmp_bitmap[0])); save_item(NAME(m_tmp_bitmap[1])); save_item(NAME(m_tmp_bitmap[2])); diff --git a/src/mame/video/bishi.c b/src/mame/video/bishi.c index 01b5e638f37..6ba0db760d8 100644 --- a/src/mame/video/bishi.c +++ b/src/mame/video/bishi.c @@ -25,7 +25,7 @@ void bishi_tile_callback( running_machine &machine, int layer, int *code, int *c void bishi_state::video_start() { - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); m_k056832->set_layer_association(0); diff --git a/src/mame/video/bking.c b/src/mame/video/bking.c index 26e62372f6b..e90000d26e2 100644 --- a/src/mame/video/bking.c +++ b/src/mame/video/bking.c @@ -221,8 +221,8 @@ TILE_GET_INFO_MEMBER(bking_state::get_tile_info) void bking_state::video_start() { m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bking_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - machine().primary_screen->register_screen_bitmap(m_colmap_bg); - machine().primary_screen->register_screen_bitmap(m_colmap_ball); + m_screen->register_screen_bitmap(m_colmap_bg); + m_screen->register_screen_bitmap(m_colmap_ball); } diff --git a/src/mame/video/blockade.c b/src/mame/video/blockade.c index 99fbd9c8e75..ac775f40b9b 100644 --- a/src/mame/video/blockade.c +++ b/src/mame/video/blockade.c @@ -8,7 +8,7 @@ WRITE8_MEMBER(blockade_state::blockade_videoram_w) if (ioport("IN3")->read() & 0x80) { - logerror("blockade_videoram_w: scanline %d\n", machine().primary_screen->vpos()); + logerror("blockade_videoram_w: scanline %d\n", m_screen->vpos()); space.device().execute().spin_until_interrupt(); } } diff --git a/src/mame/video/blockout.c b/src/mame/video/blockout.c index d97971b20e4..d05a17305a8 100644 --- a/src/mame/video/blockout.c +++ b/src/mame/video/blockout.c @@ -60,7 +60,7 @@ WRITE16_MEMBER(blockout_state::blockout_frontcolor_w) void blockout_state::video_start() { /* Allocate temporary bitmaps */ - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); save_item(NAME(m_tmpbitmap)); } @@ -68,7 +68,7 @@ void blockout_state::update_pixels( int x, int y ) { UINT16 front, back; int color; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); if (!visarea.contains(x, y)) return; diff --git a/src/mame/video/btoads.c b/src/mame/video/btoads.c index b5b2613482d..81a1c404be1 100644 --- a/src/mame/video/btoads.c +++ b/src/mame/video/btoads.c @@ -59,9 +59,9 @@ WRITE16_MEMBER( btoads_state::display_control_w ) if (ACCESSING_BITS_8_15) { /* allow multiple changes during display */ - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* bit 15 controls which page is rendered and which page is displayed */ if (data & 0x8000) @@ -91,7 +91,7 @@ WRITE16_MEMBER( btoads_state::display_control_w ) WRITE16_MEMBER( btoads_state::scroll0_w ) { /* allow multiple changes during display */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* upper bits are Y scroll, lower bits are X scroll */ if (ACCESSING_BITS_8_15) @@ -104,7 +104,7 @@ WRITE16_MEMBER( btoads_state::scroll0_w ) WRITE16_MEMBER( btoads_state::scroll1_w ) { /* allow multiple changes during display */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* upper bits are Y scroll, lower bits are X scroll */ if (ACCESSING_BITS_8_15) diff --git a/src/mame/video/buggychl.c b/src/mame/video/buggychl.c index 1f8a6259d38..96eb8d254a5 100644 --- a/src/mame/video/buggychl.c +++ b/src/mame/video/buggychl.c @@ -13,8 +13,8 @@ void buggychl_state::palette_init() void buggychl_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap1); - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap2); + m_screen->register_screen_bitmap(m_tmp_bitmap1); + m_screen->register_screen_bitmap(m_tmp_bitmap2); save_item(NAME(m_tmp_bitmap1)); save_item(NAME(m_tmp_bitmap2)); diff --git a/src/mame/video/bwing.c b/src/mame/video/bwing.c index cedc2bb5ad1..e5440ef1cb3 100644 --- a/src/mame/video/bwing.c +++ b/src/mame/video/bwing.c @@ -119,7 +119,7 @@ WRITE8_MEMBER(bwing_state::bwing_scrollreg_w) m_srbank = data >> 6; #if BW_DEBUG - logerror("(%s)%04x: w=%02x a=%04x f=%d\n", device().tag, space.device().safe_pc(), data, 0x1b00 + offset, machine().primary_screen->frame_number()); + logerror("(%s)%04x: w=%02x a=%04x f=%d\n", device().tag, space.device().safe_pc(), data, 0x1b00 + offset, m_screen->frame_number()); #endif break; } diff --git a/src/mame/video/ccastles.c b/src/mame/video/ccastles.c index 1a8825af68f..e98b82cee7a 100644 --- a/src/mame/video/ccastles.c +++ b/src/mame/video/ccastles.c @@ -31,7 +31,7 @@ void ccastles_state::video_start() 3, resistances, m_bweights, 1000, 0); /* allocate a bitmap for drawing sprites */ - machine().primary_screen->register_screen_bitmap(m_spritebitmap); + m_screen->register_screen_bitmap(m_spritebitmap); /* register for savestates */ save_item(NAME(m_video_control)); @@ -50,7 +50,7 @@ void ccastles_state::video_start() WRITE8_MEMBER(ccastles_state::ccastles_hscroll_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_hscroll = data; } diff --git a/src/mame/video/cchasm.c b/src/mame/video/cchasm.c index 5f2ab0ac644..288074a6540 100644 --- a/src/mame/video/cchasm.c +++ b/src/mame/video/cchasm.c @@ -126,7 +126,7 @@ WRITE16_MEMBER(cchasm_state::cchasm_refresh_control_w) void cchasm_state::video_start() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_xcenter=visarea.xcenter() << 16; m_ycenter=visarea.ycenter() << 16; diff --git a/src/mame/video/changela.c b/src/mame/video/changela.c index b89cf2c1bd7..eb6f25037e3 100644 --- a/src/mame/video/changela.c +++ b/src/mame/video/changela.c @@ -22,13 +22,13 @@ void changela_state::video_start() m_memory_devices = auto_alloc_array(machine(), UINT8, 4 * 0x800); /* 0 - not connected, 1,2,3 - RAMs*/ m_tree_ram = auto_alloc_array(machine(), UINT8, 2 * 0x20); - machine().primary_screen->register_screen_bitmap(m_obj0_bitmap); - machine().primary_screen->register_screen_bitmap(m_river_bitmap); - machine().primary_screen->register_screen_bitmap(m_tree0_bitmap); - machine().primary_screen->register_screen_bitmap(m_tree1_bitmap); + m_screen->register_screen_bitmap(m_obj0_bitmap); + m_screen->register_screen_bitmap(m_river_bitmap); + m_screen->register_screen_bitmap(m_tree0_bitmap); + m_screen->register_screen_bitmap(m_tree1_bitmap); m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(changela_state::changela_scanline_callback),this)); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(30), 30); + m_scanline_timer->adjust(m_screen->time_until_pos(30), 30); save_pointer(NAME(m_memory_devices), 4 * 0x800); save_pointer(NAME(m_tree_ram), 2 * 0x20); @@ -712,7 +712,7 @@ TIMER_CALLBACK_MEMBER(changela_state::changela_scanline_callback) sy++; if (sy > 256) sy = 30; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(sy), sy); + m_scanline_timer->adjust(m_screen->time_until_pos(sy), sy); } UINT32 changela_state::screen_update_changela(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mame/video/cheekyms.c b/src/mame/video/cheekyms.c index 770ab40f26d..6b7bf91011c 100644 --- a/src/mame/video/cheekyms.c +++ b/src/mame/video/cheekyms.c @@ -94,8 +94,8 @@ void cheekyms_state::video_start() { int width, height; - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_bitmap_buffer = auto_bitmap_ind16_alloc(machine(), width, height); m_cm_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cheekyms_state::cheekyms_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); diff --git a/src/mame/video/cinemat.c b/src/mame/video/cinemat.c index bb9160f0827..a92ab4bcdf9 100644 --- a/src/mame/video/cinemat.c +++ b/src/mame/video/cinemat.c @@ -36,7 +36,7 @@ enum void cinemat_state::cinemat_vector_callback(INT16 sx, INT16 sy, INT16 ex, INT16 ey, UINT8 shift) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int intensity = 0xff; /* adjust for slop */ diff --git a/src/mame/video/cloak.c b/src/mame/video/cloak.c index d905355398f..5a975a5ccde 100644 --- a/src/mame/video/cloak.c +++ b/src/mame/video/cloak.c @@ -93,7 +93,7 @@ void cloak_state::set_current_bitmap_videoram_pointer() WRITE8_MEMBER(cloak_state::cloak_clearbmp_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_bitmap_videoram_selected = data & 0x01; set_current_bitmap_videoram_pointer(); diff --git a/src/mame/video/cloud9.c b/src/mame/video/cloud9.c index fc6cf741f88..551b17c0b9f 100644 --- a/src/mame/video/cloud9.c +++ b/src/mame/video/cloud9.c @@ -35,7 +35,7 @@ void cloud9_state::video_start() 3, resistances, m_bweights, 1000, 0); /* allocate a bitmap for drawing sprites */ - machine().primary_screen->register_screen_bitmap(m_spritebitmap); + m_screen->register_screen_bitmap(m_spritebitmap); /* register for savestates */ save_pointer(NAME(m_videoram), 0x8000); diff --git a/src/mame/video/cninja.c b/src/mame/video/cninja.c index 4c3648b3482..7c78b461151 100644 --- a/src/mame/video/cninja.c +++ b/src/mame/video/cninja.c @@ -63,7 +63,7 @@ void cninja_state::cninjabl_draw_sprites( screen_device &screen, bitmap_ind16 &b } flash = y & 0x1000; - if (flash && (machine().primary_screen->frame_number() & 1)) + if (flash && (m_screen->frame_number() & 1)) continue; colour = (x >> 9) & 0x1f; diff --git a/src/mame/video/contra.c b/src/mame/video/contra.c index 9ffe10b8482..e913887e8ef 100644 --- a/src/mame/video/contra.c +++ b/src/mame/video/contra.c @@ -169,12 +169,12 @@ void contra_state::video_start() m_buffered_spriteram = auto_alloc_array(machine(), UINT8, 0x800); m_buffered_spriteram_2 = auto_alloc_array(machine(), UINT8, 0x800); - m_bg_clip = machine().primary_screen->visible_area(); + m_bg_clip = m_screen->visible_area(); m_bg_clip.min_x += 40; m_fg_clip = m_bg_clip; - m_tx_clip = machine().primary_screen->visible_area(); + m_tx_clip = m_screen->visible_area(); m_tx_clip.max_x = 39; m_tx_clip.min_x = 0; diff --git a/src/mame/video/cvs.c b/src/mame/video/cvs.c index 9a34c7cd928..1f2e1e8b76d 100644 --- a/src/mame/video/cvs.c +++ b/src/mame/video/cvs.c @@ -124,9 +124,9 @@ VIDEO_START_MEMBER(cvs_state,cvs) cvs_init_stars(); /* create helper bitmaps */ - machine().primary_screen->register_screen_bitmap(m_background_bitmap); - machine().primary_screen->register_screen_bitmap(m_collision_background); - machine().primary_screen->register_screen_bitmap(m_scrolled_collision_background); + m_screen->register_screen_bitmap(m_background_bitmap); + m_screen->register_screen_bitmap(m_collision_background); + m_screen->register_screen_bitmap(m_scrolled_collision_background); /* register save */ save_item(NAME(m_background_bitmap)); diff --git a/src/mame/video/dcheese.c b/src/mame/video/dcheese.c index 45ebe8683b4..9544b8ded9d 100644 --- a/src/mame/video/dcheese.c +++ b/src/mame/video/dcheese.c @@ -61,9 +61,9 @@ void dcheese_state::update_scanline_irq() effscan += m_blitter_vidparam[0x1e/2]; /* determine the time; if it's in this scanline, bump to the next frame */ - time = machine().primary_screen->time_until_pos(effscan); - if (time < machine().primary_screen->scan_period()) - time += machine().primary_screen->frame_period(); + time = m_screen->time_until_pos(effscan); + if (time < m_screen->scan_period()) + time += m_screen->frame_period(); m_blitter_timer->adjust(time); } } @@ -149,7 +149,7 @@ void dcheese_state::do_clear( ) memset(&m_dstbitmap->pix16(y % DSTBITMAP_HEIGHT), 0, DSTBITMAP_WIDTH * 2); /* signal an IRQ when done (timing is just a guess) */ - timer_set(machine().primary_screen->scan_period(), TIMER_SIGNAL_IRQ, 1); + timer_set(m_screen->scan_period(), TIMER_SIGNAL_IRQ, 1); } @@ -203,7 +203,7 @@ void dcheese_state::do_blit( ) } /* signal an IRQ when done (timing is just a guess) */ - timer_set(machine().primary_screen->scan_period() / 2, TIMER_SIGNAL_IRQ, 2); + timer_set(m_screen->scan_period() / 2, TIMER_SIGNAL_IRQ, 2); /* these extra parameters are written but they are always zero, so I don't know what they do */ if (m_blitter_xparam[8] != 0 || m_blitter_xparam[9] != 0 || m_blitter_xparam[10] != 0 || m_blitter_xparam[11] != 0 || diff --git a/src/mame/video/dday.c b/src/mame/video/dday.c index 72469d9805c..1d67796d08a 100644 --- a/src/mame/video/dday.c +++ b/src/mame/video/dday.c @@ -211,7 +211,7 @@ void dday_state::video_start() m_text_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_sl_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_sl_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - machine().primary_screen->register_screen_bitmap(m_main_bitmap); + m_screen->register_screen_bitmap(m_main_bitmap); m_bg_tilemap->set_transmask(0, 0x00f0, 0xff0f); /* pens 0-3 have priority over the foreground layer */ m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/deco32.c b/src/mame/video/deco32.c index 49d4166ad6f..b22cf7e26d7 100644 --- a/src/mame/video/deco32.c +++ b/src/mame/video/deco32.c @@ -542,8 +542,8 @@ VIDEO_START_MEMBER(deco32_state,nslasher) { int width, height; m_dirty_palette = auto_alloc_array(machine(), UINT8, 4096); - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_tilemap_alpha_bitmap=auto_bitmap_ind16_alloc(machine(), width, height ); m_sprgen1->alloc_sprite_bitmap(); m_sprgen2->alloc_sprite_bitmap(); diff --git a/src/mame/video/deco_mlc.c b/src/mame/video/deco_mlc.c index 60ae6dea31b..aaa550ac8ae 100644 --- a/src/mame/video/deco_mlc.c +++ b/src/mame/video/deco_mlc.c @@ -159,7 +159,7 @@ void deco_mlc_state::draw_sprites( const rectangle &cliprect, int scanline, UINT { if ((mlc_spriteram[offs+0]&0x8000)==0) continue; - if ((mlc_spriteram[offs+1]&0x2000) && (machine().primary_screen->frame_number() & 1)) + if ((mlc_spriteram[offs+1]&0x2000) && (m_screen->frame_number() & 1)) continue; /* diff --git a/src/mame/video/decocass.c b/src/mame/video/decocass.c index fd7dec71b4a..63dc1c2953d 100644 --- a/src/mame/video/decocass.c +++ b/src/mame/video/decocass.c @@ -664,10 +664,10 @@ void decocass_state::video_start() m_bg_tilemap_r->set_transparent_pen(0); m_fg_tilemap->set_transparent_pen(0); - m_bg_tilemap_l_clip = machine().primary_screen->visible_area(); + m_bg_tilemap_l_clip = m_screen->visible_area(); m_bg_tilemap_l_clip.max_y = 256 / 2 - 1; - m_bg_tilemap_r_clip = machine().primary_screen->visible_area(); + m_bg_tilemap_r_clip = m_screen->visible_area(); m_bg_tilemap_r_clip.min_y = 256 / 2; /* background videoram bits D0-D3 are shared with the tileram */ diff --git a/src/mame/video/dkong.c b/src/mame/video/dkong.c index 90505da8283..05a6dfb425d 100644 --- a/src/mame/video/dkong.c +++ b/src/mame/video/dkong.c @@ -840,7 +840,7 @@ void dkong_state::radarscp_scanline(int scanline) int table_len = m_gfx3_len; int x,y,offset; UINT16 *pixel; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); y = scanline; radarscp_step(y); @@ -848,7 +848,7 @@ void dkong_state::radarscp_scanline(int scanline) m_counter = 0; offset = (m_flip ^ m_rflip_sig) ? 0x000 : 0x400; x = 0; - while (x < machine().primary_screen->width()) + while (x < m_screen->width()) { pixel = &m_bg_bits.pix16(y, x); if ((m_counter < table_len) && (x == 4 * (table[m_counter|offset] & 0x7f))) @@ -877,11 +877,11 @@ TIMER_CALLBACK_MEMBER(dkong_state::scanline_callback) radarscp_scanline(scanline); /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); scanline = (scanline+1) % VTOTAL; /* come back at the next appropriate scanline */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } void dkong_state::check_palette() @@ -933,12 +933,12 @@ VIDEO_START_MEMBER(dkong_state,dkong) VIDEO_START_CALL_MEMBER(dkong_base); m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(dkong_state::scanline_callback),this)); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); switch (m_hardware_type) { case HARDWARE_TRS02: - machine().primary_screen->register_screen_bitmap(m_bg_bits); + m_screen->register_screen_bitmap(m_bg_bits); m_gfx3 = memregion("gfx3")->base(); m_gfx3_len = memregion("gfx3")->bytes(); /* fall through */ @@ -951,7 +951,7 @@ VIDEO_START_MEMBER(dkong_state,dkong) m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::radarscp1_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_bg_tilemap->set_scrolldx(0, 128); - machine().primary_screen->register_screen_bitmap(m_bg_bits); + m_screen->register_screen_bitmap(m_bg_bits); m_gfx4 = memregion("gfx4")->base(); m_gfx3 = memregion("gfx3")->base(); m_gfx3_len = memregion("gfx3")->bytes(); diff --git a/src/mame/video/dogfgt.c b/src/mame/video/dogfgt.c index fa0d7957663..a4aba9e7388 100644 --- a/src/mame/video/dogfgt.c +++ b/src/mame/video/dogfgt.c @@ -72,7 +72,7 @@ void dogfgt_state::video_start() m_bitmapram = auto_alloc_array(machine(), UINT8, BITMAPRAM_SIZE); save_pointer(NAME(m_bitmapram), BITMAPRAM_SIZE); - machine().primary_screen->register_screen_bitmap(m_pixbitmap); + m_screen->register_screen_bitmap(m_pixbitmap); save_item(NAME(m_pixbitmap)); } diff --git a/src/mame/video/equites.c b/src/mame/video/equites.c index f165bddb4f2..fa7e83a6e9f 100644 --- a/src/mame/video/equites.c +++ b/src/mame/video/equites.c @@ -126,7 +126,7 @@ VIDEO_START_MEMBER(equites_state,equites) VIDEO_START_MEMBER(equites_state,splndrbt) { - assert(machine().primary_screen->format() == BITMAP_FORMAT_IND16); + assert(m_screen->format() == BITMAP_FORMAT_IND16); m_fg_videoram = auto_alloc_array(machine(), UINT8, 0x800); save_pointer(NAME(m_fg_videoram), 0x800); diff --git a/src/mame/video/esripsys.c b/src/mame/video/esripsys.c index 9b3ebb2fa6b..babf9f1d661 100644 --- a/src/mame/video/esripsys.c +++ b/src/mame/video/esripsys.c @@ -17,7 +17,7 @@ INTERRUPT_GEN_MEMBER(esripsys_state::esripsys_vblank_irq) TIMER_CALLBACK_MEMBER(esripsys_state::hblank_start_callback) { - int v = machine().primary_screen->vpos(); + int v = m_screen->vpos(); if (m_video_firq) { @@ -37,19 +37,19 @@ TIMER_CALLBACK_MEMBER(esripsys_state::hblank_start_callback) v = 0; /* Set end of HBLANK timer */ - m_hblank_end_timer->adjust(machine().primary_screen->time_until_pos(v, ESRIPSYS_HBLANK_END), v); + m_hblank_end_timer->adjust(m_screen->time_until_pos(v, ESRIPSYS_HBLANK_END), v); m_hblank = 0; } TIMER_CALLBACK_MEMBER(esripsys_state::hblank_end_callback) { - int v = machine().primary_screen->vpos(); + int v = m_screen->vpos(); if (v > 0) - machine().primary_screen->update_partial(v - 1); + m_screen->update_partial(v - 1); m_12sel ^= 1; - m_hblank_start_timer->adjust(machine().primary_screen->time_until_pos(v, ESRIPSYS_HBLANK_START)); + m_hblank_start_timer->adjust(m_screen->time_until_pos(v, ESRIPSYS_HBLANK_START)); m_hblank = 1; } @@ -71,7 +71,7 @@ void esripsys_state::video_start() /* Create and initialise the HBLANK timers */ m_hblank_start_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(esripsys_state::hblank_start_callback),this)); m_hblank_end_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(esripsys_state::hblank_end_callback),this)); - m_hblank_start_timer->adjust(machine().primary_screen->time_until_pos(0, ESRIPSYS_HBLANK_START)); + m_hblank_start_timer->adjust(m_screen->time_until_pos(0, ESRIPSYS_HBLANK_START)); /* Create the sprite scaling table */ m_scale_table = auto_alloc_array(machine(), UINT8, 64 * 64); diff --git a/src/mame/video/exerion.c b/src/mame/video/exerion.c index cc34e70cd5b..e84e10ef2d5 100644 --- a/src/mame/video/exerion.c +++ b/src/mame/video/exerion.c @@ -203,9 +203,9 @@ WRITE8_MEMBER(exerion_state::exerion_videoreg_w) WRITE8_MEMBER(exerion_state::exerion_video_latch_w) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_background_latches[offset] = data; } @@ -215,13 +215,13 @@ READ8_MEMBER(exerion_state::exerion_video_timing_r) /* bit 0 is the SNMI signal, which is the negated value of H6, if H7=1 & H8=1 & VBLANK=0, otherwise 1 */ /* bit 1 is VBLANK */ - UINT16 hcounter = machine().primary_screen->hpos() + EXERION_HCOUNT_START; + UINT16 hcounter = m_screen->hpos() + EXERION_HCOUNT_START; UINT8 snmi = 1; - if (((hcounter & 0x180) == 0x180) && !machine().primary_screen->vblank()) + if (((hcounter & 0x180) == 0x180) && !m_screen->vblank()) snmi = !((hcounter >> 6) & 0x01); - return (machine().primary_screen->vblank() << 1) | snmi; + return (m_screen->vblank() << 1) | snmi; } diff --git a/src/mame/video/exidy.c b/src/mame/video/exidy.c index 0dbd6c5506e..2abdb9da691 100644 --- a/src/mame/video/exidy.c +++ b/src/mame/video/exidy.c @@ -32,7 +32,7 @@ void exidy_state::exidy_video_config(UINT8 _collision_mask, UINT8 _collision_inv void exidy_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_background_bitmap); + m_screen->register_screen_bitmap(m_background_bitmap); m_motion_object_1_vid.allocate(16, 16); m_motion_object_2_vid.allocate(16, 16); m_motion_object_2_clip.allocate(16, 16); @@ -335,7 +335,7 @@ void exidy_state::check_collision() /* if we got one, trigger an interrupt */ if ((current_collision_mask & m_collision_mask) && (count++ < 128)) - timer_set(machine().primary_screen->time_until_pos(org_1_x + sx, org_1_y + sy), TIMER_COLLISION_IRQ, current_collision_mask); + timer_set(m_screen->time_until_pos(org_1_x + sx, org_1_y + sy), TIMER_COLLISION_IRQ, current_collision_mask); } if (m_motion_object_2_vid.pix16(sy, sx) != 0xff) @@ -343,7 +343,7 @@ void exidy_state::check_collision() /* check for background collision (M2CHAR) */ if (m_background_bitmap.pix16(org_2_y + sy, org_2_x + sx) != 0) if ((m_collision_mask & 0x08) && (count++ < 128)) - timer_set(machine().primary_screen->time_until_pos(org_2_x + sx, org_2_y + sy), TIMER_COLLISION_IRQ, 0x08); + timer_set(m_screen->time_until_pos(org_2_x + sx, org_2_y + sy), TIMER_COLLISION_IRQ, 0x08); } } } diff --git a/src/mame/video/exidy440.c b/src/mame/video/exidy440.c index 110b70784d2..21bf258422d 100644 --- a/src/mame/video/exidy440.c +++ b/src/mame/video/exidy440.c @@ -145,7 +145,7 @@ READ8_MEMBER(exidy440_state::exidy440_vertical_pos_r) * caused by collision or beam, ORed together with CHRCLK, * which probably goes off once per scanline; for now, we just * always return the current scanline */ - result = machine().primary_screen->vpos(); + result = m_screen->vpos(); return (result < 255) ? result : 255; } @@ -159,7 +159,7 @@ READ8_MEMBER(exidy440_state::exidy440_vertical_pos_r) WRITE8_MEMBER(exidy440_state::exidy440_spriteram_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_spriteram[offset] = data; } diff --git a/src/mame/video/fantland.c b/src/mame/video/fantland.c index fe8b205e99c..dae6cdab697 100644 --- a/src/mame/video/fantland.c +++ b/src/mame/video/fantland.c @@ -70,7 +70,7 @@ void fantland_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect *ram2 = indx_ram; // current sprite pointer in indx_ram // wheelrun is the only game with a smaller visible area - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int special = (visarea.max_y - visarea.min_y + 1) < 0x100; for ( ; ram < indx_ram; ram += 8,ram2++) diff --git a/src/mame/video/fastlane.c b/src/mame/video/fastlane.c index 8a222a25d06..d7f006e7f1f 100644 --- a/src/mame/video/fastlane.c +++ b/src/mame/video/fastlane.c @@ -114,10 +114,10 @@ void fastlane_state::video_start() m_layer0->set_scroll_rows(32); - m_clip0 = machine().primary_screen->visible_area(); + m_clip0 = m_screen->visible_area(); m_clip0.min_x += 40; - m_clip1 = machine().primary_screen->visible_area(); + m_clip1 = m_screen->visible_area(); m_clip1.max_x = 39; m_clip1.min_x = 0; } diff --git a/src/mame/video/fgoal.c b/src/mame/video/fgoal.c index 7d9aa2ccfaf..a717de145bc 100644 --- a/src/mame/video/fgoal.c +++ b/src/mame/video/fgoal.c @@ -28,8 +28,8 @@ WRITE8_MEMBER(fgoal_state::fgoal_xpos_w) void fgoal_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_fgbitmap); - machine().primary_screen->register_screen_bitmap(m_bgbitmap); + m_screen->register_screen_bitmap(m_fgbitmap); + m_screen->register_screen_bitmap(m_bgbitmap); save_item(NAME(m_fgbitmap)); save_item(NAME(m_bgbitmap)); diff --git a/src/mame/video/firetrk.c b/src/mame/video/firetrk.c index fc3c35527a7..51fe62cc2ef 100644 --- a/src/mame/video/firetrk.c +++ b/src/mame/video/firetrk.c @@ -217,8 +217,8 @@ TILE_GET_INFO_MEMBER(firetrk_state::montecar_get_tile_info2) void firetrk_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); @@ -227,8 +227,8 @@ void firetrk_state::video_start() VIDEO_START_MEMBER(firetrk_state,superbug) { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); @@ -237,8 +237,8 @@ VIDEO_START_MEMBER(firetrk_state,superbug) VIDEO_START_MEMBER(firetrk_state,montecar) { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); diff --git a/src/mame/video/fromance.c b/src/mame/video/fromance.c index 619283dc7af..6ffdf8ecbb7 100644 --- a/src/mame/video/fromance.c +++ b/src/mame/video/fromance.c @@ -245,7 +245,7 @@ TIMER_CALLBACK_MEMBER(fromance_state::crtc_interrupt_gen) { m_subcpu->set_input_line(0, HOLD_LINE); if (param != 0) - m_crtc_timer->adjust(machine().primary_screen->frame_period() / param, 0, machine().primary_screen->frame_period() / param); + m_crtc_timer->adjust(m_screen->frame_period() / param, 0, m_screen->frame_period() / param); } @@ -257,7 +257,7 @@ WRITE8_MEMBER(fromance_state::fromance_crtc_data_w) { /* only register we know about.... */ case 0x0b: - m_crtc_timer->adjust(machine().primary_screen->time_until_vblank_start(), (data > 0x80) ? 2 : 1); + m_crtc_timer->adjust(m_screen->time_until_vblank_start(), (data > 0x80) ? 2 : 1); break; default: diff --git a/src/mame/video/gaelco3d.c b/src/mame/video/gaelco3d.c index 5b46d878f8a..03b4fe08df0 100644 --- a/src/mame/video/gaelco3d.c +++ b/src/mame/video/gaelco3d.c @@ -27,8 +27,8 @@ gaelco3d_renderer::gaelco3d_renderer(gaelco3d_state &state) : poly_manager(state.machine()), m_state(state), - m_screenbits(state.machine().primary_screen->width(), state.machine().primary_screen->height()), - m_zbuffer(state.machine().primary_screen->width(), state.machine().primary_screen->height()), + m_screenbits(state.m_screen->width(), state.m_screen->height()), + m_zbuffer(state.m_screen->width(), state.m_screen->height()), m_polygons(0), m_texture_size(state.memregion("gfx1")->bytes()), m_texmask_size(state.memregion("gfx2")->bytes() * 8), @@ -382,14 +382,14 @@ WRITE32_MEMBER(gaelco3d_state::gaelco3d_render_w) { if (m_polydata_count >= 18 && (m_polydata_count % 2) == 1 && IS_POLYEND(m_polydata_buffer[m_polydata_count - 2])) { - m_poly->render_poly(*machine().primary_screen, &m_polydata_buffer[0]); + m_poly->render_poly(*m_screen, &m_polydata_buffer[0]); m_polydata_count = 0; } m_video_changed = TRUE; } #if DISPLAY_STATS - m_lastscan = machine().primary_screen->vpos(); + m_lastscan = m_screen->vpos(); #endif } diff --git a/src/mame/video/gaiden.c b/src/mame/video/gaiden.c index 74e2f79e388..cf26a30b5f1 100644 --- a/src/mame/video/gaiden.c +++ b/src/mame/video/gaiden.c @@ -71,8 +71,8 @@ TILE_GET_INFO_MEMBER(gaiden_state::get_tx_tile_info) VIDEO_START_MEMBER(gaiden_state,gaiden) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); m_background = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); m_foreground = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); @@ -91,14 +91,14 @@ VIDEO_START_MEMBER(gaiden_state,gaiden) m_text_layer->set_scrolldx(0, -1); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); } VIDEO_START_MEMBER(gaiden_state,mastninj) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); m_background = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); m_foreground = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); @@ -109,7 +109,7 @@ VIDEO_START_MEMBER(gaiden_state,mastninj) m_text_layer->set_transparent_pen(15); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); m_background->set_scrolldx(-248, 248); m_foreground->set_scrolldx(-252, 252); @@ -118,8 +118,8 @@ VIDEO_START_MEMBER(gaiden_state,mastninj) VIDEO_START_MEMBER(gaiden_state,raiga) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); m_background = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); m_foreground = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); @@ -130,7 +130,7 @@ VIDEO_START_MEMBER(gaiden_state,raiga) m_text_layer->set_transparent_pen(0); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); } VIDEO_START_MEMBER(gaiden_state,drgnbowl) diff --git a/src/mame/video/galastrm.c b/src/mame/video/galastrm.c index 32ea3211f73..b698424478b 100644 --- a/src/mame/video/galastrm.c +++ b/src/mame/video/galastrm.c @@ -28,8 +28,8 @@ void galastrm_state::video_start() { m_spritelist = auto_alloc_array(machine(), struct tempsprite, 0x4000); - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps); - machine().primary_screen->register_screen_bitmap(m_polybitmap); + m_screen->register_screen_bitmap(m_tmpbitmaps); + m_screen->register_screen_bitmap(m_polybitmap); m_poly = poly_alloc(machine(), 16, sizeof(poly_extra_data), POLYFLAG_ALLOW_QUADS); machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(galastrm_state::galastrm_exit), this)); diff --git a/src/mame/video/galaxia.c b/src/mame/video/galaxia.c index 1a7b4ce18c6..f653294ee70 100644 --- a/src/mame/video/galaxia.c +++ b/src/mame/video/galaxia.c @@ -101,7 +101,7 @@ VIDEO_START_MEMBER(galaxia_state,astrowar) m_bg_tilemap->set_scroll_cols(8); m_bg_tilemap->set_scrolldx(8, 8); - machine().primary_screen->register_screen_bitmap(m_temp_bitmap); + m_screen->register_screen_bitmap(m_temp_bitmap); } diff --git a/src/mame/video/galaxian.c b/src/mame/video/galaxian.c index 010a1020c71..39a4ee62dae 100644 --- a/src/mame/video/galaxian.c +++ b/src/mame/video/galaxian.c @@ -482,7 +482,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_videoram_w) { UINT8 *videoram = m_videoram; /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* store the data and mark the corresponding tile dirty */ videoram[offset] = data; @@ -493,7 +493,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_videoram_w) WRITE8_MEMBER(galaxian_state::galaxian_objram_w) { /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* store the data */ m_spriteram[offset] = data; @@ -643,7 +643,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_flip_screen_x_w) { if (m_flipscreen_x != (data & 0x01)) { - machine().primary_screen->update_now(); + m_screen->update_now(); /* when the direction changes, we count a different number of clocks */ /* per frame, so we need to reset the origin of the stars to the current */ @@ -659,7 +659,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_flip_screen_y_w) { if (m_flipscreen_y != (data & 0x01)) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_flipscreen_y = data & 0x01; m_bg_tilemap->set_flip((m_flipscreen_x ? TILEMAP_FLIPX : 0) | (m_flipscreen_y ? TILEMAP_FLIPY : 0)); } @@ -682,15 +682,15 @@ WRITE8_MEMBER(galaxian_state::galaxian_flip_screen_xy_w) WRITE8_MEMBER(galaxian_state::galaxian_stars_enable_w) { if ((m_stars_enabled ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); if (!m_stars_enabled && (data & 0x01)) { /* on the rising edge of this, the CLR on the shift registers is released */ /* this resets the "origin" of this frame to 0 minus the number of clocks */ /* we have counted so far */ - m_star_rng_origin = STAR_RNG_PERIOD - (machine().primary_screen->vpos() * 512 + machine().primary_screen->hpos()); - m_star_rng_origin_frame = machine().primary_screen->frame_number(); + m_star_rng_origin = STAR_RNG_PERIOD - (m_screen->vpos() * 512 + m_screen->hpos()); + m_star_rng_origin_frame = m_screen->frame_number(); } m_stars_enabled = data & 0x01; } @@ -699,7 +699,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_stars_enable_w) WRITE8_MEMBER(galaxian_state::scramble_background_enable_w) { if ((m_background_enable ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); m_background_enable = data & 0x01; } @@ -708,7 +708,7 @@ WRITE8_MEMBER(galaxian_state::scramble_background_enable_w) WRITE8_MEMBER(galaxian_state::scramble_background_red_w) { if ((m_background_red ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); m_background_red = data & 0x01; } @@ -717,7 +717,7 @@ WRITE8_MEMBER(galaxian_state::scramble_background_red_w) WRITE8_MEMBER(galaxian_state::scramble_background_green_w) { if ((m_background_green ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); m_background_green = data & 0x01; } @@ -726,7 +726,7 @@ WRITE8_MEMBER(galaxian_state::scramble_background_green_w) WRITE8_MEMBER(galaxian_state::scramble_background_blue_w) { if ((m_background_blue ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); m_background_blue = data & 0x01; } @@ -743,7 +743,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_gfxbank_w) { if (m_gfxbank[offset] != data) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_gfxbank[offset] = data; m_bg_tilemap->mark_all_dirty(); } @@ -795,7 +795,7 @@ void galaxian_state::stars_init() void galaxian_state::stars_update_origin() { - int curframe = machine().primary_screen->frame_number(); + int curframe = m_screen->frame_number(); /* only update on a different frame */ if (curframe != m_star_rng_origin_frame) diff --git a/src/mame/video/galaxold.c b/src/mame/video/galaxold.c index ea0ce07bb72..4400da39894 100644 --- a/src/mame/video/galaxold.c +++ b/src/mame/video/galaxold.c @@ -793,7 +793,7 @@ VIDEO_START_MEMBER(galaxold_state,dambustr) m_draw_bullets = &galaxold_state::dambustr_draw_bullets; /* allocate the temporary bitmap for the background priority */ - m_dambustr_tmpbitmap = auto_bitmap_ind16_alloc(machine(), machine().primary_screen->width(), machine().primary_screen->height()); + m_dambustr_tmpbitmap = auto_bitmap_ind16_alloc(machine(), m_screen->width(), m_screen->height()); /* make a copy of the tilemap to emulate background priority */ m_dambustr_videoram2 = auto_alloc_array(machine(), UINT8, 0x0400); @@ -1590,7 +1590,7 @@ TIMER_CALLBACK_MEMBER(galaxold_state::stars_scroll_callback) void galaxold_state::start_stars_scroll_timer() { - m_stars_scroll_timer->adjust(machine().primary_screen->frame_period(), 0, machine().primary_screen->frame_period()); + m_stars_scroll_timer->adjust(m_screen->frame_period(), 0, m_screen->frame_period()); } diff --git a/src/mame/video/galpanic.c b/src/mame/video/galpanic.c index db44648e298..78e1833a9c9 100644 --- a/src/mame/video/galpanic.c +++ b/src/mame/video/galpanic.c @@ -5,8 +5,8 @@ VIDEO_START_MEMBER(galpanic_state,galpanic) { - machine().primary_screen->register_screen_bitmap(m_bitmap); - machine().primary_screen->register_screen_bitmap(m_sprites_bitmap); + m_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_sprites_bitmap); } PALETTE_INIT_MEMBER(galpanic_state,galpanic) diff --git a/src/mame/video/gameplan.c b/src/mame/video/gameplan.c index 86cdfd82f35..ce690011018 100644 --- a/src/mame/video/gameplan.c +++ b/src/mame/video/gameplan.c @@ -283,9 +283,9 @@ TIMER_CALLBACK_MEMBER(gameplan_state::via_0_ca1_timer_callback) m_via_0->write_ca1(param); if (param) - m_via_0_ca1_timer->adjust(machine().primary_screen->time_until_pos(VBSTART)); + m_via_0_ca1_timer->adjust(m_screen->time_until_pos(VBSTART)); else - m_via_0_ca1_timer->adjust(machine().primary_screen->time_until_pos(VBEND), 1); + m_via_0_ca1_timer->adjust(m_screen->time_until_pos(VBEND), 1); } @@ -334,7 +334,7 @@ VIDEO_START_MEMBER(gameplan_state,trvquest) VIDEO_RESET_MEMBER(gameplan_state,gameplan) { - m_via_0_ca1_timer->adjust(machine().primary_screen->time_until_pos(VBSTART)); + m_via_0_ca1_timer->adjust(m_screen->time_until_pos(VBSTART)); } diff --git a/src/mame/video/gaplus.c b/src/mame/video/gaplus.c index f429c10ddb8..aa0f651fc34 100644 --- a/src/mame/video/gaplus.c +++ b/src/mame/video/gaplus.c @@ -132,8 +132,8 @@ void gaplus_state::starfield_init() int x,y; int set = 0; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_total_stars = 0; @@ -225,8 +225,8 @@ void gaplus_state::starfield_render(bitmap_ind16 &bitmap) struct star *stars = m_stars; int i; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* check if we're running */ if ( ( m_starfield_control[0] & 1 ) == 0 ) @@ -329,8 +329,8 @@ void gaplus_state::screen_eof_gaplus(screen_device &screen, bool state)/* update struct star *stars = m_stars; int i; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* check if we're running */ if ( ( m_starfield_control[0] & 1 ) == 0 ) diff --git a/src/mame/video/gauntlet.c b/src/mame/video/gauntlet.c index 18f5fa3a307..10bb1077e62 100644 --- a/src/mame/video/gauntlet.c +++ b/src/mame/video/gauntlet.c @@ -108,7 +108,7 @@ WRITE16_MEMBER( gauntlet_state::gauntlet_xscroll_w ) /* if something changed, force a partial update */ if (*m_xscroll != oldxscroll) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* adjust the scrolls */ m_playfield_tilemap->set_scrollx(0, *m_xscroll); @@ -132,7 +132,7 @@ WRITE16_MEMBER( gauntlet_state::gauntlet_yscroll_w ) /* if something changed, force a partial update */ if (*m_yscroll != oldyscroll) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* if the bank changed, mark all tiles dirty */ if (m_playfield_tile_bank != (*m_yscroll & 3)) diff --git a/src/mame/video/gomoku.c b/src/mame/video/gomoku.c index 5e6df8613fb..f8e496af833 100644 --- a/src/mame/video/gomoku.c +++ b/src/mame/video/gomoku.c @@ -111,7 +111,7 @@ void gomoku_state::video_start() int bgdata; int color; - machine().primary_screen->register_screen_bitmap(m_bg_bitmap); + m_screen->register_screen_bitmap(m_bg_bitmap); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gomoku_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32); diff --git a/src/mame/video/gottlieb.c b/src/mame/video/gottlieb.c index 7163155ae0a..ff351072e63 100644 --- a/src/mame/video/gottlieb.c +++ b/src/mame/video/gottlieb.c @@ -47,7 +47,7 @@ WRITE8_MEMBER(gottlieb_state::gottlieb_video_control_w) { /* bit 0 controls foreground/background priority */ if (m_background_priority != (data & 0x01)) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_background_priority = data & 0x01; /* bit 1 controls horizonal flip screen */ diff --git a/src/mame/video/gp9001.c b/src/mame/video/gp9001.c index 86f9326e3ce..3ac37227b35 100644 --- a/src/mame/video/gp9001.c +++ b/src/mame/video/gp9001.c @@ -204,6 +204,7 @@ const device_type GP9001_VDP = &device_creator; gp9001vdp_device::gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, GP9001_VDP, "GP9001_VDP", tag, owner, clock, "gp9001vdp", __FILE__), + device_video_interface(mconfig, *this), device_memory_interface(mconfig, *this), m_space_config("gp9001vdp", ENDIANNESS_BIG, 16,14, 0, NULL, *ADDRESS_MAP_NAME(gp9001vdp_map)), m_gfxregion(0) @@ -406,7 +407,7 @@ void gp9001vdp_device::gp9001_videoram16_w(offs_t offset, UINT16 data, UINT16 me UINT16 gp9001vdp_device::gp9001_vdpstatus_r() { - return ((machine().primary_screen->vpos() + 15) % 262) >= 245; + return ((m_screen->vpos() + 15) % 262) >= 245; } void gp9001vdp_device::gp9001_scroll_reg_select_w( offs_t offset, UINT16 data, UINT16 mem_mask ) diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h index 5593c610450..390a1b9b139 100644 --- a/src/mame/video/gp9001.h +++ b/src/mame/video/gp9001.h @@ -31,6 +31,7 @@ struct gp9001spritelayer : gp9001layer class gp9001vdp_device : public device_t, + public device_video_interface, public device_memory_interface { public: diff --git a/src/mame/video/grchamp.c b/src/mame/video/grchamp.c index 4fb7956dbc8..7cf1d859059 100644 --- a/src/mame/video/grchamp.c +++ b/src/mame/video/grchamp.c @@ -112,7 +112,7 @@ int grchamp_state::collision_check(grchamp_state *state, bitmap_ind16 &bitmap, i { int bgcolor = machine().pens[0]; int sprite_transp = machine().pens[0x24]; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int y0 = 240 - m_cpu0_out[3]; int x0 = 256 - m_cpu0_out[2]; int x,y,sx,sy; diff --git a/src/mame/video/gridlee.c b/src/mame/video/gridlee.c index d7ab9fde241..88947d079a1 100644 --- a/src/mame/video/gridlee.c +++ b/src/mame/video/gridlee.c @@ -113,7 +113,7 @@ WRITE8_MEMBER(gridlee_state::gridlee_videoram_w) WRITE8_MEMBER(gridlee_state::gridlee_palette_select_w) { /* update the scanline palette */ - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1 + GRIDLEE_VBEND); + m_screen->update_partial(m_screen->vpos() - 1 + GRIDLEE_VBEND); m_palettebank_vis = data & 0x3f; } diff --git a/src/mame/video/gstriker.c b/src/mame/video/gstriker.c index 13a028c6c57..4c9f2c7c317 100644 --- a/src/mame/video/gstriker.c +++ b/src/mame/video/gstriker.c @@ -238,8 +238,8 @@ void gstriker_state::MB60553_draw(int numchip, screen_device &screen, bitmap_ind rectangle clip; m_MB60553_cur_chip = &m_MB60553[numchip]; - clip.min_x = machine().primary_screen->visible_area().min_x; - clip.max_x = machine().primary_screen->visible_area().max_x; + clip.min_x = m_screen->visible_area().min_x; + clip.max_x = m_screen->visible_area().max_x; for (line = 0; line < 224;line++) { diff --git a/src/mame/video/gyruss.c b/src/mame/video/gyruss.c index ea8b7e368b3..1eb46a083cd 100644 --- a/src/mame/video/gyruss.c +++ b/src/mame/video/gyruss.c @@ -94,7 +94,7 @@ void gyruss_state::palette_init() WRITE8_MEMBER(gyruss_state::gyruss_spriteram_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_spriteram[offset] = data; } @@ -123,7 +123,7 @@ void gyruss_state::video_start() READ8_MEMBER(gyruss_state::gyruss_scanline_r) { /* reads 1V - 128V */ - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/video/harddriv.c b/src/mame/video/harddriv.c index 7e738e330f0..19c821c7e04 100644 --- a/src/mame/video/harddriv.c +++ b/src/mame/video/harddriv.c @@ -230,7 +230,7 @@ WRITE16_HANDLER( hdgsp_control_hi_w ) case 0x01: data = data & (15 >> state->m_gsp_multisync); - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos() - 1); + state->m_screen->update_partial(state->m_screen->vpos() - 1); state->m_gfx_finescroll = data; break; diff --git a/src/mame/video/hng64.c b/src/mame/video/hng64.c index 3b82aec7d31..77271712f61 100644 --- a/src/mame/video/hng64.c +++ b/src/mame/video/hng64.c @@ -1639,7 +1639,7 @@ void hng64_state::screen_eof_hng64(screen_device &screen, bool state) void hng64_state::video_start() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_old_animmask = -1; m_old_animbits = -1; diff --git a/src/mame/video/homerun.c b/src/mame/video/homerun.c index 60b466c9cab..71609d7ea47 100644 --- a/src/mame/video/homerun.c +++ b/src/mame/video/homerun.c @@ -13,7 +13,7 @@ CUSTOM_INPUT_MEMBER(homerun_state::homerun_sprite0_r) { // sprite-0 vs background collision status, similar to NES - return (machine().primary_screen->vpos() > (m_spriteram[0] - 15)) ? 1 : 0; + return (m_screen->vpos() > (m_spriteram[0] - 15)) ? 1 : 0; } WRITE8_MEMBER(homerun_state::homerun_scrollhi_w) @@ -38,8 +38,8 @@ WRITE8_MEMBER(homerun_state::homerun_scrollx_w) WRITE8_MEMBER(homerun_state::homerun_banking_w) { // games do mid-screen gfx bank switching - int vpos = machine().primary_screen->vpos(); - machine().primary_screen->update_partial(vpos); + int vpos = m_screen->vpos(); + m_screen->update_partial(vpos); // d0-d1: gfx bank // d2-d4: ? diff --git a/src/mame/video/hyhoo.c b/src/mame/video/hyhoo.c index d98102c8a4e..c0f22ba752a 100644 --- a/src/mame/video/hyhoo.c +++ b/src/mame/video/hyhoo.c @@ -225,7 +225,7 @@ void hyhoo_state::hyhoo_gfxdraw() void hyhoo_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); } diff --git a/src/mame/video/hyprduel.c b/src/mame/video/hyprduel.c index dc213b1aab0..0f1bc879257 100644 --- a/src/mame/video/hyprduel.c +++ b/src/mame/video/hyprduel.c @@ -460,8 +460,8 @@ void hyprduel_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, UINT8 *base_gfx8 = memregion("gfx1")->base(); UINT32 gfx_size = memregion("gfx1")->bytes(); - int max_x = machine().primary_screen->width(); - int max_y = machine().primary_screen->height(); + int max_x = m_screen->width(); + int max_y = m_screen->height(); int max_sprites = m_spriteram.bytes() / 8; int sprites = m_videoregs[0x00 / 2] % max_sprites; diff --git a/src/mame/video/ikki.c b/src/mame/video/ikki.c index 848a31e36f5..09dbcac89a4 100644 --- a/src/mame/video/ikki.c +++ b/src/mame/video/ikki.c @@ -116,7 +116,7 @@ void ikki_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) void ikki_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); save_item(NAME(m_sprite_bitmap)); } diff --git a/src/mame/video/irobot.c b/src/mame/video/irobot.c index f573fd46e3a..23bfce0fa06 100644 --- a/src/mame/video/irobot.c +++ b/src/mame/video/irobot.c @@ -78,7 +78,7 @@ WRITE8_MEMBER(irobot_state::irobot_paletteram_w) void irobot_state::_irobot_poly_clear(UINT8 *bitmap_base) { - memset(bitmap_base, 0, BITMAP_WIDTH * machine().primary_screen->height()); + memset(bitmap_base, 0, BITMAP_WIDTH * m_screen->height()); } void irobot_state::irobot_poly_clear() @@ -96,7 +96,7 @@ void irobot_state::irobot_poly_clear() void irobot_state::video_start() { /* Setup 2 bitmaps for the polygon generator */ - int height = machine().primary_screen->height(); + int height = m_screen->height(); m_polybitmap1 = auto_alloc_array(machine(), UINT8, BITMAP_WIDTH * height); m_polybitmap2 = auto_alloc_array(machine(), UINT8, BITMAP_WIDTH * height); @@ -106,8 +106,8 @@ void irobot_state::video_start() /* Set clipping */ m_ir_xmin = m_ir_ymin = 0; - m_ir_xmax = machine().primary_screen->width(); - m_ir_ymax = machine().primary_screen->height(); + m_ir_xmax = m_screen->width(); + m_ir_ymax = m_screen->height(); } diff --git a/src/mame/video/itech32.c b/src/mame/video/itech32.c index dee780ec426..e9ac9788c77 100644 --- a/src/mame/video/itech32.c +++ b/src/mame/video/itech32.c @@ -438,10 +438,10 @@ void itech32_state::update_interrupts(int fast) TIMER_CALLBACK_MEMBER(itech32_state::scanline_interrupt) { /* set timer for next frame */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(VIDEO_INTSCANLINE)); + m_scanline_timer->adjust(m_screen->time_until_pos(VIDEO_INTSCANLINE)); /* set the interrupt bit in the status reg */ - logerror("-------------- (DISPLAY INT @ %d) ----------------\n", machine().primary_screen->vpos()); + logerror("-------------- (DISPLAY INT @ %d) ----------------\n", m_screen->vpos()); VIDEO_INTSTATE |= VIDEOINT_SCANLINE; /* update the interrupt state */ @@ -1302,7 +1302,7 @@ WRITE16_MEMBER(itech32_state::itech32_video_w) break; case 0x2c/2: /* VIDEO_INTSCANLINE */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(VIDEO_INTSCANLINE)); + m_scanline_timer->adjust(m_screen->time_until_pos(VIDEO_INTSCANLINE)); break; case 0x32/2: /* VIDEO_VTOTAL */ @@ -1334,7 +1334,7 @@ WRITE16_MEMBER(itech32_state::itech32_video_w) logerror("Configure Screen: HTOTAL: %x HBSTART: %x HBEND: %x VTOTAL: %x VBSTART: %x VBEND: %x\n", VIDEO_HTOTAL, VIDEO_HBLANK_START, VIDEO_HBLANK_END, VIDEO_VTOTAL, VIDEO_VBLANK_START, VIDEO_VBLANK_END); - machine().primary_screen->configure(VIDEO_HTOTAL, VIDEO_VTOTAL, visarea, HZ_TO_ATTOSECONDS(VIDEO_CLOCK) * VIDEO_HTOTAL * VIDEO_VTOTAL); + m_screen->configure(VIDEO_HTOTAL, VIDEO_VTOTAL, visarea, HZ_TO_ATTOSECONDS(VIDEO_CLOCK) * VIDEO_HTOTAL * VIDEO_VTOTAL); } break; } @@ -1349,7 +1349,7 @@ READ16_MEMBER(itech32_state::itech32_video_r) } else if (offset == 3) { - return 0xef;/*machine().primary_screen->vpos() - 1;*/ + return 0xef;/*m_screen->vpos() - 1;*/ } return m_video[offset]; diff --git a/src/mame/video/itech8.c b/src/mame/video/itech8.c index 36083be6893..68d13622968 100644 --- a/src/mame/video/itech8.c +++ b/src/mame/video/itech8.c @@ -173,8 +173,8 @@ WRITE8_MEMBER(itech8_state::itech8_palette_w) WRITE8_MEMBER(itech8_state::itech8_page_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); - logerror("%04x:display_page = %02X (%d)\n", space.device().safe_pc(), data, machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); + logerror("%04x:display_page = %02X (%d)\n", space.device().safe_pc(), data, m_screen->vpos()); m_page_select = data; } @@ -273,7 +273,7 @@ void itech8_state::perform_blit(address_space &space) /* debugging */ if (FULL_LOGGING) logerror("Blit: scan=%d src=%06x @ (%05x) for %dx%d ... flags=%02x\n", - space.machine().primary_screen->vpos(), + m_screen->vpos(), (m_grom_bank << 16) | (BLITTER_ADDRHI << 8) | BLITTER_ADDRLO, m_tms34061->m_display.regs[TMS34061_XYADDRESS] | ((m_tms34061->m_display.regs[TMS34061_XYOFFSET] & 0x300) << 8), BLITTER_WIDTH, BLITTER_HEIGHT, BLITTER_FLAGS); @@ -395,7 +395,7 @@ TIMER_CALLBACK_MEMBER(itech8_state::blitter_done) m_blit_in_progress = 0; itech8_update_interrupts(-1, -1, 1); - if (FULL_LOGGING) logerror("------------ BLIT DONE (%d) --------------\n", machine().primary_screen->vpos()); + if (FULL_LOGGING) logerror("------------ BLIT DONE (%d) --------------\n", m_screen->vpos()); } @@ -532,7 +532,7 @@ WRITE8_MEMBER(itech8_state::grmatch_palette_w) WRITE8_MEMBER(itech8_state::grmatch_xscroll_w) { /* update the X scroll value */ - machine().primary_screen->update_now(); + m_screen->update_now(); m_grmatch_xscroll = data; } diff --git a/src/mame/video/jaguar.c b/src/mame/video/jaguar.c index b94c48677bc..1fbcd9f9e27 100644 --- a/src/mame/video/jaguar.c +++ b/src/mame/video/jaguar.c @@ -199,7 +199,7 @@ enum inline void jaguar_state::get_crosshair_xy(int player, int &x, int &y) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* only 2 lightguns are connected */ x = visarea.min_x + (((ioport(player ? "FAKE2_X" : "FAKE1_X")->read() & 0xff) * visarea.width()) >> 8); @@ -249,11 +249,11 @@ inline bool jaguar_state::adjust_object_timer(int vc) int hdb = hdbpix[vc % 2]; /* if setting the second one in a line, make sure we will ever actually hit it */ - if (vc % 2 == 1 && (hdbpix[1] == hdbpix[0] || hdbpix[1] >= machine().primary_screen->width())) + if (vc % 2 == 1 && (hdbpix[1] == hdbpix[0] || hdbpix[1] >= m_screen->width())) return false; /* adjust the timer */ - m_object_timer->adjust(machine().primary_screen->time_until_pos(vc / 2, hdb), vc | (hdb << 16)); + m_object_timer->adjust(m_screen->time_until_pos(vc / 2, hdb), vc | (hdb << 16)); return true; } @@ -575,18 +575,18 @@ READ16_MEMBER( jaguar_state::tom_regs_r ) return m_cpu_irq_state; case HC: - return machine().primary_screen->hpos() % (machine().primary_screen->width() / 2); + return m_screen->hpos() % (m_screen->width() / 2); case VC: { UINT8 half_line; - if(machine().primary_screen->hpos() >= (machine().primary_screen->width() / 2)) + if(m_screen->hpos() >= (m_screen->width() / 2)) half_line = 1; else half_line = 0; - return machine().primary_screen->vpos() * 2 + half_line; + return m_screen->vpos() * 2 + half_line; } } @@ -657,7 +657,7 @@ WRITE16_MEMBER( jaguar_state::tom_regs_w ) if (hperiod != 0 && vperiod != 0 && hbend < hbstart && vbend < vbstart && hbstart < hperiod) { rectangle visarea(hbend / 2, hbstart / 2 - 1, vbend / 2, vbstart / 2 - 1); - machine().primary_screen->configure(hperiod / 2, vperiod / 2, visarea, HZ_TO_ATTOSECONDS(double(m_pixel_clock) * 2 / hperiod / vperiod)); + m_screen->configure(hperiod / 2, vperiod / 2, visarea, HZ_TO_ATTOSECONDS(double(m_pixel_clock) * 2 / hperiod / vperiod)); } } break; @@ -746,7 +746,7 @@ void jaguar_state::scanline_update(int param) { int vc = param & 0xffff; int hdb = param >> 16; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* only run if video is enabled and we are past the "display begin" */ if ((m_gpu_regs[VMODE] & 1) && vc >= (m_gpu_regs[VDB] & 0x7ff)) @@ -799,7 +799,7 @@ void jaguar_state::scanline_update(int param) } /* point to the next counter value */ - if (++vc / 2 >= machine().primary_screen->height()) + if (++vc / 2 >= m_screen->height()) vc = 0; } while (!adjust_object_timer(vc)); diff --git a/src/mame/video/kaneko_spr.c b/src/mame/video/kaneko_spr.c index d7c2fa42720..9d99192232f 100644 --- a/src/mame/video/kaneko_spr.c +++ b/src/mame/video/kaneko_spr.c @@ -30,7 +30,8 @@ const device_type KANEKO_VU002_SPRITE = &device_creator; kaneko16_sprite_device::kaneko16_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock, device_type type) - : device_t(mconfig, type, "kaneko16_sprite_device", tag, owner, clock, "kaneko16_sprite", __FILE__) + : device_t(mconfig, type, "kaneko16_sprite_device", tag, owner, clock, "kaneko16_sprite", __FILE__), + device_video_interface(mconfig, *this) { m_keep_sprites = 0; // default disabled for games not using it @@ -61,7 +62,7 @@ void kaneko16_sprite_device::device_start() { m_first_sprite = auto_alloc_array(machine(), struct tempsprite, 0x400); m_sprites_regs = auto_alloc_array_clear(machine(), UINT16, 0x20/2); - machine().primary_screen->register_screen_bitmap(m_sprites_bitmap); + m_screen->register_screen_bitmap(m_sprites_bitmap); } @@ -204,12 +205,12 @@ int kaneko16_sprite_device::kaneko16_parse_sprite_type012(running_machine &machi if (m_sprite_flipy) { s->yoffs -= m_sprites_regs[0x2/2]; - s->yoffs -= machine.primary_screen->visible_area().min_y<<6; + s->yoffs -= m_screen->visible_area().min_y<<6; } else { s->yoffs -= m_sprites_regs[0x2/2]; - s->yoffs += machine.primary_screen->visible_area().min_y<<6; + s->yoffs += m_screen->visible_area().min_y<<6; } return ( (attr & 0x2000) ? USE_LATCHED_XY : 0 ) | @@ -325,7 +326,7 @@ void kaneko16_sprite_device::kaneko16_draw_sprites(running_machine &machine, bit in a temp buffer, then draw the buffer's contents from last to first. */ - int max = (machine.primary_screen->width() > 0x100) ? (0x200<<6) : (0x100<<6); + int max = (m_screen->width() > 0x100) ? (0x200<<6) : (0x100<<6); int i = 0; struct tempsprite *s = m_first_sprite; diff --git a/src/mame/video/kaneko_spr.h b/src/mame/video/kaneko_spr.h index a839b094f5d..47a0b890125 100644 --- a/src/mame/video/kaneko_spr.h +++ b/src/mame/video/kaneko_spr.h @@ -25,7 +25,8 @@ struct tempsprite -class kaneko16_sprite_device : public device_t +class kaneko16_sprite_device : public device_t, + public device_video_interface { public: kaneko16_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock, device_type type); diff --git a/src/mame/video/kncljoe.c b/src/mame/video/kncljoe.c index 9ef7b96efe8..706daa72ecc 100644 --- a/src/mame/video/kncljoe.c +++ b/src/mame/video/kncljoe.c @@ -183,7 +183,7 @@ void kncljoe_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec gfx_element *gfx = machine().gfx[1 + m_sprite_bank]; int i, j; static const int pribase[4]={0x0180, 0x0080, 0x0100, 0x0000}; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* score covers sprites */ if (m_flipscreen) diff --git a/src/mame/video/konamigx.c b/src/mame/video/konamigx.c index 93c186437e7..9246a48ece4 100644 --- a/src/mame/video/konamigx.c +++ b/src/mame/video/konamigx.c @@ -798,7 +798,7 @@ void konamigx_state::gx_draw_basic_extended_tilemaps_1(screen_device &screen, bi if (offs == -2) { int pixeldouble_output = 0; - const rectangle &visarea = screen.machine().primary_screen->visible_area(); + const rectangle &visarea = screen.visible_area(); int width = visarea.width(); if (width>512) // vsnetscr case @@ -851,8 +851,8 @@ void konamigx_state::gx_draw_basic_extended_tilemaps_2(screen_device &screen, bi if (extra_bitmap) // soccer superstars roz layer { int xx,yy; - int width = screen.machine().primary_screen->width(); - int height = screen.machine().primary_screen->height(); + int width = screen.width(); + int height = screen.height(); const pen_t *paldata = screen.machine().pens; // the output size of the roz layer has to be doubled horizontally @@ -1301,8 +1301,8 @@ VIDEO_START_MEMBER(konamigx_state,konamigx_6bpp) VIDEO_START_MEMBER(konamigx_state,konamigx_type3) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_k056832->altK056832_vh_start(machine(), "gfx1", K056832_BPP_6, 0, NULL, konamigx_type2_tile_callback, 1); m_k055673->alt_k055673_vh_start(machine(), "gfx2", K055673_LAYOUT_GX6, -132, -23, konamigx_type2_sprite_callback); @@ -1340,8 +1340,8 @@ VIDEO_START_MEMBER(konamigx_state,konamigx_type3) VIDEO_START_MEMBER(konamigx_state,konamigx_type4) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_k056832->altK056832_vh_start(machine(), "gfx1", K056832_BPP_8, 0, NULL, konamigx_type2_tile_callback, 0); m_k055673->alt_k055673_vh_start(machine(), "gfx2", K055673_LAYOUT_GX6, -79, -24, konamigx_type2_sprite_callback); // -23 looks better in intro @@ -1371,8 +1371,8 @@ VIDEO_START_MEMBER(konamigx_state,konamigx_type4) VIDEO_START_MEMBER(konamigx_state,konamigx_type4_vsn) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_k056832->altK056832_vh_start(machine(), "gfx1", K056832_BPP_8, 0, NULL, konamigx_type2_tile_callback, 2); // set djmain_hack to 2 to kill layer association or half the tilemaps vanish on screen 0 m_k055673->alt_k055673_vh_start(machine(), "gfx2", K055673_LAYOUT_GX6, -132, -23, konamigx_type2_sprite_callback); @@ -1401,8 +1401,8 @@ VIDEO_START_MEMBER(konamigx_state,konamigx_type4_vsn) VIDEO_START_MEMBER(konamigx_state,konamigx_type4_sd2) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_k056832->altK056832_vh_start(machine(), "gfx1", K056832_BPP_8, 0, NULL, konamigx_type2_tile_callback, 0); m_k055673->alt_k055673_vh_start(machine(), "gfx2", K055673_LAYOUT_GX6, -81, -23, konamigx_type2_sprite_callback); diff --git a/src/mame/video/labyrunr.c b/src/mame/video/labyrunr.c index ccfff3cd80c..bddcc37fa8d 100644 --- a/src/mame/video/labyrunr.c +++ b/src/mame/video/labyrunr.c @@ -136,10 +136,10 @@ void labyrunr_state::video_start() m_layer0->set_transparent_pen(0); m_layer1->set_transparent_pen(0); - m_clip0 = machine().primary_screen->visible_area(); + m_clip0 = m_screen->visible_area(); m_clip0.min_x += 40; - m_clip1 = machine().primary_screen->visible_area(); + m_clip1 = m_screen->visible_area(); m_clip1.max_x = 39; m_clip1.min_x = 0; diff --git a/src/mame/video/leland.c b/src/mame/video/leland.c index fe43784cf14..06276a5a9b3 100644 --- a/src/mame/video/leland.c +++ b/src/mame/video/leland.c @@ -44,7 +44,7 @@ TIMER_CALLBACK_MEMBER(leland_state::scanline_callback) scanline = (scanline+1) % 256; /* come back at the next appropriate scanline */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -61,7 +61,7 @@ VIDEO_START_MEMBER(leland_state,leland) /* scanline timer */ m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(leland_state::scanline_callback),this)); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } @@ -85,9 +85,9 @@ VIDEO_START_MEMBER(leland_state,ataxx) WRITE8_MEMBER(leland_state::leland_scroll_w) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* adjust the proper scroll value */ switch (offset) @@ -117,7 +117,7 @@ WRITE8_MEMBER(leland_state::leland_scroll_w) WRITE8_MEMBER(leland_state::leland_gfx_port_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_gfxbank = data; } @@ -204,9 +204,9 @@ void leland_state::leland_vram_port_w(address_space &space, int offset, int data /* don't fully understand why this is needed. Isn't the video RAM just one big RAM? */ - int scanline = space.machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if (scanline > 0) - space.machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); if (LOG_COMM && addr >= 0xf000) logerror("%s:%s comm write %04X = %02X\n", space.machine().describe_context(), num ? "slave" : "master", addr, data); diff --git a/src/mame/video/lethalj.c b/src/mame/video/lethalj.c index 31b12344362..d42788d0549 100644 --- a/src/mame/video/lethalj.c +++ b/src/mame/video/lethalj.c @@ -23,7 +23,7 @@ inline void lethalj_state::get_crosshair_xy(int player, int *x, int *y) { static const char *const gunnames[] = { "LIGHT0_X", "LIGHT0_Y", "LIGHT1_X", "LIGHT1_Y" }; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int width = visarea.width(); int height = visarea.height(); diff --git a/src/mame/video/liberatr.c b/src/mame/video/liberatr.c index 20cf1f81099..f9131fff9ed 100644 --- a/src/mame/video/liberatr.c +++ b/src/mame/video/liberatr.c @@ -187,7 +187,7 @@ void liberatr_state::init_planet(planet &liberatr_planet, UINT8 *planet_rom) /* calculate the bitmap's x coordinate for the western horizon center of bitmap - (the number of planet pixels) / 4 */ - *buffer++ = (machine().primary_screen->width() / 2) - ((line->max_x + 2) / 4); + *buffer++ = (m_screen->width() / 2) - ((line->max_x + 2) / 4); for (i = 0; i < segment_count; i++) { diff --git a/src/mame/video/lockon.c b/src/mame/video/lockon.c index ad1b3ebb8d9..6a6c834304d 100644 --- a/src/mame/video/lockon.c +++ b/src/mame/video/lockon.c @@ -67,7 +67,7 @@ TIMER_CALLBACK_MEMBER(lockon_state::cursor_callback) if (m_main_inten) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); - m_cursor_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_cursor_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } /************************************* @@ -900,7 +900,7 @@ void lockon_state::video_start() /* Timer for the CRTC cursor pulse */ m_cursor_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(lockon_state::cursor_callback),this)); - m_cursor_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_cursor_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); save_item(NAME(*m_back_buffer)); save_item(NAME(*m_front_buffer)); diff --git a/src/mame/video/lordgun.c b/src/mame/video/lordgun.c index 98f4d4a19f3..6328602380d 100644 --- a/src/mame/video/lordgun.c +++ b/src/mame/video/lordgun.c @@ -95,8 +95,8 @@ WRITE16_MEMBER(lordgun_state::lordgun_vram_3_w){ lordgun_vram_w(offset, data, me void lordgun_state::video_start() { int i; - int w = machine().primary_screen->width(); - int h = machine().primary_screen->height(); + int w = m_screen->width(); + int h = m_screen->height(); // 0x800 x 200 m_tilemap[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS,8,8, 0x100, 0x40 ); @@ -195,7 +195,7 @@ void lordgun_state::lorddgun_calc_gun_scr(int i) void lordgun_state::lordgun_update_gun(int i) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_gun[i].hw_x = ioport(gunnames[i])->read(); m_gun[i].hw_y = ioport(gunnames[i+2])->read(); diff --git a/src/mame/video/m107.c b/src/mame/video/m107.c index 4d6b805c1fb..9adc1550a78 100644 --- a/src/mame/video/m107.c +++ b/src/mame/video/m107.c @@ -311,7 +311,7 @@ void m107_state::m107_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, { int line; rectangle clip; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); clip = visarea; if (m_control[0x08 + laynum] & 0x02) diff --git a/src/mame/video/m52.c b/src/mame/video/m52.c index ea6f31a172b..16d211b9dd9 100644 --- a/src/mame/video/m52.c +++ b/src/mame/video/m52.c @@ -293,7 +293,7 @@ WRITE8_MEMBER(m52_state::alpha1v_flipscreen_w) void m52_state::draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect, int xpos, int ypos, int image) { rectangle rect; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); if (flip_screen()) diff --git a/src/mame/video/m58.c b/src/mame/video/m58.c index e510a35a958..32f4146670c 100644 --- a/src/mame/video/m58.c +++ b/src/mame/video/m58.c @@ -173,9 +173,9 @@ TILEMAP_MAPPER_MEMBER(m58_state::yard_tilemap_scan_rows) void m58_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); - const rectangle &visarea = machine().primary_screen->visible_area(); + int width = m_screen->width(); + int height = m_screen->height(); + const rectangle &visarea = m_screen->visible_area(); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m58_state::yard_get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(m58_state::yard_tilemap_scan_rows),this), 8, 8, 64, 32); m_bg_tilemap->set_scrolldx(visarea.min_x, width - (visarea.max_x + 1)); @@ -214,7 +214,7 @@ WRITE8_MEMBER(m58_state::yard_flipscreen_w) void m58_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ) { int offs; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4) { @@ -272,7 +272,7 @@ void m58_state::draw_panel( bitmap_ind16 &bitmap, const rectangle &cliprect ) const rectangle clippanel(26*8, 32*8-1, 1*8, 31*8-1); const rectangle clippanelflip(0*8, 6*8-1, 1*8, 31*8-1); rectangle clip = flip_screen() ? clippanelflip : clippanel; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int sx = flip_screen() ? cliprect.min_x - 8 : cliprect.max_x + 1 - SCROLL_PANEL_WIDTH; int yoffs = flip_screen() ? -40 : -16; diff --git a/src/mame/video/madalien.c b/src/mame/video/madalien.c index a73cf9995be..0788962f0f9 100644 --- a/src/mame/video/madalien.c +++ b/src/mame/video/madalien.c @@ -147,7 +147,7 @@ VIDEO_START_MEMBER(madalien_state,madalien) m_tilemap_edge2[i] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_2),this), scan_functions[i], 16, 16, tilemap_cols[i], 8); m_tilemap_edge2[i]->set_scrolldx(0, 0x50); - m_tilemap_edge2[i]->set_scrolldy(0, machine().primary_screen->height() - 256); + m_tilemap_edge2[i]->set_scrolldy(0, m_screen->height() - 256); } m_headlight_bitmap = auto_bitmap_ind16_alloc(machine(), 128, 128); diff --git a/src/mame/video/magmax.c b/src/mame/video/magmax.c index 9ad19ad7205..caa456e6e8a 100644 --- a/src/mame/video/magmax.c +++ b/src/mame/video/magmax.c @@ -72,7 +72,7 @@ void magmax_state::video_start() m_prom_tab = auto_alloc_array(machine(), UINT32, 256); - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); /* Allocate temporary bitmap */ for (i=0; i<256; i++) diff --git a/src/mame/video/mappy.c b/src/mame/video/mappy.c index 2a45ac7846e..bed189904e2 100644 --- a/src/mame/video/mappy.c +++ b/src/mame/video/mappy.c @@ -321,7 +321,7 @@ TILE_GET_INFO_MEMBER(mappy_state::mappy_get_tile_info) VIDEO_START_MEMBER(mappy_state,superpac) { m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mappy_state::superpac_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),this),8,8,36,28); - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); colortable_configure_tilemap_groups(machine().colortable, m_bg_tilemap, machine().gfx[0], 31); } diff --git a/src/mame/video/matmania.c b/src/mame/video/matmania.c index 323720ae9c2..7b2b8143e10 100644 --- a/src/mame/video/matmania.c +++ b/src/mame/video/matmania.c @@ -115,8 +115,8 @@ WRITE8_MEMBER(matmania_state::matmania_paletteram_w) void matmania_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* Mat Mania has a virtual screen twice as large as the visible screen */ m_tmpbitmap = auto_bitmap_ind16_alloc(machine(), width, 2 * height); diff --git a/src/mame/video/mcd212.c b/src/mame/video/mcd212.c index 91711fe21d6..225f0ea3002 100644 --- a/src/mame/video/mcd212.c +++ b/src/mame/video/mcd212.c @@ -514,9 +514,9 @@ void mcd212_device::set_display_parameters(int channel, UINT8 value) void mcd212_device::update_visible_area() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); rectangle visarea1; - attoseconds_t period = machine().primary_screen->frame_period().attoseconds; + attoseconds_t period = m_screen->frame_period().attoseconds; int width = 0; if((m_channel[0].dcr & (MCD212_DCR_CF | MCD212_DCR_FD)) && (m_channel[0].csrw & MCD212_CSR1W_ST)) @@ -533,7 +533,7 @@ void mcd212_device::update_visible_area() visarea1.min_y = visarea.min_y; visarea1.max_y = visarea.max_y; - machine().primary_screen->configure(width, 302, visarea1, period); + m_screen->configure(width, 302, visarea1, period); } UINT32 mcd212_device::get_screen_width() @@ -1418,7 +1418,7 @@ WRITE16_MEMBER( mcd212_device::regs_w ) TIMER_CALLBACK_MEMBER( mcd212_device::perform_scan ) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if(1) { @@ -1463,7 +1463,7 @@ TIMER_CALLBACK_MEMBER( mcd212_device::perform_scan ) } } } - m_scan_timer->adjust(machine().primary_screen->time_until_pos(( scanline + 1 ) % 302, 0)); + m_scan_timer->adjust(m_screen->time_until_pos(( scanline + 1 ) % 302, 0)); } void mcd212_device::device_reset() @@ -1509,7 +1509,8 @@ void mcd212_device::device_reset() //------------------------------------------------- mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, MACHINE_MCD212, "MCD212", tag, owner, clock, "mcd212", __FILE__) + : device_t(mconfig, MACHINE_MCD212, "MCD212", tag, owner, clock, "mcd212", __FILE__), + device_video_interface(mconfig, *this) { } @@ -1519,10 +1520,10 @@ mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, dev void mcd212_device::device_start() { - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); m_scan_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mcd212_device::perform_scan), this)); - m_scan_timer->adjust(machine().primary_screen->time_until_pos(0, 0)); + m_scan_timer->adjust(m_screen->time_until_pos(0, 0)); save_item(NAME(m_region_flag_0)); save_item(NAME(m_region_flag_1)); diff --git a/src/mame/video/mcd212.h b/src/mame/video/mcd212.h index b08beaebcc9..1716136fba7 100644 --- a/src/mame/video/mcd212.h +++ b/src/mame/video/mcd212.h @@ -114,7 +114,7 @@ typedef INT16 SWORD68K; MCFG_DEVICE_ADD(_tag, MACHINE_MCD212, 0) #define MCFG_MCD212_REPLACE(_tag) \ MCFG_DEVICE_REPLACE(_tag, MACHINE_MCD212, 0) - +#define MCFG_MCD212_SET_SCREEN MCFG_VIDEO_SET_SCREEN //************************************************************************** // TYPE DEFINITIONS @@ -122,7 +122,8 @@ typedef INT16 SWORD68K; // ======================> mcd212_device -class mcd212_device : public device_t +class mcd212_device : public device_t, + public device_video_interface { public: // construction/destruction diff --git a/src/mame/video/mcr68.c b/src/mame/video/mcr68.c index 9cb2ba28c42..fb81f01b08a 100644 --- a/src/mame/video/mcr68.c +++ b/src/mame/video/mcr68.c @@ -197,7 +197,7 @@ WRITE16_MEMBER(mcr68_state::zwackery_spriteram_w) void mcr68_state::mcr68_update_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { - rectangle sprite_clip = machine().primary_screen->visible_area(); + rectangle sprite_clip = m_screen->visible_area(); UINT16 *spriteram = m_spriteram; int offs; diff --git a/src/mame/video/meadows.c b/src/mame/video/meadows.c index 9aaad9a9886..8ac018b286e 100644 --- a/src/mame/video/meadows.c +++ b/src/mame/video/meadows.c @@ -62,7 +62,7 @@ WRITE8_MEMBER(meadows_state::meadows_videoram_w) WRITE8_MEMBER(meadows_state::meadows_spriteram_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_spriteram[offset] = data; } diff --git a/src/mame/video/mermaid.c b/src/mame/video/mermaid.c index d448cbfaea3..cd973f72252 100644 --- a/src/mame/video/mermaid.c +++ b/src/mame/video/mermaid.c @@ -174,8 +174,8 @@ void mermaid_state::video_start() m_fg_tilemap->set_scroll_cols(32); m_fg_tilemap->set_transparent_pen(0); - machine().primary_screen->register_screen_bitmap(m_helper); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper2); } void mermaid_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) @@ -253,7 +253,7 @@ void mermaid_state::screen_eof_mermaid(screen_device &screen, bool state) // rising edge if (state) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); UINT8 *spriteram = m_spriteram; int offs, offs2; diff --git a/src/mame/video/metro.c b/src/mame/video/metro.c index f4a80581f87..c289051fd8e 100644 --- a/src/mame/video/metro.c +++ b/src/mame/video/metro.c @@ -412,8 +412,8 @@ void metro_state::metro_draw_sprites( screen_device &screen, bitmap_ind16 &bitma UINT8 *base_gfx8 = memregion("gfx1")->base(); UINT32 gfx_size = memregion("gfx1")->bytes(); - int max_x = machine().primary_screen->width(); - int max_y = machine().primary_screen->height(); + int max_x = m_screen->width(); + int max_y = m_screen->height(); int max_sprites = m_spriteram.bytes() / 8; int sprites = m_videoregs[0x00/2] % max_sprites; diff --git a/src/mame/video/midvunit.c b/src/mame/video/midvunit.c index a83e00ce2a6..f5f9a29a1a2 100644 --- a/src/mame/video/midvunit.c +++ b/src/mame/video/midvunit.c @@ -56,7 +56,7 @@ TIMER_CALLBACK_MEMBER(midvunit_state::scanline_timer_cb) if (scanline != -1) { m_maincpu->set_input_line(0, ASSERT_LINE); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline + 1), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline + 1), scanline); timer_set(attotime::from_hz(25000000), TIMER_SCANLINE, -1); } else @@ -348,7 +348,7 @@ void midvunit_renderer::process_dma_queue() objectdata.dither = ((m_state.m_dma_data[0] & 0x2000) != 0); /* render as a quad */ - render_polygon<4>(machine().primary_screen->visible_area(), callback, textured ? 2 : 0, vert); + render_polygon<4>(m_state.m_screen->visible_area(), callback, textured ? 2 : 0, vert); } @@ -403,7 +403,7 @@ WRITE32_MEMBER(midvunit_state::midvunit_page_control_w) m_video_changed = TRUE; if (LOG_DMA && machine().input().code_pressed(KEYCODE_L)) logerror("##########################################################\n"); - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1); + m_screen->update_partial(m_screen->vpos() - 1); } m_page_control = data; } @@ -431,7 +431,7 @@ WRITE32_MEMBER(midvunit_state::midvunit_video_control_w) /* update the scanline timer */ if (offset == 0) - m_scanline_timer->adjust(machine().primary_screen->time_until_pos((data & 0x1ff) + 1, 0), data & 0x1ff); + m_scanline_timer->adjust(m_screen->time_until_pos((data & 0x1ff) + 1, 0), data & 0x1ff); /* if something changed, update our parameters */ if (old != m_video_regs[offset] && m_video_regs[6] != 0 && m_video_regs[11] != 0) @@ -443,14 +443,14 @@ WRITE32_MEMBER(midvunit_state::midvunit_video_control_w) visarea.max_x = (m_video_regs[6] + m_video_regs[2] - m_video_regs[5]) % m_video_regs[6]; visarea.min_y = 0; visarea.max_y = (m_video_regs[11] + m_video_regs[7] - m_video_regs[10]) % m_video_regs[11]; - machine().primary_screen->configure(m_video_regs[6], m_video_regs[11], visarea, HZ_TO_ATTOSECONDS(MIDVUNIT_VIDEO_CLOCK / 2) * m_video_regs[6] * m_video_regs[11]); + m_screen->configure(m_video_regs[6], m_video_regs[11], visarea, HZ_TO_ATTOSECONDS(MIDVUNIT_VIDEO_CLOCK / 2) * m_video_regs[6] * m_video_regs[11]); } } READ32_MEMBER(midvunit_state::midvunit_scanline_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/video/midzeus.c b/src/mame/video/midzeus.c index 4103c0bbaf9..361d4c76ea5 100644 --- a/src/mame/video/midzeus.c +++ b/src/mame/video/midzeus.c @@ -390,18 +390,18 @@ READ32_MEMBER(midzeus_state::zeus_r) switch (offset & ~1) { case 0xf0: - result = machine().primary_screen->hpos(); + result = m_screen->hpos(); logit = 0; break; case 0xf2: - result = machine().primary_screen->vpos(); + result = m_screen->vpos(); logit = 0; break; case 0xf4: result = 6; - if (machine().primary_screen->vblank()) + if (m_screen->vblank()) result |= 0x800; logit = 0; break; diff --git a/src/mame/video/midzeus2.c b/src/mame/video/midzeus2.c index 8f3a60e41a8..a4f95f98f38 100644 --- a/src/mame/video/midzeus2.c +++ b/src/mame/video/midzeus2.c @@ -437,7 +437,7 @@ READ32_HANDLER( zeus2_r ) /* bits $00080000 is tested in a loop until 0 */ /* bit $00000004 is tested for toggling; probably VBLANK */ result = 0x00; - if (space.machine().primary_screen->vblank()) + if (state->m_screen->vblank()) result |= 0x04; break; @@ -448,7 +448,7 @@ READ32_HANDLER( zeus2_r ) case 0x54: /* both upper 16 bits and lower 16 bits seem to be used as vertical counters */ - result = (space.machine().primary_screen->vpos() << 16) | space.machine().primary_screen->vpos(); + result = (state->m_screen->vpos() << 16) | state->m_screen->vpos(); break; } diff --git a/src/mame/video/model2.c b/src/mame/video/model2.c index b5bb9437bf0..f2eee94c21a 100644 --- a/src/mame/video/model2.c +++ b/src/mame/video/model2.c @@ -2699,7 +2699,7 @@ void model2_state::model2_exit() VIDEO_START_MEMBER(model2_state,model2) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int width = visarea.width(); int height = visarea.height(); diff --git a/src/mame/video/model3.c b/src/mame/video/model3.c index 809fa21f649..d6ad3dcecac 100644 --- a/src/mame/video/model3.c +++ b/src/mame/video/model3.c @@ -117,8 +117,8 @@ void model3_state::video_start() m_poly = poly_alloc(machine(), 4000, sizeof(poly_extra_data), 0); machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(model3_state::model3_exit), this)); - machine().primary_screen->register_screen_bitmap(m_bitmap3d); - machine().primary_screen->register_screen_bitmap(m_zbuffer); + m_screen->register_screen_bitmap(m_bitmap3d); + m_screen->register_screen_bitmap(m_zbuffer); m_m3_char_ram = auto_alloc_array_clear(machine(), UINT64, 0x100000/8); m_m3_tile_ram = auto_alloc_array_clear(machine(), UINT64, 0x8000/8); diff --git a/src/mame/video/moo.c b/src/mame/video/moo.c index 2eef7257e65..0fe8e262232 100644 --- a/src/mame/video/moo.c +++ b/src/mame/video/moo.c @@ -36,7 +36,7 @@ void moo_tile_callback( running_machine &machine, int layer, int *code, int *col VIDEO_START_MEMBER(moo_state,moo) { - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); m_alpha_enabled = 0; m_zmask = 0xffff; @@ -50,7 +50,7 @@ VIDEO_START_MEMBER(moo_state,moo) VIDEO_START_MEMBER(moo_state,bucky) { - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); m_alpha_enabled = 0; m_zmask = 0x00ff; diff --git a/src/mame/video/mrflea.c b/src/mame/video/mrflea.c index 37a28f4f2d2..273f65ad86a 100644 --- a/src/mame/video/mrflea.c +++ b/src/mame/video/mrflea.c @@ -44,7 +44,7 @@ void mrflea_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect gfx_element *gfx = machine().gfx[0]; const UINT8 *source = m_spriteram; const UINT8 *finish = source + 0x100; - rectangle clip = machine().primary_screen->visible_area(); + rectangle clip = m_screen->visible_area(); clip.max_x -= 24; clip.min_x += 16; diff --git a/src/mame/video/ms32.c b/src/mame/video/ms32.c index 2847752d893..81f84563fb7 100644 --- a/src/mame/video/ms32.c +++ b/src/mame/video/ms32.c @@ -79,9 +79,9 @@ void ms32_state::video_start() /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_tilemaps); - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites); - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites_pri); // not actually being used for rendering, we embed pri info in the raw colour bitmap + m_screen->register_screen_bitmap(m_temp_bitmap_tilemaps); + m_screen->register_screen_bitmap(m_temp_bitmap_sprites); + m_screen->register_screen_bitmap(m_temp_bitmap_sprites_pri); // not actually being used for rendering, we embed pri info in the raw colour bitmap m_temp_bitmap_tilemaps.fill(0); m_temp_bitmap_sprites.fill(0); diff --git a/src/mame/video/mustache.c b/src/mame/video/mustache.c index 50bdb04aa6e..14ff003bcbf 100644 --- a/src/mame/video/mustache.c +++ b/src/mame/video/mustache.c @@ -100,7 +100,7 @@ void mustache_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec { rectangle clip = cliprect; gfx_element *gfx = machine().gfx[1]; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); UINT8 *spriteram = m_spriteram; int offs; diff --git a/src/mame/video/mystston.c b/src/mame/video/mystston.c index 4be4fe0b77a..784384c47f5 100644 --- a/src/mame/video/mystston.c +++ b/src/mame/video/mystston.c @@ -56,7 +56,7 @@ TIMER_CALLBACK_MEMBER(mystston_state::interrupt_callback) scanline = FIRST_INT_VPOS; /* the vertical synch chain is clocked by H256 -- this is probably not important, but oh well */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline - 1, INT_HPOS), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline - 1, INT_HPOS), scanline); } @@ -231,7 +231,7 @@ VIDEO_START_MEMBER(mystston_state,mystston) VIDEO_RESET_MEMBER(mystston_state,mystston) { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(FIRST_INT_VPOS - 1, INT_HPOS), FIRST_INT_VPOS); + m_interrupt_timer->adjust(m_screen->time_until_pos(FIRST_INT_VPOS - 1, INT_HPOS), FIRST_INT_VPOS); } diff --git a/src/mame/video/n8080.c b/src/mame/video/n8080.c index ee801ee5ffb..299d595bdaf 100644 --- a/src/mame/video/n8080.c +++ b/src/mame/video/n8080.c @@ -341,7 +341,7 @@ void n8080_state::screen_eof_helifire(screen_device &screen, bool state) // falling edge if (!state) { - int n = (machine().primary_screen->frame_number() >> 1) % sizeof m_helifire_LSFR; + int n = (m_screen->frame_number() >> 1) % sizeof m_helifire_LSFR; int i; @@ -358,7 +358,7 @@ void n8080_state::screen_eof_helifire(screen_device &screen, bool state) G |= B; } - if (machine().primary_screen->frame_number() & 0x04) + if (m_screen->frame_number() & 0x04) { R |= G; } diff --git a/src/mame/video/namcos22.c b/src/mame/video/namcos22.c index 2feccb3aa44..74ad23d5683 100644 --- a/src/mame/video/namcos22.c +++ b/src/mame/video/namcos22.c @@ -1800,8 +1800,8 @@ READ32_MEMBER(namcos22_state::namcos22_tilemapattr_r) UINT16 lo,hi = (m_tilemapattr[offset] & 0xffff0000) >> 16; // assume current scanline, 0x1ff if in vblank (used in alpinesa) // or maybe relative to posirq? - if (machine().primary_screen->vblank()) lo = 0x1ff; - else lo = machine().primary_screen->vpos() >> 1; + if (m_screen->vblank()) lo = 0x1ff; + else lo = m_screen->vpos() >> 1; // dirtdash has slowdowns if high bit is clear, why?? return hi<<16 | lo | 0x8000; } diff --git a/src/mame/video/naughtyb.c b/src/mame/video/naughtyb.c index b5075752a94..925f2d7d834 100644 --- a/src/mame/video/naughtyb.c +++ b/src/mame/video/naughtyb.c @@ -104,7 +104,7 @@ void naughtyb_state::video_start() m_palreg = m_bankreg = 0; /* Naughty Boy has a virtual screen twice as large as the visible screen */ - m_tmpbitmap.allocate(68*8,28*8,machine().primary_screen->format()); + m_tmpbitmap.allocate(68*8,28*8,m_screen->format()); } diff --git a/src/mame/video/nbmj8891.c b/src/mame/video/nbmj8891.c index 8131584aa6b..40ecac9181f 100644 --- a/src/mame/video/nbmj8891.c +++ b/src/mame/video/nbmj8891.c @@ -268,8 +268,8 @@ void nbmj8891_state::nbmj8891_vramflip(int vram) UINT8 color1, color2; UINT8 *vidram; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen == m_flipscreen_old) return; @@ -293,13 +293,13 @@ void nbmj8891_state::nbmj8891_vramflip(int vram) void nbmj8891_state::update_pixel0(int x, int y) { - UINT8 color = m_videoram0[(y * machine().primary_screen->width()) + x]; + UINT8 color = m_videoram0[(y * m_screen->width()) + x]; m_tmpbitmap0.pix16(y, x) = color; } void nbmj8891_state::update_pixel1(int x, int y) { - UINT8 color = m_videoram1[(y * machine().primary_screen->width()) + x]; + UINT8 color = m_videoram1[(y * m_screen->width()) + x]; m_tmpbitmap1.pix16(y, x) = (color == 0x7f) ? 0xff : color; } @@ -318,7 +318,7 @@ void nbmj8891_state::device_timer(emu_timer &timer, device_timer_id id, int para void nbmj8891_state::nbmj8891_gfxdraw() { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx1, dx2, dy1, dy2; @@ -482,10 +482,10 @@ VIDEO_START_MEMBER(nbmj8891_state,nbmj8891_1layer) { UINT8 *CLUT = memregion("protection")->base(); int i; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap0); + m_screen->register_screen_bitmap(m_tmpbitmap0); m_videoram0 = auto_alloc_array(machine(), UINT8, width * height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); m_clut = auto_alloc_array(machine(), UINT8, 0x800); @@ -498,11 +498,11 @@ VIDEO_START_MEMBER(nbmj8891_state,nbmj8891_1layer) void nbmj8891_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap0); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap1); + m_screen->register_screen_bitmap(m_tmpbitmap0); + m_screen->register_screen_bitmap(m_tmpbitmap1); m_videoram0 = auto_alloc_array(machine(), UINT8, width * height); m_videoram1 = auto_alloc_array(machine(), UINT8, width * height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); diff --git a/src/mame/video/nbmj8900.c b/src/mame/video/nbmj8900.c index 9bbde3dfbd0..53e59aae2fe 100644 --- a/src/mame/video/nbmj8900.c +++ b/src/mame/video/nbmj8900.c @@ -160,8 +160,8 @@ void nbmj8900_state::nbmj8900_vramflip(int vram) int x, y; unsigned char color1, color2; unsigned char *vidram; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen == m_flipscreen_old) return; @@ -364,11 +364,11 @@ void nbmj8900_state::nbmj8900_gfxdraw() ******************************************************************************/ void nbmj8900_state::video_start() { - m_screen_width = machine().primary_screen->width(); - m_screen_height = machine().primary_screen->height(); + m_screen_width = m_screen->width(); + m_screen_height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap0); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap1); + m_screen->register_screen_bitmap(m_tmpbitmap0); + m_screen->register_screen_bitmap(m_tmpbitmap1); m_videoram0 = auto_alloc_array(machine(), UINT8, m_screen_width * m_screen_height); m_videoram1 = auto_alloc_array(machine(), UINT8, m_screen_width * m_screen_height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); diff --git a/src/mame/video/nbmj8991.c b/src/mame/video/nbmj8991.c index ce7ea9c338a..dc38cb11d07 100644 --- a/src/mame/video/nbmj8991.c +++ b/src/mame/video/nbmj8991.c @@ -131,8 +131,8 @@ void nbmj8991_state::nbmj8991_vramflip() { int x, y; UINT8 color1, color2; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen == m_flipscreen_old) return; @@ -159,7 +159,7 @@ void nbmj8991_state::nbmj8991_vramflip() void nbmj8991_state::update_pixel(int x, int y) { - UINT8 color = m_videoram[(y * machine().primary_screen->width()) + x]; + UINT8 color = m_videoram[(y * m_screen->width()) + x]; m_tmpbitmap.pix16(y, x) = color; } @@ -171,7 +171,7 @@ TIMER_CALLBACK_MEMBER(nbmj8991_state::blitter_timer_callback) void nbmj8991_state::nbmj8991_gfxdraw() { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx1, dx2, dy; @@ -279,10 +279,10 @@ void nbmj8991_state::nbmj8991_gfxdraw() ******************************************************************************/ void nbmj8991_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); m_videoram = auto_alloc_array(machine(), UINT8, width * height); m_clut = auto_alloc_array(machine(), UINT8, 0x800); memset(m_videoram, 0x00, (width * height * sizeof(UINT8))); @@ -294,8 +294,8 @@ UINT32 nbmj8991_state::screen_update_nbmj8991_type1(screen_device &screen, bitma if (m_screen_refresh) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_screen_refresh = 0; diff --git a/src/mame/video/nbmj9195.c b/src/mame/video/nbmj9195.c index cd8185c1a94..7b65fdde23d 100644 --- a/src/mame/video/nbmj9195.c +++ b/src/mame/video/nbmj9195.c @@ -96,7 +96,7 @@ void nbmj9195_state::nbmj9195_blitter_w(int offset, int data, int vram) break; case 0x01: m_scrollx[vram] = (m_scrollx[vram] & 0x0100) | data; break; case 0x02: m_scrollx[vram] = (m_scrollx[vram] & 0x00ff) | ((data << 8) & 0x0100); - new_line = machine().primary_screen->vpos(); + new_line = m_screen->vpos(); if (m_flipscreen[vram]) { for ( ; m_scanline[vram] < new_line; m_scanline[vram]++) @@ -148,8 +148,8 @@ void nbmj9195_state::nbmj9195_vramflip(int vram) { int x, y; UINT16 color1, color2; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen[vram] == m_flipscreen_old[vram]) return; @@ -184,7 +184,7 @@ void nbmj9195_state::nbmj9195_vramflip(int vram) void nbmj9195_state::update_pixel(int vram, int x, int y) { - UINT16 color = m_videoram[vram][(y * machine().primary_screen->width()) + x]; + UINT16 color = m_videoram[vram][(y * m_screen->width()) + x]; m_tmpbitmap[vram].pix16(y, x) = color; } @@ -203,7 +203,7 @@ void nbmj9195_state::device_timer(emu_timer &timer, device_timer_id id, int para void nbmj9195_state::nbmj9195_gfxdraw(int vram) { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx1, dx2, dy; @@ -379,10 +379,10 @@ WRITE8_MEMBER(nbmj9195_state::nbmj9195_clut_1_w){ nbmj9195_clut_w(offset, data, ******************************************************************************/ VIDEO_START_MEMBER(nbmj9195_state,nbmj9195_1layer) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[0]); + m_screen->register_screen_bitmap(m_tmpbitmap[0]); m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); m_clut[0] = auto_alloc_array(machine(), UINT8, 0x1000); @@ -393,11 +393,11 @@ VIDEO_START_MEMBER(nbmj9195_state,nbmj9195_1layer) void nbmj9195_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[0]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[1]); + m_screen->register_screen_bitmap(m_tmpbitmap[0]); + m_screen->register_screen_bitmap(m_tmpbitmap[1]); m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoram[1] = auto_alloc_array_clear(machine(), UINT16, width * height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); @@ -410,11 +410,11 @@ void nbmj9195_state::video_start() VIDEO_START_MEMBER(nbmj9195_state,nbmj9195_nb22090) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[0]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[1]); + m_screen->register_screen_bitmap(m_tmpbitmap[0]); + m_screen->register_screen_bitmap(m_tmpbitmap[1]); m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoram[1] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoworkram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); diff --git a/src/mame/video/neogeo.c b/src/mame/video/neogeo.c index 1f8c4a0e830..2b2c07959db 100644 --- a/src/mame/video/neogeo.c +++ b/src/mame/video/neogeo.c @@ -220,7 +220,7 @@ TIMER_CALLBACK_MEMBER(neogeo_state::auto_animation_timer_callback) else m_auto_animation_frame_counter = m_auto_animation_frame_counter - 1; - m_auto_animation_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VSSTART)); + m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); } @@ -232,7 +232,7 @@ void neogeo_state::create_auto_animation_timer( ) void neogeo_state::start_auto_animation_timer( ) { - m_auto_animation_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VSSTART)); + m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); } @@ -627,14 +627,14 @@ TIMER_CALLBACK_MEMBER(neogeo_state::sprite_line_timer_callback) /* we are at the beginning of a scanline - we need to draw the previous scanline and parse the sprites on the current one */ if (scanline != 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); parse_sprites(scanline); /* let's come back at the beginning of the next line */ scanline = (scanline + 1) % NEOGEO_VTOTAL; - m_sprite_line_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_sprite_line_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -646,7 +646,7 @@ void neogeo_state::create_sprite_line_timer( ) void neogeo_state::start_sprite_line_timer( ) { - m_sprite_line_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_sprite_line_timer->adjust(m_screen->time_until_pos(0)); } @@ -741,7 +741,7 @@ UINT16 neogeo_state::get_video_control( ) */ /* the vertical counter chain goes from 0xf8 - 0x1ff */ - v_counter = machine().primary_screen->vpos() + 0x100; + v_counter = m_screen->vpos() + 0x100; if (v_counter >= 0x200) v_counter = v_counter - NEOGEO_VTOTAL; diff --git a/src/mame/video/ninjakd2.c b/src/mame/video/ninjakd2.c index c42f14c4a12..252d63fdbf9 100644 --- a/src/mame/video/ninjakd2.c +++ b/src/mame/video/ninjakd2.c @@ -127,7 +127,7 @@ void ninjakd2_state::video_init_common(UINT32 vram_alloc_size) m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_fg_tilemap->set_transparent_pen(0xf); - machine().primary_screen->register_screen_bitmap(m_sprites_bitmap); + m_screen->register_screen_bitmap(m_sprites_bitmap); m_sprites_updated = 0; m_robokid_sprites = 0; diff --git a/src/mame/video/niyanpai.c b/src/mame/video/niyanpai.c index d9576d4087d..0db3cb9e775 100644 --- a/src/mame/video/niyanpai.c +++ b/src/mame/video/niyanpai.c @@ -123,8 +123,8 @@ void niyanpai_state::niyanpai_vramflip(int vram) { int x, y; UINT16 color1, color2; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen[vram] == m_flipscreen_old[vram]) return; @@ -156,7 +156,7 @@ void niyanpai_state::niyanpai_vramflip(int vram) void niyanpai_state::update_pixel(int vram, int x, int y) { - UINT16 color = m_videoram[vram][(y * machine().primary_screen->width()) + x]; + UINT16 color = m_videoram[vram][(y * m_screen->width()) + x]; m_tmpbitmap[vram].pix16(y, x) = color; } @@ -175,7 +175,7 @@ void niyanpai_state::device_timer(emu_timer &timer, device_timer_id id, int para void niyanpai_state::niyanpai_gfxdraw(int vram) { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx1, dx2, dy; @@ -353,12 +353,12 @@ WRITE16_MEMBER(niyanpai_state::niyanpai_clutsel_2_w){ niyanpai_clutsel_w(2, data ******************************************************************************/ void niyanpai_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[0]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[1]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[2]); + m_screen->register_screen_bitmap(m_tmpbitmap[0]); + m_screen->register_screen_bitmap(m_tmpbitmap[1]); + m_screen->register_screen_bitmap(m_tmpbitmap[2]); m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoram[1] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoram[2] = auto_alloc_array_clear(machine(), UINT16, width * height); diff --git a/src/mame/video/ojankohs.c b/src/mame/video/ojankohs.c index 0281cd3fb4d..3c450ce567f 100644 --- a/src/mame/video/ojankohs.c +++ b/src/mame/video/ojankohs.c @@ -270,7 +270,7 @@ VIDEO_START_MEMBER(ojankohs_state,ojankoy) VIDEO_START_MEMBER(ojankohs_state,ojankoc) { - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); m_videoram.allocate(0x8000); m_paletteram.allocate(0x20); diff --git a/src/mame/video/pacland.c b/src/mame/video/pacland.c index 1af635c54c0..b492dbdde88 100644 --- a/src/mame/video/pacland.c +++ b/src/mame/video/pacland.c @@ -192,7 +192,7 @@ void pacland_state::video_start() { int color; - machine().primary_screen->register_screen_bitmap(m_fg_bitmap); + m_screen->register_screen_bitmap(m_fg_bitmap); m_fg_bitmap.fill(0xffff); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pacland_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32); diff --git a/src/mame/video/paradise.c b/src/mame/video/paradise.c index a666ca96d98..e9c6a9fa025 100644 --- a/src/mame/video/paradise.c +++ b/src/mame/video/paradise.c @@ -157,7 +157,7 @@ void paradise_state::video_start() m_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_2),this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); /* pixmap */ - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); m_tilemap_0->set_transparent_pen(0x0f); m_tilemap_1->set_transparent_pen(0xff); diff --git a/src/mame/video/pastelg.c b/src/mame/video/pastelg.c index 157b1585451..1e5dff4119c 100644 --- a/src/mame/video/pastelg.c +++ b/src/mame/video/pastelg.c @@ -123,8 +123,8 @@ void pastelg_state::pastelg_vramflip() { int x, y; UINT8 color1, color2; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen == m_flipscreen_old) return; @@ -158,7 +158,7 @@ void pastelg_state::device_timer(emu_timer &timer, device_timer_id id, int param void pastelg_state::pastelg_gfxdraw() { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx, dy; @@ -284,8 +284,8 @@ void pastelg_state::pastelg_gfxdraw() ******************************************************************************/ void pastelg_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_videoram = auto_alloc_array_clear(machine(), UINT8, width * height); m_clut = auto_alloc_array(machine(), UINT8, 0x10); diff --git a/src/mame/video/policetr.c b/src/mame/video/policetr.c index c3040b6602e..83f75ede2bc 100644 --- a/src/mame/video/policetr.c +++ b/src/mame/video/policetr.c @@ -257,8 +257,8 @@ WRITE32_MEMBER(policetr_state::policetr_video_w) READ32_MEMBER(policetr_state::policetr_video_r) { int inputval; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* the value read is based on the latch */ switch (m_video_latch) diff --git a/src/mame/video/popper.c b/src/mame/video/popper.c index b60e63196e3..bd5588750da 100644 --- a/src/mame/video/popper.c +++ b/src/mame/video/popper.c @@ -178,7 +178,7 @@ void popper_state::video_start() m_ol_p0_tilemap->set_transmask(0, 0x0f, 0x0e); m_ol_p0_tilemap->set_transmask(1, 0x0e, 0x0f); - m_tilemap_clip = machine().primary_screen->visible_area(); + m_tilemap_clip = m_screen->visible_area(); } void popper_state::draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect ) diff --git a/src/mame/video/powerins.c b/src/mame/video/powerins.c index 88183f815c8..b6b58f87199 100644 --- a/src/mame/video/powerins.c +++ b/src/mame/video/powerins.c @@ -253,8 +253,8 @@ void powerins_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect UINT16 *source = m_spriteram + 0x8000/2; UINT16 *finish = m_spriteram + 0x9000/2; - int screen_w = machine().primary_screen->width(); - int screen_h = machine().primary_screen->height(); + int screen_w = m_screen->width(); + int screen_h = m_screen->height(); for ( ; source < finish; source += 16/2 ) { diff --git a/src/mame/video/powervr2.c b/src/mame/video/powervr2.c index 46bc6a5ccc7..21e82f7e3bf 100644 --- a/src/mame/video/powervr2.c +++ b/src/mame/video/powervr2.c @@ -1132,8 +1132,8 @@ WRITE32_MEMBER( powervr2_device::spg_vblank_int_w ) vbin_timer->adjust(attotime::never); vbout_timer->adjust(attotime::never); - vbin_timer->adjust(space.machine().primary_screen->time_until_pos(spg_vblank_int & 0x3ff)); - vbout_timer->adjust(space.machine().primary_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); + vbin_timer->adjust(m_screen->time_until_pos(spg_vblank_int & 0x3ff)); + vbout_timer->adjust(m_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); } READ32_MEMBER( powervr2_device::spg_hblank_r ) @@ -1234,19 +1234,19 @@ WRITE32_MEMBER( powervr2_device::pal_ram_ctrl_w ) READ32_MEMBER( powervr2_device::spg_status_r ) { - UINT32 fieldnum = (machine().primary_screen->frame_number() & 1) ? 1 : 0; + UINT32 fieldnum = (m_screen->frame_number() & 1) ? 1 : 0; - UINT32 vsync = machine().primary_screen->vblank() ? 1 : 0; + UINT32 vsync = m_screen->vblank() ? 1 : 0; if(vo_control & 2) { vsync^=1; } - UINT32 hsync = machine().primary_screen->hblank() ? 1 : 0; + UINT32 hsync = m_screen->hblank() ? 1 : 0; if(vo_control & 1) { hsync^=1; } /* FIXME: following is just a wild guess */ - UINT32 blank = (machine().primary_screen->vblank() | space.machine().primary_screen->hblank()) ? 0 : 1; + UINT32 blank = (m_screen->vblank() | m_screen->hblank()) ? 0 : 1; if(vo_control & 4) { blank^=1; } - return (vsync << 13) | (hsync << 12) | (blank << 11) | (fieldnum << 10) | (machine().primary_screen->vpos() & 0x3ff); + return (vsync << 13) | (hsync << 12) | (blank << 11) | (fieldnum << 10) | (m_screen->vpos() & 0x3ff); } @@ -1457,14 +1457,14 @@ void powervr2_device::update_screen_format() INT32 vo_horz_start_pos = vo_startx & 0x3ff; INT32 vo_vert_start_pos_f1 = vo_starty & 0x3ff; - rectangle visarea = machine().primary_screen->visible_area(); + rectangle visarea = m_screen->visible_area(); /* FIXME: right visible area calculations aren't known yet*/ visarea.min_x = 0; visarea.max_x = ((spg_hbstart - spg_hbend - vo_horz_start_pos) <= 0x180 ? 320 : 640) - 1; visarea.min_y = 0; visarea.max_y = ((spg_vbstart - spg_vbend - vo_vert_start_pos_f1) <= 0x100 ? 240 : 480) - 1; - machine().primary_screen->configure(spg_hbstart, spg_vbstart, visarea, machine().primary_screen->frame_period().attoseconds ); + m_screen->configure(spg_hbstart, spg_vbstart, visarea, m_screen->frame_period().attoseconds ); } @@ -2754,14 +2754,14 @@ TIMER_CALLBACK_MEMBER(powervr2_device::vbin) { irq_cb(VBL_IN_IRQ); - vbin_timer->adjust(machine().primary_screen->time_until_pos(spg_vblank_int & 0x3ff)); + vbin_timer->adjust(m_screen->time_until_pos(spg_vblank_int & 0x3ff)); } TIMER_CALLBACK_MEMBER(powervr2_device::vbout) { irq_cb(VBL_OUT_IRQ); - vbout_timer->adjust(machine().primary_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); + vbout_timer->adjust(m_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); } TIMER_CALLBACK_MEMBER(powervr2_device::hbin) @@ -2789,7 +2789,7 @@ TIMER_CALLBACK_MEMBER(powervr2_device::hbin) next_y = spg_hblank_int & 0x3ff; } - hbin_timer->adjust(machine().primary_screen->time_until_pos(scanline, ((spg_hblank_int >> 16) & 0x3ff)-1)); + hbin_timer->adjust(m_screen->time_until_pos(scanline, ((spg_hblank_int >> 16) & 0x3ff)-1)); } @@ -2983,6 +2983,7 @@ void powervr2_device::pvr_dma_execute(address_space &space) powervr2_device::powervr2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, POWERVR2, "PowerVR 2", tag, owner, clock, "powervr2", __FILE__), + device_video_interface(mconfig, *this), irq_cb(*this) { } @@ -3139,9 +3140,9 @@ void powervr2_device::device_reset() renderselect= -1; grabsel=0; - vbout_timer->adjust(machine().primary_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); - vbin_timer->adjust(machine().primary_screen->time_until_pos(spg_vblank_int & 0x3ff)); - hbin_timer->adjust(machine().primary_screen->time_until_pos(0, ((spg_hblank_int >> 16) & 0x3ff)-1)); + vbout_timer->adjust(m_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); + vbin_timer->adjust(m_screen->time_until_pos(spg_vblank_int & 0x3ff)); + hbin_timer->adjust(m_screen->time_until_pos(0, ((spg_hblank_int >> 16) & 0x3ff)-1)); scanline = 0; next_y = 0; diff --git a/src/mame/video/powervr2.h b/src/mame/video/powervr2.h index b46c5916d29..f6b18632e8e 100644 --- a/src/mame/video/powervr2.h +++ b/src/mame/video/powervr2.h @@ -5,7 +5,8 @@ MCFG_DEVICE_ADD(_tag, POWERVR2, 0) \ downcast(device)->set_irq_cb(DEVCB2_ ## _irq_cb); -class powervr2_device : public device_t +class powervr2_device : public device_t, + public device_video_interface { public: enum { NUM_BUFFERS = 4 }; diff --git a/src/mame/video/ppu2c0x.c b/src/mame/video/ppu2c0x.c index 100404e6316..d533c497ec1 100644 --- a/src/mame/video/ppu2c0x.c +++ b/src/mame/video/ppu2c0x.c @@ -500,7 +500,7 @@ void ppu2c0x_device::device_timer(emu_timer &timer, device_timer_id id, int para /* increment our scanline count */ m_scanline++; - // logerror("starting scanline %d (MAME %d, beam %d)\n", m_scanline, device->machine().primary_screen->vpos(), device->machine().primary_screen->hpos()); + // logerror("starting scanline %d (MAME %d, beam %d)\n", m_scanline, device->m_screen->vpos(), device->m_screen->hpos()); /* Note: this is called at the _end_ of each scanline */ if (m_scanline == PPU_VBLANK_FIRST_SCANLINE) diff --git a/src/mame/video/psikyo.c b/src/mame/video/psikyo.c index 7e23d4b9255..70534a27282 100644 --- a/src/mame/video/psikyo.c +++ b/src/mame/video/psikyo.c @@ -262,8 +262,8 @@ void psikyo_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, co UINT8 *TILES = memregion("spritelut")->base(); // Sprites LUT int TILES_LEN = memregion("spritelut")->bytes(); - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* Exit if sprites are disabled */ if (spritelist[BYTE_XOR_BE((0x800 - 2) / 2)] & 1) return; @@ -379,8 +379,8 @@ void psikyo_state::draw_sprites_bootleg( screen_device &screen, bitmap_ind16 &bi UINT8 *TILES = memregion("spritelut")->base(); // Sprites LUT int TILES_LEN = memregion("spritelut")->bytes(); - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* Exit if sprites are disabled */ if (spritelist[BYTE_XOR_BE((0x800 - 2) / 2)] & 1) diff --git a/src/mame/video/psikyo4.c b/src/mame/video/psikyo4.c index 1f0e46dd7aa..f6d8e7ec05d 100644 --- a/src/mame/video/psikyo4.c +++ b/src/mame/video/psikyo4.c @@ -98,7 +98,7 @@ void psikyo4_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec if ((!scr && flipscreen1) || (scr && flipscreen2)) { - ypos = machine().primary_screen->visible_area().max_y + 1 - ypos - high * 16; /* Screen Height depends on game */ + ypos = m_screen->visible_area().max_y + 1 - ypos - high * 16; /* Screen Height depends on game */ xpos = 40 * 8 - xpos - wide * 16; flipx = !flipx; flipy = !flipy; diff --git a/src/mame/video/psikyosh.c b/src/mame/video/psikyosh.c index aa763e49919..a463b7cd065 100644 --- a/src/mame/video/psikyosh.c +++ b/src/mame/video/psikyosh.c @@ -1210,7 +1210,7 @@ void psikyosh_state::video_start() { UINT8 *alphatable = m_alphatable; - machine().primary_screen->register_screen_bitmap(m_z_bitmap); /* z-buffer */ + m_screen->register_screen_bitmap(m_z_bitmap); /* z-buffer */ m_zoom_bitmap.allocate(16*16, 16*16); /* temp buffer for assembling sprites */ m_bg_bitmap.allocate(32*16, 32*16); /* temp buffer for assembling tilemaps */ m_bg_zoom = auto_alloc_array(machine(), UINT16, 256); diff --git a/src/mame/video/qix.c b/src/mame/video/qix.c index f52a7fe7c61..59b00c419fc 100644 --- a/src/mame/video/qix.c +++ b/src/mame/video/qix.c @@ -115,7 +115,7 @@ WRITE8_MEMBER(qix_state::qix_videoram_w) { /* update the screen in case the game is writing "behind" the beam - Zookeeper likes to do this */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* add in the upper bit of the address latch */ offset += (m_videoram_address[0] & 0x80) << 8; @@ -129,7 +129,7 @@ WRITE8_MEMBER(qix_state::slither_videoram_w) { /* update the screen in case the game is writing "behind" the beam - Zookeeper likes to do this */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* add in the upper bit of the address latch */ offset += (m_videoram_address[0] & 0x80) << 8; @@ -166,7 +166,7 @@ READ8_MEMBER(qix_state::qix_addresslatch_r) WRITE8_MEMBER(qix_state::qix_addresslatch_w) { /* update the screen in case the game is writing "behind" the beam */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* compute the value at the address latch */ offset = (m_videoram_address[0] << 8) | m_videoram_address[1]; @@ -179,7 +179,7 @@ WRITE8_MEMBER(qix_state::qix_addresslatch_w) WRITE8_MEMBER(qix_state::slither_addresslatch_w) { /* update the screen in case the game is writing "behind" the beam */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* compute the value at the address latch */ offset = (m_videoram_address[0] << 8) | m_videoram_address[1]; @@ -207,7 +207,7 @@ WRITE8_MEMBER(qix_state::qix_paletteram_w) /* trigger an update if a currently visible pen has changed */ if (((offset >> 8) == m_palette_bank) && (old_data != data)) - machine().primary_screen->update_now(); + m_screen->update_now(); } @@ -216,7 +216,7 @@ WRITE8_MEMBER(qix_state::qix_palettebank_w) /* set the bank value */ if (m_palette_bank != (data & 3)) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_palette_bank = data & 3; } diff --git a/src/mame/video/quasar.c b/src/mame/video/quasar.c index 7669ad93ea8..1d62c4c34b1 100644 --- a/src/mame/video/quasar.c +++ b/src/mame/video/quasar.c @@ -96,7 +96,7 @@ VIDEO_START_MEMBER(quasar_state,quasar) m_effectram = auto_alloc_array(machine(), UINT8, 0x400); /* create helper bitmap */ - machine().primary_screen->register_screen_bitmap(m_collision_background); + m_screen->register_screen_bitmap(m_collision_background); /* register save */ save_item(NAME(m_collision_background)); diff --git a/src/mame/video/rallyx.c b/src/mame/video/rallyx.c index e1ea35340d1..46189aeacb0 100644 --- a/src/mame/video/rallyx.c +++ b/src/mame/video/rallyx.c @@ -367,7 +367,7 @@ VIDEO_START_MEMBER(rallyx_state,locomotn) m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32); /* handle reduced visible area in some games */ - if (machine().primary_screen->visible_area().max_x == 32 * 8 - 1) + if (m_screen->visible_area().max_x == 32 * 8 - 1) { m_bg_tilemap->set_scrolldx(0, 32); m_fg_tilemap->set_scrolldx(0, 32); @@ -386,7 +386,7 @@ VIDEO_START_MEMBER(rallyx_state,commsega) m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32); /* handle reduced visible area in some games */ - if (machine().primary_screen->visible_area().max_x == 32 * 8 - 1) + if (m_screen->visible_area().max_x == 32 * 8 - 1) { m_bg_tilemap->set_scrolldx(0, 32); m_fg_tilemap->set_scrolldx(0, 32); diff --git a/src/mame/video/realbrk.c b/src/mame/video/realbrk.c index af6a665b98b..0011f874149 100644 --- a/src/mame/video/realbrk.c +++ b/src/mame/video/realbrk.c @@ -209,8 +209,8 @@ void realbrk_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) UINT16 *spriteram16 = m_spriteram; int offs; - int max_x = machine().primary_screen->width(); - int max_y = machine().primary_screen->height(); + int max_x = m_screen->width(); + int max_y = m_screen->height(); rectangle spritetile_clip(0, 31, 0, 31); @@ -371,8 +371,8 @@ void realbrk_state::dai2kaku_draw_sprites(bitmap_ind16 &bitmap,const rectangle & UINT16 *spriteram16 = m_spriteram; int offs; - int max_x = machine().primary_screen->width(); - int max_y = machine().primary_screen->height(); + int max_x = m_screen->width(); + int max_y = m_screen->height(); for ( offs = 0x3000/2; offs < 0x3600/2; offs += 2/2 ) { diff --git a/src/mame/video/rpunch.c b/src/mame/video/rpunch.c index a708eacfb4d..dad804b33ee 100644 --- a/src/mame/video/rpunch.c +++ b/src/mame/video/rpunch.c @@ -62,7 +62,7 @@ TIMER_CALLBACK_MEMBER(rpunch_state::crtc_interrupt_gen) { m_maincpu->set_input_line(1, HOLD_LINE); if (param != 0) - m_crtc_timer->adjust(machine().primary_screen->frame_period() / param, 0, machine().primary_screen->frame_period() / param); + m_crtc_timer->adjust(m_screen->frame_period() / param, 0, m_screen->frame_period() / param); } @@ -149,7 +149,7 @@ WRITE16_MEMBER(rpunch_state::rpunch_crtc_data_w) { /* only register we know about.... */ case 0x0b: - m_crtc_timer->adjust(machine().primary_screen->time_until_vblank_start(), (data == 0xc0) ? 2 : 1); + m_crtc_timer->adjust(m_screen->time_until_vblank_start(), (data == 0xc0) ? 2 : 1); break; default: diff --git a/src/mame/video/segag80r.c b/src/mame/video/segag80r.c index 78392faee35..577b0a6e0b7 100644 --- a/src/mame/video/segag80r.c +++ b/src/mame/video/segag80r.c @@ -332,7 +332,7 @@ WRITE8_MEMBER(segag80r_state::segag80r_video_port_w) READ8_MEMBER(segag80r_state::spaceod_back_port_r) { /* force an update to get the current detection value */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); return 0xfe | m_spaceod_bg_detect; } @@ -385,7 +385,7 @@ WRITE8_MEMBER(segag80r_state::spaceod_back_port_w) /* port 3: clears the background detection flag */ case 3: - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_spaceod_bg_detect = 0; break; diff --git a/src/mame/video/segag80v.c b/src/mame/video/segag80v.c index bd307ab11c3..05c34d0fb33 100644 --- a/src/mame/video/segag80v.c +++ b/src/mame/video/segag80v.c @@ -327,8 +327,8 @@ void segag80v_state::video_start() { assert_always(m_vectorram.bytes() != 0, "vectorram==0"); - m_min_x =machine().primary_screen->visible_area().min_x; - m_min_y =machine().primary_screen->visible_area().min_y; + m_min_x =m_screen->visible_area().min_x; + m_min_y =m_screen->visible_area().min_y; VIDEO_START_CALL_LEGACY(vector); } diff --git a/src/mame/video/segaic16.c b/src/mame/video/segaic16.c index f2e21258bee..302e9ac0a49 100644 --- a/src/mame/video/segaic16.c +++ b/src/mame/video/segaic16.c @@ -372,7 +372,8 @@ Quick review of the system16 hardware: const device_type SEGAIC16VID = &device_creator; segaic16_video_device::segaic16_video_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, SEGAIC16VID, "Sega 16-bit Video", tag, owner, clock, "segaic16_video", __FILE__) + : device_t(mconfig, SEGAIC16VID, "Sega 16-bit Video", tag, owner, clock, "segaic16_video", __FILE__), + device_video_interface(mconfig, *this) { } @@ -404,12 +405,12 @@ void segaic16_video_device::device_reset() * *************************************/ -void segaic16_video_device::segaic16_set_display_enable(screen_device &screen, int enable) +void segaic16_video_device::segaic16_set_display_enable(int enable) { enable = (enable != 0); if (segaic16_display_enable != enable) { - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); segaic16_display_enable = enable; } } @@ -1000,7 +1001,7 @@ TIMER_CALLBACK_MEMBER( segaic16_video_device::segaic16_tilemap_16b_latch_values } /* set a timer to do this again next frame */ - info->latch_timer->adjust(machine().primary_screen->time_until_pos(261), param); + info->latch_timer->adjust(m_screen->time_until_pos(261), param); } @@ -1166,16 +1167,15 @@ void segaic16_video_device::segaic16_tilemap_reset(screen_device &screen) * *************************************/ -void segaic16_video_device::segaic16_tilemap_set_bank(running_machine &machine, int which, int banknum, int offset) +void segaic16_video_device::segaic16_tilemap_set_bank(int which, int banknum, int offset) { struct tilemap_info *info = &bg_tilemap[which]; if (info->bank[banknum] != offset) { - screen_device &screen = *machine.primary_screen; - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); info->bank[banknum] = offset; - machine.tilemap().mark_all_dirty(); + machine().tilemap().mark_all_dirty(); } } @@ -1187,7 +1187,7 @@ void segaic16_video_device::segaic16_tilemap_set_bank(running_machine &machine, * *************************************/ -void segaic16_video_device::segaic16_tilemap_set_flip(running_machine &machine, int which, int flip) +void segaic16_video_device::segaic16_tilemap_set_flip(int which, int flip) { struct tilemap_info *info = &bg_tilemap[which]; int pagenum; @@ -1195,8 +1195,7 @@ void segaic16_video_device::segaic16_tilemap_set_flip(running_machine &machine, flip = (flip != 0); if (info->flip != flip) { - screen_device &screen = *machine.primary_screen; - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); info->flip = flip; info->textmap->set_flip(flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); for (pagenum = 0; pagenum < info->numpages; pagenum++) @@ -1212,15 +1211,14 @@ void segaic16_video_device::segaic16_tilemap_set_flip(running_machine &machine, * *************************************/ -void segaic16_video_device::segaic16_tilemap_set_rowscroll(running_machine &machine, int which, int enable) +void segaic16_video_device::segaic16_tilemap_set_rowscroll(int which, int enable) { struct tilemap_info *info = &bg_tilemap[which]; enable = (enable != 0); if (info->rowscroll != enable) { - screen_device &screen = *machine.primary_screen; - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); info->rowscroll = enable; } } @@ -1233,15 +1231,14 @@ void segaic16_video_device::segaic16_tilemap_set_rowscroll(running_machine &mach * *************************************/ -void segaic16_video_device::segaic16_tilemap_set_colscroll(running_machine &machine, int which, int enable) +void segaic16_video_device::segaic16_tilemap_set_colscroll(int which, int enable) { struct tilemap_info *info = &bg_tilemap[which]; enable = (enable != 0); if (info->colscroll != enable) { - screen_device &screen = *machine.primary_screen; - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); info->colscroll = enable; } } @@ -1277,7 +1274,7 @@ WRITE16_MEMBER( segaic16_video_device::segaic16_textram_0_w ) { /* certain ranges need immediate updates */ if (offset >= 0xe80/2) - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); COMBINE_DATA(&segaic16_textram_0[offset]); bg_tilemap[0].textmap->mark_tile_dirty(offset); diff --git a/src/mame/video/segaic16.h b/src/mame/video/segaic16.h index aa43147f61f..591a6577f37 100644 --- a/src/mame/video/segaic16.h +++ b/src/mame/video/segaic16.h @@ -89,7 +89,8 @@ struct rotate_info -class segaic16_video_device : public device_t +class segaic16_video_device : public device_t, + public device_video_interface { public: segaic16_video_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); @@ -100,10 +101,10 @@ public: UINT16 *segaic16_textram_0; UINT16 *segaic16_rotateram_0; - void segaic16_tilemap_set_colscroll(running_machine &machine, int which, int enable); - void segaic16_tilemap_set_rowscroll(running_machine &machine, int which, int enable); - void segaic16_tilemap_set_flip(running_machine &machine, int which, int flip); - void segaic16_tilemap_set_bank(running_machine &machine, int which, int banknum, int offset); + void segaic16_tilemap_set_colscroll(int which, int enable); + void segaic16_tilemap_set_rowscroll(int which, int enable); + void segaic16_tilemap_set_flip(int which, int flip); + void segaic16_tilemap_set_bank(int which, int banknum, int offset); void segaic16_tilemap_reset(screen_device &screen); void segaic16_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int map, int priority, int priority_mark); // void segaic16_tilemap_16b_draw_layer(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); @@ -116,7 +117,7 @@ public: struct rotate_info segaic16_rotate[SEGAIC16_MAX_ROTATE]; struct tilemap_info bg_tilemap[SEGAIC16_MAX_TILEMAPS]; - void segaic16_set_display_enable(screen_device &screen, int enable); + void segaic16_set_display_enable(int enable); void segaic16_tilemap_init(running_machine &machine, int which, int type, int colorbase, int xoffs, int numbanks); void segaic16_rotate_init(running_machine &machine, int which, int type, int colorbase); diff --git a/src/mame/video/segas18.c b/src/mame/video/segas18.c index 9b557cf5ae6..4036c18d51e 100644 --- a/src/mame/video/segas18.c +++ b/src/mame/video/segas18.c @@ -57,7 +57,7 @@ void segas18_state::video_start() { - m_temp_bitmap.allocate(machine().primary_screen->width(), machine().primary_screen->height()); + m_temp_bitmap.allocate(m_screen->width(), m_screen->height()); m_grayscale_enable = false; m_vdp_enable = false; m_vdp_mixing = 0; @@ -83,7 +83,7 @@ void segas18_state::set_grayscale(bool enable) { if (enable != m_grayscale_enable) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_grayscale_enable = enable; // mame_printf_debug("Grayscale = %02X\n", enable); } @@ -94,7 +94,7 @@ void segas18_state::set_vdp_enable(bool enable) { if (enable != m_vdp_enable) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_vdp_enable = enable; #if DEBUG_VDP mame_printf_debug("VDP enable = %02X\n", enable); @@ -107,7 +107,7 @@ void segas18_state::set_vdp_mixing(UINT8 mixing) { if (mixing != m_vdp_mixing) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_vdp_mixing = mixing; #if DEBUG_VDP mame_printf_debug("VDP mixing = %02X\n", mixing); diff --git a/src/mame/video/seta.c b/src/mame/video/seta.c index 0a709fd6a8b..88be36ff166 100644 --- a/src/mame/video/seta.c +++ b/src/mame/video/seta.c @@ -827,7 +827,7 @@ UINT32 seta_state::screen_update_seta_no_layers(screen_device &screen, bitmap_in set_pens(); bitmap.fill(0x1f0, cliprect); - m_seta001->draw_sprites(bitmap,cliprect,0x1000, 1); + m_seta001->draw_sprites(screen, bitmap,cliprect,0x1000, 1); return 0; } @@ -949,7 +949,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) if (order & 2) // layer-sprite priority? { - if (layers_ctrl & 8) m_seta001->draw_sprites(bitmap,cliprect,sprite_bank_size, sprite_setac); + if (layers_ctrl & 8) m_seta001->draw_sprites(screen, bitmap,cliprect,sprite_bank_size, sprite_setac); if(order & 4) { @@ -969,7 +969,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0); if (layers_ctrl & 1) m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0); - if (layers_ctrl & 8) m_seta001->draw_sprites(bitmap,cliprect,sprite_bank_size, sprite_setac); + if (layers_ctrl & 8) m_seta001->draw_sprites(screen, bitmap,cliprect,sprite_bank_size, sprite_setac); } } else @@ -979,7 +979,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) if (order & 2) // layer-sprite priority? { - if (layers_ctrl & 8) m_seta001->draw_sprites(bitmap,cliprect,sprite_bank_size, sprite_setac); + if (layers_ctrl & 8) m_seta001->draw_sprites(screen, bitmap,cliprect,sprite_bank_size, sprite_setac); if((order & 4) && m_paletteram2 != NULL) { @@ -1033,7 +1033,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) } } - if (layers_ctrl & 8) m_seta001->draw_sprites(bitmap,cliprect,sprite_bank_size, sprite_setac); + if (layers_ctrl & 8) m_seta001->draw_sprites(screen,bitmap,cliprect,sprite_bank_size, sprite_setac); } } diff --git a/src/mame/video/seta001.c b/src/mame/video/seta001.c index 9eea703ca2d..bdeb2bb0390 100644 --- a/src/mame/video/seta001.c +++ b/src/mame/video/seta001.c @@ -309,7 +309,7 @@ void seta001_device::draw_background( bitmap_ind16 &bitmap, const rectangle &cli } -void seta001_device::draw_foreground( bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size) +void seta001_device::draw_foreground( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size) { int screenflip = (m_spritectrl[0] & 0x40) >> 6; int i; @@ -334,7 +334,7 @@ void seta001_device::draw_foreground( bitmap_ind16 &bitmap, const rectangle &cli color_pointer += bank_size; } - int max_y = machine().primary_screen->height(); + int max_y = screen.height(); /* Draw up to 512 sprites, mjyuugi has glitches if you draw them all.. */ @@ -360,7 +360,7 @@ void seta001_device::draw_foreground( bitmap_ind16 &bitmap, const rectangle &cli if (screenflip) { sy = max_y - sy - +(machine().primary_screen->height() - (machine().primary_screen->visible_area().max_y + 1)); + +(screen.height() - (screen.visible_area().max_y + 1)); flipx = !flipx; flipy = !flipy; } @@ -447,8 +447,8 @@ void seta001_device::tnzs_eof( void ) } -void seta001_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac) +void seta001_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac) { draw_background(bitmap, cliprect, bank_size, setac); - draw_foreground(bitmap, cliprect, bank_size); + draw_foreground(screen, bitmap, cliprect, bank_size); } diff --git a/src/mame/video/seta001.h b/src/mame/video/seta001.h index de1544573f3..3dac90e9a6a 100644 --- a/src/mame/video/seta001.h +++ b/src/mame/video/seta001.h @@ -25,7 +25,7 @@ public: DECLARE_READ16_MEMBER( spritecode_r16 ); DECLARE_WRITE16_MEMBER( spritecode_w16 ); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac); void setac_eof( void ); void tnzs_eof( void ); @@ -71,7 +71,7 @@ protected: private: void draw_background( bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac_type); - void draw_foreground( bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size); + void draw_foreground( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size); }; diff --git a/src/mame/video/shangha3.c b/src/mame/video/shangha3.c index 39127b75b48..aafbe3c9a66 100644 --- a/src/mame/video/shangha3.c +++ b/src/mame/video/shangha3.c @@ -67,7 +67,7 @@ void shangha3_state::video_start() { int i; - machine().primary_screen->register_screen_bitmap(m_rawbitmap); + m_screen->register_screen_bitmap(m_rawbitmap); for (i = 0;i < 14;i++) m_drawmode_table[i] = DRAWMODE_SOURCE; diff --git a/src/mame/video/skullxbo.c b/src/mame/video/skullxbo.c index ff2504ebdc8..1e4411bf04d 100644 --- a/src/mame/video/skullxbo.c +++ b/src/mame/video/skullxbo.c @@ -97,7 +97,7 @@ WRITE16_MEMBER( skullxbo_state::skullxbo_xscroll_w ) /* if something changed, force an update */ if (oldscroll != newscroll) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* adjust the actual scrolls */ m_playfield_tilemap->set_scrollx(0, 2 * (newscroll >> 7)); @@ -111,7 +111,7 @@ WRITE16_MEMBER( skullxbo_state::skullxbo_xscroll_w ) WRITE16_MEMBER( skullxbo_state::skullxbo_yscroll_w ) { /* combine data */ - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); UINT16 oldscroll = *m_yscroll; UINT16 newscroll = oldscroll; UINT16 effscroll; @@ -119,10 +119,10 @@ WRITE16_MEMBER( skullxbo_state::skullxbo_yscroll_w ) /* if something changed, force an update */ if (oldscroll != newscroll) - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* adjust the effective scroll for the current scanline */ - if (scanline > machine().primary_screen->visible_area().max_y) + if (scanline > m_screen->visible_area().max_y) scanline = 0; effscroll = (newscroll >> 7) - scanline; @@ -144,7 +144,7 @@ WRITE16_MEMBER( skullxbo_state::skullxbo_yscroll_w ) WRITE16_MEMBER( skullxbo_state::skullxbo_mobmsb_w ) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_mob->set_bank((offset >> 9) & 1); } @@ -211,7 +211,7 @@ void skullxbo_state::skullxbo_scanline_update(int scanline) /* force a partial update with the previous scroll */ if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* update the new scroll */ m_playfield_tilemap->set_scrolly(0, newscroll); diff --git a/src/mame/video/skyfox.c b/src/mame/video/skyfox.c index aad1f064804..2f1633ad7e8 100644 --- a/src/mame/video/skyfox.c +++ b/src/mame/video/skyfox.c @@ -161,8 +161,8 @@ void skyfox_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect { int offs; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* The 32x32 tiles in the 80-ff range are bankswitched */ int shift =(m_bg_ctrl & 0x80) ? (4 - 1) : 4; diff --git a/src/mame/video/snes.c b/src/mame/video/snes.c index 61500cdad6e..b074ee098da 100644 --- a/src/mame/video/snes.c +++ b/src/mame/video/snes.c @@ -1643,8 +1643,11 @@ void snes_ppu_class::refresh_scanline( running_machine &machine, bitmap_rgb32 &b g_profiler.stop(); } -void snes_ppu_class::ppu_start(running_machine &machine) +void snes_ppu_class::ppu_start(screen_device &screen) { + m_screen = &screen; + running_machine &machine = screen.machine(); + #if SNES_LAYER_DEBUG memset(&debug_options, 0, sizeof(debug_options)); #endif @@ -1893,8 +1896,8 @@ READ8_MEMBER( snes_ppu_class::vram_read ) res = m_vram[offset]; else { - UINT16 v = space.machine().primary_screen->vpos(); - UINT16 h = space.machine().primary_screen->hpos(); + UINT16 v = m_screen->vpos(); + UINT16 h = m_screen->hpos(); UINT16 ls = (((m_stat78 & 0x10) == SNES_NTSC ? 525 : 625) >> 1) - 1; if (m_interlace == 2) @@ -1928,8 +1931,8 @@ WRITE8_MEMBER( snes_ppu_class::vram_write ) m_vram[offset] = data; else { - UINT16 v = space.machine().primary_screen->vpos(); - UINT16 h = space.machine().primary_screen->hpos(); + UINT16 v = m_screen->vpos(); + UINT16 h = m_screen->hpos(); if (v == 0) { if (h <= 4) @@ -1994,7 +1997,7 @@ READ8_MEMBER( snes_ppu_class::oam_read ) if (!m_screen_disabled) { - UINT16 v = space.machine().primary_screen->vpos(); + UINT16 v = m_screen->vpos(); if (v < m_beam.last_visible_line) offset = 0x010c; @@ -2012,7 +2015,7 @@ WRITE8_MEMBER( snes_ppu_class::oam_write ) if (!m_screen_disabled) { - UINT16 v = space.machine().primary_screen->vpos(); + UINT16 v = m_screen->vpos(); if (v < m_beam.last_visible_line) offset = 0x010c; @@ -2053,8 +2056,8 @@ READ8_MEMBER( snes_ppu_class::cgram_read ) #if 0 if (!m_screen_disabled) { - UINT16 v = space.machine().primary_screen->vpos(); - UINT16 h = space.machine().primary_screen->hpos(); + UINT16 v = m_screen->vpos(); + UINT16 h = m_screen->hpos(); if (v < m_beam.last_visible_line && h >= 128 && h < 1096) offset = 0x1ff; @@ -2081,8 +2084,8 @@ WRITE8_MEMBER( snes_ppu_class::cgram_write ) // writes to the cgram address if (!m_screen_disabled) { - UINT16 v = space.machine().primary_screen->vpos(); - UINT16 h = space.machine().primary_screen->hpos(); + UINT16 v = m_screen->vpos(); + UINT16 h = m_screen->hpos(); if (v < m_beam.last_visible_line && h >= 128 && h < 1096) offset = 0x1ff; diff --git a/src/mame/video/snk.c b/src/mame/video/snk.c index e39181818fd..7b320182a07 100644 --- a/src/mame/video/snk.c +++ b/src/mame/video/snk.c @@ -647,10 +647,10 @@ WRITE8_MEMBER(snk_state::tdfever_spriteram_w) /* partial updates avoid flickers in the fsoccer radar. */ if (offset < 0x80 && m_spriteram[offset] != data) { - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); if (vpos > 0) - machine().primary_screen->update_partial(vpos - 1); + m_screen->update_partial(vpos - 1); } m_spriteram[offset] = data; diff --git a/src/mame/video/snk68.c b/src/mame/video/snk68.c index 70a61da4f02..d3fc103cb3c 100644 --- a/src/mame/video/snk68.c +++ b/src/mame/video/snk68.c @@ -52,8 +52,8 @@ void snk68_state::common_video_start() { m_fg_tilemap->set_transparent_pen(0); - m_fg_tilemap->set_scrolldx(0, machine().primary_screen->width() - 256); - m_fg_tilemap->set_scrolldy(0, machine().primary_screen->height() - 256); + m_fg_tilemap->set_scrolldx(0, m_screen->width() - 256); + m_fg_tilemap->set_scrolldy(0, m_screen->height() - 256); } void snk68_state::video_start() @@ -99,10 +99,10 @@ WRITE16_MEMBER(snk68_state::pow_spriteram_w) if (spriteram16[offset] != newword) { - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); if (vpos > 0) - machine().primary_screen->update_partial(vpos - 1); + m_screen->update_partial(vpos - 1); spriteram16[offset] = newword; } diff --git a/src/mame/video/spacefb.c b/src/mame/video/spacefb.c index 927f07db870..5cfe1af0df5 100644 --- a/src/mame/video/spacefb.c +++ b/src/mame/video/spacefb.c @@ -17,14 +17,14 @@ WRITE8_MEMBER(spacefb_state::spacefb_port_0_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_port_0 = data; } WRITE8_MEMBER(spacefb_state::spacefb_port_2_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_port_2 = data; } @@ -78,8 +78,8 @@ void spacefb_state::video_start() 2, resistances_b, m_color_weights_b, 470, 0, 0, 0, 0, 0, 0); - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_object_present_map = auto_alloc_array(machine(), UINT8, width * height); /* this start value positions the stars to match the flyer screen shot, diff --git a/src/mame/video/spbactn.c b/src/mame/video/spbactn.c index 00fef2d69c8..fe1c7714624 100644 --- a/src/mame/video/spbactn.c +++ b/src/mame/video/spbactn.c @@ -74,8 +74,8 @@ TILE_GET_INFO_MEMBER(spbactn_state::get_fg_tile_info) VIDEO_START_MEMBER(spbactn_state,spbactn) { /* allocate bitmaps */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spbactn_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spbactn_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128); diff --git a/src/mame/video/spdodgeb.c b/src/mame/video/spdodgeb.c index a1ffd59d4f7..9ce315f06b4 100644 --- a/src/mame/video/spdodgeb.c +++ b/src/mame/video/spdodgeb.c @@ -89,12 +89,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(spdodgeb_state::spdodgeb_interrupt) if (scanline == 256) { m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); - machine().primary_screen->update_partial(256); + m_screen->update_partial(256); } else if ((scanline % 8) == 0) { m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE); - machine().primary_screen->update_partial(scanline+16); /* TODO: pretty off ... */ + m_screen->update_partial(scanline+16); /* TODO: pretty off ... */ } } diff --git a/src/mame/video/sprint2.c b/src/mame/video/sprint2.c index 0b974e3f3a1..e63bf87477e 100644 --- a/src/mame/video/sprint2.c +++ b/src/mame/video/sprint2.c @@ -44,7 +44,7 @@ TILE_GET_INFO_MEMBER(sprint2_state::get_tile_info) void sprint2_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sprint2_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); } @@ -144,7 +144,7 @@ void sprint2_state::screen_eof_sprint2(screen_device &screen, bool state) UINT8 *video_ram = m_video_ram; int i; int j; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* * Collisions are detected for both player cars: diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c index 57d19457c05..79d47d46e8a 100644 --- a/src/mame/video/sprint4.c +++ b/src/mame/video/sprint4.c @@ -49,7 +49,7 @@ TILE_GET_INFO_MEMBER(sprint4_state::sprint4_tile_info) void sprint4_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); m_playfield = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sprint4_state::sprint4_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } @@ -113,7 +113,7 @@ void sprint4_state::screen_eof_sprint4(screen_device &screen, bool state) rect.max_x = horz - 15 + machine().gfx[1]->width() - 1; rect.max_y = vert - 15 + machine().gfx[1]->height() - 1; - rect &= machine().primary_screen->visible_area(); + rect &= m_screen->visible_area(); m_playfield->draw(screen, m_helper, rect, 0, 0); diff --git a/src/mame/video/sprint8.c b/src/mame/video/sprint8.c index 738ee63558c..5d7e03e8b9f 100644 --- a/src/mame/video/sprint8.c +++ b/src/mame/video/sprint8.c @@ -113,8 +113,8 @@ WRITE8_MEMBER(sprint8_state::sprint8_video_ram_w) void sprint8_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); @@ -169,7 +169,7 @@ void sprint8_state::screen_eof_sprint8(screen_device &screen, bool state) { int x; int y; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_tilemap2->draw(screen, m_helper2, visarea, 0, 0); @@ -184,7 +184,7 @@ void sprint8_state::screen_eof_sprint8(screen_device &screen, bool state) for (x = visarea.min_x; x <= visarea.max_x; x++) if (p1[x] != 0x20 && p2[x] == 0x23) - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(y + 24, x), + machine().scheduler().timer_set(m_screen->time_until_pos(y + 24, x), timer_expired_delegate(FUNC(sprint8_state::sprint8_collision_callback),this), colortable_entry_get_value(machine().colortable, p1[x])); } diff --git a/src/mame/video/srmp2.c b/src/mame/video/srmp2.c index 458c3a75bed..8bb0811c859 100644 --- a/src/mame/video/srmp2.c +++ b/src/mame/video/srmp2.c @@ -64,7 +64,7 @@ UINT32 srmp2_state::screen_update_srmp2(screen_device &screen, bitmap_ind16 &bit m_seta001->set_bg_xoffsets( 0x00, 0x00 ); // bg not used? m_seta001->set_bg_yoffsets( 0x00, 0x00 ); // bg not used? - m_seta001->draw_sprites(bitmap,cliprect,0x1000, 1); + m_seta001->draw_sprites(screen,bitmap,cliprect,0x1000, 1); return 0; } @@ -79,7 +79,7 @@ UINT32 srmp2_state::screen_update_srmp3(screen_device &screen, bitmap_ind16 &bit m_seta001->set_gfxbank_callback( srmp3_gfxbank_callback ); - m_seta001->draw_sprites(bitmap,cliprect,0x1000, 1); + m_seta001->draw_sprites(screen,bitmap,cliprect,0x1000, 1); return 0; } @@ -95,6 +95,6 @@ UINT32 srmp2_state::screen_update_mjyuugi(screen_device &screen, bitmap_ind16 &b m_seta001->set_gfxbank_callback( srmp3_gfxbank_callback ); - m_seta001->draw_sprites(bitmap,cliprect,0x1000, 1); + m_seta001->draw_sprites(screen,bitmap,cliprect,0x1000, 1); return 0; } diff --git a/src/mame/video/ssv.c b/src/mame/video/ssv.c index bf4c534f34c..46cb754bd3e 100644 --- a/src/mame/video/ssv.c +++ b/src/mame/video/ssv.c @@ -371,7 +371,7 @@ VIDEO_START_MEMBER(ssv_state,gdfs) READ16_MEMBER(ssv_state::ssv_vblank_r) { - if (machine().primary_screen->vblank()) + if (m_screen->vblank()) return 0x2000 | 0x1000; else return 0x0000; @@ -727,7 +727,7 @@ void ssv_state::draw_row(bitmap_ind16 &bitmap, const rectangle &cliprect, int sx void ssv_state::draw_layer(bitmap_ind16 &bitmap, const rectangle &cliprect, int nr) { int sy; - for ( sy = 0; sy <= machine().primary_screen->visible_area().max_y; sy += 0x40 ) + for ( sy = 0; sy <= m_screen->visible_area().max_y; sy += 0x40 ) draw_row(bitmap, cliprect, 0, sy, nr); } diff --git a/src/mame/video/st0016.c b/src/mame/video/st0016.c index c83d0bf87ac..ef119ff9430 100644 --- a/src/mame/video/st0016.c +++ b/src/mame/video/st0016.c @@ -458,27 +458,27 @@ VIDEO_START_MEMBER(st0016_state,st0016) switch(st0016_game&0x3f) { case 0: //renju kizoku - machine().primary_screen->set_visible_area(0, 40*8-1, 0, 30*8-1); + m_screen->set_visible_area(0, 40*8-1, 0, 30*8-1); spr_dx=0; spr_dy=0; break; case 1: //neratte chu! - machine().primary_screen->set_visible_area(8,41*8-1,0,30*8-1); + m_screen->set_visible_area(8,41*8-1,0,30*8-1); spr_dx=0; spr_dy=8; break; case 4: //mayjinsen 1&2 - machine().primary_screen->set_visible_area(0,32*8-1,0,28*8-1); + m_screen->set_visible_area(0,32*8-1,0,28*8-1); break; case 10: - machine().primary_screen->set_visible_area(0,383,0,255); + m_screen->set_visible_area(0,383,0,255); break; case 11: - machine().primary_screen->set_visible_area(0,383,0,383); + m_screen->set_visible_area(0,383,0,383); break; } diff --git a/src/mame/video/starfire.c b/src/mame/video/starfire.c index 6aa29ce06db..78d37aa09cf 100644 --- a/src/mame/video/starfire.c +++ b/src/mame/video/starfire.c @@ -17,9 +17,9 @@ void starfire_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_starfire_screen); + m_screen->register_screen_bitmap(m_starfire_screen); m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(starfire_state::starfire_scanline_callback),this)); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(STARFIRE_VBEND), STARFIRE_VBEND); + m_scanline_timer->adjust(m_screen->time_until_pos(STARFIRE_VBEND), STARFIRE_VBEND); /* register for state saving */ save_item(NAME(m_starfire_vidctrl)); @@ -255,7 +255,7 @@ TIMER_CALLBACK_MEMBER(starfire_state::starfire_scanline_callback) y++; if (y >= STARFIRE_VBSTART) y = STARFIRE_VBEND; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(y), y); + m_scanline_timer->adjust(m_screen->time_until_pos(y), y); } UINT32 starfire_state::screen_update_starfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) diff --git a/src/mame/video/starshp1.c b/src/mame/video/starshp1.c index 495a460ea3f..a9b7e6a9386 100644 --- a/src/mame/video/starshp1.c +++ b/src/mame/video/starshp1.c @@ -79,16 +79,16 @@ void starshp1_state::video_start() val = (val << 1) | (bit & 1); } - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); } READ8_MEMBER(starshp1_state::starshp1_rng_r) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); - int x = machine().primary_screen->hpos(); - int y = machine().primary_screen->vpos(); + int width = m_screen->width(); + int height = m_screen->height(); + int x = m_screen->hpos(); + int y = m_screen->vpos(); /* the LFSR is only running in the non-blank region of the screen, so this is not quite right */ @@ -380,7 +380,7 @@ void starshp1_state::screen_eof_starshp1(screen_device &screen, bool state) if (state) { rectangle rect; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); rect.min_x = get_sprite_hpos(13); rect.min_y = get_sprite_vpos(13); diff --git a/src/mame/video/suna16.c b/src/mame/video/suna16.c index 1310dd0a8a3..3516a12ee11 100644 --- a/src/mame/video/suna16.c +++ b/src/mame/video/suna16.c @@ -118,8 +118,8 @@ WRITE16_MEMBER(suna16_state::suna16_paletteram16_w) void suna16_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16 *sprites, int gfx) { int offs; - int max_x = machine().primary_screen->width() - 8; - int max_y = machine().primary_screen->height() - 8; + int max_x = m_screen->width() - 8; + int max_y = m_screen->height() - 8; for ( offs = 0xfc00/2; offs < 0x10000/2 ; offs += 4/2 ) { diff --git a/src/mame/video/suna8.c b/src/mame/video/suna8.c index 2d4378b5767..a4e81323cab 100644 --- a/src/mame/video/suna8.c +++ b/src/mame/video/suna8.c @@ -225,8 +225,8 @@ void suna8_state::draw_normal_sprites(bitmap_ind16 &bitmap,const rectangle &clip int i; int mx = 0; // multisprite x counter - int max_x = machine().primary_screen->width() - 8; - int max_y = machine().primary_screen->height() - 8; + int max_x = m_screen->width() - 8; + int max_y = m_screen->height() - 8; for (i = 0x1d00; i < 0x2000; i += 4) { @@ -394,8 +394,8 @@ void suna8_state::draw_text_sprites(bitmap_ind16 &bitmap,const rectangle &clipre UINT8 *spriteram = m_spriteram; int i; - int max_x = machine().primary_screen->width() - 8; - int max_y = machine().primary_screen->height() - 8; + int max_x = m_screen->width() - 8; + int max_y = m_screen->height() - 8; for (i = 0x1900; i < 0x19ff; i += 4) { diff --git a/src/mame/video/system1.c b/src/mame/video/system1.c index 7eb73e2a60b..f0334ee0fb0 100644 --- a/src/mame/video/system1.c +++ b/src/mame/video/system1.c @@ -135,7 +135,7 @@ void system1_state::video_start_common(int pagecount) } /* allocate a temporary bitmap for sprite rendering */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); /* register for save stats */ save_item(NAME(m_video_mode)); @@ -187,19 +187,19 @@ WRITE8_MEMBER(system1_state::system1_videomode_w) READ8_MEMBER(system1_state::system1_mixer_collision_r) { - machine().primary_screen->update_now(); + m_screen->update_now(); return m_mix_collide[offset & 0x3f] | 0x7e | (m_mix_collide_summary << 7); } WRITE8_MEMBER(system1_state::system1_mixer_collision_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_mix_collide[offset & 0x3f] = 0; } WRITE8_MEMBER(system1_state::system1_mixer_collision_reset_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_mix_collide_summary = 0; } @@ -213,19 +213,19 @@ WRITE8_MEMBER(system1_state::system1_mixer_collision_reset_w) READ8_MEMBER(system1_state::system1_sprite_collision_r) { - machine().primary_screen->update_now(); + m_screen->update_now(); return m_sprite_collide[offset & 0x3ff] | 0x7e | (m_sprite_collide_summary << 7); } WRITE8_MEMBER(system1_state::system1_sprite_collision_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_sprite_collide[offset & 0x3ff] = 0; } WRITE8_MEMBER(system1_state::system1_sprite_collision_reset_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_sprite_collide_summary = 0; } @@ -271,7 +271,7 @@ WRITE8_MEMBER(system1_state::system1_videoram_w) /* force a partial update if the page is changing */ if (m_tilemap_pages > 2 && offset >= 0x740 && offset < 0x748 && offset % 2 == 0) - machine().primary_screen->update_now(); + m_screen->update_now(); } WRITE8_MEMBER(system1_state::system1_videoram_bank_w) diff --git a/src/mame/video/taito_b.c b/src/mame/video/taito_b.c index b71ec045b4f..a2ae8fab4e6 100644 --- a/src/mame/video/taito_b.c +++ b/src/mame/video/taito_b.c @@ -99,7 +99,7 @@ VIDEO_RESET_MEMBER(taitob_state,hitice) VIDEO_START_MEMBER(taitob_state,realpunc) { - m_realpunc_bitmap = auto_bitmap_ind16_alloc(machine(), machine().primary_screen->width(), machine().primary_screen->height()); + m_realpunc_bitmap = auto_bitmap_ind16_alloc(machine(), m_screen->width(), m_screen->height()); VIDEO_START_CALL_MEMBER(taitob_color_order0); } diff --git a/src/mame/video/taito_f3.c b/src/mame/video/taito_f3.c index 0a784905d1d..e72d4378ac7 100644 --- a/src/mame/video/taito_f3.c +++ b/src/mame/video/taito_f3.c @@ -636,7 +636,7 @@ VIDEO_START_MEMBER(taito_f3_state,f3) m_pixel_layer = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_pixel),this),TILEMAP_SCAN_COLS,8,8,64,32); m_pf_line_inf = auto_alloc_array(machine(), struct f3_playfield_line_inf, 5); m_sa_line_inf = auto_alloc_array(machine(), struct f3_spritealpha_line_inf, 1); - machine().primary_screen->register_screen_bitmap(m_pri_alp_bitmap); + m_screen->register_screen_bitmap(m_pri_alp_bitmap); m_tile_opaque_sp = auto_alloc_array(machine(), UINT8, machine().gfx[2]->elements()); for (i=0; i<8; i++) m_tile_opaque_pf[i] = auto_alloc_array(machine(), UINT8, machine().gfx[1]->elements()); diff --git a/src/mame/video/taitoair.c b/src/mame/video/taitoair.c index ec86cb17a85..53f831e4177 100644 --- a/src/mame/video/taitoair.c +++ b/src/mame/video/taitoair.c @@ -362,8 +362,8 @@ WRITE16_MEMBER(taitoair_state::dsp_flags_w) cliprect.min_x = 0; cliprect.min_y = 3*16; - cliprect.max_x = machine().primary_screen->width() - 1; - cliprect.max_y = machine().primary_screen->height() - 1; + cliprect.max_x = m_screen->width() - 1; + cliprect.max_y = m_screen->height() - 1; { /* clear and copy operation if offset is 0x3001 */ @@ -549,8 +549,8 @@ void taitoair_state::video_start() { int width, height; - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_framebuffer[0] = auto_bitmap_ind16_alloc(machine(), width, height); m_framebuffer[1] = auto_bitmap_ind16_alloc(machine(), width, height); //m_buffer3d = auto_bitmap_ind16_alloc(machine(), width, height); diff --git a/src/mame/video/taitojc.c b/src/mame/video/taitojc.c index 9d7fa81fc06..896a34fddf6 100644 --- a/src/mame/video/taitojc.c +++ b/src/mame/video/taitojc.c @@ -319,8 +319,8 @@ void taitojc_state::video_start() m_texture = auto_alloc_array(machine(), UINT8, 0x400000); - machine().primary_screen->register_screen_bitmap(m_framebuffer); - machine().primary_screen->register_screen_bitmap(m_zbuffer); + m_screen->register_screen_bitmap(m_framebuffer); + m_screen->register_screen_bitmap(m_zbuffer); /* create renderer */ m_renderer = auto_alloc(machine(), taitojc_renderer(machine(), &m_framebuffer, &m_zbuffer, m_texture)); @@ -764,6 +764,6 @@ void taitojc_renderer::render_polygons(running_machine &machine, UINT16 *polygon void taitojc_state::taitojc_clear_frame() { - m_framebuffer.fill(0, machine().primary_screen->visible_area()); - m_zbuffer.fill(0xffff, machine().primary_screen->visible_area()); + m_framebuffer.fill(0, m_screen->visible_area()); + m_zbuffer.fill(0xffff, m_screen->visible_area()); } diff --git a/src/mame/video/taitosj.c b/src/mame/video/taitosj.c index 7aa2724a879..4c6c74fd36a 100644 --- a/src/mame/video/taitosj.c +++ b/src/mame/video/taitosj.c @@ -174,8 +174,8 @@ void taitosj_state::video_start() for (i = 0; i < 3; i++) { - machine().primary_screen->register_screen_bitmap(m_layer_bitmap[i]); - machine().primary_screen->register_screen_bitmap(m_sprite_layer_collbitmap2[i]); + m_screen->register_screen_bitmap(m_layer_bitmap[i]); + m_screen->register_screen_bitmap(m_sprite_layer_collbitmap2[i]); } m_sprite_sprite_collbitmap1.allocate(32,32); @@ -388,8 +388,8 @@ void taitosj_state::check_sprite_sprite_collision() void taitosj_state::calculate_sprite_areas(int *sprites_on, rectangle *sprite_areas) { int which; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); for (which = 0; which < 0x20; which++) { diff --git a/src/mame/video/tank8.c b/src/mame/video/tank8.c index 798fe6c4edf..1b06410f0c1 100644 --- a/src/mame/video/tank8.c +++ b/src/mame/video/tank8.c @@ -101,9 +101,9 @@ TILE_GET_INFO_MEMBER(tank8_state::tank8_get_tile_info) void tank8_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); - machine().primary_screen->register_screen_bitmap(m_helper3); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper3); m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tank8_state::tank8_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); @@ -197,7 +197,7 @@ void tank8_state::screen_eof_tank8(screen_device &screen, bool state) { int x; int y; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_tilemap->draw(screen, m_helper1, visarea, 0, 0); @@ -215,7 +215,7 @@ void tank8_state::screen_eof_tank8(screen_device &screen, bool state) const UINT16* p2 = &m_helper2.pix16(y); const UINT16* p3 = &m_helper3.pix16(y); - if ((machine().primary_screen->frame_number() ^ y) & 1) + if ((m_screen->frame_number() ^ y) & 1) continue; /* video display is interlaced */ for (x = visarea.min_x; x <= visarea.max_x; x++) diff --git a/src/mame/video/tceptor.c b/src/mame/video/tceptor.c index 53e9740c729..6e7b2a25fb1 100644 --- a/src/mame/video/tceptor.c +++ b/src/mame/video/tceptor.c @@ -383,7 +383,7 @@ void tceptor_state::video_start() decode_sprite32("gfx4"); /* allocate temp bitmaps */ - machine().primary_screen->register_screen_bitmap(m_temp_bitmap); + m_screen->register_screen_bitmap(m_temp_bitmap); m_c45_road->set_transparent_color(colortable_entry_get_value(machine().colortable, 0xfff)); diff --git a/src/mame/video/tecmo16.c b/src/mame/video/tecmo16.c index 6fe785286be..1b091a65a2e 100644 --- a/src/mame/video/tecmo16.c +++ b/src/mame/video/tecmo16.c @@ -56,11 +56,11 @@ TILE_GET_INFO_MEMBER(tecmo16_state::tx_get_tile_info) void tecmo16_state::video_start() { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); @@ -78,11 +78,11 @@ void tecmo16_state::video_start() VIDEO_START_MEMBER(tecmo16_state,ginkun) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32); @@ -98,11 +98,11 @@ VIDEO_START_MEMBER(tecmo16_state,ginkun) VIDEO_START_MEMBER(tecmo16_state,riot) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32); diff --git a/src/mame/video/tia.c b/src/mame/video/tia.c index 8e53e9809d9..f9f3966750a 100644 --- a/src/mame/video/tia.c +++ b/src/mame/video/tia.c @@ -170,7 +170,8 @@ const device_type TIA_VIDEO = &device_creator; //------------------------------------------------- tia_video_device::tia_video_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, TIA_VIDEO, "TIA Video", tag, owner, clock, "tia_video", __FILE__) + : device_t(mconfig, TIA_VIDEO, "TIA Video", tag, owner, clock, "tia_video", __FILE__), + device_video_interface(mconfig, *this) { } @@ -208,9 +209,9 @@ void tia_video_device::device_start() m_vsync_callback_func.resolve(m_vsync_callback_cb, *this); - int cx = machine().primary_screen->width(); + int cx = m_screen->width(); - screen_height = machine().primary_screen->height(); + screen_height = m_screen->height(); helper[0] = auto_bitmap_ind16_alloc(machine(), cx, TIA_MAX_SCREEN_HEIGHT); helper[1] = auto_bitmap_ind16_alloc(machine(), cx, TIA_MAX_SCREEN_HEIGHT); helper[2] = auto_bitmap_ind16_alloc(machine(), cx, TIA_MAX_SCREEN_HEIGHT); @@ -813,8 +814,8 @@ WRITE8_MEMBER( tia_video_device::VSYNC_w ) if ( curr_y > 5 ) update_bitmap( - machine().primary_screen->width(), - machine().primary_screen->height()); + m_screen->width(), + m_screen->height()); if ( !m_vsync_callback_func.isnull() ) { m_vsync_callback_func(0, curr_y, 0xFFFF ); diff --git a/src/mame/video/tia.h b/src/mame/video/tia.h index 56218830885..a296dc7be07 100644 --- a/src/mame/video/tia.h +++ b/src/mame/video/tia.h @@ -49,6 +49,7 @@ struct tia_interface { // ======================> tia_video_device class tia_video_device : public device_t, + public device_video_interface, public tia_interface { public: diff --git a/src/mame/video/timeplt.c b/src/mame/video/timeplt.c index 439356f7271..af74fa0d4fd 100644 --- a/src/mame/video/timeplt.c +++ b/src/mame/video/timeplt.c @@ -160,7 +160,7 @@ WRITE8_MEMBER(timeplt_state::timeplt_flipscreen_w) READ8_MEMBER(timeplt_state::timeplt_scanline_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/video/tnzs.c b/src/mame/video/tnzs.c index f244acbe5f4..2303f4b5787 100644 --- a/src/mame/video/tnzs.c +++ b/src/mame/video/tnzs.c @@ -49,7 +49,7 @@ UINT32 tnzs_state::screen_update_tnzs(screen_device &screen, bitmap_ind16 &bitma m_seta001->set_fg_yoffsets( -0x12, 0x0e ); m_seta001->set_bg_yoffsets( 0x1, -0x1 ); - m_seta001->draw_sprites(bitmap, cliprect, 0x800, 0 ); + m_seta001->draw_sprites(screen, bitmap, cliprect, 0x800, 0 ); return 0; } diff --git a/src/mame/video/toaplan1.c b/src/mame/video/toaplan1.c index 270b9af648f..afac4584b72 100644 --- a/src/mame/video/toaplan1.c +++ b/src/mame/video/toaplan1.c @@ -317,7 +317,7 @@ void toaplan1_state::register_common() VIDEO_START_MEMBER(toaplan1_rallybik_state,rallybik) { - m_spritegen->alloc_sprite_bitmap(); + m_spritegen->alloc_sprite_bitmap(*m_screen); m_spritegen->set_gfx_region(1); toaplan1_create_tilemaps(); @@ -373,7 +373,7 @@ VIDEO_START_MEMBER(toaplan1_state,toaplan1) READ16_MEMBER(toaplan1_state::toaplan1_frame_done_r) { - return machine().primary_screen->vblank(); + return m_screen->vblank(); } WRITE16_MEMBER(toaplan1_state::toaplan1_tile_offsets_w) @@ -428,7 +428,7 @@ WRITE16_MEMBER(toaplan1_state::toaplan1_bcu_flipscreen_w) machine().tilemap().set_flip_all((data ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0)); if (m_bcu_flipscreen) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_scrollx_offs1 = 0x151 - 6; m_scrollx_offs2 = 0x151 - 4; @@ -1028,7 +1028,7 @@ void toaplan1_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c /****** flip the sprite layer ******/ if (fcu_flipscreen) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); sx_base = visarea.width() - (sx_base + 8); /* visarea.x = 320 */ sy_base = visarea.height() - (sy_base + 8); /* visarea.y = 240 */ diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c index 756320db85c..6eede6c3111 100644 --- a/src/mame/video/toaplan2.c +++ b/src/mame/video/toaplan2.c @@ -81,7 +81,7 @@ VIDEO_START_MEMBER(toaplan2_state,toaplan2) m_vdp1 = machine().device("gp9001vdp1"); /* our current VDP implementation needs this bitmap to work with */ - machine().primary_screen->register_screen_bitmap(m_custom_priority_bitmap); + m_screen->register_screen_bitmap(m_custom_priority_bitmap); if (m_vdp0 != NULL) { @@ -91,7 +91,7 @@ VIDEO_START_MEMBER(toaplan2_state,toaplan2) if (m_vdp1 != NULL) { - machine().primary_screen->register_screen_bitmap(m_secondary_render_bitmap); + m_screen->register_screen_bitmap(m_secondary_render_bitmap); m_vdp1->custom_priority_bitmap = &m_custom_priority_bitmap; } diff --git a/src/mame/video/toaplan_scu.c b/src/mame/video/toaplan_scu.c index e76a677576b..6db8d6a79c8 100644 --- a/src/mame/video/toaplan_scu.c +++ b/src/mame/video/toaplan_scu.c @@ -24,9 +24,9 @@ void toaplan_scu_device::device_reset() { } -void toaplan_scu_device::alloc_sprite_bitmap() +void toaplan_scu_device::alloc_sprite_bitmap(screen_device &screen) { - machine().primary_screen->register_screen_bitmap(m_temp_spritebitmap); + screen.register_screen_bitmap(m_temp_spritebitmap); } void toaplan_scu_device::set_gfx_region(int region) diff --git a/src/mame/video/toaplan_scu.h b/src/mame/video/toaplan_scu.h index dc8ba4e0803..13b2c735118 100644 --- a/src/mame/video/toaplan_scu.h +++ b/src/mame/video/toaplan_scu.h @@ -9,7 +9,7 @@ public: void draw_sprites_to_tempbitmap(const rectangle &cliprect, UINT16* spriteram, UINT32 bytes ); void copy_sprites_from_tempbitmap(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); - void alloc_sprite_bitmap(); + void alloc_sprite_bitmap(screen_device &screen); void set_gfx_region(int region); protected: diff --git a/src/mame/video/toki.c b/src/mame/video/toki.c index d9bc86fd39e..fc58b61daf5 100644 --- a/src/mame/video/toki.c +++ b/src/mame/video/toki.c @@ -28,7 +28,7 @@ remove all the code writing the $a0000 area.) WRITE16_MEMBER(toki_state::toki_control_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1); + m_screen->update_partial(m_screen->vpos() - 1); COMBINE_DATA(&m_scrollram16[offset]); } diff --git a/src/mame/video/toobin.c b/src/mame/video/toobin.c index 9b2fe5a6eff..1ff31180eeb 100644 --- a/src/mame/video/toobin.c +++ b/src/mame/video/toobin.c @@ -80,7 +80,7 @@ VIDEO_START_MEMBER(toobin_state,toobin) { /* allocate a playfield bitmap for rendering */ - machine().primary_screen->register_screen_bitmap(m_pfbitmap); + m_screen->register_screen_bitmap(m_pfbitmap); save_item(NAME(m_brightness)); } @@ -148,7 +148,7 @@ WRITE16_MEMBER( toobin_state::toobin_xscroll_w ) /* if anything has changed, force a partial update */ if (newscroll != oldscroll) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* update the playfield scrolling - hscroll is clocked on the following scanline */ m_playfield_tilemap->set_scrollx(0, newscroll >> 6); @@ -167,7 +167,7 @@ WRITE16_MEMBER( toobin_state::toobin_yscroll_w ) /* if anything has changed, force a partial update */ if (newscroll != oldscroll) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* if bit 4 is zero, the scroll value is clocked in right away */ m_playfield_tilemap->set_scrolly(0, newscroll >> 6); @@ -193,7 +193,7 @@ WRITE16_MEMBER( toobin_state::toobin_slip_w ) /* if the SLIP is changing, force a partial update first */ if (oldslip != newslip) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* update the data */ m_mob->slipram(offset) = newslip; diff --git a/src/mame/video/tp84.c b/src/mame/video/tp84.c index c41a0a29b6e..20a800ee57b 100644 --- a/src/mame/video/tp84.c +++ b/src/mame/video/tp84.c @@ -107,7 +107,7 @@ void tp84_state::palette_init() WRITE8_MEMBER(tp84_state::tp84_spriteram_w) { /* the game multiplexes the sprites, so update now */ - machine().primary_screen->update_now(); + m_screen->update_now(); m_spriteram[offset] = data; } @@ -115,7 +115,7 @@ WRITE8_MEMBER(tp84_state::tp84_spriteram_w) READ8_MEMBER(tp84_state::tp84_scanline_r) { /* reads 1V - 128V */ - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/video/triplhnt.c b/src/mame/video/triplhnt.c index d26fd3b53d0..2042f8b04df 100644 --- a/src/mame/video/triplhnt.c +++ b/src/mame/video/triplhnt.c @@ -18,7 +18,7 @@ TILE_GET_INFO_MEMBER(triplhnt_state::get_tile_info) void triplhnt_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(triplhnt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); } @@ -105,7 +105,7 @@ void triplhnt_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec } if (hit_line != 999 && hit_code != 999) - timer_set(machine().primary_screen->time_until_pos(hit_line), TIMER_HIT, hit_code); + timer_set(m_screen->time_until_pos(hit_line), TIMER_HIT, hit_code); } diff --git a/src/mame/video/tunhunt.c b/src/mame/video/tunhunt.c index 8303b6e9fe1..60d7ebfb6fa 100644 --- a/src/mame/video/tunhunt.c +++ b/src/mame/video/tunhunt.c @@ -72,7 +72,7 @@ void tunhunt_state::video_start() With max RLE expansion, bitmap size is 256x64. */ - m_tmpbitmap.allocate(256, 64, machine().primary_screen->format()); + m_tmpbitmap.allocate(256, 64, m_screen->format()); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tunhunt_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32); diff --git a/src/mame/video/turbo.c b/src/mame/video/turbo.c index 95341949276..bffcc00502a 100644 --- a/src/mame/video/turbo.c +++ b/src/mame/video/turbo.c @@ -188,7 +188,7 @@ WRITE8_MEMBER(turbo_state::turbo_videoram_w) m_videoram[offset] = data; if (offset < 0x400) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_fg_tilemap->mark_tile_dirty(offset); } } diff --git a/src/mame/video/twin16.c b/src/mame/video/twin16.c index 8a57bd2a716..37b3d6ae7a3 100644 --- a/src/mame/video/twin16.c +++ b/src/mame/video/twin16.c @@ -148,7 +148,7 @@ int twin16_state::twin16_set_sprite_timer( ) // sprite system busy, maybe a dma? time is guessed, assume 4 scanlines m_sprite_busy = 1; - m_sprite_timer->adjust(machine().primary_screen->frame_period() / machine().primary_screen->height() * 4); + m_sprite_timer->adjust(m_screen->frame_period() / m_screen->height() * 4); return 0; } diff --git a/src/mame/video/twincobr.c b/src/mame/video/twincobr.c index 6112957fdca..c8928e972f7 100644 --- a/src/mame/video/twincobr.c +++ b/src/mame/video/twincobr.c @@ -96,7 +96,7 @@ void twincobr_state::twincobr_create_tilemaps() VIDEO_START_MEMBER(twincobr_state,toaplan0) { - m_spritegen->alloc_sprite_bitmap(); + m_spritegen->alloc_sprite_bitmap(*m_screen); m_spritegen->set_gfx_region(3); /* the video RAM is accessed via ports, it's not memory mapped */ diff --git a/src/mame/video/tx1.c b/src/mame/video/tx1.c index c210022d498..170cb4dcfba 100644 --- a/src/mame/video/tx1.c +++ b/src/mame/video/tx1.c @@ -36,7 +36,7 @@ TIMER_CALLBACK_MEMBER(tx1_state::interrupt_callback) { m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_interrupt_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } @@ -1112,7 +1112,7 @@ VIDEO_START_MEMBER(tx1_state,tx1) m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tx1_state::interrupt_callback),this)); /* /CUDISP CRTC interrupt */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_interrupt_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } void tx1_state::screen_eof_tx1(screen_device &screen, bool state) @@ -3006,7 +3006,7 @@ VIDEO_START_MEMBER(tx1_state,buggyboy) m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tx1_state::interrupt_callback),this)); /* /CUDISP CRTC interrupt */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_interrupt_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } VIDEO_START_MEMBER(tx1_state,buggybjr) @@ -3020,7 +3020,7 @@ VIDEO_START_MEMBER(tx1_state,buggybjr) m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tx1_state::interrupt_callback),this)); /* /CUDISP CRTC interrupt */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_interrupt_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } void tx1_state::screen_eof_buggyboy(screen_device &screen, bool state) diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c index 1f0ff193753..24ccdf19425 100644 --- a/src/mame/video/ultratnk.c +++ b/src/mame/video/ultratnk.c @@ -48,7 +48,7 @@ TILE_GET_INFO_MEMBER(ultratnk_state::ultratnk_tile_info) void ultratnk_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); m_playfield = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ultratnk_state::ultratnk_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } @@ -117,7 +117,7 @@ void ultratnk_state::screen_eof_ultratnk(screen_device &screen, bool state) rect.max_x = horz - 15 + machine().gfx[1]->width() - 1; rect.max_y = vert - 15 + machine().gfx[1]->height() - 1; - rect &= machine().primary_screen->visible_area(); + rect &= m_screen->visible_area(); m_playfield->draw(screen, m_helper, rect, 0, 0); diff --git a/src/mame/video/vicdual.c b/src/mame/video/vicdual.c index 67dd6d55015..b2205dfbf59 100644 --- a/src/mame/video/vicdual.c +++ b/src/mame/video/vicdual.c @@ -23,7 +23,7 @@ static const pen_t pens_from_color_prom[] = WRITE8_MEMBER(vicdual_state::vicdual_palette_bank_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_palette_bank = data & 3; } diff --git a/src/mame/video/victory.c b/src/mame/video/victory.c index f86227be466..6ba3e3d544f 100644 --- a/src/mame/video/victory.c +++ b/src/mame/video/victory.c @@ -156,7 +156,7 @@ READ8_MEMBER(victory_state::victory_video_control_r) result |= (~m_fgcoll & 1) << 6; result |= (~m_vblank_irq & 1) << 5; result |= (~m_bgcoll & 1) << 4; - result |= (machine().primary_screen->vpos() & 0x100) >> 5; + result |= (m_screen->vpos() & 0x100) >> 5; if (LOG_COLLISION) logerror("%04X:5STAT read = %02X\n", space.device().safe_pcbase(), result); return result; diff --git a/src/mame/video/volfied.c b/src/mame/video/volfied.c index 0196295947a..f3b906521bc 100644 --- a/src/mame/video/volfied.c +++ b/src/mame/video/volfied.c @@ -90,8 +90,8 @@ void volfied_state::refresh_pixel_layer( bitmap_ind16 &bitmap ) *********************************************************/ UINT16* p = m_video_ram; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_video_ctrl & 1) p += 0x20000; diff --git a/src/mame/video/wecleman.c b/src/mame/video/wecleman.c index 9c82c422947..8e5900df38f 100644 --- a/src/mame/video/wecleman.c +++ b/src/mame/video/wecleman.c @@ -894,7 +894,7 @@ VIDEO_START_MEMBER(wecleman_state,wecleman) UINT8 *buffer; int i, j; - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); buffer = auto_alloc_array(machine(), UINT8, 0x12c00); // working buffer for sprite operations m_gameid = 0; diff --git a/src/mame/video/williams.c b/src/mame/video/williams.c index 9653667fe71..14679f3d43c 100644 --- a/src/mame/video/williams.c +++ b/src/mame/video/williams.c @@ -329,8 +329,8 @@ WRITE8_MEMBER(williams_state::williams2_fg_select_w) READ8_MEMBER(williams_state::williams_video_counter_r) { - if (machine().primary_screen->vpos() < 0x100) - return machine().primary_screen->vpos() & 0xfc; + if (m_screen->vpos() < 0x100) + return m_screen->vpos() & 0xfc; else return 0xfc; } @@ -338,8 +338,8 @@ READ8_MEMBER(williams_state::williams_video_counter_r) READ8_MEMBER(williams_state::williams2_video_counter_r) { - if (machine().primary_screen->vpos() < 0x100) - return machine().primary_screen->vpos() & 0xfc; + if (m_screen->vpos() < 0x100) + return m_screen->vpos() & 0xfc; else return 0xfc; } @@ -524,7 +524,7 @@ WRITE8_MEMBER(williams_state::williams_blitter_w) /* Log blits */ logerror("%04X:Blit @ %3d : %02X%02X -> %02X%02X, %3dx%3d, mask=%02X, flags=%02X, icount=%d, win=%d\n", - space.device().safe_pc(), machine().primary_screen->vpos(), + space.device().safe_pc(), m_screen->vpos(), m_blitterram[2], m_blitterram[3], m_blitterram[4], m_blitterram[5], m_blitterram[6], m_blitterram[7], diff --git a/src/mame/video/wolfpack.c b/src/mame/video/wolfpack.c index 4236cdc7133..344128bb1e4 100644 --- a/src/mame/video/wolfpack.c +++ b/src/mame/video/wolfpack.c @@ -103,7 +103,7 @@ void wolfpack_state::video_start() m_LFSR = auto_alloc_array(machine(), UINT8, 0x8000); - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); for (i = 0; i < 0x8000; i++) { diff --git a/src/mame/video/xexex.c b/src/mame/video/xexex.c index 7c96e7a0419..05cc603bc2e 100644 --- a/src/mame/video/xexex.c +++ b/src/mame/video/xexex.c @@ -32,7 +32,7 @@ void xexex_tile_callback(running_machine &machine, int layer, int *code, int *co void xexex_state::video_start() { - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); m_cur_alpha = 0; diff --git a/src/mame/video/xmen.c b/src/mame/video/xmen.c index aacf920872a..17b554e7de4 100644 --- a/src/mame/video/xmen.c +++ b/src/mame/video/xmen.c @@ -147,14 +147,14 @@ void xmen_state::screen_eof_xmen6p(screen_device &screen, bool state) rectangle cliprect; int offset; - // const rectangle *visarea = machine().primary_screen->visible_area(); + // const rectangle *visarea = m_screen->visible_area(); // cliprect = *visarea; cliprect.set(0, 64 * 8 - 1, 2 * 8, 30 * 8 - 1); address_space &space = machine().driver_data()->generic_space(); - if (machine().primary_screen->frame_number() & 0x01) + if (m_screen->frame_number() & 0x01) { /* copy the desired spritelist to the chip */ memcpy(m_k053247_ram, m_xmen6p_spriteramright, 0x1000); diff --git a/src/mame/video/yunsun16.c b/src/mame/video/yunsun16.c index 416779c2829..451387914a1 100644 --- a/src/mame/video/yunsun16.c +++ b/src/mame/video/yunsun16.c @@ -131,7 +131,7 @@ void yunsun16_state::video_start() void yunsun16_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int offs; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int max_x = visarea.max_x + 1; int max_y = visarea.max_y + 1; diff --git a/src/mame/video/zac2650.c b/src/mame/video/zac2650.c index 197e91738a2..707bf03825d 100644 --- a/src/mame/video/zac2650.c +++ b/src/mame/video/zac2650.c @@ -52,7 +52,7 @@ int zac2650_state::SpriteCollision(int first,int second) { int Checksum=0; int x,y; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); if((m_s2636_0_ram[first * 0x10 + 10] < 0xf0) && (m_s2636_0_ram[second * 0x10 + 10] < 0xf0)) { @@ -123,8 +123,8 @@ void zac2650_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(zac2650_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 24, 24, 32, 32); - machine().primary_screen->register_screen_bitmap(m_bitmap); - machine().primary_screen->register_screen_bitmap(m_spritebitmap); + m_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_spritebitmap); machine().gfx[1]->set_source(m_s2636_0_ram); machine().gfx[2]->set_source(m_s2636_0_ram); @@ -133,7 +133,7 @@ void zac2650_state::video_start() void zac2650_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) { int offs; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* -------------------------------------------------------------- */ /* There seems to be a strange setup with this board, in that it */ diff --git a/src/mame/video/zaxxon.c b/src/mame/video/zaxxon.c index a3e66fa566c..864987495c4 100644 --- a/src/mame/video/zaxxon.c +++ b/src/mame/video/zaxxon.c @@ -131,8 +131,8 @@ void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info) /* configure the foreground tilemap */ m_fg_tilemap->set_transparent_pen(0); - m_fg_tilemap->set_scrolldx(0, machine().primary_screen->width() - 256); - m_fg_tilemap->set_scrolldy(0, machine().primary_screen->height() - 256); + m_fg_tilemap->set_scrolldx(0, m_screen->width() - 256); + m_fg_tilemap->set_scrolldy(0, m_screen->height() - 256); /* register for save states */ save_item(NAME(m_bg_enable));