mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +03:00
Updated playmark, othunder, psikyo4, pntnpuzl, and pirates to eepromdev.
This commit is contained in:
parent
9fc457fa31
commit
21b6fb843c
@ -234,7 +234,7 @@ TODO:
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "includes/taitoipt.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
#include "video/taitoic.h"
|
||||
#include "audio/taitosnd.h"
|
||||
#include "sound/2610intf.h"
|
||||
@ -322,29 +322,9 @@ static const eeprom_interface eeprom_intf =
|
||||
"0100111111" /* unlock command */
|
||||
};
|
||||
|
||||
static NVRAM_HANDLER( othunder )
|
||||
{
|
||||
if (read_or_write)
|
||||
eeprom_save(file);
|
||||
else
|
||||
{
|
||||
eeprom_init(machine, &eeprom_intf);
|
||||
|
||||
if (file)
|
||||
eeprom_load(file);
|
||||
else
|
||||
eeprom_set_data(default_eeprom,128); /* Default the gun setup values */
|
||||
}
|
||||
}
|
||||
|
||||
static int eeprom_r(void)
|
||||
{
|
||||
return (eeprom_read_bit() & 0x01)<<7;
|
||||
}
|
||||
|
||||
|
||||
static WRITE16_HANDLER( othunder_TC0220IOC_w )
|
||||
{
|
||||
const device_config *device;
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
switch (offset)
|
||||
@ -366,9 +346,10 @@ static WRITE16_HANDLER( othunder_TC0220IOC_w )
|
||||
if (data & 4)
|
||||
popmessage("OBPRI SET!");
|
||||
|
||||
eeprom_write_bit(data & 0x40);
|
||||
eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eeprom_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
|
||||
device = devtag_get_device(space->machine, "eeprom");
|
||||
eepromdev_write_bit(device, data & 0x40);
|
||||
eepromdev_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eepromdev_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -384,10 +365,12 @@ if (data & 4)
|
||||
|
||||
static READ16_HANDLER( othunder_TC0220IOC_r )
|
||||
{
|
||||
const device_config *device;
|
||||
switch (offset)
|
||||
{
|
||||
case 0x03:
|
||||
return eeprom_r();
|
||||
device = devtag_get_device(space->machine, "eeprom");
|
||||
return (eepromdev_read_bit(device) & 1) << 7;
|
||||
|
||||
default:
|
||||
return TC0220IOC_r( space, offset );
|
||||
@ -698,7 +681,8 @@ static MACHINE_DRIVER_START( othunder )
|
||||
MDRV_CPU_ADD("audiocpu", Z80,16000000/4 ) /* 4 MHz */
|
||||
MDRV_CPU_PROGRAM_MAP(z80_sound_map)
|
||||
|
||||
MDRV_NVRAM_HANDLER(othunder)
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
|
||||
MDRV_MACHINE_START(othunder)
|
||||
MDRV_MACHINE_RESET(othunder)
|
||||
|
||||
@ -782,6 +766,9 @@ ROM_START( othunder )
|
||||
ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) )
|
||||
ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) )
|
||||
ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) )
|
||||
|
||||
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||
ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( othunderu )
|
||||
@ -818,6 +805,9 @@ ROM_START( othunderu )
|
||||
ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) )
|
||||
ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) )
|
||||
ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) )
|
||||
|
||||
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||
ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( othunderuo )
|
||||
@ -854,6 +844,9 @@ ROM_START( othunderuo )
|
||||
ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) )
|
||||
ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) )
|
||||
ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) )
|
||||
|
||||
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||
ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( othunderj )
|
||||
@ -890,6 +883,9 @@ ROM_START( othunderj )
|
||||
ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) )
|
||||
ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) )
|
||||
ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) )
|
||||
|
||||
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||
ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
@ -89,7 +89,7 @@ Notes:
|
||||
|
||||
#include "driver.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
#include "sound/okim6295.h"
|
||||
|
||||
extern UINT16 *pirates_tx_tileram, *pirates_spriteram;
|
||||
@ -115,24 +115,16 @@ static const eeprom_interface eeprom_intf =
|
||||
"*10011xxxx" /* unlock command */
|
||||
};
|
||||
|
||||
static NVRAM_HANDLER( pirates )
|
||||
{
|
||||
if (read_or_write) eeprom_save(file);
|
||||
else
|
||||
{
|
||||
eeprom_init(machine, &eeprom_intf);
|
||||
if (file) eeprom_load(file);
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( pirates_out_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
const device_config *eeprom = devtag_get_device(space->machine, "eeprom");
|
||||
|
||||
/* bits 0-2 control EEPROM */
|
||||
eeprom_write_bit(data & 0x04);
|
||||
eeprom_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eeprom_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eepromdev_write_bit(eeprom, data & 0x04);
|
||||
eepromdev_set_cs_line(eeprom, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eepromdev_set_clock_line(eeprom, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
|
||||
|
||||
/* bit 6 selects oki bank */
|
||||
okim6295_set_bank_base(devtag_get_device(space->machine, "oki"), (data & 0x40) ? 0x40000 : 0x00000);
|
||||
@ -226,7 +218,7 @@ static INPUT_PORTS_START( pirates )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
|
||||
PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) // EEPROM data
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) // EEPROM data
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // seems checked in "test mode"
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // seems checked in "test mode"
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM(prot_r, NULL) // protection
|
||||
@ -282,7 +274,7 @@ static MACHINE_DRIVER_START( pirates )
|
||||
MDRV_CPU_PROGRAM_MAP(pirates_map)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
|
||||
|
||||
MDRV_NVRAM_HANDLER(pirates)
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
|
||||
MDRV_GFXDECODE(pirates)
|
||||
|
||||
|
@ -41,7 +41,7 @@ TODO:
|
||||
|
||||
#include "driver.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
#include "cpu/pic16c5x/pic16c5x.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "includes/playmark.h"
|
||||
@ -84,31 +84,12 @@ static const eeprom_interface eeprom_intf =
|
||||
5 /* reset_delay (otherwise wbeachvl will hang when saving settings) */
|
||||
};
|
||||
|
||||
static NVRAM_HANDLER( wbeachvl )
|
||||
{
|
||||
if (read_or_write)
|
||||
{
|
||||
eeprom_save(file);
|
||||
}
|
||||
else
|
||||
{
|
||||
eeprom_init(machine, &eeprom_intf);
|
||||
|
||||
if (file)
|
||||
eeprom_load(file);
|
||||
else
|
||||
{
|
||||
UINT8 init[128];
|
||||
memset(init,0,128);
|
||||
eeprom_set_data(init,128);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( wbeachvl_coin_eeprom_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
const device_config *eeprom = devtag_get_device(space->machine, "eeprom");
|
||||
|
||||
/* bits 0-3 are coin counters? (only 0 used?) */
|
||||
coin_counter_w(space->machine, 0,data & 0x01);
|
||||
coin_counter_w(space->machine, 1,data & 0x02);
|
||||
@ -116,9 +97,9 @@ static WRITE16_HANDLER( wbeachvl_coin_eeprom_w )
|
||||
coin_counter_w(space->machine, 3,data & 0x08);
|
||||
|
||||
/* bits 5-7 control EEPROM */
|
||||
eeprom_set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eeprom_write_bit(data & 0x80);
|
||||
eeprom_set_clock_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eepromdev_set_cs_line(eeprom, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eepromdev_write_bit(eeprom, data & 0x80);
|
||||
eepromdev_set_clock_line(eeprom, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -126,11 +107,12 @@ static WRITE16_HANDLER( hotmind_coin_eeprom_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
const device_config *eeprom = devtag_get_device(space->machine, "eeprom");
|
||||
coin_counter_w(space->machine, 0,data & 0x20);
|
||||
|
||||
eeprom_set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eeprom_write_bit(data & 4);
|
||||
eeprom_set_clock_line((data & 2) ? ASSERT_LINE : CLEAR_LINE );
|
||||
eepromdev_set_cs_line(eeprom, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eepromdev_write_bit(eeprom, data & 4);
|
||||
eepromdev_set_clock_line(eeprom, (data & 2) ? ASSERT_LINE : CLEAR_LINE );
|
||||
}
|
||||
}
|
||||
|
||||
@ -457,7 +439,7 @@ static INPUT_PORTS_START( wbeachvl )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE1 )
|
||||
PORT_SERVICE_NO_TOGGLE(0x20, IP_ACTIVE_LOW)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* ?? see code at 746a. sound status? */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) /* EEPROM data */
|
||||
|
||||
PORT_START("P1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
|
||||
@ -623,7 +605,7 @@ static INPUT_PORTS_START( hotmind )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VBLANK )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit) /* EEPROM data */
|
||||
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) )
|
||||
@ -962,7 +944,8 @@ static MACHINE_DRIVER_START( wbeachvl )
|
||||
/* Program and Data Maps are internal to the MCU */
|
||||
// MDRV_CPU_IO_MAP(playmark_sound_io_map)
|
||||
|
||||
MDRV_NVRAM_HANDLER(wbeachvl)
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_EEPROM_DEFAULT_VALUE(0)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -1030,7 +1013,8 @@ static MACHINE_DRIVER_START( hotmind )
|
||||
/* Program and Data Maps are internal to the MCU */
|
||||
MDRV_CPU_IO_MAP(playmark_sound_io_map)
|
||||
|
||||
MDRV_NVRAM_HANDLER(wbeachvl)
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_EEPROM_DEFAULT_VALUE(0)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -122,7 +122,7 @@ CN1 standard DB15 VGA connector (15KHz)
|
||||
|
||||
#include "driver.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
|
||||
|
||||
static const eeprom_interface eeprom_intf =
|
||||
@ -136,36 +136,15 @@ static const eeprom_interface eeprom_intf =
|
||||
"*10011xxxx" /* unlock command */
|
||||
};
|
||||
|
||||
static NVRAM_HANDLER( pntnpuzl )
|
||||
{
|
||||
if (read_or_write)
|
||||
eeprom_save(file);
|
||||
else
|
||||
{
|
||||
eeprom_init(machine, &eeprom_intf);
|
||||
|
||||
if (file)
|
||||
eeprom_load(file);
|
||||
else
|
||||
{
|
||||
UINT32 length, size;
|
||||
UINT8 *dat;
|
||||
|
||||
dat = (UINT8 *)eeprom_get_data_pointer(&length, &size);
|
||||
memset(dat, 0, length * size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static UINT16 pntnpuzl_eeprom;
|
||||
|
||||
static READ16_HANDLER( pntnpuzl_eeprom_r )
|
||||
static READ16_DEVICE_HANDLER( pntnpuzl_eeprom_r )
|
||||
{
|
||||
/* bit 11 is EEPROM data */
|
||||
return (pntnpuzl_eeprom & 0xf4ff) | (eeprom_read_bit()<<11) | (input_port_read(space->machine, "IN1") & 0x0300);
|
||||
return (pntnpuzl_eeprom & 0xf4ff) | (eepromdev_read_bit(device)<<11) | (input_port_read(device->machine, "IN1") & 0x0300);
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( pntnpuzl_eeprom_w )
|
||||
static WRITE16_DEVICE_HANDLER( pntnpuzl_eeprom_w )
|
||||
{
|
||||
pntnpuzl_eeprom = data;
|
||||
|
||||
@ -173,9 +152,9 @@ static WRITE16_HANDLER( pntnpuzl_eeprom_w )
|
||||
/* bit 13 is clock (active high) */
|
||||
/* bit 14 is cs (active high) */
|
||||
|
||||
eeprom_write_bit(data & 0x1000);
|
||||
eeprom_set_cs_line((data & 0x4000) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eeprom_set_clock_line((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eepromdev_write_bit(device, data & 0x1000);
|
||||
eepromdev_set_cs_line(device, (data & 0x4000) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eepromdev_set_clock_line(device, (data & 0x2000) ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
@ -388,9 +367,9 @@ static ADDRESS_MAP_START( pntnpuzl_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x100000, 0x100001) AM_READNOP //| irq lines clear
|
||||
AM_RANGE(0x180000, 0x180001) AM_READNOP //|
|
||||
AM_RANGE(0x200000, 0x200001) AM_WRITE(pntnpuzl_200000_w)
|
||||
AM_RANGE(0x280000, 0x280001) AM_READ(pntnpuzl_eeprom_r)
|
||||
AM_RANGE(0x280000, 0x280001) AM_DEVREAD("eeprom", pntnpuzl_eeprom_r)
|
||||
AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN2")
|
||||
AM_RANGE(0x280000, 0x280001) AM_WRITE(pntnpuzl_eeprom_w)
|
||||
AM_RANGE(0x280000, 0x280001) AM_DEVWRITE("eeprom", pntnpuzl_eeprom_w)
|
||||
AM_RANGE(0x280008, 0x280009) AM_WRITENOP
|
||||
AM_RANGE(0x28000a, 0x28000b) AM_WRITENOP
|
||||
AM_RANGE(0x280010, 0x280011) AM_WRITENOP
|
||||
@ -458,7 +437,7 @@ static MACHINE_DRIVER_START( pntnpuzl )
|
||||
MDRV_CPU_PROGRAM_MAP(pntnpuzl_map)
|
||||
MDRV_CPU_VBLANK_INT("screen", pntnpuzl_irq) // irq1 = coin irq2 = service irq4 = coin
|
||||
|
||||
MDRV_NVRAM_HANDLER(pntnpuzl)
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
|
||||
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -129,7 +129,7 @@ ROMs -
|
||||
#include "driver.h"
|
||||
|
||||
#include "cpu/sh2/sh2.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
#include "sound/ymf278b.h"
|
||||
#include "rendlay.h"
|
||||
#include "includes/psikyo4.h"
|
||||
@ -165,37 +165,13 @@ static const eeprom_interface eeprom_interface_93C56 =
|
||||
// "*10010xxxx" // erase all 1 00 10xxxx
|
||||
};
|
||||
|
||||
static NVRAM_HANDLER(93C56)
|
||||
{
|
||||
if (read_or_write)
|
||||
{
|
||||
eeprom_save(file);
|
||||
}
|
||||
else
|
||||
{
|
||||
eeprom_init(machine, &eeprom_interface_93C56);
|
||||
if (file)
|
||||
{
|
||||
eeprom_load(file);
|
||||
}
|
||||
else // these games want the eeprom all zeros by default
|
||||
{
|
||||
UINT32 length, size;
|
||||
UINT8 *dat;
|
||||
|
||||
dat = (UINT8 *)eeprom_get_data_pointer(&length, &size);
|
||||
memset(dat, 0, length * size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( ps4_eeprom_w )
|
||||
static WRITE32_DEVICE_HANDLER( ps4_eeprom_w )
|
||||
{
|
||||
if (ACCESSING_BITS_16_31)
|
||||
{
|
||||
eeprom_write_bit((data & 0x00200000) ? 1 : 0);
|
||||
eeprom_set_cs_line((data & 0x00800000) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eeprom_set_clock_line((data & 0x00400000) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eepromdev_write_bit(device, (data & 0x00200000) ? 1 : 0);
|
||||
eepromdev_set_cs_line(device, (data & 0x00800000) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eepromdev_set_clock_line(device, (data & 0x00400000) ? ASSERT_LINE : CLEAR_LINE);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -203,11 +179,11 @@ static WRITE32_HANDLER( ps4_eeprom_w )
|
||||
logerror("Unk EEPROM write %x mask %x\n", data, mem_mask);
|
||||
}
|
||||
|
||||
static READ32_HANDLER( ps4_eeprom_r )
|
||||
static READ32_DEVICE_HANDLER( ps4_eeprom_r )
|
||||
{
|
||||
if (ACCESSING_BITS_16_31)
|
||||
{
|
||||
return input_port_read(space->machine, "JP4");
|
||||
return input_port_read(device->machine, "JP4");
|
||||
}
|
||||
|
||||
// logerror("Unk EEPROM read mask %x\n", mem_mask);
|
||||
@ -402,7 +378,7 @@ static ADDRESS_MAP_START( ps4_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x00000000, 0x000fffff) AM_ROM // program ROM (1 meg)
|
||||
AM_RANGE(0x02000000, 0x021fffff) AM_ROMBANK("bank1") // data ROM
|
||||
AM_RANGE(0x03000000, 0x030037ff) AM_RAM AM_BASE_SIZE_MEMBER(psikyo4_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x03003fe0, 0x03003fe3) AM_READWRITE(ps4_eeprom_r,ps4_eeprom_w)
|
||||
AM_RANGE(0x03003fe0, 0x03003fe3) AM_DEVREADWRITE("eeprom", ps4_eeprom_r,ps4_eeprom_w)
|
||||
AM_RANGE(0x03003fe4, 0x03003fe7) AM_READNOP // also writes to this address - might be vblank?
|
||||
// AM_RANGE(0x03003fe4, 0x03003fe7) AM_WRITENOP // might be vblank?
|
||||
AM_RANGE(0x03003fe4, 0x03003fef) AM_RAM_WRITE(ps4_vidregs_w) AM_BASE_MEMBER(psikyo4_state, vidregs) // vid regs?
|
||||
@ -439,7 +415,7 @@ static INPUT_PORTS_START( hotgmck )
|
||||
|
||||
PORT_START("JP4")/* jumper pads 'JP4' on the PCB */
|
||||
/* EEPROM is read here */
|
||||
PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||
|
||||
PORT_START("SYSTEM") /* system inputs */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) // Screen 1
|
||||
@ -622,7 +598,7 @@ static INPUT_PORTS_START( loderndf )
|
||||
PORT_DIPSETTING( 0x00000000, "Japan (Shows Version Number)" )
|
||||
PORT_DIPSETTING( 0x00010000, "World (Does Not Show Version Number)" )
|
||||
/* EEPROM is read here */
|
||||
PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||
INPUT_PORTS_END
|
||||
|
||||
/* unused inputs also act as duplicate buttons */
|
||||
@ -705,7 +681,7 @@ static INPUT_PORTS_START( hotdebut )
|
||||
|
||||
PORT_START("JP4")/* jumper pads 'JP4' on the PCB */
|
||||
/* EEPROM is read here */
|
||||
PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -760,7 +736,8 @@ static MACHINE_DRIVER_START( ps4big )
|
||||
MDRV_MACHINE_START(psikyo4)
|
||||
MDRV_MACHINE_RESET(psikyo4)
|
||||
|
||||
MDRV_NVRAM_HANDLER(93C56)
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_interface_93C56)
|
||||
MDRV_EEPROM_DEFAULT_VALUE(0)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_GFXDECODE(ps4)
|
||||
|
Loading…
Reference in New Issue
Block a user