diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index ee74e2f2087..a77deff54e1 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -293,8 +293,6 @@ static WRITE32_HANDLER ( skns_hit_w ) static WRITE32_HANDLER ( skns_hit2_w ) { - UINT32 *bios = (UINT32 *)space->machine().region("maincpu")->base(); - char biosid = (char)(bios[0x424>>2] >> 24); skns_state *state = space->machine().driver_data(); hit_t &hit = state->m_hit; @@ -302,7 +300,7 @@ static WRITE32_HANDLER ( skns_hit2_w ) // this code simulates behaviour of protection PLD data>>= 24; hit.disconnect = 1; - switch (biosid) + switch (state->region) { case 'J': if (data == 0) hit.disconnect= 0; @@ -428,12 +426,10 @@ static TIMER_DEVICE_CALLBACK( interrupt_callback ) static MACHINE_RESET(skns) { - UINT32 *bios = (UINT32 *)machine.region("maincpu")->base(); - char biosid = (char)(bios[0x424>>2] >> 24); skns_state *state = machine.driver_data(); hit_t &hit = state->m_hit; - if (biosid != 'A') + if (state->region != 'A') { hit.disconnect= 1; } else @@ -861,6 +857,62 @@ static MACHINE_CONFIG_START( skns, skns_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END +static MACHINE_RESET(sknsa) +{ + skns_state *state = machine.driver_data(); + state->region = 'A'; + MACHINE_RESET_CALL(skns); +} + +static MACHINE_RESET(sknsj) +{ + skns_state *state = machine.driver_data(); + state->region = 'J'; + MACHINE_RESET_CALL(skns); +} + +static MACHINE_RESET(sknsu) +{ + skns_state *state = machine.driver_data(); + state->region = 'U'; + MACHINE_RESET_CALL(skns); +} + +static MACHINE_RESET(sknse) +{ + skns_state *state = machine.driver_data(); + state->region = 'E'; + MACHINE_RESET_CALL(skns); +} + +static MACHINE_RESET(sknsk) +{ + skns_state *state = machine.driver_data(); + state->region = 'K'; + MACHINE_RESET_CALL(skns); +} + + +static MACHINE_CONFIG_DERIVED( sknsa, skns ) + MCFG_MACHINE_RESET(sknsa) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sknsj, skns ) + MCFG_MACHINE_RESET(sknsj) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sknsu, skns ) + MCFG_MACHINE_RESET(sknsu) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sknse, skns ) + MCFG_MACHINE_RESET(sknse) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sknsk, skns ) + MCFG_MACHINE_RESET(sknsk) +MACHINE_CONFIG_END + /***** IDLE SKIPPING *****/ static READ32_HANDLER( gutsn_speedup_r ) @@ -1724,30 +1776,30 @@ ROM_END GAME( 1996, skns, 0, skns, skns, 0, ROT0, "Kaneko", "Super Kaneko Nova System BIOS", GAME_IS_BIOS_ROOT ) -GAME( 1996, galpani4, skns, skns, cyvern, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, galpani4k, galpani4, skns, cyvern, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Korea)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, jjparads, skns, skns, skns_1p, jjparads, ROT0, "Electro Design", "Jan Jan Paradise", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, galpanis, skns, skns, galpanis, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, galpanisk, galpanis, skns, galpanis, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Korea)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, jjparad2, skns, skns, skns_1p, jjparad2, ROT0, "Electro Design", "Jan Jan Paradise 2", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, sengekis, skns, skns, skns, sengekis, ROT90, "Kaneko / Warashi", "Sengeki Striker (Asia)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, sengekisj, sengekis, skns, skns, sengekij, ROT90, "Kaneko / Warashi", "Sengeki Striker (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, vblokbrk, skns, skns, vblokbrk, sarukani, ROT0, "Kaneko / Mediaworks", "VS Block Breaker (Asia)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, sarukani, vblokbrk, skns, vblokbrk, sarukani, ROT0, "Kaneko / Mediaworks", "Saru-Kani-Hamu-Zou (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, cyvern, skns, skns, cyvern, cyvern, ROT90, "Kaneko", "Cyvern (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, cyvernj, cyvern, skns, cyvern, cyvern, ROT90, "Kaneko", "Cyvern (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, puzzloop, skns, skns, puzzloop, puzzloopu, ROT0, "Mitchell", "Puzz Loop (Europe, v0.94)", GAME_IMPERFECT_GRAPHICS ) // Same speed up as US version -GAME( 1998, puzzloope, puzzloop, skns, puzzloop, puzzloope, ROT0, "Mitchell", "Puzz Loop (Europe, v0.93)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, puzzloopj, puzzloop, skns, puzzloop, puzzloopj, ROT0, "Mitchell", "Puzz Loop (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, puzzloopa, puzzloop, skns, puzzloop, puzzloopa, ROT0, "Mitchell", "Puzz Loop (Asia)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, puzzloopk, puzzloop, skns, puzzloop, puzzloopu, ROT0, "Mitchell", "Puzz Loop (Korea)", GAME_IMPERFECT_GRAPHICS ) // Same speed up as US version -GAME( 1998, puzzloopu, puzzloop, skns, puzzloop, puzzloopu, ROT0, "Mitchell", "Puzz Loop (USA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, ryouran , skns, skns, skns_1p, ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran", GAME_IMPERFECT_GRAPHICS ) -GAME( 1999, galpans2, skns, skns, galpanis, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1999, galpans2a, galpans2, skns, galpanis, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Asia)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1999, galpansu, galpans2, skns, galpanis, galpans2, ROT0, "Kaneko", "Gals Panic SU (Korea)", GAME_IMPERFECT_GRAPHICS ) // official or hack? -GAME( 1999, panicstr, skns, skns, galpanis, panicstr, ROT0, "Kaneko", "Panic Street (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1999, senknow , skns, skns, skns, senknow, ROT0, "Kaneko / Kouyousha", "Sen-Know (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1999, teljan , skns, skns, skns_1p, teljan, ROT0, "Electro Design", "Tel Jan", GAME_IMPERFECT_GRAPHICS ) -GAME( 2000, gutsn, skns, skns, skns, gutsn, ROT0, "Kaneko / Kouyousha", "Guts'n (Japan)", GAME_IMPERFECT_GRAPHICS ) // quite fragile, started working of it's own accord in 0.69 :) -GAME( 2002, galpans3, skns, skns, galpanis, galpans3, ROT0, "Kaneko", "Gals Panic S3 (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1996, galpani4, skns, sknsj, cyvern, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1996, galpani4k, galpani4, sknsk, cyvern, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Korea)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1996, jjparads, skns, sknsj, skns_1p, jjparads, ROT0, "Electro Design", "Jan Jan Paradise", GAME_IMPERFECT_GRAPHICS ) +GAME( 1997, galpanis, skns, sknsj, galpanis, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1997, galpanisk, galpanis, sknsk, galpanis, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Korea)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1997, jjparad2, skns, sknsj, skns_1p, jjparad2, ROT0, "Electro Design", "Jan Jan Paradise 2", GAME_IMPERFECT_GRAPHICS ) +GAME( 1997, sengekis, skns, sknsa, skns, sengekis, ROT90, "Kaneko / Warashi", "Sengeki Striker (Asia)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1997, sengekisj, sengekis, sknsj, skns, sengekij, ROT90, "Kaneko / Warashi", "Sengeki Striker (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1997, vblokbrk, skns, sknsa, vblokbrk, sarukani, ROT0, "Kaneko / Mediaworks", "VS Block Breaker (Asia)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1997, sarukani, vblokbrk, sknsj, vblokbrk, sarukani, ROT0, "Kaneko / Mediaworks", "Saru-Kani-Hamu-Zou (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1998, cyvern, skns, sknsu, cyvern, cyvern, ROT90, "Kaneko", "Cyvern (US)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1998, cyvernj, cyvern, sknsj, cyvern, cyvern, ROT90, "Kaneko", "Cyvern (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1998, puzzloop, skns, sknse, puzzloop, puzzloopu, ROT0, "Mitchell", "Puzz Loop (Europe, v0.94)", GAME_IMPERFECT_GRAPHICS ) // Same speed up as US version +GAME( 1998, puzzloope, puzzloop, sknse, puzzloop, puzzloope, ROT0, "Mitchell", "Puzz Loop (Europe, v0.93)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1998, puzzloopj, puzzloop, sknsj, puzzloop, puzzloopj, ROT0, "Mitchell", "Puzz Loop (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1998, puzzloopa, puzzloop, sknsa, puzzloop, puzzloopa, ROT0, "Mitchell", "Puzz Loop (Asia)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1998, puzzloopk, puzzloop, sknsk, puzzloop, puzzloopu, ROT0, "Mitchell", "Puzz Loop (Korea)", GAME_IMPERFECT_GRAPHICS ) // Same speed up as US version +GAME( 1998, puzzloopu, puzzloop, sknsu, puzzloop, puzzloopu, ROT0, "Mitchell", "Puzz Loop (USA)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1998, ryouran , skns, sknsj, skns_1p, ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran", GAME_IMPERFECT_GRAPHICS ) +GAME( 1999, galpans2, skns, sknsj, galpanis, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1999, galpans2a, galpans2, sknsa, galpanis, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Asia)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1999, galpansu, galpans2, sknsk, galpanis, galpans2, ROT0, "Kaneko", "Gals Panic SU (Korea)", GAME_IMPERFECT_GRAPHICS ) // official or hack? +GAME( 1999, panicstr, skns, sknsj, galpanis, panicstr, ROT0, "Kaneko", "Panic Street (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1999, senknow , skns, sknsj, skns, senknow, ROT0, "Kaneko / Kouyousha", "Sen-Know (Japan)", GAME_IMPERFECT_GRAPHICS ) +GAME( 1999, teljan , skns, sknsj, skns_1p, teljan, ROT0, "Electro Design", "Tel Jan", GAME_IMPERFECT_GRAPHICS ) +GAME( 2000, gutsn, skns, sknsj, skns, gutsn, ROT0, "Kaneko / Kouyousha", "Guts'n (Japan)", GAME_IMPERFECT_GRAPHICS ) // quite fragile, started working of it's own accord in 0.69 :) +GAME( 2002, galpans3, skns, sknsj, galpanis, galpans3, ROT0, "Kaneko", "Gals Panic S3 (Japan)", GAME_IMPERFECT_GRAPHICS )