correct rallyx sprite pos based on old video recording, the "displacement" workaround was wrong
This commit is contained in:
parent
f189d8ff8b
commit
52cb2cd617
@ -832,13 +832,13 @@ MACHINE_RESET_MEMBER(rallyx_state,rallyx)
|
||||
|
||||
INTERRUPT_GEN_MEMBER(rallyx_state::rallyx_vblank_irq)
|
||||
{
|
||||
if(m_main_irq_mask)
|
||||
if (m_main_irq_mask)
|
||||
device.execute().set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
INTERRUPT_GEN_MEMBER(rallyx_state::jungler_vblank_irq)
|
||||
{
|
||||
if(m_main_irq_mask)
|
||||
if (m_main_irq_mask)
|
||||
device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -848,7 +848,7 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(rallyx_map)
|
||||
MCFG_CPU_IO_MAP(io_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", rallyx_state, rallyx_vblank_irq)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", rallyx_state, rallyx_vblank_irq)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx)
|
||||
@ -887,7 +887,7 @@ static MACHINE_CONFIG_START( jungler, rallyx_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(jungler_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", rallyx_state, jungler_vblank_irq)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", rallyx_state, jungler_vblank_irq)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(rallyx_state,rallyx)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx)
|
||||
|
@ -84,8 +84,8 @@ public:
|
||||
void rallyx_video_start_common( );
|
||||
void plot_star( bitmap_ind16 &bitmap, const rectangle &cliprect, int x, int y, int color );
|
||||
void draw_stars( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement );
|
||||
void locomotn_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement );
|
||||
void rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void locomotn_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void rallyx_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, int transpen );
|
||||
void jungler_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, int transpen );
|
||||
void locomotn_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, int transpen );
|
||||
|
@ -439,7 +439,7 @@ void rallyx_state::draw_stars( bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
}
|
||||
|
||||
|
||||
void rallyx_state::rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement )
|
||||
void rallyx_state::rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
{
|
||||
UINT8 *spriteram = m_spriteram;
|
||||
UINT8 *spriteram_2 = m_spriteram2;
|
||||
@ -447,13 +447,11 @@ void rallyx_state::rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bit
|
||||
|
||||
for (offs = 0x20 - 2; offs >= m_spriteram_base; offs -= 2)
|
||||
{
|
||||
int sx = spriteram[offs + 1] + ((spriteram_2[offs + 1] & 0x80) << 1) - displacement;
|
||||
int sy = 241 - spriteram_2[offs] - displacement;
|
||||
int sx = spriteram[offs + 1] + ((spriteram_2[offs + 1] & 0x80) << 1);
|
||||
int sy = 241 - spriteram_2[offs];
|
||||
int color = spriteram_2[offs + 1] & 0x3f;
|
||||
int flipx = spriteram[offs] & 1;
|
||||
int flipy = spriteram[offs] & 2;
|
||||
if (flip_screen())
|
||||
sx -= 2 * displacement;
|
||||
|
||||
m_gfxdecode->gfx(1)->prio_transmask(bitmap,cliprect,
|
||||
(spriteram[offs] & 0xfc) >> 2,
|
||||
@ -465,7 +463,7 @@ void rallyx_state::rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bit
|
||||
}
|
||||
}
|
||||
|
||||
void rallyx_state::locomotn_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement )
|
||||
void rallyx_state::locomotn_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
{
|
||||
UINT8 *spriteram = m_spriteram;
|
||||
UINT8 *spriteram_2 = m_spriteram2;
|
||||
@ -474,7 +472,7 @@ void rallyx_state::locomotn_draw_sprites( screen_device &screen, bitmap_ind16 &b
|
||||
for (offs = 0x20 - 2; offs >= m_spriteram_base; offs -= 2)
|
||||
{
|
||||
int sx = spriteram[offs + 1] + ((spriteram_2[offs + 1] & 0x80) << 1);
|
||||
int sy = 241 - spriteram_2[offs] - displacement;
|
||||
int sy = 241 - spriteram_2[offs];
|
||||
int color = spriteram_2[offs + 1] & 0x3f;
|
||||
int flip = spriteram[offs] & 2;
|
||||
|
||||
@ -609,7 +607,7 @@ UINT32 rallyx_state::screen_update_rallyx(screen_device &screen, bitmap_ind16 &b
|
||||
m_fg_tilemap->draw(screen, bitmap, fg_clip, 1, 1);
|
||||
|
||||
rallyx_draw_bullets(bitmap, cliprect, TRUE);
|
||||
rallyx_draw_sprites(screen, bitmap, cliprect, 1);
|
||||
rallyx_draw_sprites(screen, bitmap, cliprect);
|
||||
rallyx_draw_bullets(bitmap, cliprect, FALSE);
|
||||
|
||||
return 0;
|
||||
@ -643,7 +641,7 @@ UINT32 rallyx_state::screen_update_jungler(screen_device &screen, bitmap_ind16 &
|
||||
m_fg_tilemap->draw(screen, bitmap, fg_clip, 1, 0);
|
||||
|
||||
jungler_draw_bullets(bitmap, cliprect, TRUE);
|
||||
rallyx_draw_sprites(screen, bitmap, cliprect, 0);
|
||||
rallyx_draw_sprites(screen, bitmap, cliprect);
|
||||
jungler_draw_bullets(bitmap, cliprect, FALSE);
|
||||
|
||||
if (m_stars_enable)
|
||||
@ -688,7 +686,7 @@ UINT32 rallyx_state::screen_update_locomotn(screen_device &screen, bitmap_ind16
|
||||
m_fg_tilemap->draw(screen, bitmap, fg_clip, 1, 1);
|
||||
|
||||
locomotn_draw_bullets(bitmap, cliprect, TRUE);
|
||||
locomotn_draw_sprites(screen, bitmap, cliprect, 0);
|
||||
locomotn_draw_sprites(screen, bitmap, cliprect);
|
||||
locomotn_draw_bullets(bitmap, cliprect, FALSE);
|
||||
|
||||
if (m_stars_enable)
|
||||
|
Loading…
Reference in New Issue
Block a user