diff --git a/src/devices/video/huc6270.cpp b/src/devices/video/huc6270.cpp index 4d4953e805e..d72aa4a3281 100644 --- a/src/devices/video/huc6270.cpp +++ b/src/devices/video/huc6270.cpp @@ -364,7 +364,6 @@ inline void huc6270_device::next_horz_state() { case h_state::HDS: m_bxr_latched = m_bxr; - //LOG("latched bxr vpos=%d, hpos=%d\n", video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen())); m_horz_state = h_state::HDW; m_horz_to_go = ( m_hdr & 0x7F ) + 1; { @@ -673,24 +672,20 @@ WRITE8_MEMBER( huc6270_device::write ) case RCR: /* raster compare register LSB */ m_rcr = ( m_rcr & 0x0300 ) | data; -//printf("%s: RCR set to %03x\n", machine().describe_context(), m_rcr); // if ( m_raster_count == m_rcr && m_cr & 0x04 ) // { // m_status |= HUC6270_RR; // m_irq_changed_cb( ASSERT_LINE ); // } -//LOG("%04x: RCR (%03x) written at %d,%d\n", activecpu_get_pc(), huc6270->m_rcr, video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen()) ); break; case BXR: /* background x-scroll register LSB */ m_bxr = ( m_bxr & 0x0300 ) | data; -//LOG("*********************** BXR written %d at %d,%d\n", m_bxr, video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen()) ); break; case BYR: /* background y-scroll register LSB */ m_byr = ( m_byr & 0x0100 ) | data; m_byr_latched = m_byr; -//LOG("******************** BYR written %d at %d,%d\n", huc6270->m_byr, video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen()) ); break; case MWR: /* memory width register LSB */ diff --git a/src/mame/includes/kc.h b/src/mame/includes/kc.h index 79168d93de0..1935c9eccc7 100644 --- a/src/mame/includes/kc.h +++ b/src/mame/includes/kc.h @@ -25,6 +25,7 @@ #include "cpu/z80/z80daisy.h" #include "sound/spkrdev.h" #include "sound/wave.h" +#include "screen.h" // Devices #include "imagedev/cassette.h" @@ -54,18 +55,18 @@ // cassette input polling frequency #define KC_CASSETTE_TIMER_FREQUENCY attotime::from_hz(44100) - class kc_state : public driver_device { public: kc_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_z80pio(*this, "z80pio"), - m_z80ctc(*this, "z80ctc"), - m_ram(*this, RAM_TAG), - m_speaker(*this, "speaker"), - m_cassette(*this, "cassette") + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_z80pio(*this, "z80pio") + , m_z80ctc(*this, "z80ctc") + , m_ram(*this, RAM_TAG) + , m_speaker(*this, "speaker") + , m_cassette(*this, "cassette") + , m_screen(*this, "screen") { } required_device m_maincpu; @@ -74,6 +75,7 @@ public: required_device m_ram; required_device m_speaker; required_device m_cassette; + required_device m_screen; // defined in machine/kc.c virtual void machine_start() override; diff --git a/src/mame/video/733_asr.cpp b/src/mame/video/733_asr.cpp index af2f2c4e6ca..226b8e3a250 100644 --- a/src/mame/video/733_asr.cpp +++ b/src/mame/video/733_asr.cpp @@ -82,10 +82,11 @@ PALETTE_INIT_MEMBER(asr733_device, asr733) DEFINE_DEVICE_TYPE(ASR733, asr733_device, "asr733", "733 ASR") asr733_device::asr733_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASR733, tag, owner, clock), - device_gfx_interface(mconfig, *this, GFXDECODE_NAME(asr733), "palette"), - m_keyint_line(*this), - m_lineint_line(*this) + : device_t(mconfig, ASR733, tag, owner, clock) + , device_gfx_interface(mconfig, *this, GFXDECODE_NAME(asr733), "palette") + , m_screen(*this, "screen") + , m_keyint_line(*this) + , m_lineint_line(*this) { } @@ -95,10 +96,9 @@ asr733_device::asr733_device(const machine_config &mconfig, const char *tag, dev void asr733_device::device_start() { - screen_device *screen = machine().first_screen(); - int width = screen->width(); - int height = screen->height(); - const rectangle &visarea = screen->visible_area(); + int width = m_screen->width(); + int height = m_screen->height(); + const rectangle &visarea = m_screen->visible_area(); m_last_key_pressed = 0x80; m_bitmap = std::make_unique(width, height); diff --git a/src/mame/video/733_asr.h b/src/mame/video/733_asr.h index 7d623abc35a..ba5612ba371 100644 --- a/src/mame/video/733_asr.h +++ b/src/mame/video/733_asr.h @@ -59,6 +59,8 @@ private: uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + required_device m_screen; + emu_timer *m_line_timer; // screen line timer uint8_t m_recv_buf; diff --git a/src/mame/video/kc.cpp b/src/mame/video/kc.cpp index 04aad5206b8..a9a346c1844 100644 --- a/src/mame/video/kc.cpp +++ b/src/mame/video/kc.cpp @@ -61,8 +61,7 @@ WRITE_LINE_MEMBER( kc_state::video_toggle_blink_state ) { if (state) { - machine().first_screen()->update_partial(machine().first_screen()->vpos()); - + m_screen->update_partial(m_screen->vpos()); m_kc85_blink_state = !m_kc85_blink_state; } } diff --git a/src/osd/modules/render/aviwrite.cpp b/src/osd/modules/render/aviwrite.cpp index 0bdfd3d0e8b..b1a4a013af4 100644 --- a/src/osd/modules/render/aviwrite.cpp +++ b/src/osd/modules/render/aviwrite.cpp @@ -56,10 +56,11 @@ void avi_write::begin_avi_recording(const char *name) m_frame = 0; m_next_frame_time = m_machine.time(); + const screen_device *primary_screen = screen_device_iterator(m_machine.root_device()).first(); // build up information about this new movie avi_file::movie_info info; info.video_format = 0; - info.video_timescale = 1000 * ((m_machine.first_screen() != nullptr) ? ATTOSECONDS_TO_HZ(m_machine.first_screen()->frame_period().m_attoseconds) : screen_device::DEFAULT_FRAME_RATE); + info.video_timescale = 1000 * (primary_screen ? ATTOSECONDS_TO_HZ(primary_screen->frame_period().m_attoseconds) : screen_device::DEFAULT_FRAME_RATE); info.video_sampletime = 1000; info.video_numsamples = 0; info.video_width = m_width;