summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2009-12-24 08:02:09 +0000
committer Aaron Giles <aaron@aarongiles.com>2009-12-24 08:02:09 +0000
commitafac4a56bab0134d08e326a05bad564d4ea7f41a (patch)
tree8b8c445c70ab822912e58eea968150c46f47cf1e /src
parent3bfb24922899ff09def334c13aa2f7269eb0f710 (diff)
Converted stv, superchs, underfire to use eeprom device.
Removed use of in-game auto_malloc in stvvdp2.
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/stv.c17
-rw-r--r--src/mame/drivers/stvinit.c43
-rw-r--r--src/mame/drivers/superchs.c42
-rw-r--r--src/mame/drivers/undrfire.c54
-rw-r--r--src/mame/includes/stv.h1
-rw-r--r--src/mame/video/stvvdp2.c13
6 files changed, 54 insertions, 116 deletions
diff --git a/src/mame/drivers/stv.c b/src/mame/drivers/stv.c
index e596a8ff7a4..c937b2cdecf 100644
--- a/src/mame/drivers/stv.c
+++ b/src/mame/drivers/stv.c
@@ -154,7 +154,7 @@ ToDo / Notes:
#include "driver.h"
#include "cpu/m68000/m68000.h"
-#include "machine/eeprom.h"
+#include "machine/eepromdev.h"
#include "cpu/sh2/sh2.h"
#include "machine/stvcd.h"
#include "machine/scudsp.h"
@@ -474,7 +474,7 @@ static UINT8 stv_SMPC_r8 (const address_space *space, int offset)
return_data = input_port_read(space->machine, "DSW1");
if (offset == 0x77)//PDR2 read
- return_data= (0xfe | eeprom_read_bit());
+ return_data= (0xfe | eepromdev_read_bit(devtag_get_device(space->machine, "eeprom")));
// if (offset == 0x33) //country code
// return_data = input_port_read(machine, "FAKE");
@@ -498,9 +498,10 @@ static void stv_SMPC_w8 (const address_space *space, int offset, UINT8 data)
if(offset == 0x75)
{
- eeprom_set_clock_line((data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
- eeprom_write_bit(data & 0x10);
- eeprom_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE);
+ const device_config *device = devtag_get_device(space->machine, "eeprom");
+ eepromdev_set_clock_line(device, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
+ eepromdev_write_bit(device, data & 0x10);
+ eepromdev_set_cs_line(device, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE);
// if (data & 0x01)
@@ -2742,7 +2743,8 @@ static MACHINE_DRIVER_START( stv )
MDRV_MACHINE_START(stv)
MDRV_MACHINE_RESET(stv)
- MDRV_NVRAM_HANDLER(stv) /* Actually 93c45 */
+
+ MDRV_EEPROM_93C46_NODEFAULT_ADD("eeprom") /* Actually 93c45 */
MDRV_TIMER_ADD("scan_timer", hblank_in_irq)
MDRV_TIMER_ADD("t1_timer", timer1_irq)
@@ -3405,6 +3407,9 @@ ROM_START( shienryu )
ROM_LOAD16_WORD_SWAP( "mpr19631.7", 0x0200000, 0x0200000, CRC(3a4b1abc) SHA1(3b14b7fdebd4817da32ea374c15a38c695ffeff1) ) // good
ROM_LOAD16_WORD_SWAP( "mpr19632.2", 0x0400000, 0x0400000, CRC(985fae46) SHA1(f953bde91805b97b60d2ab9270f9d2933e064d95) ) // good
ROM_LOAD16_WORD_SWAP( "mpr19633.3", 0x0800000, 0x0400000, CRC(e2f0b037) SHA1(97861d09e10ce5d2b10bf5559574b3f489e28077) ) // good
+
+ ROM_REGION16_BE( 0x80, "eeprom", 0 )
+ ROM_LOAD( "eeprom-shienryu.bin", 0x0000, 0x0080, CRC(98db6925) SHA1(e78545e8f62d19f8e00197c62ff0e56f6c85e355) )
ROM_END
ROM_START( smleague ) /* only runs with the USA bios */
diff --git a/src/mame/drivers/stvinit.c b/src/mame/drivers/stvinit.c
index a51a3e48107..17f797d443e 100644
--- a/src/mame/drivers/stvinit.c
+++ b/src/mame/drivers/stvinit.c
@@ -6,7 +6,6 @@ to be honest i think some of these cause more problems than they're worth ...
*/
#include "driver.h"
-#include "machine/eeprom.h"
#include "cpu/sh2/sh2.h"
#include "machine/stvprot.h"
#include "includes/stv.h"
@@ -57,45 +56,6 @@ static const UINT8 stv_default_eeprom[128] = {
};
#endif
-static const UINT8 shienryu_default_eeprom[128] = {
- 0x53,0x45,0x47,0x41,0x3b,0xe2,0x5e,0x09,
- 0x5e,0x09,0x00,0x00,0x00,0x00,0x00,0x02,
- 0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x08,0x18,0xfd,0x18,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x5e,0x09,0x00,0x00,
- 0x00,0x00,0x00,0x02,0x01,0x00,0x01,0x01,
- 0x00,0x00,0x00,0x00,0x00,0x08,0x18,0xfd,
- 0x18,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
-};
-
-static const UINT8 *stv_default_eeprom;
-static int stv_default_eeprom_length;
-
-NVRAM_HANDLER( stv )
-{
- if (read_or_write)
- eeprom_save(file);
- else
- {
- eeprom_init(machine, &eeprom_interface_93C46);
-
- if (file) eeprom_load(file);
- else
- {
- if (stv_default_eeprom) /* Set the EEPROM to Factory Defaults */
- eeprom_set_data(stv_default_eeprom,stv_default_eeprom_length);
- }
- }
-}
-
/*
06013AE8: MOV.L @($D4,PC),R5
@@ -128,9 +88,6 @@ void install_stvbios_speedups(running_machine *machine)
DRIVER_INIT(shienryu)
{
- stv_default_eeprom = shienryu_default_eeprom;
- stv_default_eeprom_length = sizeof(shienryu_default_eeprom);
-
// master
sh2drc_add_pcflush(cputag_get_cpu(machine, "maincpu"), 0x60041c6);
// slave
diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c
index 643375664ca..ec0cef51ff4 100644
--- a/src/mame/drivers/superchs.c
+++ b/src/mame/drivers/superchs.c
@@ -37,7 +37,7 @@
#include "cpu/m68000/m68000.h"
#include "video/taitoic.h"
#include "audio/taitosnd.h"
-#include "machine/eeprom.h"
+#include "machine/eepromdev.h"
#include "sound/es5506.h"
#include "includes/taito_f3.h"
#include "audio/taito_en.h"
@@ -151,9 +151,10 @@ static WRITE32_HANDLER( superchs_input_w )
if (ACCESSING_BITS_0_7)
{
- eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
- eeprom_write_bit(data & 0x40);
- eeprom_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
+ const device_config *device = devtag_get_device(space->machine, "eeprom");
+ eepromdev_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
+ eepromdev_write_bit(device, data & 0x40);
+ eepromdev_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
return;
}
@@ -263,7 +264,7 @@ static INPUT_PORTS_START( superchs )
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* reserved for EEROM */
+ PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) /* reserved for EEROM */
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* seat center (cockpit only) */
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -359,32 +360,6 @@ static const eeprom_interface superchs_eeprom_interface =
"0100110000", /* lock command */
};
-static const UINT8 default_eeprom[128]={
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x53,0x00,0x2e,0x00,0x43,0x00,0x00,
- 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xff,0xff,0xff,0xff,0x00,0x01,
- 0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x80,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff
-};
-
-static NVRAM_HANDLER( superchs )
-{
- if (read_or_write)
- eeprom_save(file);
- else
- {
- eeprom_init(machine, &superchs_eeprom_interface);
-
- if (file)
- eeprom_load(file);
- else
- eeprom_set_data(default_eeprom,128); /* Default the wheel setup values */
- }
-}
-
static MACHINE_DRIVER_START( superchs )
/* basic machine hardware */
@@ -398,7 +373,7 @@ static MACHINE_DRIVER_START( superchs )
MDRV_QUANTUM_TIME(HZ(480)) /* CPU slices - Need to interleave Cpu's 1 & 3 */
- MDRV_NVRAM_HANDLER(superchs)
+ MDRV_EEPROM_NODEFAULT_ADD("eeprom", superchs_eeprom_interface)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)
@@ -453,6 +428,9 @@ ROM_START( superchs )
ROM_LOAD16_BYTE( "d46-12.4", 0x000000, 0x200000, CRC(a24a53a8) SHA1(5d5fb87a94ceabda89360064d7d9b6d23c4c606b) )
ROM_RELOAD ( 0x400000, 0x200000 )
ROM_LOAD16_BYTE( "d46-11.5", 0x800000, 0x200000, CRC(d4ea0f56) SHA1(dc8d2ed3c11d0b6f9ebdfde805188884320235e6) )
+
+ ROM_REGION16_BE( 0x80, "eeprom", 0 )
+ ROM_LOAD( "eeprom-superchs.bin", 0x0000, 0x0080, CRC(230f0753) SHA1(4c692b35083da71ed866b233c7c9b152a914c95c) )
ROM_END
static READ32_HANDLER( main_cycle_r )
diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c
index e9c9546f93d..4d6941c0265 100644
--- a/src/mame/drivers/undrfire.c
+++ b/src/mame/drivers/undrfire.c
@@ -190,7 +190,7 @@ Board contains only 29 ROMs and not much else.
#include "cpu/m68000/m68000.h"
#include "video/taitoic.h"
#include "audio/taitosnd.h"
-#include "machine/eeprom.h"
+#include "machine/eepromdev.h"
#include "sound/es5506.h"
#include "includes/taito_f3.h"
#include "audio/taito_en.h"
@@ -246,18 +246,6 @@ static TIMER_CALLBACK( interrupt5 )
EPROM
**********************************************************/
-static const UINT8 default_eeprom[128]=
-{
- 0x02,0x01,0x11,0x12,0x01,0x01,0x01,0x00,0x80,0x80,0x30,0x01,0x00,0x00,0x62,0x45,
- 0xe0,0xa0,0xff,0x28,0xff,0xff,0xfa,0xd7,0x33,0x28,0x00,0x00,0x33,0x28,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xa0,0xff,0x28,0xff,0xff,0xff,0xff,0xfa,0xd7,
- 0x33,0x28,0x00,0x00,0x33,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
-};
-
static const eeprom_interface undrfire_eeprom_interface =
{
6, /* address bits */
@@ -269,19 +257,6 @@ static const eeprom_interface undrfire_eeprom_interface =
"0100110000", /* lock command */
};
-static NVRAM_HANDLER( undrfire )
-{
- if (read_or_write)
- eeprom_save(file);
- else {
- eeprom_init(machine, &undrfire_eeprom_interface);
- if (file)
- eeprom_load(file);
- else
- eeprom_set_data(default_eeprom,128); /* Default the gun setup values */
- }
-}
-
/**********************************************************
GAME INPUTS
@@ -323,9 +298,10 @@ static WRITE32_HANDLER( undrfire_input_w )
if (ACCESSING_BITS_0_7)
{
- eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
- eeprom_write_bit(data & 0x40);
- eeprom_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
+ const device_config *device = devtag_get_device(space->machine, "eeprom");
+ eepromdev_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
+ eepromdev_write_bit(device, data & 0x40);
+ eepromdev_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
return;
}
@@ -553,7 +529,7 @@ static INPUT_PORTS_START( undrfire )
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* reserved for EEROM */
+ PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) /* reserved for EEROM */
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -621,7 +597,7 @@ static INPUT_PORTS_START( cbombers )
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* reserved for EEROM */
+ PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) /* reserved for EEROM */
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -730,7 +706,7 @@ static MACHINE_DRIVER_START( undrfire )
MDRV_CPU_PROGRAM_MAP(undrfire_map)
MDRV_CPU_VBLANK_INT("screen", undrfire_interrupt)
- MDRV_NVRAM_HANDLER(undrfire)
+ MDRV_EEPROM_NODEFAULT_ADD("eeprom", undrfire_eeprom_interface)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)
@@ -764,7 +740,7 @@ static MACHINE_DRIVER_START( cbombers )
MDRV_QUANTUM_TIME(HZ(480)) /* CPU slices - Need to interleave Cpu's 1 & 3 */
- MDRV_NVRAM_HANDLER(undrfire)
+ MDRV_EEPROM_NODEFAULT_ADD("eeprom", undrfire_eeprom_interface)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)
@@ -824,6 +800,9 @@ ROM_START( undrfire )
ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 )
ROM_LOAD16_BYTE( "d67-01", 0x000000, 0x200000, CRC(a2f18122) SHA1(640014c6e6d66c59fe0accf370ad3bab9f40429a) ) /* Ensoniq samples */
ROM_LOAD16_BYTE( "d67-02", 0xc00000, 0x200000, CRC(fceb715e) SHA1(9326513acb0696669d4f2345649ab37c8c6ed171) )
+
+ ROM_REGION16_BE( 0x80, "eeprom", 0 )
+ ROM_LOAD( "eeprom-undrfire.bin", 0x0000, 0x0080, CRC(9f7368f4) SHA1(4bb28e6eb3a72a06341199f0d744ed0ce13bce2c) )
ROM_END
@@ -861,6 +840,9 @@ ROM_START( undrfireu )
ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 )
ROM_LOAD16_BYTE( "d67-01", 0x000000, 0x200000, CRC(a2f18122) SHA1(640014c6e6d66c59fe0accf370ad3bab9f40429a) ) /* Ensoniq samples */
ROM_LOAD16_BYTE( "d67-02", 0xc00000, 0x200000, CRC(fceb715e) SHA1(9326513acb0696669d4f2345649ab37c8c6ed171) )
+
+ ROM_REGION16_BE( 0x80, "eeprom", 0 )
+ ROM_LOAD( "eeprom-undrfire.bin", 0x0000, 0x0080, CRC(9f7368f4) SHA1(4bb28e6eb3a72a06341199f0d744ed0ce13bce2c) )
ROM_END
ROM_START( undrfirej )
@@ -897,6 +879,9 @@ ROM_START( undrfirej )
ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 )
ROM_LOAD16_BYTE( "d67-01", 0x000000, 0x200000, CRC(a2f18122) SHA1(640014c6e6d66c59fe0accf370ad3bab9f40429a) ) /* Ensoniq samples */
ROM_LOAD16_BYTE( "d67-02", 0xc00000, 0x200000, CRC(fceb715e) SHA1(9326513acb0696669d4f2345649ab37c8c6ed171) )
+
+ ROM_REGION16_BE( 0x80, "eeprom", 0 )
+ ROM_LOAD( "eeprom-undrfire.bin", 0x0000, 0x0080, CRC(9f7368f4) SHA1(4bb28e6eb3a72a06341199f0d744ed0ce13bce2c) )
ROM_END
ROM_START( cbombers )
@@ -948,6 +933,9 @@ ROM_START( cbombers )
ROM_LOAD16_BYTE( "d83_02.ic39", 0x000000, 0x200000, CRC(2abca020) SHA1(3491a95651ca89b7fe6d040b8576fa7646bfe84b) )
ROM_RELOAD ( 0x400000, 0x200000 )
ROM_LOAD16_BYTE( "d83_03.ic18", 0x800000, 0x200000, CRC(1b2d9ec3) SHA1(ead6b5542ad3987ef0f9ea01ce7f960abc9119b3) )
+
+ ROM_REGION16_BE( 0x80, "eeprom", 0 )
+ ROM_LOAD( "eeprom-cbombers.bin", 0x0000, 0x0080, CRC(9f7368f4) SHA1(4bb28e6eb3a72a06341199f0d744ed0ce13bce2c) )
ROM_END
diff --git a/src/mame/includes/stv.h b/src/mame/includes/stv.h
index ec28d247863..678ed675568 100644
--- a/src/mame/includes/stv.h
+++ b/src/mame/includes/stv.h
@@ -13,7 +13,6 @@ DRIVER_INIT ( stv );
/*----------- defined in drivers/stvinit.c -----------*/
-NVRAM_HANDLER( stv );
void install_stvbios_speedups(running_machine *machine);
DRIVER_INIT(mausuke);
DRIVER_INIT(puyosun);
diff --git a/src/mame/video/stvvdp2.c b/src/mame/video/stvvdp2.c
index 2cd3661484a..2b8c668474c 100644
--- a/src/mame/video/stvvdp2.c
+++ b/src/mame/video/stvvdp2.c
@@ -4854,7 +4854,7 @@ static void stv_vdp2_draw_rotation_screen(running_machine *machine, bitmap_t *bi
else
{
if ( stv_vdp2_roz_bitmap[iRP-1] == NULL )
- stv_vdp2_roz_bitmap[iRP-1] = auto_bitmap_alloc(machine, 4096, 4096, video_screen_get_format(machine->primary_screen));
+ stv_vdp2_roz_bitmap[iRP-1] = bitmap_alloc(4096, 4096, video_screen_get_format(machine->primary_screen));
roz_clip_rect.min_x = roz_clip_rect.min_y = 0;
if ( (iRP == 1 && STV_VDP2_RAOVR == 3) ||
@@ -5396,8 +5396,19 @@ static STATE_POSTLOAD( stv_vdp2_state_save_postload )
refresh_palette_data(machine);
}
+static void stv_vdp2_exit (running_machine *machine)
+{
+ if (stv_vdp2_roz_bitmap[0] != NULL)
+ bitmap_free(stv_vdp2_roz_bitmap[0]);
+ if (stv_vdp2_roz_bitmap[1] != NULL)
+ bitmap_free(stv_vdp2_roz_bitmap[1]);
+ stv_vdp2_roz_bitmap[0] = stv_vdp2_roz_bitmap[1] = NULL;
+}
+
static int stv_vdp2_start (running_machine *machine)
{
+ add_exit_callback(machine, stv_vdp2_exit);
+
stv_vdp2_regs = auto_alloc_array_clear(machine, UINT32, 0x040000/4 );
stv_vdp2_vram = auto_alloc_array_clear(machine, UINT32, 0x100000/4 ); // actually we only need half of it since we don't emulate extra 4mbit ram cart.
stv_vdp2_cram = auto_alloc_array_clear(machine, UINT32, 0x080000/4 );