MT 05024 workaround

This commit is contained in:
Michaël Banaan Ananas 2012-10-03 19:25:23 +00:00
parent d1dfcb2380
commit 034e537887
2 changed files with 28 additions and 3 deletions

View File

@ -1467,6 +1467,29 @@ DRIVER_INIT_MEMBER(ninjakd2_state,mnight)
}
static void robokid_motion_error_kludge(UINT8 *ROM)
{
// patch out rare "5268 MOTION ERROR" (MT 05024)
// It looks like it's due to a buggy random number generator,
// then it possibly happens on the real arcade cabinet too.
// I doubt it is protection related, but you can never be sure.
ROM[0] = 0xe6;
ROM[1] = 0x03; // and 3
ROM[2] = 0x18;
ROM[3] = 0xf6; // jr $-8
}
DRIVER_INIT_MEMBER(ninjakd2_state,robokid)
{
robokid_motion_error_kludge(memregion("maincpu")->base() + 0x5247);
}
DRIVER_INIT_MEMBER(ninjakd2_state,robokidj)
{
robokid_motion_error_kludge(memregion("maincpu")->base() + 0x5266);
}
/*************************************
*
@ -1481,8 +1504,8 @@ GAME( 1987, ninjakd2b, ninjakd2, ninjakd2, rdaction, ninjakd2_state, bootleg, R
GAME( 1987, rdaction, ninjakd2, ninjakd2, rdaction, ninjakd2_state, ninjakd2, ROT0, "UPL (World Games license)", "Rad Action / NinjaKun Ashura no Shou", 0 )
GAME( 1987, mnight, 0, mnight, mnight, ninjakd2_state, mnight, ROT0, "UPL (Kawakus license)", "Mutant Night", 0 )
GAME( 1988, arkarea, 0, arkarea, arkarea, ninjakd2_state, mnight, ROT0, "UPL", "Ark Area", 0 )
GAME( 1988, robokid, 0, robokid, robokid, driver_device, 0, ROT0, "UPL", "Atomic Robo-kid", 0 )
GAME( 1988, robokidj, robokid, robokid, robokidj, driver_device, 0, ROT0, "UPL", "Atomic Robo-kid (Japan, set 1)", 0 )
GAME( 1988, robokidj2, robokid, robokid, robokidj, driver_device, 0, ROT0, "UPL", "Atomic Robo-kid (Japan, set 2)", 0 )
GAME( 1988, robokid, 0, robokid, robokid, ninjakd2_state, robokid, ROT0, "UPL", "Atomic Robo-kid", 0 )
GAME( 1988, robokidj, robokid, robokid, robokidj, ninjakd2_state, robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, set 1)", 0 )
GAME( 1988, robokidj2, robokid, robokid, robokidj, ninjakd2_state, robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, set 2)", 0 )
GAME( 1989, omegaf, 0, omegaf, omegaf, driver_device, 0, ROT270, "UPL", "Omega Fighter", 0 )
GAME( 1989, omegafs, omegaf, omegaf, omegaf, driver_device, 0, ROT270, "UPL", "Omega Fighter Special", 0 )

View File

@ -59,6 +59,8 @@ public:
DECLARE_DRIVER_INIT(mnight);
DECLARE_DRIVER_INIT(ninjakd2);
DECLARE_DRIVER_INIT(bootleg);
DECLARE_DRIVER_INIT(robokid);
DECLARE_DRIVER_INIT(robokidj);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(ninjakd2_get_bg_tile_info);
TILE_GET_INFO_MEMBER(mnight_get_bg_tile_info);