From d4b1f475ca733dbe2795bf7b184f9a46705f8d96 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 17 Mar 2020 10:03:05 -0400 Subject: New machines marked as NOT_WORKING ---------------------------------- Korg DW-8000 Programmable Digital Waveform Synthesizer [DBWBP] New clones marked as NOT_WORKING -------------------------------- DW-8000-EX Programmable Digital Waveform Synthesizer [DBWBP] EX-8000 Programmable Polyphonic Synthe Module [DBWBP] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/korgdw8k.cpp | 168 ++++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 5 ++ src/mame/mess.flt | 1 + 4 files changed, 175 insertions(+) create mode 100644 src/mame/drivers/korgdw8k.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index bcf23e26da8..36310e528cc 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2639,6 +2639,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/korgdw8k.cpp", MAME_DIR .. "src/mame/drivers/korgm1.cpp", MAME_DIR .. "src/mame/drivers/poly800.cpp", MAME_DIR .. "src/mame/drivers/polysix.cpp", diff --git a/src/mame/drivers/korgdw8k.cpp b/src/mame/drivers/korgdw8k.cpp new file mode 100644 index 00000000000..8f7bc9045f9 --- /dev/null +++ b/src/mame/drivers/korgdw8k.cpp @@ -0,0 +1,168 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Korg DW-8000 and EX-8000 synthesizers. + +****************************************************************************/ + +#include "emu.h" +#include "cpu/m6800/m6801.h" +//#include "bus/midi/midi.h" +#include "machine/nvram.h" + +class korgdw8k_state : public driver_device +{ +public: + korgdw8k_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_rombank(*this, "rombank") + { + } + + void dw8000(machine_config &config); + void dw8000ex(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + void dac_w(u8 data); + void vcfa_w(u8 data); + void ddl_w(u8 data); + void led_data_w(u8 data); + void led_addr_w(u8 data); + void bank_w(u8 data); + + void mem_map(address_map &map); + void expanded_mem_map(address_map &map); + + required_device m_maincpu; + optional_memory_bank m_rombank; +}; + +void korgdw8k_state::machine_start() +{ + if (m_rombank.found()) + m_rombank->configure_entries(0, 2, memregion("program")->base(), 0x4000); +} + +void korgdw8k_state::machine_reset() +{ + if (m_rombank.found()) + bank_w(0); +} + +void korgdw8k_state::dac_w(u8 data) +{ +} + +void korgdw8k_state::vcfa_w(u8 data) +{ +} + +void korgdw8k_state::ddl_w(u8 data) +{ +} + +void korgdw8k_state::led_data_w(u8 data) +{ +} + +void korgdw8k_state::led_addr_w(u8 data) +{ +} + +void korgdw8k_state::bank_w(u8 data) +{ + //m_rombank->set_entry(BIT(data, 0)); + m_rombank->set_entry(1); +} + + +void korgdw8k_state::mem_map(address_map &map) +{ + map(0x0000, 0x001f).m(m_maincpu, FUNC(hd6303x_cpu_device::hd6301x_io)); + map(0x0040, 0x00ff).ram(); // internal RAM + map(0x3000, 0x37ff).ram().share("nvram"); + map(0x3800, 0x3fff).ram(); + map(0x4040, 0x4040).w(FUNC(korgdw8k_state::dac_w)); + map(0x4060, 0x4060).w(FUNC(korgdw8k_state::vcfa_w)); + map(0x4080, 0x4080).w(FUNC(korgdw8k_state::ddl_w)); + map(0x40a0, 0x40a0).w(FUNC(korgdw8k_state::led_data_w)); + map(0x40c0, 0x40c0).w(FUNC(korgdw8k_state::led_addr_w)); + map(0xc000, 0xffff).rom().region("program", 0); +} + +void korgdw8k_state::expanded_mem_map(address_map &map) +{ + mem_map(map); + map(0x8000, 0xbfff).ram(); + map(0xc000, 0xffff).bankr("rombank").w(FUNC(korgdw8k_state::bank_w)); +} + + +static INPUT_PORTS_START(dw8000) +INPUT_PORTS_END + +void korgdw8k_state::dw8000(machine_config &config) +{ + HD6303X(config, m_maincpu, 8_MHz_XTAL); // HD63B03XP + m_maincpu->set_addrmap(AS_PROGRAM, &korgdw8k_state::mem_map); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // HM6116LP-4 + battery +} + +void korgdw8k_state::dw8000ex(machine_config &config) +{ + dw8000(config); + m_maincpu->set_addrmap(AS_PROGRAM, &korgdw8k_state::expanded_mem_map); +} + +ROM_START(dw8000) + ROM_REGION(0x4000, "program", 0) + ROM_SYSTEM_BIOS(0, "v13", "Version 13") + ROMX_LOAD("dw8000-v0713.ic38", 0x0000, 0x4000, CRC(d8d89329) SHA1(a0e3402528036a2ba5767e707b8d2e4e365dbd4a), ROM_BIOS(0)) + ROM_SYSTEM_BIOS(1, "v12", "Version 12") + ROMX_LOAD("dw-8000-v12.ic38", 0x0000, 0x4000, CRC(f21b3848) SHA1(2e91791e71205049446e75ec53267d54150e1ac7), ROM_BIOS(1)) + + ROM_REGION(0x20000, "waveform", 0) // Standard waves + ROM_LOAD("hn613256p-t70_32004086.ic46", 0x00000, 0x08000, CRC(f24d5e8b) SHA1(bf8eafffd55e70d6a515abbc311667d3bc12157b)) + ROM_LOAD("hn613256p-t71_32004087.ic45", 0x08000, 0x08000, CRC(a8c5a80c) SHA1(c2c4fb748f1fbdea3abe20072105eedebc321ece)) + ROM_LOAD("hn613256p-cb4_32004088.ic44", 0x10000, 0x08000, CRC(2610d6f6) SHA1(6894b8368f64f62bb541b3f88e58d88f7138b3a5)) + ROM_LOAD("hn613256p-cb5_32004089.ic43", 0x18000, 0x08000, CRC(0958145d) SHA1(fd7fd60bde8739a937bd0af11caac76e566b4a00)) +ROM_END + +ROM_START(dw8000ex) + ROM_REGION(0x8000, "program", 0) + ROM_LOAD("korg-dw8000-ex.bin", 0x0000, 0x8000, CRC(beb31c83) SHA1(e9879ccb6c3417c099e0b673852cad6c79026c73)) + + ROM_REGION(0x20000, "waveform", 0) // Standard waves + ROM_LOAD("hn613256p-t70_32004086.ic46", 0x00000, 0x08000, CRC(f24d5e8b) SHA1(bf8eafffd55e70d6a515abbc311667d3bc12157b)) + ROM_LOAD("hn613256p-t71_32004087.ic45", 0x08000, 0x08000, CRC(a8c5a80c) SHA1(c2c4fb748f1fbdea3abe20072105eedebc321ece)) + ROM_LOAD("hn613256p-cb4_32004088.ic44", 0x10000, 0x08000, CRC(2610d6f6) SHA1(6894b8368f64f62bb541b3f88e58d88f7138b3a5)) + ROM_LOAD("hn613256p-cb5_32004089.ic43", 0x18000, 0x08000, CRC(0958145d) SHA1(fd7fd60bde8739a937bd0af11caac76e566b4a00)) + + ROM_REGION(0x20000, "exp", 0) // Expansion waves ("Version E") (TBD: do these actually require a different expansion?) + ROM_LOAD("exp-1.bin", 0x00000, 0x08000, CRC(14a5d504) SHA1(76ba6a715f1126d4cce59f172943c9f710ce981a)) + ROM_LOAD("exp-3.bin", 0x08000, 0x08000, CRC(1d2fd4a0) SHA1(41864bf1180cc226d149bcfd02496882affdad19)) + ROM_LOAD("exp-2.bin", 0x10000, 0x08000, CRC(e4a445ca) SHA1(53513fbf29523567d87ed119ecf1b116da904abc)) + ROM_LOAD("exp-4.bin", 0x18000, 0x08000, CRC(bfd0701f) SHA1(07d3b903df3b980b4d0df0d64315083abdd86b41)) +ROM_END + +ROM_START(ex8000) + ROM_REGION(0x4000, "program", 0) + ROM_LOAD("ex8000_firmware.ic38", 0x0000, 0x4000, CRC(a6d0fcdc) SHA1(a5eed30248c8d51b8d2e00e4b23fdcdf2a2f94af)) + + ROM_REGION(0x20000, "waveform", 0) + ROM_LOAD("hn613256p-t70_32004086.ic46", 0x00000, 0x08000, CRC(f24d5e8b) SHA1(bf8eafffd55e70d6a515abbc311667d3bc12157b)) + ROM_LOAD("hn613256p-t71_32004087.ic45", 0x08000, 0x08000, CRC(a8c5a80c) SHA1(c2c4fb748f1fbdea3abe20072105eedebc321ece)) + ROM_LOAD("hn613256p-cb4_32004088.ic44", 0x10000, 0x08000, CRC(2610d6f6) SHA1(6894b8368f64f62bb541b3f88e58d88f7138b3a5)) + ROM_LOAD("hn613256p-cb5_32004089.ic43", 0x18000, 0x08000, CRC(0958145d) SHA1(fd7fd60bde8739a937bd0af11caac76e566b4a00)) +ROM_END + +SYST(1985, dw8000, 0, 0, dw8000, dw8000, korgdw8k_state, empty_init, "Korg", "DW-8000 Programmable Digital Waveform Synthesizer", MACHINE_IS_SKELETON) +SYST(1985, dw8000ex, dw8000, 0, dw8000ex, dw8000, korgdw8k_state, empty_init, "Korg / Musitronics", "DW-8000-EX Programmable Digital Waveform Synthesizer", MACHINE_IS_SKELETON) +SYST(1985, ex8000, dw8000, 0, dw8000, dw8000, korgdw8k_state, empty_init, "Korg", "EX-8000 Programmable Polyphonic Synthe Module", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 46d594dcec6..159e8eef85a 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -18731,6 +18731,11 @@ korg707 // dss1 // dssmsrk // +@source:korgdw8k.cpp +dw8000 // +dw8000ex // +ex8000 // + @source:korgm1.cpp korgm1 // korgm1ex // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index b95bd7ca9b2..22bec052989 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -447,6 +447,7 @@ kim1.cpp konin.cpp korgds8.cpp korgdss1.cpp +korgdw8k.cpp korgm1.cpp kramermc.cpp krokha.cpp -- cgit v1.2.3