mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
megavdp: removed another global variable. nw.
This commit is contained in:
parent
70670e3702
commit
8e6f65a7c4
@ -407,4 +407,3 @@ private:
|
||||
|
||||
/* machine/megavdp.c */
|
||||
extern int megadrive_total_scanlines;
|
||||
extern int megadrive_vblank_flag;
|
||||
|
@ -1017,16 +1017,16 @@ READ16_MEMBER( sega_32x_device::_32x_common_vdp_regs_r )
|
||||
UINT16 hpos = get_hposition();
|
||||
int megadrive_hblank_flag = 0;
|
||||
|
||||
if (megadrive_vblank_flag) retdata |= 0x8000;
|
||||
if (m_32x_vblank_flag) retdata |= 0x8000;
|
||||
|
||||
if (hpos>400) megadrive_hblank_flag = 1;
|
||||
if (hpos>460) megadrive_hblank_flag = 0;
|
||||
|
||||
if (megadrive_hblank_flag) retdata |= 0x4000;
|
||||
|
||||
if (megadrive_vblank_flag) { retdata |= 2; } // framebuffer approval (TODO: condition is unknown at current time)
|
||||
if (m_32x_vblank_flag) { retdata |= 2; } // framebuffer approval (TODO: condition is unknown at current time)
|
||||
|
||||
if (megadrive_hblank_flag && megadrive_vblank_flag) { retdata |= 0x2000; } // palette approval (TODO: active high or low?)
|
||||
if (megadrive_hblank_flag && m_32x_vblank_flag) { retdata |= 0x2000; } // palette approval (TODO: active high or low?)
|
||||
|
||||
return retdata;
|
||||
}
|
||||
@ -1597,6 +1597,7 @@ void sega_32x_device::_32x_interrupt_cb(int scanline, int irq6)
|
||||
{
|
||||
if (scanline == irq6)
|
||||
{
|
||||
m_32x_vblank_flag = 1;
|
||||
m_sh2_master_vint_pending = 1;
|
||||
m_sh2_slave_vint_pending = 1;
|
||||
_32x_check_irqs();
|
||||
|
@ -120,6 +120,7 @@ public:
|
||||
|
||||
/* our main vblank handler resets this */
|
||||
int m_32x_hcount_compare_val;
|
||||
int m_32x_vblank_flag;
|
||||
int m_sh2_are_running;
|
||||
int m_32x_240mode;
|
||||
UINT16 m_32x_a1518a_reg;
|
||||
|
@ -1165,8 +1165,11 @@ void md_base_state::screen_eof_megadriv(screen_device &screen, bool state)
|
||||
m_vdp->vdp_handle_eof();
|
||||
m_vdp->m_megadriv_scanline_timer->adjust(attotime::zero);
|
||||
|
||||
if (m_32x)
|
||||
if (m_32x)
|
||||
{
|
||||
m_32x->m_32x_vblank_flag = 0;
|
||||
m_32x->m_32x_hcount_compare_val = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,6 @@
|
||||
|
||||
/* external gunk still has dependencies on these */
|
||||
int megadrive_total_scanlines;
|
||||
int megadrive_vblank_flag = 0;
|
||||
|
||||
|
||||
const device_type SEGA_GEN_VDP = &device_creator<sega_genesis_vdp_device>;
|
||||
@ -148,6 +147,7 @@ void sega_genesis_vdp_device::device_start()
|
||||
save_item(NAME(m_irq6_scanline));
|
||||
save_item(NAME(m_z80irq_scanline));
|
||||
save_item(NAME(m_scanline_counter));
|
||||
save_item(NAME(m_vblank_flag));
|
||||
|
||||
m_sprite_renderline = auto_alloc_array(machine(), UINT8, 1024);
|
||||
m_highpri_renderline = auto_alloc_array(machine(), UINT8, 320);
|
||||
@ -212,6 +212,7 @@ void sega_genesis_vdp_device::device_reset()
|
||||
megadrive_irq6_pending = 0;
|
||||
megadrive_irq4_pending = 0;
|
||||
m_scanline_counter = 0;
|
||||
m_vblank_flag = 0;
|
||||
|
||||
sega315_5124_device::device_reset();
|
||||
}
|
||||
@ -986,7 +987,7 @@ UINT16 sega_genesis_vdp_device::megadriv_vdp_ctrl_port_r()
|
||||
int megadrive_odd_frame = m_imode_odd_frame^1;
|
||||
int megadrive_hblank_flag = 0;
|
||||
int megadrive_dma_active = 0;
|
||||
int vblank;
|
||||
int vblank = m_vblank_flag;
|
||||
int fifo_empty = 1;
|
||||
int fifo_full = 0;
|
||||
|
||||
@ -995,8 +996,6 @@ UINT16 sega_genesis_vdp_device::megadriv_vdp_ctrl_port_r()
|
||||
if (hpos>400) megadrive_hblank_flag = 1;
|
||||
if (hpos>460) megadrive_hblank_flag = 0;
|
||||
|
||||
vblank = megadrive_vblank_flag;
|
||||
|
||||
/* extra case */
|
||||
if (MEGADRIVE_REG01_DISP_ENABLE==0) vblank = 1;
|
||||
|
||||
@ -2623,7 +2622,7 @@ void sega_genesis_vdp_device::vdp_handle_scanline_callback(int scanline)
|
||||
// mame_printf_debug("x %d",genesis_get_scanline_counter());
|
||||
irq6_on_timer->adjust(attotime::from_usec(6));
|
||||
megadrive_irq6_pending = 1;
|
||||
megadrive_vblank_flag = 1;
|
||||
m_vblank_flag = 1;
|
||||
|
||||
}
|
||||
|
||||
@ -2682,7 +2681,7 @@ void sega_genesis_vdp_device::vdp_handle_eof()
|
||||
rectangle visarea;
|
||||
int scr_width = 320;
|
||||
|
||||
megadrive_vblank_flag = 0;
|
||||
m_vblank_flag = 0;
|
||||
//megadrive_irq6_pending = 0; /* NO! (breaks warlock) */
|
||||
|
||||
/* Set it to -1 here, so it becomes 0 when the first timer kicks in */
|
||||
|
@ -272,6 +272,7 @@ private:
|
||||
int megadrive_irq6_pending;
|
||||
int megadrive_irq4_pending;
|
||||
int m_scanline_counter;
|
||||
int m_vblank_flag;
|
||||
|
||||
int megadrive_imode;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user