From d1e6e5b830363a0ad3f036502c3d9671cb8f3c94 Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 26 Jul 2021 14:09:04 -0400 Subject: New machines marked as NOT_WORKING ---------------------------------- Sony DPS-V55 Multi-Effect Processor [DBWBP] --- scripts/target/mame/mess.lua | 1 + src/devices/cpu/f2mc16/mb9061x.cpp | 20 +++++++++ src/devices/cpu/f2mc16/mb9061x.h | 14 ++++++- src/mame/drivers/dpsv55.cpp | 83 ++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 ++ src/mame/mess.flt | 1 + 6 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 src/mame/drivers/dpsv55.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 8262739869d..24f8e044852 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3782,6 +3782,7 @@ files { MAME_DIR .. "src/mame/drivers/betacam.cpp", MAME_DIR .. "src/mame/drivers/bvm.cpp", MAME_DIR .. "src/mame/drivers/dfs500.cpp", + MAME_DIR .. "src/mame/drivers/dpsv55.cpp", MAME_DIR .. "src/mame/drivers/pockstat.cpp", MAME_DIR .. "src/mame/drivers/psx.cpp", MAME_DIR .. "src/mame/machine/psxcd.cpp", diff --git a/src/devices/cpu/f2mc16/mb9061x.cpp b/src/devices/cpu/f2mc16/mb9061x.cpp index 3017633df3b..9a425f7ad95 100644 --- a/src/devices/cpu/f2mc16/mb9061x.cpp +++ b/src/devices/cpu/f2mc16/mb9061x.cpp @@ -18,6 +18,7 @@ DEFINE_DEVICE_TYPE(MB90610A, mb90610_device, "mb90610a", "Fujitsu MB90610A") DEFINE_DEVICE_TYPE(MB90611A, mb90611_device, "mb90611a", "Fujitsu MB90611A") +DEFINE_DEVICE_TYPE(MB90641A, mb90641_device, "mb90641a", "Fujitsu MB90641A") //************************************************************************** // LIVE DEVICE @@ -420,3 +421,22 @@ mb90611_device::mb90611_device(const machine_config &mconfig, device_type type, mb9061x_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(mb90611_device::mb90611_map), this)) { } + +/* MB90641 - no A/D, extra UART and timers, optional internal ROM */ +void mb90641_device::mb90641_map(address_map &map) +{ + map(0x0038, 0x003f).rw(FUNC(mb9061x_device::timer_r), FUNC(mb9061x_device::timer_w)); + map(0x00a9, 0x00a9).rw(FUNC(mb9061x_device::tbtc_r), FUNC(mb9061x_device::tbtc_w)); + map(0x00b0, 0x00bf).rw(FUNC(mb9061x_device::intc_r), FUNC(mb9061x_device::intc_w)); + map(0x0100, 0x08ff).ram(); // 2K of internal RAM +} + +mb90641_device::mb90641_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + mb90641_device(mconfig, MB90641A, tag, owner, clock) +{ +} + +mb90641_device::mb90641_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + mb9061x_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(mb90641_device::mb90641_map), this)) +{ +} diff --git a/src/devices/cpu/f2mc16/mb9061x.h b/src/devices/cpu/f2mc16/mb9061x.h index 5edb45ace9d..c09bdef1b96 100644 --- a/src/devices/cpu/f2mc16/mb9061x.h +++ b/src/devices/cpu/f2mc16/mb9061x.h @@ -15,12 +15,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> m5074x_device +// ======================> mb9061x_device class mb9061x_device : public f2mc16_device { friend class mb90610_device; friend class mb90611_device; + friend class mb90641_device; public: const address_space_config m_program_config; @@ -97,7 +98,18 @@ protected: mb90611_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; +class mb90641_device : public mb9061x_device +{ +public: + mb90641_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + void mb90641_map(address_map &map); +protected: + mb90641_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); +}; + DECLARE_DEVICE_TYPE(MB90610A, mb90610_device) DECLARE_DEVICE_TYPE(MB90611A, mb90611_device) +DECLARE_DEVICE_TYPE(MB90641A, mb90641_device) #endif // MAME_CPU_F2MC16_MB9061X_H diff --git a/src/mame/drivers/dpsv55.cpp b/src/mame/drivers/dpsv55.cpp new file mode 100644 index 00000000000..7e5aa87c342 --- /dev/null +++ b/src/mame/drivers/dpsv55.cpp @@ -0,0 +1,83 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Sony DPS-V55/V55M effects processor. + + V55 and V55M are identical except for the power supply (120 V, 60 Hz for + the former, 230 V, 50/60 Hz for the latter). + +****************************************************************************/ + +#include "emu.h" +#include "cpu/f2mc16/mb9061x.h" +#include "machine/nvram.h" + +namespace { + +class dpsv55_state : public driver_device +{ +public: + dpsv55_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { + } + + void dpsv55(machine_config &config); + +private: + void mem_map(address_map &map); + + required_device m_maincpu; +}; + + +void dpsv55_state::mem_map(address_map &map) +{ + map(0xfc0000, 0xfc7fff).mirror(0x18000).ram().share("nvram"); // CS1 + map(0xfe0000, 0xffffff).rom().region("eprom", 0); // CS0 +} + + +static INPUT_PORTS_START(dpsv55) +INPUT_PORTS_END + +void dpsv55_state::dpsv55(machine_config &config) +{ + MB90641A(config, m_maincpu, 4_MHz_XTAL); // MB90641APF-G-105BND + m_maincpu->set_addrmap(AS_PROGRAM, &dpsv55_state::mem_map); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // CY62256LL-70SNC-T2 + 3V lithium battery + M62021FP-600C reset generator + M5239L voltage detector + + // TODO: LCD unit (LC0801) + + //CXD2707(config, "dsp", 49.152_MHz_XTAL); +} + +/* +Sony DPS-V55 + +Version 1.02 + +Chip: MX 27C1000DC-90 + +Sticker: +~~~~~~~~~~~~ + DPS-V55/M + Ver.1.02 + 759-499074 +~~~~~~~~~~~~ + +Multi Processor DPS-V55 +Sony Corporation (c)1998 +*/ + +ROM_START(dpsv55) + ROM_REGION(0x20000, "eprom", 0) + ROM_LOAD("dps-v55_m__ver.1.02__759-499-74.ic704", 0x00000, 0x20000, CRC(138c2fe0) SHA1(0916ccb1d7567639b382a19240a56274c5c2fa4a)) +ROM_END + +} // anonymous namespace + +SYST(1998, dpsv55, 0, 0, dpsv55, dpsv55, dpsv55_state, empty_init, "Sony", "DPS-V55 Multi-Effect Processor", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index b485ff45f4f..d0b04fc3698 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12558,6 +12558,9 @@ dpb7000 // @source:dps1.cpp dps1 // +@source:dpsv55.cpp +dpsv55 // + @source:dragon.cpp d64plus // Dragon 64 + Compusense Plus addon dgnalpha // Dragon Alpha diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 6c3d14e58de..9feb275f7c0 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -247,6 +247,7 @@ dmv.cpp dolphunk.cpp dpb7000.cpp dps1.cpp +dpsv55.cpp dragon.cpp drumsta.cpp dsb46.cpp -- cgit v1.2.3