mirror of
https://github.com/holub/mame
synced 2025-05-22 21:58:57 +03:00
And one more tonight: raiden2 and rbmk use the eeprom device.
This commit is contained in:
parent
87d9c3e12c
commit
98f248b3be
@ -139,7 +139,7 @@ Current Problem(s) - in order of priority
|
||||
#include "cpu/nec/nec.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "audio/seibu.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "machine/seicop.h"
|
||||
#include "includes/raiden2.h"
|
||||
@ -937,7 +937,7 @@ static ADDRESS_MAP_START( nzerotea_mem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
// AM_RANGE(0x006d8, 0x006d9) AM_WRITE(bbbbll_w) // scroll?
|
||||
AM_RANGE(0x006dc, 0x006dd) AM_READ(nzerotea_unknown_r)
|
||||
// AM_RANGE(0x006de, 0x006df) AM_WRITE(mcu_unkaa_w) // mcu command related?
|
||||
//AM_RANGE(0x00700, 0x00701) AM_WRITE(rdx_v33_eeprom_w)
|
||||
//AM_RANGE(0x00700, 0x00701) AM_DEVWRITE("eeprom", rdx_v33_eeprom_w)
|
||||
AM_RANGE(0x00740, 0x00741) AM_READ(nzerotea_unknown_r)
|
||||
AM_RANGE(0x00744, 0x00745) AM_READ(r2_playerin_r)
|
||||
AM_RANGE(0x0074c, 0x0074d) AM_READ(rdx_v33_system_r)
|
||||
@ -1977,6 +1977,9 @@ ROM_START( r2dx_v33 )
|
||||
|
||||
ROM_REGION( 0x40000, "user2", 0 ) /* COPDX */
|
||||
ROM_LOAD( "copx_d3.357", 0x00000, 0x20000, CRC(fa2cf3ad) SHA1(13eee40704d3333874b6e3da9ee7d969c6dc662a) )
|
||||
|
||||
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||
ROM_LOAD16_WORD( "eeprom-r2dx_v33.bin", 0x0000, 0x0080, CRC(ba454777) SHA1(101c5364e8664d17bfb1e759515d135a2673d67e) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
@ -2067,36 +2070,13 @@ static DRIVER_INIT (xsedae)
|
||||
}
|
||||
|
||||
|
||||
static const UINT8 r2_v33_default_eeprom_type1[32] =
|
||||
{
|
||||
0x41, 0x52, 0x44, 0x49, 0x4E, 0x45, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x91, 0x80,
|
||||
0x80, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
};
|
||||
|
||||
static NVRAM_HANDLER( rdx_v33 )
|
||||
{
|
||||
if (read_or_write)
|
||||
eeprom_save(file);
|
||||
else
|
||||
{
|
||||
eeprom_init(machine, &eeprom_interface_93C46);
|
||||
|
||||
if (file) eeprom_load(file);
|
||||
else
|
||||
{
|
||||
eeprom_set_data(r2_v33_default_eeprom_type1,32);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static WRITE16_HANDLER( rdx_v33_eeprom_w )
|
||||
static WRITE16_DEVICE_HANDLER( rdx_v33_eeprom_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
eeprom_set_clock_line((data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eeprom_write_bit(data & 0x20);
|
||||
eeprom_set_cs_line((data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eepromdev_set_clock_line(device, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eepromdev_write_bit(device, data & 0x20);
|
||||
eepromdev_set_cs_line(device, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
|
||||
|
||||
if (data&0xc7) logerror("eeprom_w extra bits used %04x\n",data);
|
||||
}
|
||||
@ -2133,7 +2113,7 @@ static ADDRESS_MAP_START( rdx_v33_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
// AM_RANGE(0x006d8, 0x006d9) AM_WRITE(bbbbll_w) // scroll?
|
||||
AM_RANGE(0x006dc, 0x006dd) AM_READ(rdx_v33_unknown2_r)
|
||||
// AM_RANGE(0x006de, 0x006df) AM_WRITE(mcu_unkaa_w) // mcu command related?
|
||||
AM_RANGE(0x00700, 0x00701) AM_WRITE(rdx_v33_eeprom_w)
|
||||
AM_RANGE(0x00700, 0x00701) AM_DEVWRITE("eeprom", rdx_v33_eeprom_w)
|
||||
AM_RANGE(0x00740, 0x00741) AM_READ(rdx_v33_unknown2_r)
|
||||
AM_RANGE(0x00744, 0x00745) AM_READ(r2_playerin_r)
|
||||
AM_RANGE(0x0074c, 0x0074d) AM_READ(rdx_v33_system_r)
|
||||
@ -2177,7 +2157,7 @@ static INPUT_PORTS_START( rdx_v33 )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_DIPNAME( 0x0040, 0x0040, "Test Mode" )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
||||
@ -2217,7 +2197,7 @@ static INPUT_PORTS_START( nzerotea )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
//PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
//PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_DIPNAME( 0x0040, 0x0040, "Test Mode" )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
||||
@ -2267,7 +2247,8 @@ static MACHINE_DRIVER_START( rdx_v33 )
|
||||
MDRV_CPU_VBLANK_INT("screen", rdx_v33_interrupt)
|
||||
|
||||
MDRV_MACHINE_RESET(rdx_v33)
|
||||
MDRV_NVRAM_HANDLER(rdx_v33)
|
||||
|
||||
MDRV_EEPROM_93C46_NODEFAULT_ADD("eeprom")
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -52,7 +52,7 @@ Notes:
|
||||
#include "driver.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
|
||||
static UINT16 *gms_vidram;
|
||||
static UINT16 *gms_vidram2;
|
||||
@ -80,15 +80,15 @@ static WRITE16_HANDLER( gms_write3 )
|
||||
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( eeprom_w )
|
||||
static WRITE16_DEVICE_HANDLER( eeprom_w )
|
||||
{
|
||||
//bad ?
|
||||
if( ACCESSING_BITS_0_7 )
|
||||
{
|
||||
eeprom_write_bit(data & 0x04);
|
||||
eeprom_set_cs_line((data & 0x01) ? CLEAR_LINE:ASSERT_LINE );
|
||||
eepromdev_write_bit(device, data & 0x04);
|
||||
eepromdev_set_cs_line(device, (data & 0x01) ? CLEAR_LINE:ASSERT_LINE );
|
||||
|
||||
eeprom_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE );
|
||||
eepromdev_set_clock_line(device, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE );
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ static ADDRESS_MAP_START( rbmk_mem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x980300, 0x983fff) AM_RAM // 0x2048 words ???, byte access
|
||||
AM_RANGE(0x900000, 0x900fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x9c0000, 0x9c0fff) AM_RAM AM_BASE(&gms_vidram)
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_WRITE(eeprom_w)
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_DEVWRITE("eeprom", eeprom_w)
|
||||
AM_RANGE(0xC00000, 0xC00001) AM_READ_PORT("IN0") AM_WRITE(gms_write1)
|
||||
AM_RANGE(0xC08000, 0xC08001) AM_READ_PORT("IN1") AM_WRITE(gms_write2)
|
||||
AM_RANGE(0xC10000, 0xC10001) AM_READ_PORT("IN3")
|
||||
@ -293,7 +293,7 @@ static INPUT_PORTS_START( rbmk )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||
|
||||
PORT_START("IN4") /* 16bit */
|
||||
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
|
||||
@ -459,24 +459,6 @@ static VIDEO_UPDATE(rbmk)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static NVRAM_HANDLER( syf )
|
||||
{
|
||||
if (read_or_write)
|
||||
eeprom_save(file);
|
||||
else
|
||||
{
|
||||
eeprom_init(machine, &eeprom_interface_93C46);
|
||||
if (file)
|
||||
{
|
||||
eeprom_load(file);
|
||||
}
|
||||
else
|
||||
{
|
||||
eeprom_set_data(memory_region(machine, "user2"),128);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static MACHINE_DRIVER_START( rbmk )
|
||||
@ -499,7 +481,7 @@ static MACHINE_DRIVER_START( rbmk )
|
||||
MDRV_VIDEO_START(rbmk)
|
||||
MDRV_VIDEO_UPDATE(rbmk)
|
||||
|
||||
MDRV_NVRAM_HANDLER(syf)
|
||||
MDRV_EEPROM_93C46_NODEFAULT_ADD("eeprom")
|
||||
|
||||
|
||||
MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
@ -529,7 +511,7 @@ ROM_START( rbmk )
|
||||
ROM_REGION( 0x80000, "gfx2", 0 ) /* 8x8 tiles? cards etc */
|
||||
ROM_LOAD( "t1.u39", 0x00000, 0x80000, CRC(adf67429) SHA1(ab03c7f68403545f9e86a069581dc3fc3fa6b9c4) )
|
||||
|
||||
ROM_REGION( 0x80, "user2", 0 ) /* eeprom */
|
||||
ROM_REGION16_BE( 0x80, "eeprom", 0 ) /* eeprom */
|
||||
ROM_LOAD16_WORD_SWAP( "93c46.u51", 0x00, 0x080, CRC(4ca6ff01) SHA1(66c456eac5b0d1176ef9130baf2e746efdf30152) )
|
||||
ROM_END
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user