diff --git a/src/emu/machine/intelfsh.c b/src/emu/machine/intelfsh.c index d07a69b1a77..b77f38ea9f8 100644 --- a/src/emu/machine/intelfsh.c +++ b/src/emu/machine/intelfsh.c @@ -82,6 +82,7 @@ const device_type ATMEL_29C010 = &device_creator; const device_type AMD_29F010 = &device_creator; const device_type AMD_29F040 = &device_creator; const device_type AMD_29F080 = &device_creator; +const device_type AMD_29LV200T = &device_creator; const device_type FUJITSU_29F016A = &device_creator; const device_type FUJITSU_29DL16X = &device_creator; const device_type INTEL_E28F400B = &device_creator; @@ -210,6 +211,13 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type m_device_id = 0xd5; map = ADDRESS_MAP_NAME( memory_map8_8Mb ); 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: m_bits = 16; 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) : 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) : 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; break; 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) { case 0: data = m_maker_id; break; diff --git a/src/emu/machine/intelfsh.h b/src/emu/machine/intelfsh.h index 1a994b27883..a98dcd54c12 100644 --- a/src/emu/machine/intelfsh.h +++ b/src/emu/machine/intelfsh.h @@ -28,6 +28,9 @@ #define MCFG_AMD_29F080_ADD(_tag) \ 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) \ MCFG_DEVICE_ADD(_tag, FUJITSU_29F016A, 0) @@ -97,6 +100,7 @@ public: FLASH_AMD_29F010, FLASH_AMD_29F040, FLASH_AMD_29F080, + FLASH_AMD_29LV200T, FLASH_SHARP_LH28F016S, FLASH_INTEL_E28F008SA, FLASH_MACRONIX_29L001MC, @@ -243,6 +247,12 @@ public: 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 { public: @@ -336,6 +346,7 @@ extern const device_type ATMEL_29C010; extern const device_type AMD_29F010; extern const device_type AMD_29F040; extern const device_type AMD_29F080; +extern const device_type AMD_29LV200T; extern const device_type FUJITSU_29F016A; extern const device_type FUJITSU_29DL16X; extern const device_type INTEL_E28F400B; diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c index 6b176edc59c..e21b7974715 100644 --- a/src/mame/drivers/20pacgal.c +++ b/src/mame/drivers/20pacgal.c @@ -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? // 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 ) - - 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(0x04800, 0x05fff) AM_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(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 @@ -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(0x46000, 0x46fff) AM_WRITEONLY AM_SHARE("char_gfx_ram") 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(0x4e000, 0x4e17f) AM_WRITE(sprite_ram_w) 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(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(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(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(0x8c, 0x8c) AM_WRITENOP AM_RANGE(0x8f, 0x8f) AM_WRITE(_20pacgal_coin_counter_w) ADDRESS_MAP_END @@ -420,7 +423,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( 25pacman, 20pacgal, _25pacman_state ) MCFG_CPU_PROGRAM_MAP(25pacman_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 @@ -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( 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( 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 / 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, 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)