mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
added basic support for FLASH_AMD_29LV200T
This commit is contained in:
parent
04cca4aa91
commit
49f492c4a8
3 changed files with 43 additions and 17 deletions
|
@ -82,6 +82,7 @@ const device_type ATMEL_29C010 = &device_creator<atmel_29c010_device>;
|
||||||
const device_type AMD_29F010 = &device_creator<amd_29f010_device>;
|
const device_type AMD_29F010 = &device_creator<amd_29f010_device>;
|
||||||
const device_type AMD_29F040 = &device_creator<amd_29f040_device>;
|
const device_type AMD_29F040 = &device_creator<amd_29f040_device>;
|
||||||
const device_type AMD_29F080 = &device_creator<amd_29f080_device>;
|
const device_type AMD_29F080 = &device_creator<amd_29f080_device>;
|
||||||
|
const device_type AMD_29LV200T = &device_creator<amd_29lv200t_device>;
|
||||||
const device_type FUJITSU_29F016A = &device_creator<fujitsu_29f016a_device>;
|
const device_type FUJITSU_29F016A = &device_creator<fujitsu_29f016a_device>;
|
||||||
const device_type FUJITSU_29DL16X = &device_creator<fujitsu_29dl16x_device>;
|
const device_type FUJITSU_29DL16X = &device_creator<fujitsu_29dl16x_device>;
|
||||||
const device_type INTEL_E28F400B = &device_creator<intel_e28f400b_device>;
|
const device_type INTEL_E28F400B = &device_creator<intel_e28f400b_device>;
|
||||||
|
@ -210,6 +211,13 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type
|
||||||
m_device_id = 0xd5;
|
m_device_id = 0xd5;
|
||||||
map = ADDRESS_MAP_NAME( memory_map8_8Mb );
|
map = ADDRESS_MAP_NAME( memory_map8_8Mb );
|
||||||
break;
|
break;
|
||||||
|
case FLASH_AMD_29LV200T:
|
||||||
|
m_bits = 8;
|
||||||
|
m_size = 0x40000;
|
||||||
|
m_maker_id = MFG_AMD;
|
||||||
|
m_device_id = 0x3b;
|
||||||
|
map = ADDRESS_MAP_NAME( memory_map8_2Mb );
|
||||||
|
break;
|
||||||
case FLASH_INTEL_28F320J3D:
|
case FLASH_INTEL_28F320J3D:
|
||||||
m_bits = 16;
|
m_bits = 16;
|
||||||
m_size = 0x400000;
|
m_size = 0x400000;
|
||||||
|
@ -362,6 +370,9 @@ amd_29f040_device::amd_29f040_device(const machine_config &mconfig, const char *
|
||||||
amd_29f080_device::amd_29f080_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
amd_29f080_device::amd_29f080_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: intelfsh8_device(mconfig, AMD_29F080, "AMD 29F080 Flash", tag, owner, clock, FLASH_AMD_29F080, "amd_29f080", __FILE__) { }
|
: intelfsh8_device(mconfig, AMD_29F080, "AMD 29F080 Flash", tag, owner, clock, FLASH_AMD_29F080, "amd_29f080", __FILE__) { }
|
||||||
|
|
||||||
|
amd_29lv200t_device::amd_29lv200t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
|
: intelfsh8_device(mconfig, AMD_29LV200T, "AMD 29LV200T Flash", tag, owner, clock, FLASH_AMD_29LV200T, "amd_29lv200t", __FILE__) { }
|
||||||
|
|
||||||
intel_e28f008sa_device::intel_e28f008sa_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
intel_e28f008sa_device::intel_e28f008sa_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: intelfsh8_device(mconfig, INTEL_E28F008SA, "Intel E28F008SA Flash", tag, owner, clock, FLASH_INTEL_E28F008SA, "intel_e28f008sa", __FILE__) { }
|
: intelfsh8_device(mconfig, INTEL_E28F008SA, "Intel E28F008SA Flash", tag, owner, clock, FLASH_INTEL_E28F008SA, "intel_e28f008sa", __FILE__) { }
|
||||||
|
|
||||||
|
@ -539,9 +550,10 @@ UINT32 intelfsh_device::read_full(UINT32 address)
|
||||||
data = m_status;
|
data = m_status;
|
||||||
break;
|
break;
|
||||||
case FM_READAMDID3:
|
case FM_READAMDID3:
|
||||||
if (m_maker_id == MFG_FUJITSU && m_device_id == 0x35)
|
if ((m_maker_id == MFG_FUJITSU && m_device_id == 0x35) || (m_maker_id == MFG_AMD && m_device_id == 0x3b))
|
||||||
{
|
{
|
||||||
//used in Fujitsu 29DL16X 8bits mode
|
// used in Fujitsu 29DL16X 8bits mode
|
||||||
|
// used in AMD 29LV200 8bits mode
|
||||||
switch (address)
|
switch (address)
|
||||||
{
|
{
|
||||||
case 0: data = m_maker_id; break;
|
case 0: data = m_maker_id; break;
|
||||||
|
|
|
@ -28,6 +28,9 @@
|
||||||
#define MCFG_AMD_29F080_ADD(_tag) \
|
#define MCFG_AMD_29F080_ADD(_tag) \
|
||||||
MCFG_DEVICE_ADD(_tag, AMD_29F080, 0)
|
MCFG_DEVICE_ADD(_tag, AMD_29F080, 0)
|
||||||
|
|
||||||
|
#define MCFG_AMD_29LV200T_ADD(_tag) \
|
||||||
|
MCFG_DEVICE_ADD(_tag, AMD_29LV200T, 0)
|
||||||
|
|
||||||
#define MCFG_FUJITSU_29F016A_ADD(_tag) \
|
#define MCFG_FUJITSU_29F016A_ADD(_tag) \
|
||||||
MCFG_DEVICE_ADD(_tag, FUJITSU_29F016A, 0)
|
MCFG_DEVICE_ADD(_tag, FUJITSU_29F016A, 0)
|
||||||
|
|
||||||
|
@ -97,6 +100,7 @@ public:
|
||||||
FLASH_AMD_29F010,
|
FLASH_AMD_29F010,
|
||||||
FLASH_AMD_29F040,
|
FLASH_AMD_29F040,
|
||||||
FLASH_AMD_29F080,
|
FLASH_AMD_29F080,
|
||||||
|
FLASH_AMD_29LV200T,
|
||||||
FLASH_SHARP_LH28F016S,
|
FLASH_SHARP_LH28F016S,
|
||||||
FLASH_INTEL_E28F008SA,
|
FLASH_INTEL_E28F008SA,
|
||||||
FLASH_MACRONIX_29L001MC,
|
FLASH_MACRONIX_29L001MC,
|
||||||
|
@ -243,6 +247,12 @@ public:
|
||||||
amd_29f080_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
amd_29f080_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class amd_29lv200t_device : public intelfsh8_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
amd_29lv200t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
};
|
||||||
|
|
||||||
class sharp_lh28f016s_device : public intelfsh8_device
|
class sharp_lh28f016s_device : public intelfsh8_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -336,6 +346,7 @@ extern const device_type ATMEL_29C010;
|
||||||
extern const device_type AMD_29F010;
|
extern const device_type AMD_29F010;
|
||||||
extern const device_type AMD_29F040;
|
extern const device_type AMD_29F040;
|
||||||
extern const device_type AMD_29F080;
|
extern const device_type AMD_29F080;
|
||||||
|
extern const device_type AMD_29LV200T;
|
||||||
extern const device_type FUJITSU_29F016A;
|
extern const device_type FUJITSU_29F016A;
|
||||||
extern const device_type FUJITSU_29DL16X;
|
extern const device_type FUJITSU_29DL16X;
|
||||||
extern const device_type INTEL_E28F400B;
|
extern const device_type INTEL_E28F400B;
|
||||||
|
|
|
@ -206,21 +206,22 @@ WRITE8_MEMBER(_20pacgal_state::sprite_lookup_w)
|
||||||
// likewise the sound table.. is it being uploaded in a different format at 0x0c000?
|
// likewise the sound table.. is it being uploaded in a different format at 0x0c000?
|
||||||
// we also need the palette data because there is only a single rom on this pcb?
|
// we also need the palette data because there is only a single rom on this pcb?
|
||||||
static ADDRESS_MAP_START( 25pacman_map, AS_PROGRAM, 8, _25pacman_state )
|
static ADDRESS_MAP_START( 25pacman_map, AS_PROGRAM, 8, _25pacman_state )
|
||||||
|
|
||||||
AM_RANGE(0x00000, 0x3ffff) AM_ROM AM_REGION("flash", 0)
|
|
||||||
|
|
||||||
AM_RANGE(0x08000, 0x09fff) AM_READ_BANK("bank1") AM_WRITE(ram_48000_w)
|
|
||||||
|
|
||||||
AM_RANGE(0x04000, 0x047ff) AM_RAM AM_SHARE("video_ram")
|
AM_RANGE(0x04000, 0x047ff) AM_RAM AM_SHARE("video_ram")
|
||||||
|
|
||||||
AM_RANGE(0x04800, 0x05fff) AM_RAM
|
AM_RANGE(0x04800, 0x05fff) AM_RAM
|
||||||
|
|
||||||
AM_RANGE(0x06000, 0x06fff) AM_WRITEONLY AM_SHARE("char_gfx_ram")
|
AM_RANGE(0x06000, 0x06fff) AM_WRITEONLY AM_SHARE("char_gfx_ram")
|
||||||
AM_RANGE(0x0a000, 0x0bfff) AM_WRITE(sprite_gfx_w)
|
|
||||||
// AM_RANGE(0x0fffe, 0x0ffff) AM_WRITENOP
|
|
||||||
|
|
||||||
// AM_RANGE(0x0c000, 0x0dfff) // is this the sound waveforms in a different format?
|
|
||||||
AM_RANGE(0x07000, 0x0717f) AM_WRITE(sprite_ram_w)
|
AM_RANGE(0x07000, 0x0717f) AM_WRITE(sprite_ram_w)
|
||||||
|
// AM_RANGE(0x08000, 0x09fff) AM_READ_BANK("bank1") AM_WRITE(ram_48000_w)
|
||||||
|
AM_RANGE(0x08000, 0x09fff) AM_WRITENOP
|
||||||
|
AM_RANGE(0x0a000, 0x0bfff) AM_WRITE(sprite_gfx_w)
|
||||||
|
|
||||||
// AM_RANGE(0x00000, 0x3ffff) AM_DEVREADWRITE("flash", sst_39vf020_device, read, write ) // (always fall through if nothing else is mapped?)
|
AM_RANGE(0x0c000, 0x0dfff) AM_WRITENOP // is this the sound waveforms in a different format?
|
||||||
|
AM_RANGE(0x0e000, 0x0ffff) AM_WRITENOP
|
||||||
|
AM_RANGE(0x1c000, 0x1ffff) AM_WRITENOP
|
||||||
|
|
||||||
|
AM_RANGE(0x00000, 0x3ffff) AM_DEVREADWRITE("flash", amd_29lv200t_device, read, write ) // (always fall through if nothing else is mapped?)
|
||||||
|
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
@ -236,7 +237,7 @@ static ADDRESS_MAP_START( 20pacgal_map, AS_PROGRAM, 8, _20pacgal_state )
|
||||||
AM_RANGE(0x45f00, 0x45fff) AM_DEVWRITE("namco", namco_cus30_device, namcos1_cus30_w)
|
AM_RANGE(0x45f00, 0x45fff) AM_DEVWRITE("namco", namco_cus30_device, namcos1_cus30_w)
|
||||||
AM_RANGE(0x46000, 0x46fff) AM_WRITEONLY AM_SHARE("char_gfx_ram")
|
AM_RANGE(0x46000, 0x46fff) AM_WRITEONLY AM_SHARE("char_gfx_ram")
|
||||||
AM_RANGE(0x47100, 0x47100) AM_RAM /* leftover from original Galaga code */
|
AM_RANGE(0x47100, 0x47100) AM_RAM /* leftover from original Galaga code */
|
||||||
AM_RANGE(0x48000, 0x49fff) AM_READ_BANK("bank1") AM_WRITE(ram_48000_w) /* this should be a mirror of 08000-09ffff */
|
AM_RANGE(0x48000, 0x49fff) AM_READ_BANK("bank1") AM_WRITE(ram_48000_w) /* this should be a mirror of 08000-09fff */
|
||||||
AM_RANGE(0x4c000, 0x4dfff) AM_WRITE(sprite_gfx_w)
|
AM_RANGE(0x4c000, 0x4dfff) AM_WRITE(sprite_gfx_w)
|
||||||
AM_RANGE(0x4e000, 0x4e17f) AM_WRITE(sprite_ram_w)
|
AM_RANGE(0x4e000, 0x4e17f) AM_WRITE(sprite_ram_w)
|
||||||
AM_RANGE(0x4e180, 0x4feff) AM_WRITENOP
|
AM_RANGE(0x4e180, 0x4feff) AM_WRITENOP
|
||||||
|
@ -268,10 +269,12 @@ READ8_MEMBER( _25pacman_state::_25pacman_io_87_r )
|
||||||
// AM_RANGE(0x84, 0x84) AM_NOP /* ?? */
|
// AM_RANGE(0x84, 0x84) AM_NOP /* ?? */
|
||||||
AM_RANGE(0x85, 0x86) AM_WRITEONLY AM_SHARE("stars_seed") /* stars: rng seed (lo/hi) */
|
AM_RANGE(0x85, 0x86) AM_WRITEONLY AM_SHARE("stars_seed") /* stars: rng seed (lo/hi) */
|
||||||
AM_RANGE(0x87, 0x87) AM_READ( _25pacman_io_87_r ) // not eeprom on this
|
AM_RANGE(0x87, 0x87) AM_READ( _25pacman_io_87_r ) // not eeprom on this
|
||||||
AM_RANGE(0x88, 0x88) AM_WRITE(ram_bank_select_w)
|
AM_RANGE(0x87, 0x87) AM_WRITENOP
|
||||||
|
// AM_RANGE(0x88, 0x88) AM_WRITE(ram_bank_select_w)
|
||||||
AM_RANGE(0x89, 0x89) AM_DEVWRITE("dac", dac_device, write_signed8)
|
AM_RANGE(0x89, 0x89) AM_DEVWRITE("dac", dac_device, write_signed8)
|
||||||
AM_RANGE(0x8a, 0x8a) AM_WRITEONLY AM_SHARE("stars_ctrl") /* stars: bits 3-4 = active set; bit 5 = enable */
|
AM_RANGE(0x8a, 0x8a) AM_WRITEONLY AM_SHARE("stars_ctrl") /* stars: bits 3-4 = active set; bit 5 = enable */
|
||||||
AM_RANGE(0x8b, 0x8b) AM_WRITEONLY AM_SHARE("flip")
|
AM_RANGE(0x8b, 0x8b) AM_WRITEONLY AM_SHARE("flip")
|
||||||
|
AM_RANGE(0x8c, 0x8c) AM_WRITENOP
|
||||||
AM_RANGE(0x8f, 0x8f) AM_WRITE(_20pacgal_coin_counter_w)
|
AM_RANGE(0x8f, 0x8f) AM_WRITE(_20pacgal_coin_counter_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
@ -420,7 +423,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( 25pacman, 20pacgal, _25pacman_state )
|
||||||
MCFG_CPU_PROGRAM_MAP(25pacman_map)
|
MCFG_CPU_PROGRAM_MAP(25pacman_map)
|
||||||
MCFG_CPU_IO_MAP(25pacman_io_map)
|
MCFG_CPU_IO_MAP(25pacman_io_map)
|
||||||
|
|
||||||
MCFG_SST_39VF020_ADD("flash") // wrong type, should be AM29LV200
|
MCFG_AMD_29LV200T_ADD("flash")
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -530,8 +533,8 @@ DRIVER_INIT_MEMBER(_20pacgal_state,25pacman)
|
||||||
*
|
*
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
GAME( 2006, 25pacman, 0, 25pacman, 25pacman, _20pacgal_state, 25pacman, ROT90, "Namco", "Pac-Man - 25th Anniversary Edition (Rev 3.00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
|
GAME( 2006, 25pacman, 0, 25pacman, 25pacman, _20pacgal_state, 25pacman, ROT90, "Namco / Cosmodog", "Pac-Man - 25th Anniversary Edition (Rev 3.00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
|
||||||
GAME( 2005, 25pacmano, 25pacman, 20pacgal, 25pacman, _20pacgal_state, 25pacman, ROT90, "Namco", "Pac-Man - 25th Anniversary Edition (Rev 2.00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
|
GAME( 2005, 25pacmano, 25pacman, 20pacgal, 25pacman, _20pacgal_state, 25pacman, ROT90, "Namco / Cosmodog", "Pac-Man - 25th Anniversary Edition (Rev 2.00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
|
||||||
|
|
||||||
GAME( 2000, 20pacgal, 0, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.08)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
|
GAME( 2000, 20pacgal, 0, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.08)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
|
||||||
GAME( 2000, 20pacgalr4, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.04)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
|
GAME( 2000, 20pacgalr4, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.04)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
|
||||||
|
|
Loading…
Reference in a new issue