From eca1bc1732a3b810dd032195c16b7de680daea6e Mon Sep 17 00:00:00 2001 From: Couriersud Date: Fri, 22 Feb 2008 21:53:15 +0000 Subject: [PATCH] namcos2, namcos21: * fix crashes due to nvram allocation in MACHINE_RESET * create MACHINE_START and move allocation there --- src/mame/drivers/namcos2.c | 6 ++++++ src/mame/drivers/namcos21.c | 3 +++ src/mame/includes/namcos2.h | 1 + src/mame/machine/namcos2.c | 7 +++++-- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/mame/drivers/namcos2.c b/src/mame/drivers/namcos2.c index 46c028952fd..40cd0ddae2f 100644 --- a/src/mame/drivers/namcos2.c +++ b/src/mame/drivers/namcos2.c @@ -1588,6 +1588,7 @@ static MACHINE_DRIVER_START( default ) MDRV_INTERLEAVE(100) /* CPU slices per frame */ + MDRV_MACHINE_START(namcos2) MDRV_MACHINE_RESET(namcos2) MDRV_NVRAM_HANDLER(namcos2) @@ -1661,6 +1662,7 @@ static MACHINE_DRIVER_START( gollygho ) MDRV_INTERLEAVE(100) /* CPU slices per frame */ + MDRV_MACHINE_START(namcos2) MDRV_MACHINE_RESET(namcos2) MDRV_NVRAM_HANDLER(namcos2) @@ -1710,6 +1712,7 @@ static MACHINE_DRIVER_START( finallap ) MDRV_INTERLEAVE(100) /* CPU slices per frame */ + MDRV_MACHINE_START(namcos2) MDRV_MACHINE_RESET(namcos2) MDRV_NVRAM_HANDLER(namcos2) @@ -1759,6 +1762,7 @@ static MACHINE_DRIVER_START( sgunner ) MDRV_INTERLEAVE(100) /* CPU slices per frame */ + MDRV_MACHINE_START(namcos2) MDRV_MACHINE_RESET(namcos2) MDRV_NVRAM_HANDLER(namcos2) @@ -1808,6 +1812,7 @@ static MACHINE_DRIVER_START( luckywld ) MDRV_INTERLEAVE(100) /* CPU slices per frame */ + MDRV_MACHINE_START(namcos2) MDRV_MACHINE_RESET(namcos2) MDRV_NVRAM_HANDLER(namcos2) @@ -1857,6 +1862,7 @@ static MACHINE_DRIVER_START( metlhawk ) MDRV_INTERLEAVE(100) /* CPU slices per frame */ + MDRV_MACHINE_START(namcos2) MDRV_MACHINE_RESET(namcos2) MDRV_NVRAM_HANDLER(namcos2) diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c index 04c913d2849..d3ba112cc55 100644 --- a/src/mame/drivers/namcos21.c +++ b/src/mame/drivers/namcos21.c @@ -1545,6 +1545,7 @@ static MACHINE_DRIVER_START( s21base ) MDRV_INTERLEAVE(200) + MDRV_MACHINE_START(namcos2) MDRV_MACHINE_RESET(namcos2) MDRV_NVRAM_HANDLER(namcos2) @@ -1618,6 +1619,7 @@ static MACHINE_DRIVER_START( driveyes ) MDRV_INTERLEAVE(100) /* 100 CPU slices per frame */ + MDRV_MACHINE_START(namcos2) MDRV_MACHINE_RESET(namcos2) MDRV_NVRAM_HANDLER(namcos2) @@ -1676,6 +1678,7 @@ static MACHINE_DRIVER_START( winrun_c140_typeB ) MDRV_INTERLEAVE(100) /* 100 CPU slices per frame */ + MDRV_MACHINE_START(namcos2) MDRV_MACHINE_RESET(namcos2) MDRV_NVRAM_HANDLER(namcos2) diff --git a/src/mame/includes/namcos2.h b/src/mame/includes/namcos2.h index d20b6b393a4..dae41006e1b 100644 --- a/src/mame/includes/namcos2.h +++ b/src/mame/includes/namcos2.h @@ -137,6 +137,7 @@ extern UINT16 *namcos2_68k_roz_ram; extern int namcos2_gametype; +MACHINE_START( namcos2 ); MACHINE_RESET( namcos2 ); READ16_HANDLER( namcos2_flap_prot_r ); diff --git a/src/mame/machine/namcos2.c b/src/mame/machine/namcos2.c index cbfb453ae68..56ba190feb4 100644 --- a/src/mame/machine/namcos2.c +++ b/src/mame/machine/namcos2.c @@ -94,13 +94,16 @@ ResetAllSubCPUs( int state ) } } +MACHINE_START( namcos2 ) +{ + namcos2_eeprom = auto_malloc(namcos2_eeprom_size); +} + MACHINE_RESET( namcos2 ) { int loop; mFinalLapProtCount = 0; - namcos2_eeprom = auto_malloc(namcos2_eeprom_size); - /* Initialise the bank select in the sound CPU */ namcos2_sound_bankselect_w(0,0); /* Page in bank 0 */