improve layer alignments with video reference (nw)

This commit is contained in:
David Haywood 2014-06-14 00:24:59 +00:00
parent dd332e4972
commit ca0300b4a4
3 changed files with 30 additions and 6 deletions

View File

@ -495,6 +495,7 @@ static MACHINE_CONFIG_START( rpunch, rpunch_state )
MCFG_PALETTE_ADD("palette", 1024)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(rpunch_state,rpunch)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -508,6 +509,10 @@ static MACHINE_CONFIG_START( rpunch, rpunch_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( svolley, rpunch )
MCFG_VIDEO_START_OVERRIDE(rpunch_state,svolley)
MACHINE_CONFIG_END
// c+p of above for now, bootleg hw, things need verifying
static MACHINE_CONFIG_START( svolleybl, rpunch_state )
@ -532,8 +537,10 @@ static MACHINE_CONFIG_START( svolleybl, rpunch_state )
MCFG_PALETTE_ADD("palette", 1024)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_VIDEO_START_OVERRIDE(rpunch_state,rpunch)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_YM2151_ADD("ymsnd", MASTER_CLOCK/4)
@ -809,9 +816,9 @@ DRIVER_INIT_MEMBER(rpunch_state,svolley)
GAME( 1987, rabiolep, 0, rpunch, rabiolep, rpunch_state, rabiolep, ROT0, "V-System Co.", "Rabio Lepus (Japan)", GAME_NO_COCKTAIL )
GAME( 1987, rpunch, rabiolep, rpunch, rpunch, rpunch_state, rabiolep, ROT0, "V-System Co. (Bally/Midway/Sente license)", "Rabbit Punch (US)", GAME_NO_COCKTAIL )
GAME( 1989, svolley, 0, rpunch, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Japan)", GAME_NO_COCKTAIL )
GAME( 1989, svolleyk, svolley, rpunch, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Korea)", GAME_NO_COCKTAIL )
GAME( 1989, svolleyu, svolley, rpunch, svolley, rpunch_state, svolley, ROT0, "V-System Co. (Data East license)", "Super Volleyball (US)", GAME_NO_COCKTAIL )
GAME( 1989, svolley, 0, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Japan)", GAME_NO_COCKTAIL )
GAME( 1989, svolleyk, svolley, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Korea)", GAME_NO_COCKTAIL )
GAME( 1989, svolleyu, svolley, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co. (Data East license)", "Super Volleyball (US)", GAME_NO_COCKTAIL )
// video registers are changed, and there's some kind of RAM at 090xxx, possible a different sprite scheme for the bootleg (even if the original is intact)
// the sound system seems to be ripped from the later Power Spikes (see aerofgt.c)

View File

@ -49,7 +49,12 @@ public:
TILE_GET_INFO_MEMBER(get_bg0_tile_info);
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(rpunch);
DECLARE_VIDEO_START(svolley);
int m_sprite_xoffs;
UINT32 screen_update_rpunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(sound_command_w_callback);
TIMER_CALLBACK_MEMBER(crtc_interrupt_gen);

View File

@ -66,8 +66,10 @@ TIMER_CALLBACK_MEMBER(rpunch_state::crtc_interrupt_gen)
}
void rpunch_state::video_start()
VIDEO_START_MEMBER(rpunch_state,rpunch)
{
m_sprite_xoffs = 0;
/* allocate tilemaps for the backgrounds */
m_background[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rpunch_state::get_bg0_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,64);
m_background[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rpunch_state::get_bg1_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,64);
@ -83,6 +85,16 @@ void rpunch_state::video_start()
}
VIDEO_START_MEMBER(rpunch_state,svolley)
{
VIDEO_START_CALL_MEMBER(rpunch);
m_background[0]->set_scrolldx(8, 0); // aligns middle net sprite with bg as shown in reference
m_sprite_xoffs = -4;
}
/*************************************
*
@ -217,7 +229,7 @@ void rpunch_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect,
if (y >= BITMAP_HEIGHT) y -= 512;
m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
code, color + (m_sprite_palette / 16), xflip, yflip, x, y, 15);
code, color + (m_sprite_palette / 16), xflip, yflip, x+m_sprite_xoffs, y, 15);
}
}