diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index e5bd0013829..1211b8eb7a2 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2674,6 +2674,7 @@ createMESSProjects(_target, _subtarget, "korg") files { MAME_DIR .. "src/mame/drivers/korgds8.cpp", MAME_DIR .. "src/mame/drivers/korgdss1.cpp", + MAME_DIR .. "src/mame/drivers/korgdvp1.cpp", MAME_DIR .. "src/mame/drivers/korgdw8k.cpp", MAME_DIR .. "src/mame/drivers/korgm1.cpp", MAME_DIR .. "src/mame/drivers/korgz3.cpp", diff --git a/src/mame/drivers/korgdvp1.cpp b/src/mame/drivers/korgdvp1.cpp new file mode 100644 index 00000000000..f803e181e29 --- /dev/null +++ b/src/mame/drivers/korgdvp1.cpp @@ -0,0 +1,67 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Korg DVP-1 MIDI vocoder. + +****************************************************************************/ + +#include "emu.h" +//#include "bus/midi/midi.h" +#include "cpu/upd7810/upd7810.h" +#include "cpu/tms32010/tms32010.h" +#include "machine/nvram.h" + +class korgdvp1_state : public driver_device +{ +public: + korgdvp1_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_dsp(*this, "dsp%u", 1U) + { + } + + void dvp1(machine_config &config); + +private: + void main_map(address_map &map); + + required_device m_maincpu; + required_device_array m_dsp; +}; + + +void korgdvp1_state::main_map(address_map &map) +{ + map(0x0000, 0x7fff).rom().region("program", 0); + map(0x8000, 0x87ff).mirror(0x1800).ram().share("nvram"); +} + + +static INPUT_PORTS_START(dvp1) +INPUT_PORTS_END + +void korgdvp1_state::dvp1(machine_config &config) +{ + UPD7810(config, m_maincpu, 12_MHz_XTAL); // µPD7811-161-36 (according to parts list) but with both mode pins pulled up + m_maincpu->set_addrmap(AS_PROGRAM, &korgdvp1_state::main_map); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // HM6116LP-4 + 3V lithium battery + + TMS32010(config, m_dsp[0], 20_MHz_XTAL).set_disable(); + TMS32010(config, m_dsp[1], 20_MHz_XTAL).set_disable(); +} + +ROM_START(dvp1) + ROM_REGION(0x8000, "program", 0) // Version: SEP 28, 1985 + ROM_LOAD("850803.ic6", 0x0000, 0x8000, CRC(1170db85) SHA1(4ce773dd22c56982b9493f89dce62111eec596b3)) // MBM27256-25 + + ROM_REGION16_LE(0xc00, "dsp1", 0) // 1536 x 16 internal bootloader + ROM_LOAD("tms320m10nl.ic9", 0x000, 0xc00, NO_DUMP) + + ROM_REGION16_LE(0xc00, "dsp2", 0) // 1536 x 16 internal bootloader (almost certainly identical to DSP 1) + ROM_LOAD("tms320m10nl.ic8", 0x000, 0xc00, NO_DUMP) +ROM_END + +SYST(1985, dvp1, 0, 0, dvp1, dvp1, korgdvp1_state, empty_init, "Korg", "DVP-1 Digital Voice Processor", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 7685675eb13..bbb2d8cdd68 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -18849,6 +18849,9 @@ korg707 // dss1 // dssmsrk // +@source:korgdvp1.cpp +dvp1 // + @source:korgdw8k.cpp dw8000 // dw8000ex // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 152498c92f2..6913666b253 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -462,6 +462,7 @@ kim1.cpp konin.cpp korgds8.cpp korgdss1.cpp +korgdvp1.cpp korgdw8k.cpp korgm1.cpp korgz3.cpp