Fixed protection check in Tecmo World Cup '98, game is now playable (Tecmo logo & Title Screen still garbled) [Angelo Salese]

This commit is contained in:
Angelo Salese 2013-02-14 17:17:35 +00:00
parent 737daef258
commit bc0e2f76e3
3 changed files with 22 additions and 2 deletions

View file

@ -4769,7 +4769,8 @@ void saturn_state::stv_vdp2_check_tilemap(bitmap_rgb32 &bitmap, const rectangle
/* Dragon Ball Z 0x3800 - 0x2c00 */ /* Dragon Ball Z 0x3800 - 0x2c00 */
/* Assault Suit Leynos 2 0x0200*/ /* Assault Suit Leynos 2 0x0200*/
/* Bug! 0x8800 */ /* Bug! 0x8800 */
if(STV_VDP2_SFPRMD & ~0xff75) /* Wonder 3 0x0018 */
if(STV_VDP2_SFPRMD & ~0xff7d)
popmessage("Special Priority Mode enabled %04x, contact MAMEdev",STV_VDP2_SFPRMD); popmessage("Special Priority Mode enabled %04x, contact MAMEdev",STV_VDP2_SFPRMD);
} }
} }

View file

@ -2835,7 +2835,7 @@ GAME( 1997, winterht, stvbios, stv, stv, saturn_state, winterht,
GAME( 1997, znpwfv, stvbios, stv, stv, saturn_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1997, znpwfv, stvbios, stv, stv, saturn_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
/* Almost */ /* Almost */
GAME( 1998, twcup98, stvbios, stv, stv, saturn_state, 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, twcup98, stvbios, stv, stv, saturn_state, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
GAME( 1998, elandore, stvbios, stv, stv6b, saturn_state, 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 ) GAME( 1998, elandore, stvbios, stv, stv6b, saturn_state, 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 )
/* Unemulated printer / camera devices */ /* Unemulated printer / camera devices */

View file

@ -113,6 +113,21 @@ static UINT8 char_offset; //helper to jump the decoding of the NULL chars.
* *
************************/ ************************/
/*
0x200214
0x20de94
wpset 0x200214,0x20de94-0x200214,r
dump twcup98.dmp,0x200214,0x20de94-0x200214,4,0,0
protection tests the data 0x201220 at
bp 0x6009a9e
with 0x60651f8
*/
static UINT32 twcup_prot_data[8] =
{
0x23232323, 0x23232323, 0x4c4c4c4c, 0x4c156301
};
static READ32_HANDLER( twcup98_prot_r ) static READ32_HANDLER( twcup98_prot_r )
{ {
UINT32 *ROM = (UINT32 *)space.machine().root_device().memregion("abus")->base(); UINT32 *ROM = (UINT32 *)space.machine().root_device().memregion("abus")->base();
@ -139,6 +154,10 @@ static READ32_HANDLER( twcup98_prot_r )
res = ROM[ctrl_index / 4] & 0xffff0000; res = ROM[ctrl_index / 4] & 0xffff0000;
res |= ROM[ctrl_index / 4] & 0xffff; res |= ROM[ctrl_index / 4] & 0xffff;
} }
if(ctrl_index >= 0xD215A4+0x100c && ctrl_index < 0xD215A4+0x100c+8*4)
res = twcup_prot_data[(ctrl_index-(0xD215A4+0x100c))/4];
ctrl_index+=4; ctrl_index+=4;
return res; return res;
} }