diff options
author | David Haywood <mamehaze@users.noreply.github.com> | 2015-09-03 14:24:11 +0100 |
---|---|---|
committer | David Haywood <mamehaze@users.noreply.github.com> | 2015-09-03 14:24:11 +0100 |
commit | 2a46f2a791de0c28f3bc1416aa82a50eb894afb1 (patch) | |
tree | 8338018e8c43f0006e33f703d8c1b193f490cb9f | |
parent | 8a0adc57d3d7db90b4c51f5ca35ce6833131d1bf (diff) |
rework Konami GX startup hack and apply to other games that need it (nw)
-rw-r--r-- | src/mame/drivers/konamigx.c | 48 | ||||
-rw-r--r-- | src/mame/includes/konamigx.h | 6 |
2 files changed, 30 insertions, 24 deletions
diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c index 856fc4dbc49..84535931fb5 100644 --- a/src/mame/drivers/konamigx.c +++ b/src/mame/drivers/konamigx.c @@ -3658,21 +3658,16 @@ MACHINE_RESET_MEMBER(konamigx_state,konamigx) const char *setname = machine().system().name; - if (!strcmp(setname, "opengolf") || - !strcmp(setname, "opengolf2")|| - !strcmp(setname, "ggreats2") || - !strcmp(setname, "tbyahhoo") || - !strcmp(setname, "dragoona") || - !strcmp(setname, "dragoonj")) + if (m_use_68020_post_clock_hack) { // [HACK] The 68020 instruction cache is disabled during POST. // We don't emulate this nor the slow program ROM access times (120ns) // so some games that rely on wait loops timeout far too quickly // waiting for the sound system tests to complete. - // To hack around this, we underclock the 68020 for 10 seconds during POST + // To hack around this, we underclock the 68020 for 12 seconds during POST (soccerss requires longest) m_maincpu->set_clock_scale(0.66f); - m_boothack_timer->adjust(attotime::from_seconds(10)); + m_boothack_timer->adjust(attotime::from_seconds(12)); } if (!strcmp(setname, "le2") || @@ -3831,6 +3826,13 @@ DRIVER_INIT_MEMBER(konamigx_state,konamigx) #undef BPP66 } +DRIVER_INIT_MEMBER(konamigx_state,posthack) +{ + m_use_68020_post_clock_hack = 1; + DRIVER_INIT_CALL(konamigx); +} + + /**********************************************************************************/ /* year ROM parent machine inp init */ @@ -3843,12 +3845,12 @@ GAME( 1994, konamigx, 0, konamigx, konamigx, konamigx_state, konamigx, ROT0, "Ko /* needs the ROZ layer to be playable */ /* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ -GAME( 1994, racinfrc, konamigx, racinfrc, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Racin' Force (ver EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1994, racinfrcu,racinfrc, racinfrc, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Racin' Force (ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1994, racinfrc, konamigx, racinfrc, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Racin' Force (ver EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1994, racinfrcu,racinfrc, racinfrc, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Racin' Force (ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1994, opengolf, konamigx, opengolf, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Konami's Open Golf Championship (ver EAE)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1994, opengolf2,opengolf, opengolf, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Konami's Open Golf Championship (ver EAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1994, ggreats2, opengolf, opengolf, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Golfing Greats 2 (ver JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1994, opengolf, konamigx, opengolf, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Konami's Open Golf Championship (ver EAE)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1994, opengolf2,opengolf, opengolf, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Konami's Open Golf Championship (ver EAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1994, ggreats2, opengolf, opengolf, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Golfing Greats 2 (ver JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) /* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* Type 2: totally stock, sometimes with funny protection chips on the ROM board */ @@ -3863,15 +3865,15 @@ GAME( 1994, fantjour, konamigx, gokuparo, gokuparo, konamigx_state, konamigx, RO GAME( 1994, fantjoura,fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Fantastic Journey (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1994, gokuparo, fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Gokujyou Parodius (ver JAD)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, crzcross, konamigx, gokuparo, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Crazy Cross (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, puzldama, crzcross, gokuparo, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Taisen Puzzle-dama (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, crzcross, konamigx, gokuparo, puzldama, konamigx_state, posthack, ROT0, "Konami", "Crazy Cross (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, puzldama, crzcross, gokuparo, puzldama, konamigx_state, posthack, ROT0, "Konami", "Taisen Puzzle-dama (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, tbyahhoo, konamigx, tbyahhoo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, tbyahhoo, konamigx, tbyahhoo, gokuparo, konamigx_state, posthack, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, tkmmpzdm, konamigx, konamigx_6bpp, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Tokimeki Memorial Taisen Puzzle-dama (ver JAB)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, dragoona, konamigx, dragoonj, dragoonj, konamigx_state, konamigx, ROT0, "Konami", "Dragoon Might (ver AAB)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, dragoonj, dragoona, dragoonj, dragoonj, konamigx_state, konamigx, ROT0, "Konami", "Dragoon Might (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, dragoona, konamigx, dragoonj, dragoonj, konamigx_state, posthack, ROT0, "Konami", "Dragoon Might (ver AAB)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, dragoonj, dragoona, dragoonj, dragoonj, konamigx_state, posthack, ROT0, "Konami", "Dragoon Might (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, sexyparo, konamigx, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, sexyparoa,sexyparo, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) @@ -3892,11 +3894,11 @@ GAME( 1997, winspikej,winspike, winspike, konamigx, konamigx_state, konamigx, RO /* Type 3: dual monitor output and 53936 on the ROM board, external palette RAM */ /* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ -GAME( 1994, soccerss, konamigx, gxtype3, type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver EAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes EAA to EEPROM, but should be version EAC according to labels -GAME( 1994, soccerssu, soccerss, gxtype3, type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver UAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes UAA to EEPROM, but should be version UAC according to labels -GAME( 1994, soccerssj, soccerss, gxtype3, type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver JAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes JAB to EEPROM, but should be version JAC according to labels -GAME( 1994, soccerssja,soccerss, gxtype3, type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, soccerssa, soccerss, gxtype3, type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, soccerss, konamigx, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver EAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes EAA to EEPROM, but should be version EAC according to labels +GAME( 1994, soccerssu, soccerss, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver UAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes UAA to EEPROM, but should be version UAC according to labels +GAME( 1994, soccerssj, soccerss, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver JAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes JAB to EEPROM, but should be version JAC according to labels +GAME( 1994, soccerssja,soccerss, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, soccerssa, soccerss, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) /* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* Type 4: dual monitor output and 53936 on the ROM board, external palette RAM, DMA protection */ diff --git a/src/mame/includes/konamigx.h b/src/mame/includes/konamigx.h index 61bf5a11037..e9343aed5b6 100644 --- a/src/mame/includes/konamigx.h +++ b/src/mame/includes/konamigx.h @@ -43,7 +43,8 @@ public: m_light0_y(*this, "LIGHT0_Y"), m_light1_x(*this, "LIGHT1_X"), m_light1_y(*this, "LIGHT1_Y"), - m_eepromout(*this, "EEPROMOUT") + m_eepromout(*this, "EEPROMOUT"), + m_use_68020_post_clock_hack(0) { } required_device<cpu_device> m_maincpu; @@ -252,6 +253,9 @@ public: int m_konamigx_type3_psac2_actual_bank; //int m_konamigx_type3_psac2_actual_last_bank = 0; + + DECLARE_DRIVER_INIT(posthack); + int m_use_68020_post_clock_hack; }; // Sprite Callbacks |