galastrm and gticlub use eepromdev.

This commit is contained in:
Aaron Giles 2009-12-26 21:32:46 +00:00
parent 62cdb1ae23
commit 933132291e
2 changed files with 24 additions and 65 deletions

View File

@ -41,7 +41,7 @@ $305.b invincibility
#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"
@ -132,9 +132,10 @@ popmessage(t);
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;
} }
return; return;
@ -208,7 +209,7 @@ static INPUT_PORTS_START( galastrm )
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) PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(frame_counter_r, NULL) PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(frame_counter_r, NULL)
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN )
@ -305,19 +306,6 @@ static const eeprom_interface galastrm_eeprom_interface =
"0100110000", /* lock command */ "0100110000", /* lock command */
}; };
static NVRAM_HANDLER( galastrm )
{
if (read_or_write)
eeprom_save(file);
else {
eeprom_init(machine, &galastrm_eeprom_interface);
if (file)
eeprom_load(file);
else
eeprom_set_data(default_eeprom,128); /* Default the gun setup values */
}
}
/***************************************************************************/ /***************************************************************************/
static MACHINE_DRIVER_START( galastrm ) static MACHINE_DRIVER_START( galastrm )
@ -326,7 +314,7 @@ static MACHINE_DRIVER_START( galastrm )
MDRV_CPU_PROGRAM_MAP(galastrm_map) MDRV_CPU_PROGRAM_MAP(galastrm_map)
MDRV_CPU_VBLANK_INT("screen", galastrm_interrupt) /* VBL */ MDRV_CPU_VBLANK_INT("screen", galastrm_interrupt) /* VBL */
MDRV_NVRAM_HANDLER(galastrm) MDRV_EEPROM_ADD("eeprom", galastrm_eeprom_interface)
/* video hardware */ /* video hardware */
MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_ADD("screen", RASTER)
@ -380,6 +368,9 @@ ROM_START( galastrm )
ROM_CONTINUE( 0x600000, 0x040000 ) ROM_CONTINUE( 0x600000, 0x040000 )
ROM_CONTINUE( 0x780000, 0x040000 ) ROM_CONTINUE( 0x780000, 0x040000 )
ROM_CONTINUE( 0x700000, 0x040000 ) ROM_CONTINUE( 0x700000, 0x040000 )
ROM_REGION16_BE( 0x80, "eeprom", 0 )
ROM_LOAD16_WORD( "eeprom-galastrm.bin", 0x0000, 0x0080, CRC(94efa7a6) SHA1(5870b988cb364065e8bd779efbdadca8d3ffc17c) )
ROM_END ROM_END

View File

@ -220,7 +220,7 @@ Hang Pilot (uses an unknown but similar video board) 12W
#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/powerpc/ppc.h" #include "cpu/powerpc/ppc.h"
#include "cpu/sharc/sharc.h" #include "cpu/sharc/sharc.h"
#include "machine/konppc.h" #include "machine/konppc.h"
@ -321,44 +321,11 @@ static const eeprom_interface eeprom_intf =
0 /* reset_delay */ 0 /* reset_delay */
}; };
static void eeprom_handler(running_machine *machine, mame_file *file, int read_or_write)
{
if (read_or_write)
{
if (file)
{
eeprom_save(file);
}
}
else
{
eeprom_init(machine, &eeprom_intf);
if (file)
{
eeprom_load(file);
}
else
{
// set default eeprom
UINT8 eepdata[0x200];
memset(eepdata, 0xff, 0x200);
if (mame_stricmp(machine->gamedrv->name, "slrasslt") == 0)
{
// magic number
eepdata[0x4] = 0x96;
eepdata[0x5] = 0x72;
}
eeprom_set_data(eepdata, 0x200);
}
}
}
static READ8_HANDLER( sysreg_r ) static READ8_HANDLER( sysreg_r )
{ {
static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3" }; static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3" };
const device_config *adc1038 = devtag_get_device(space->machine, "adc1038"); const device_config *adc1038 = devtag_get_device(space->machine, "adc1038");
const device_config *eeprom = devtag_get_device(space->machine, "eeprom");
switch (offset) switch (offset)
{ {
@ -378,7 +345,7 @@ static READ8_HANDLER( sysreg_r )
// a = ADC readout // a = ADC readout
// e = EEPROM data out // e = EEPROM data out
UINT32 eeprom_bit = (eeprom_read_bit() << 1); UINT32 eeprom_bit = (eepromdev_read_bit(eeprom) << 1);
UINT32 adc_bit = (adc1038_do_read(adc1038) << 2); UINT32 adc_bit = (adc1038_do_read(adc1038) << 2);
return (eeprom_bit | adc_bit); return (eeprom_bit | adc_bit);
} }
@ -393,6 +360,7 @@ static READ8_HANDLER( sysreg_r )
static WRITE8_HANDLER( sysreg_w ) static WRITE8_HANDLER( sysreg_w )
{ {
const device_config *adc1038 = devtag_get_device(space->machine, "adc1038"); const device_config *adc1038 = devtag_get_device(space->machine, "adc1038");
const device_config *eeprom = devtag_get_device(space->machine, "eeprom");
switch (offset) switch (offset)
{ {
@ -405,9 +373,9 @@ static WRITE8_HANDLER( sysreg_w )
break; break;
case 3: case 3:
eeprom_write_bit((data & 0x01) ? 1 : 0); eepromdev_write_bit(eeprom, (data & 0x01) ? 1 : 0);
eeprom_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); eepromdev_set_clock_line(eeprom, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
eeprom_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE); eepromdev_set_cs_line(eeprom, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE);
break; break;
case 4: case 4:
@ -524,11 +492,6 @@ ADDRESS_MAP_END
/*****************************************************************************/ /*****************************************************************************/
static NVRAM_HANDLER(gticlub)
{
eeprom_handler(machine, file, read_or_write);
}
static INPUT_PORTS_START( gticlub ) static INPUT_PORTS_START( gticlub )
PORT_START("IN0") PORT_START("IN0")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) // View switch PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) // View switch
@ -816,7 +779,8 @@ static MACHINE_DRIVER_START( gticlub )
MDRV_QUANTUM_TIME(HZ(6000)) MDRV_QUANTUM_TIME(HZ(6000))
MDRV_NVRAM_HANDLER(gticlub) MDRV_EEPROM_ADD("eeprom", eeprom_intf)
MDRV_MACHINE_START(gticlub) MDRV_MACHINE_START(gticlub)
MDRV_MACHINE_RESET(gticlub) MDRV_MACHINE_RESET(gticlub)
@ -900,7 +864,8 @@ static MACHINE_DRIVER_START( hangplt )
MDRV_QUANTUM_TIME(HZ(6000)) MDRV_QUANTUM_TIME(HZ(6000))
MDRV_NVRAM_HANDLER(gticlub) MDRV_EEPROM_ADD("eeprom", eeprom_intf)
MDRV_MACHINE_START(gticlub) MDRV_MACHINE_START(gticlub)
MDRV_MACHINE_RESET(hangplt) MDRV_MACHINE_RESET(hangplt)
@ -1117,6 +1082,9 @@ ROM_START( slrasslt ) /* USA version UAA */
ROM_LOAD64_WORD( "792a14.13d", 0x000002, 0x200000, CRC(cf57e830) SHA1(607b4dec3b8180a63e29d9dab1ca28d7226dda1e) ) ROM_LOAD64_WORD( "792a14.13d", 0x000002, 0x200000, CRC(cf57e830) SHA1(607b4dec3b8180a63e29d9dab1ca28d7226dda1e) )
ROM_LOAD64_WORD( "792a15.9d", 0x000004, 0x200000, CRC(1c5531cb) SHA1(1b514f181c92e16d07bfe4719604f1e4caf15377) ) ROM_LOAD64_WORD( "792a15.9d", 0x000004, 0x200000, CRC(1c5531cb) SHA1(1b514f181c92e16d07bfe4719604f1e4caf15377) )
ROM_LOAD64_WORD( "792a16.4d", 0x000006, 0x200000, CRC(df89e392) SHA1(af37c5460d43bf8d8a1ab4213c4528083a7363c2) ) ROM_LOAD64_WORD( "792a16.4d", 0x000006, 0x200000, CRC(df89e392) SHA1(af37c5460d43bf8d8a1ab4213c4528083a7363c2) )
ROM_REGION16_BE(0x200, "eeprom", 0) /* default eeprom with magic number */
ROM_LOAD16_WORD( "eeprom-slrasslt.bin", 0x0000, 0x0200, CRC(924b4ed8) SHA1(247bf0c1394cbab3af03c26b9c016302b9b5723c) )
ROM_END ROM_END
ROM_START( hangplt ) /* Japan version JAB */ ROM_START( hangplt ) /* Japan version JAB */