mirror of
https://github.com/holub/mame
synced 2025-04-26 18:23:08 +03:00
aw, prev commit broke mystic riders, so unbreak it
This commit is contained in:
parent
8ea00287c9
commit
0a54096bc2
@ -56,8 +56,12 @@ WRITE16_HANDLER( m92_spritecontrol_w )
|
|||||||
{
|
{
|
||||||
m92_state *state = space->machine().driver_data<m92_state>();
|
m92_state *state = space->machine().driver_data<m92_state>();
|
||||||
COMBINE_DATA(&state->m_spritecontrol[offset]);
|
COMBINE_DATA(&state->m_spritecontrol[offset]);
|
||||||
|
// offset0: sprite list size (negative)
|
||||||
/* Sprite list size register - used in spriteroutine */
|
// offset1: ? (always 0)
|
||||||
|
// offset2: sprite control
|
||||||
|
// offset3: ? (always 0)
|
||||||
|
// offset4: sprite dma
|
||||||
|
// offset5: ?
|
||||||
|
|
||||||
/* Sprite control - display all sprites, or partial list */
|
/* Sprite control - display all sprites, or partial list */
|
||||||
if (offset==2 && ACCESSING_BITS_0_7)
|
if (offset==2 && ACCESSING_BITS_0_7)
|
||||||
@ -73,6 +77,7 @@ WRITE16_HANDLER( m92_spritecontrol_w )
|
|||||||
/* Sprite buffer - the data written doesn't matter (confirmed by several games) */
|
/* Sprite buffer - the data written doesn't matter (confirmed by several games) */
|
||||||
if (offset==4)
|
if (offset==4)
|
||||||
{
|
{
|
||||||
|
/* this implementation is not accurate: still some delayed sprites in gunforc2 (might be another issue?) */
|
||||||
buffer_spriteram16_w(space,0,0,0xffff);
|
buffer_spriteram16_w(space,0,0,0xffff);
|
||||||
state->m_sprite_buffer_busy = 0;
|
state->m_sprite_buffer_busy = 0;
|
||||||
|
|
||||||
@ -104,10 +109,10 @@ WRITE16_HANDLER( m92_videocontrol_w )
|
|||||||
/*
|
/*
|
||||||
fedc ba98 7654 3210
|
fedc ba98 7654 3210
|
||||||
.x.. x... .xx. .... always 0?
|
.x.. x... .xx. .... always 0?
|
||||||
x... .... .... .... disable tiles
|
x... .... .... .... disable tiles?? (but that breaks mysticri)
|
||||||
..xx .... .... .... ? only written at POST - otherwise always 2
|
..xx .... .... .... ? only written at POST - otherwise always 2
|
||||||
.... .xxx .... .... ? only written at POST - otherwise always 0
|
.... .xxx .... .... ? only written at POST - otherwise always 0
|
||||||
.... .... x... .... disable sprites
|
.... .... x... .... disable sprites??
|
||||||
.... .... ...x .... ?
|
.... .... ...x .... ?
|
||||||
.... .... .... x... ?
|
.... .... .... x... ?
|
||||||
.... .... .... .x.. ? maybe more palette banks?
|
.... .... .... .x.. ? maybe more palette banks?
|
||||||
@ -288,7 +293,6 @@ VIDEO_START( m92 )
|
|||||||
memset(machine.generic.buffered_spriteram.u16,0,0x800);
|
memset(machine.generic.buffered_spriteram.u16,0,0x800);
|
||||||
|
|
||||||
state->save_item(NAME(state->m_pf_master_control));
|
state->save_item(NAME(state->m_pf_master_control));
|
||||||
|
|
||||||
state->save_item(NAME(state->m_videocontrol));
|
state->save_item(NAME(state->m_videocontrol));
|
||||||
state->save_item(NAME(state->m_sprite_list));
|
state->save_item(NAME(state->m_sprite_list));
|
||||||
state->save_item(NAME(state->m_raster_irq_position));
|
state->save_item(NAME(state->m_raster_irq_position));
|
||||||
@ -324,7 +328,6 @@ VIDEO_START( ppan )
|
|||||||
static void draw_sprites(running_machine &machine, bitmap_t *bitmap, const rectangle *cliprect)
|
static void draw_sprites(running_machine &machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||||
{
|
{
|
||||||
m92_state *state = machine.driver_data<m92_state>();
|
m92_state *state = machine.driver_data<m92_state>();
|
||||||
if (state->m_videocontrol & 0x0080) return;
|
|
||||||
UINT16 *buffered_spriteram16 = machine.generic.buffered_spriteram.u16;
|
UINT16 *buffered_spriteram16 = machine.generic.buffered_spriteram.u16;
|
||||||
int offs,k;
|
int offs,k;
|
||||||
|
|
||||||
@ -410,7 +413,6 @@ static void draw_sprites(running_machine &machine, bitmap_t *bitmap, const recta
|
|||||||
static void ppan_draw_sprites(running_machine &machine, bitmap_t *bitmap, const rectangle *cliprect)
|
static void ppan_draw_sprites(running_machine &machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||||
{
|
{
|
||||||
m92_state *state = machine.driver_data<m92_state>();
|
m92_state *state = machine.driver_data<m92_state>();
|
||||||
if (state->m_videocontrol & 0x0080) return;
|
|
||||||
UINT16 *buffered_spriteram16 = machine.generic.buffered_spriteram.u16;
|
UINT16 *buffered_spriteram16 = machine.generic.buffered_spriteram.u16;
|
||||||
int offs,k;
|
int offs,k;
|
||||||
|
|
||||||
@ -548,7 +550,6 @@ static void m92_update_scroll_positions(running_machine &machine)
|
|||||||
static void m92_draw_tiles(running_machine &machine, bitmap_t *bitmap,const rectangle *cliprect)
|
static void m92_draw_tiles(running_machine &machine, bitmap_t *bitmap,const rectangle *cliprect)
|
||||||
{
|
{
|
||||||
m92_state *state = machine.driver_data<m92_state>();
|
m92_state *state = machine.driver_data<m92_state>();
|
||||||
if (state->m_videocontrol & 0x8000) return;
|
|
||||||
|
|
||||||
if ((~state->m_pf_master_control[2] >> 4) & 1)
|
if ((~state->m_pf_master_control[2] >> 4) & 1)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user