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)
|
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);
|
device.execute().set_input_line(0, ASSERT_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
INTERRUPT_GEN_MEMBER(rallyx_state::jungler_vblank_irq)
|
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);
|
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_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||||
MCFG_CPU_PROGRAM_MAP(rallyx_map)
|
MCFG_CPU_PROGRAM_MAP(rallyx_map)
|
||||||
MCFG_CPU_IO_MAP(io_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_START_OVERRIDE(rallyx_state,rallyx)
|
||||||
MCFG_MACHINE_RESET_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 */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||||
MCFG_CPU_PROGRAM_MAP(jungler_map)
|
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_START_OVERRIDE(rallyx_state,rallyx)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx)
|
MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx)
|
||||||
|
@ -84,8 +84,8 @@ public:
|
|||||||
void rallyx_video_start_common( );
|
void rallyx_video_start_common( );
|
||||||
void plot_star( bitmap_ind16 &bitmap, const rectangle &cliprect, int x, int y, int color );
|
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 draw_stars( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||||
void rallyx_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, int displacement );
|
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 rallyx_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, int transpen );
|
||||||
void jungler_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 );
|
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 = m_spriteram;
|
||||||
UINT8 *spriteram_2 = m_spriteram2;
|
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)
|
for (offs = 0x20 - 2; offs >= m_spriteram_base; offs -= 2)
|
||||||
{
|
{
|
||||||
int sx = spriteram[offs + 1] + ((spriteram_2[offs + 1] & 0x80) << 1) - displacement;
|
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 color = spriteram_2[offs + 1] & 0x3f;
|
||||||
int flipx = spriteram[offs] & 1;
|
int flipx = spriteram[offs] & 1;
|
||||||
int flipy = spriteram[offs] & 2;
|
int flipy = spriteram[offs] & 2;
|
||||||
if (flip_screen())
|
|
||||||
sx -= 2 * displacement;
|
|
||||||
|
|
||||||
m_gfxdecode->gfx(1)->prio_transmask(bitmap,cliprect,
|
m_gfxdecode->gfx(1)->prio_transmask(bitmap,cliprect,
|
||||||
(spriteram[offs] & 0xfc) >> 2,
|
(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 = m_spriteram;
|
||||||
UINT8 *spriteram_2 = m_spriteram2;
|
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)
|
for (offs = 0x20 - 2; offs >= m_spriteram_base; offs -= 2)
|
||||||
{
|
{
|
||||||
int sx = spriteram[offs + 1] + ((spriteram_2[offs + 1] & 0x80) << 1);
|
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 color = spriteram_2[offs + 1] & 0x3f;
|
||||||
int flip = spriteram[offs] & 2;
|
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);
|
m_fg_tilemap->draw(screen, bitmap, fg_clip, 1, 1);
|
||||||
|
|
||||||
rallyx_draw_bullets(bitmap, cliprect, TRUE);
|
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);
|
rallyx_draw_bullets(bitmap, cliprect, FALSE);
|
||||||
|
|
||||||
return 0;
|
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);
|
m_fg_tilemap->draw(screen, bitmap, fg_clip, 1, 0);
|
||||||
|
|
||||||
jungler_draw_bullets(bitmap, cliprect, TRUE);
|
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);
|
jungler_draw_bullets(bitmap, cliprect, FALSE);
|
||||||
|
|
||||||
if (m_stars_enable)
|
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);
|
m_fg_tilemap->draw(screen, bitmap, fg_clip, 1, 1);
|
||||||
|
|
||||||
locomotn_draw_bullets(bitmap, cliprect, TRUE);
|
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);
|
locomotn_draw_bullets(bitmap, cliprect, FALSE);
|
||||||
|
|
||||||
if (m_stars_enable)
|
if (m_stars_enable)
|
||||||
|
Loading…
Reference in New Issue
Block a user