static TIMER_CALLBACK( display_position_vblank_callback ) { if (display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_VBLANK) { if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_VBLANK "); adjust_display_position_interrupt_timer(machine); } /* set timer for next screen */ timer_adjust_oneshot(display_position_vblank_timer, video_screen_get_time_until_pos(machine->primary_screen, NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS), 0); }
void neogeo_state::neogeo_set_display_counter_lsb( UINT16 data ) { m_display_counter = (m_display_counter & 0xffff0000) | data; if (LOG_VIDEO_SYSTEM) logerror("PC %06x: set_display_counter %08x\n", m_maincpu->pc(), m_display_counter); if (m_display_position_interrupt_control & IRQ2CTRL_LOAD_RELATIVE) { if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_RELATIVE "); adjust_display_position_interrupt_timer(); } }
void neogeo_set_display_counter_lsb(const address_space *space, UINT16 data) { display_counter = (display_counter & 0xffff0000) | data; if (LOG_VIDEO_SYSTEM) logerror("PC %06x: set_display_counter %08x\n", cpu_get_pc(space->cpu), display_counter); if (display_position_interrupt_control & IRQ2CTRL_LOAD_RELATIVE) { if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_RELATIVE "); adjust_display_position_interrupt_timer(space->machine); } }
static TIMER_CALLBACK( display_position_vblank_callback ) { neogeo_state *state = machine.driver_data<neogeo_state>(); if (state->m_display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_VBLANK) { if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_VBLANK "); adjust_display_position_interrupt_timer(machine); } /* set timer for next screen */ state->m_display_position_vblank_timer->adjust(machine.primary_screen->time_until_pos(NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS)); }
void neogeo_set_display_counter_lsb( address_space *space, UINT16 data ) { neogeo_state *state = space->machine().driver_data<neogeo_state>(); state->m_display_counter = (state->m_display_counter & 0xffff0000) | data; if (LOG_VIDEO_SYSTEM) logerror("PC %06x: set_display_counter %08x\n", cpu_get_pc(&space->device()), state->m_display_counter); if (state->m_display_position_interrupt_control & IRQ2CTRL_LOAD_RELATIVE) { if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_RELATIVE "); adjust_display_position_interrupt_timer(space->machine()); } }
static TIMER_CALLBACK( display_position_interrupt_callback ) { if (LOG_VIDEO_SYSTEM) logerror("--- Scanline @ %d,%d\n", video_screen_get_vpos(machine->primary_screen), video_screen_get_hpos(machine->primary_screen)); if (display_position_interrupt_control & IRQ2CTRL_ENABLE) { if (LOG_VIDEO_SYSTEM) logerror("*** Scanline interrupt (IRQ2) *** y: %02x x: %02x\n", video_screen_get_vpos(machine->primary_screen), video_screen_get_hpos(machine->primary_screen)); display_position_interrupt_pending = 1; update_interrupts(machine); } if (display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_REPEAT) { if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_REPEAT "); adjust_display_position_interrupt_timer(machine); } }
static TIMER_CALLBACK( display_position_interrupt_callback ) { neogeo_state *state = machine.driver_data<neogeo_state>(); if (LOG_VIDEO_SYSTEM) logerror("--- Scanline @ %d,%d\n", machine.primary_screen->vpos(), machine.primary_screen->hpos()); if (state->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()); state->m_display_position_interrupt_pending = 1; update_interrupts(machine); } if (state->m_display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_REPEAT) { if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_REPEAT "); adjust_display_position_interrupt_timer(machine); } }