From 933132291ea18868f1aa50f64828ce50f9bf0df3 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Sat, 26 Dec 2009 21:32:46 +0000 Subject: [PATCH] galastrm and gticlub use eepromdev. --- src/mame/drivers/galastrm.c | 29 +++++++----------- src/mame/drivers/gticlub.c | 60 +++++++++---------------------------- 2 files changed, 24 insertions(+), 65 deletions(-) diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c index 0ab43e5b220..63419280c5c 100644 --- a/src/mame/drivers/galastrm.c +++ b/src/mame/drivers/galastrm.c @@ -41,7 +41,7 @@ $305.b invincibility #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" @@ -132,9 +132,10 @@ popmessage(t); 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; } return; @@ -208,7 +209,7 @@ static INPUT_PORTS_START( galastrm ) 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) + 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( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(frame_counter_r, NULL) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -305,19 +306,6 @@ static const eeprom_interface galastrm_eeprom_interface = "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 ) @@ -326,7 +314,7 @@ static MACHINE_DRIVER_START( galastrm ) MDRV_CPU_PROGRAM_MAP(galastrm_map) MDRV_CPU_VBLANK_INT("screen", galastrm_interrupt) /* VBL */ - MDRV_NVRAM_HANDLER(galastrm) + MDRV_EEPROM_ADD("eeprom", galastrm_eeprom_interface) /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -380,6 +368,9 @@ ROM_START( galastrm ) ROM_CONTINUE( 0x600000, 0x040000 ) ROM_CONTINUE( 0x780000, 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 diff --git a/src/mame/drivers/gticlub.c b/src/mame/drivers/gticlub.c index e2a90f2f088..8ce10e32cb1 100644 --- a/src/mame/drivers/gticlub.c +++ b/src/mame/drivers/gticlub.c @@ -220,7 +220,7 @@ Hang Pilot (uses an unknown but similar video board) 12W #include "driver.h" #include "cpu/m68000/m68000.h" -#include "machine/eeprom.h" +#include "machine/eepromdev.h" #include "cpu/powerpc/ppc.h" #include "cpu/sharc/sharc.h" #include "machine/konppc.h" @@ -321,44 +321,11 @@ static const eeprom_interface eeprom_intf = 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 const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3" }; const device_config *adc1038 = devtag_get_device(space->machine, "adc1038"); + const device_config *eeprom = devtag_get_device(space->machine, "eeprom"); switch (offset) { @@ -378,7 +345,7 @@ static READ8_HANDLER( sysreg_r ) // a = ADC readout // 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); return (eeprom_bit | adc_bit); } @@ -393,6 +360,7 @@ static READ8_HANDLER( sysreg_r ) static WRITE8_HANDLER( sysreg_w ) { const device_config *adc1038 = devtag_get_device(space->machine, "adc1038"); + const device_config *eeprom = devtag_get_device(space->machine, "eeprom"); switch (offset) { @@ -405,9 +373,9 @@ static WRITE8_HANDLER( sysreg_w ) break; case 3: - eeprom_write_bit((data & 0x01) ? 1 : 0); - eeprom_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); - eeprom_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE); + eepromdev_write_bit(eeprom, (data & 0x01) ? 1 : 0); + eepromdev_set_clock_line(eeprom, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE); + eepromdev_set_cs_line(eeprom, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); break; 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 ) PORT_START("IN0") 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_NVRAM_HANDLER(gticlub) + MDRV_EEPROM_ADD("eeprom", eeprom_intf) + MDRV_MACHINE_START(gticlub) MDRV_MACHINE_RESET(gticlub) @@ -900,7 +864,8 @@ static MACHINE_DRIVER_START( hangplt ) MDRV_QUANTUM_TIME(HZ(6000)) - MDRV_NVRAM_HANDLER(gticlub) + MDRV_EEPROM_ADD("eeprom", eeprom_intf) + MDRV_MACHINE_START(gticlub) 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( "792a15.9d", 0x000004, 0x200000, CRC(1c5531cb) SHA1(1b514f181c92e16d07bfe4719604f1e4caf15377) ) 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_START( hangplt ) /* Japan version JAB */