Fixed an ST-V window effect bug when it's in double interlace mode, fixes a graphic bug with Virtua Mahjong [Angelo Salese]

This commit is contained in:
Angelo Salese 2011-05-25 23:47:02 +00:00
parent 25c61185e5
commit 847582b9d1
2 changed files with 8 additions and 7 deletions

View File

@ -4126,11 +4126,11 @@ GAME( 1995, finlarch, smleague,stv, stv, finlarch, ROT0, "Sega",
GAME( 1996, sokyugrt, stvbios, stv, stv, sokyugrt, ROT0, "Raizing / Eighting", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
GAME( 1995, suikoenb, stvbios, stv, stv, suikoenb, ROT0, "Data East", "Suikoenbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001)", GAME_IMPERFECT_SOUND )
GAME( 1996, vfkids, stvbios, stv, stv, stv, ROT0, "Sega", "Virtua Fighter Kids (JUET 960319 V0.000)", GAME_IMPERFECT_SOUND )
GAME( 1997, vmahjong, stvbios, stv, stvmp, stv, ROT0, "Micronet", "Virtual Mahjong (J 961214 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
GAME( 1997, winterht, stvbios, stv, stv, winterht, ROT0, "Sega", "Winter Heat (JUET 971012 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
GAME( 1997, znpwfv, stvbios, stv, stv, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
/* Almost */
GAME( 1997, vmahjong, stvbios, stv, stvmp, stv, ROT0, "Micronet", "Virtual Mahjong (J 961214 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
GAME( 1998, twcup98, stvbios, stv, stv, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING ) // player movement
GAME( 1998, elandore, stvbios, stv, stv, elandore, ROT0, "Sai-Mate", "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )

View File

@ -5637,8 +5637,8 @@ static void stv_vdp2_get_window0_coordinates(running_machine &machine,UINT16 *s_
*e_y = ((STV_VDP2_W0EY & 0x3ff) >> 0);
break;
case 3:
*s_y = ((STV_VDP2_W0SY & 0x7ff) >> 0);
*e_y = ((STV_VDP2_W0EY & 0x7ff) >> 0);
*s_y = ((STV_VDP2_W1SY & 0x7ff) >> 0) << 1;
*e_y = ((STV_VDP2_W1EY & 0x7ff) >> 0) << 1;
break;
}
switch(STV_VDP2_HRES & 6)
@ -5684,8 +5684,8 @@ static void stv_vdp2_get_window1_coordinates(running_machine &machine,UINT16 *s_
*e_y = ((STV_VDP2_W1EY & 0x3ff) >> 0);
break;
case 3:
*s_y = ((STV_VDP2_W1SY & 0x3ff) >> 0);
*e_y = ((STV_VDP2_W1EY & 0x3ff) >> 0);
*s_y = ((STV_VDP2_W1SY & 0x3ff) >> 0) << 1;
*e_y = ((STV_VDP2_W1EY & 0x3ff) >> 0) << 1;
break;
}
switch(STV_VDP2_HRES & 6)
@ -5948,6 +5948,7 @@ static void draw_sprites(running_machine &machine, bitmap_t *bitmap, const recta
mycliprect.max_x = cliprect->max_x;
mycliprect.min_y = cliprect->min_y;
mycliprect.max_y = cliprect->max_y;
stv_vdp2_apply_window_on_layer(machine,&mycliprect);
if (interlace_framebuffer == 0 && double_x == 0 )
@ -6446,7 +6447,7 @@ SCREEN_UPDATE( stv_vdp2 )
fp=fopen("mamevdp1", "w+b");
if (fp)
{
fwrite(stv_vdp1_vram, 0x80000, 1, fp);
fwrite(state->m_vdp1_vram, 0x80000, 1, fp);
fclose(fp);
}
}
@ -6458,7 +6459,7 @@ SCREEN_UPDATE( stv_vdp2 )
fp=fopen("vdp1_vram.bin", "r+b");
if (fp)
{
fread(stv_vdp1_vram, 0x80000, 1, fp);
fread(state->m_vdp1_vram, 0x80000, 1, fp);
fclose(fp);
}
}