From 452b54e423c15ada25fb88b903b40be6f340ae7e Mon Sep 17 00:00:00 2001 From: Scott Stone Date: Thu, 16 Aug 2012 03:59:55 +0000 Subject: [PATCH] Added dynamic length to the color PROMs decode routines based on ROM region length. This fixes a horrible hang/crash in DEBUG=1 builds. [Roberto Fresca] --- src/mame/drivers/amaticmg.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/mame/drivers/amaticmg.c b/src/mame/drivers/amaticmg.c index 919b8e197cf..8279b1ce3df 100644 --- a/src/mame/drivers/amaticmg.c +++ b/src/mame/drivers/amaticmg.c @@ -5,7 +5,7 @@ Encrypted gambling hardware based on a custom CPU. - Driver by Roberto Fresca & Angelo Salese. + Driver by Roberto Fresca. *********************************************************************************** @@ -362,6 +362,11 @@ *********************************************************************************** + [2012/08/15] + + - Added dynamic length to the color PROMs decode routines based on ROM region length. + This fixes a horrible hang/crash in DEBUG=1 builds. + [2012/04/27] - Reworked the decryption function. @@ -538,7 +543,7 @@ static PALETTE_INIT( amaticmg2 ) int r, g, b; int i; - for (i = 0; i < 0x20000; i+=2) + for (i = 0; i < machine.root_device().memregion("proms")->bytes(); i+=2) { b = ((color_prom[1] & 0xf8) >> 3); g = ((color_prom[0] & 0xc0) >> 6) | ((color_prom[1] & 0x7) << 2); @@ -828,6 +833,11 @@ static I8255A_INTERFACE( ppi8255_intf_1 ) DEVCB_DRIVER_MEMBER(amaticmg_state,out_c_w) /* Port C write */ }; + +/************************************ +* Machine Start & Reset * +************************************/ + static MACHINE_START( amaticmg ) { UINT8 *rombank = machine.root_device().memregion("maincpu")->base(); @@ -843,6 +853,7 @@ static MACHINE_RESET( amaticmg ) state->m_nmi_mask = 0; } + /************************************ * Machine Drivers * ************************************/ @@ -1106,7 +1117,7 @@ DRIVER_INIT_MEMBER(amaticmg_state,ama8000_3_o) * Game Drivers * ************************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ GAMEL( 1996, suprstar, 0, amaticmg, amaticmg, amaticmg_state, ama8000_1_x, ROT90, "Amatic Trading GmbH", "Super Stars", GAME_IMPERFECT_SOUND, layout_suprstar ) GAME( 2000, am_mg24, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_2_i, ROT0, "Amatic Trading GmbH", "Multi Game I (V.Ger 2.4)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING ) GAME( 2000, am_mg3, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_2_i, ROT0, "Amatic Trading GmbH", "Multi Game III (V.Ger 3.5)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )