Converted stv, superchs, underfire to use eeprom device.

Removed use of in-game auto_malloc in stvvdp2.
This commit is contained in:
Aaron Giles 2009-12-24 08:02:09 +00:00
parent 3bfb249228
commit afac4a56ba
6 changed files with 54 additions and 116 deletions

View File

@ -154,7 +154,7 @@ ToDo / Notes:
#include "driver.h" #include "driver.h"
#include "cpu/m68000/m68000.h" #include "cpu/m68000/m68000.h"
#include "machine/eeprom.h" #include "machine/eepromdev.h"
#include "cpu/sh2/sh2.h" #include "cpu/sh2/sh2.h"
#include "machine/stvcd.h" #include "machine/stvcd.h"
#include "machine/scudsp.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"); return_data = input_port_read(space->machine, "DSW1");
if (offset == 0x77)//PDR2 read 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 // if (offset == 0x33) //country code
// return_data = input_port_read(machine, "FAKE"); // 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) if(offset == 0x75)
{ {
eeprom_set_clock_line((data & 0x08) ? ASSERT_LINE : CLEAR_LINE); const device_config *device = devtag_get_device(space->machine, "eeprom");
eeprom_write_bit(data & 0x10); eepromdev_set_clock_line(device, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
eeprom_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE); eepromdev_write_bit(device, data & 0x10);
eepromdev_set_cs_line(device, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE);
// if (data & 0x01) // if (data & 0x01)
@ -2742,7 +2743,8 @@ static MACHINE_DRIVER_START( stv )
MDRV_MACHINE_START(stv) MDRV_MACHINE_START(stv)
MDRV_MACHINE_RESET(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("scan_timer", hblank_in_irq)
MDRV_TIMER_ADD("t1_timer", timer1_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( "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( "mpr19632.2", 0x0400000, 0x0400000, CRC(985fae46) SHA1(f953bde91805b97b60d2ab9270f9d2933e064d95) ) // good
ROM_LOAD16_WORD_SWAP( "mpr19633.3", 0x0800000, 0x0400000, CRC(e2f0b037) SHA1(97861d09e10ce5d2b10bf5559574b3f489e28077) ) // 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_END
ROM_START( smleague ) /* only runs with the USA bios */ ROM_START( smleague ) /* only runs with the USA bios */

View File

@ -6,7 +6,6 @@ to be honest i think some of these cause more problems than they're worth ...
*/ */
#include "driver.h" #include "driver.h"
#include "machine/eeprom.h"
#include "cpu/sh2/sh2.h" #include "cpu/sh2/sh2.h"
#include "machine/stvprot.h" #include "machine/stvprot.h"
#include "includes/stv.h" #include "includes/stv.h"
@ -57,45 +56,6 @@ static const UINT8 stv_default_eeprom[128] = {
}; };
#endif #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 06013AE8: MOV.L @($D4,PC),R5
@ -128,9 +88,6 @@ void install_stvbios_speedups(running_machine *machine)
DRIVER_INIT(shienryu) DRIVER_INIT(shienryu)
{ {
stv_default_eeprom = shienryu_default_eeprom;
stv_default_eeprom_length = sizeof(shienryu_default_eeprom);
// master // master
sh2drc_add_pcflush(cputag_get_cpu(machine, "maincpu"), 0x60041c6); sh2drc_add_pcflush(cputag_get_cpu(machine, "maincpu"), 0x60041c6);
// slave // slave

View File

@ -37,7 +37,7 @@
#include "cpu/m68000/m68000.h" #include "cpu/m68000/m68000.h"
#include "video/taitoic.h" #include "video/taitoic.h"
#include "audio/taitosnd.h" #include "audio/taitosnd.h"
#include "machine/eeprom.h" #include "machine/eepromdev.h"
#include "sound/es5506.h" #include "sound/es5506.h"
#include "includes/taito_f3.h" #include "includes/taito_f3.h"
#include "audio/taito_en.h" #include "audio/taito_en.h"
@ -151,9 +151,10 @@ static WRITE32_HANDLER( superchs_input_w )
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
{ {
eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); const device_config *device = devtag_get_device(space->machine, "eeprom");
eeprom_write_bit(data & 0x40); eepromdev_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
eeprom_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); eepromdev_write_bit(device, data & 0x40);
eepromdev_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
return; return;
} }
@ -263,7 +264,7 @@ static INPUT_PORTS_START( superchs )
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000040, 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( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* seat center (cockpit only) */
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000400, 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 */ "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 ) static MACHINE_DRIVER_START( superchs )
/* basic machine hardware */ /* 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_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 */ /* video hardware */
MDRV_SCREEN_ADD("screen", RASTER) 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_LOAD16_BYTE( "d46-12.4", 0x000000, 0x200000, CRC(a24a53a8) SHA1(5d5fb87a94ceabda89360064d7d9b6d23c4c606b) )
ROM_RELOAD ( 0x400000, 0x200000 ) ROM_RELOAD ( 0x400000, 0x200000 )
ROM_LOAD16_BYTE( "d46-11.5", 0x800000, 0x200000, CRC(d4ea0f56) SHA1(dc8d2ed3c11d0b6f9ebdfde805188884320235e6) ) 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 ROM_END
static READ32_HANDLER( main_cycle_r ) static READ32_HANDLER( main_cycle_r )

View File

@ -190,7 +190,7 @@ Board contains only 29 ROMs and not much else.
#include "cpu/m68000/m68000.h" #include "cpu/m68000/m68000.h"
#include "video/taitoic.h" #include "video/taitoic.h"
#include "audio/taitosnd.h" #include "audio/taitosnd.h"
#include "machine/eeprom.h" #include "machine/eepromdev.h"
#include "sound/es5506.h" #include "sound/es5506.h"
#include "includes/taito_f3.h" #include "includes/taito_f3.h"
#include "audio/taito_en.h" #include "audio/taito_en.h"
@ -246,18 +246,6 @@ static TIMER_CALLBACK( interrupt5 )
EPROM 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 = static const eeprom_interface undrfire_eeprom_interface =
{ {
6, /* address bits */ 6, /* address bits */
@ -269,19 +257,6 @@ static const eeprom_interface undrfire_eeprom_interface =
"0100110000", /* lock command */ "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 GAME INPUTS
@ -323,9 +298,10 @@ static WRITE32_HANDLER( undrfire_input_w )
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
{ {
eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); const device_config *device = devtag_get_device(space->machine, "eeprom");
eeprom_write_bit(data & 0x40); eepromdev_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
eeprom_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); eepromdev_write_bit(device, data & 0x40);
eepromdev_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
return; return;
} }
@ -553,7 +529,7 @@ static INPUT_PORTS_START( undrfire )
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000040, 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( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000400, 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( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000040, 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( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000400, 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_PROGRAM_MAP(undrfire_map)
MDRV_CPU_VBLANK_INT("screen", undrfire_interrupt) MDRV_CPU_VBLANK_INT("screen", undrfire_interrupt)
MDRV_NVRAM_HANDLER(undrfire) MDRV_EEPROM_NODEFAULT_ADD("eeprom", undrfire_eeprom_interface)
/* video hardware */ /* video hardware */
MDRV_SCREEN_ADD("screen", RASTER) 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_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 */ /* video hardware */
MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_ADD("screen", RASTER)
@ -824,6 +800,9 @@ ROM_START( undrfire )
ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) 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-01", 0x000000, 0x200000, CRC(a2f18122) SHA1(640014c6e6d66c59fe0accf370ad3bab9f40429a) ) /* Ensoniq samples */
ROM_LOAD16_BYTE( "d67-02", 0xc00000, 0x200000, CRC(fceb715e) SHA1(9326513acb0696669d4f2345649ab37c8c6ed171) ) 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_END
@ -861,6 +840,9 @@ ROM_START( undrfireu )
ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) 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-01", 0x000000, 0x200000, CRC(a2f18122) SHA1(640014c6e6d66c59fe0accf370ad3bab9f40429a) ) /* Ensoniq samples */
ROM_LOAD16_BYTE( "d67-02", 0xc00000, 0x200000, CRC(fceb715e) SHA1(9326513acb0696669d4f2345649ab37c8c6ed171) ) 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_END
ROM_START( undrfirej ) ROM_START( undrfirej )
@ -897,6 +879,9 @@ ROM_START( undrfirej )
ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) 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-01", 0x000000, 0x200000, CRC(a2f18122) SHA1(640014c6e6d66c59fe0accf370ad3bab9f40429a) ) /* Ensoniq samples */
ROM_LOAD16_BYTE( "d67-02", 0xc00000, 0x200000, CRC(fceb715e) SHA1(9326513acb0696669d4f2345649ab37c8c6ed171) ) 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_END
ROM_START( cbombers ) ROM_START( cbombers )
@ -948,6 +933,9 @@ ROM_START( cbombers )
ROM_LOAD16_BYTE( "d83_02.ic39", 0x000000, 0x200000, CRC(2abca020) SHA1(3491a95651ca89b7fe6d040b8576fa7646bfe84b) ) ROM_LOAD16_BYTE( "d83_02.ic39", 0x000000, 0x200000, CRC(2abca020) SHA1(3491a95651ca89b7fe6d040b8576fa7646bfe84b) )
ROM_RELOAD ( 0x400000, 0x200000 ) ROM_RELOAD ( 0x400000, 0x200000 )
ROM_LOAD16_BYTE( "d83_03.ic18", 0x800000, 0x200000, CRC(1b2d9ec3) SHA1(ead6b5542ad3987ef0f9ea01ce7f960abc9119b3) ) 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 ROM_END

View File

@ -13,7 +13,6 @@ DRIVER_INIT ( stv );
/*----------- defined in drivers/stvinit.c -----------*/ /*----------- defined in drivers/stvinit.c -----------*/
NVRAM_HANDLER( stv );
void install_stvbios_speedups(running_machine *machine); void install_stvbios_speedups(running_machine *machine);
DRIVER_INIT(mausuke); DRIVER_INIT(mausuke);
DRIVER_INIT(puyosun); DRIVER_INIT(puyosun);

View File

@ -4854,7 +4854,7 @@ static void stv_vdp2_draw_rotation_screen(running_machine *machine, bitmap_t *bi
else else
{ {
if ( stv_vdp2_roz_bitmap[iRP-1] == NULL ) 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; roz_clip_rect.min_x = roz_clip_rect.min_y = 0;
if ( (iRP == 1 && STV_VDP2_RAOVR == 3) || if ( (iRP == 1 && STV_VDP2_RAOVR == 3) ||
@ -5396,8 +5396,19 @@ static STATE_POSTLOAD( stv_vdp2_state_save_postload )
refresh_palette_data(machine); 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) 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_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_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 ); stv_vdp2_cram = auto_alloc_array_clear(machine, UINT32, 0x080000/4 );