New machines marked as NOT_WORKING

----------------------------------
Roland TR-707 Rhythm Composer [DBWBP]
Roland TR-727 Rhythm Composer [DBWBP]
This commit is contained in:
AJR 2020-03-14 23:30:00 -04:00
parent 779dfd39f4
commit b2e2405c7c
5 changed files with 205 additions and 0 deletions

View File

@ -3249,6 +3249,7 @@ files {
MAME_DIR .. "src/mame/drivers/roland_sc55.cpp",
MAME_DIR .. "src/mame/drivers/roland_tb303.cpp",
MAME_DIR .. "src/mame/drivers/roland_tr606.cpp",
MAME_DIR .. "src/mame/drivers/roland_tr707.cpp",
MAME_DIR .. "src/mame/machine/pg200.cpp",
}

View File

@ -71,6 +71,7 @@ const double XTAL::known_xtals[] = {
1'008'000, /* 1.008_MHz_XTAL Acorn Microcomputer (System 1) */
1'056'000, /* 1.056_MHz_XTAL Resonator - OKI M6295 on Trio The Punch h/w */
1'294'400, /* 1.2944_MHz_XTAL BBN BitGraph PSG */
1'600'000, /* 1.6_MHz_XTAL Resonator - Roland TR-707 */
1'689'600, /* 1.6896_MHz_XTAL Diablo 1355WP Printer */
1'750'000, /* 1.75_MHz_XTAL RCA CDP1861 */
1'797'100, /* 1.7971_MHz_XTAL SWTPC 6800 (with MIKBUG) */

View File

@ -0,0 +1,198 @@
// license:BSD-3-Clause
// copyright-holders:AJR
/****************************************************************************
Skeleton driver for Roland TR-707/727 drum machines.
From the Service Notes: The differences between two models [TR-707 and
TR-727] are sound data, component values in several audio stages and a
couple of pin connections at IC30 of Voice board. Both models derive all
rhythm sounds from PCM-encoded samples of real sounds stored in ROM.
****************************************************************************/
#include "emu.h"
#include "bus/generic/carts.h"
#include "bus/generic/slot.h"
//#include "bus/midi/midi.h"
#include "cpu/m6800/m6801.h"
#include "machine/nvram.h"
//#include "video/hd61603.h"
class roland_tr707_state : public driver_device
{
public:
roland_tr707_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_key_switches(*this, "KEY%u", 0U)
, m_misc_select(0xff)
{
}
void tr707(machine_config &config);
protected:
virtual void machine_start() override;
private:
void misc_select_w(u8 data);
u8 key_scan_r();
void leds_w(u8 data);
void accent_level_w(u8 data);
void ga_trigger_w(offs_t offset, u8 data);
void voice_select_w(u8 data);
void mem_map(address_map &map);
required_device<hd6303x_cpu_device> m_maincpu;
required_ioport_array<4> m_key_switches;
u8 m_misc_select;
};
void roland_tr707_state::machine_start()
{
save_item(NAME(m_misc_select));
}
void roland_tr707_state::misc_select_w(u8 data)
{
m_misc_select = data;
}
u8 roland_tr707_state::key_scan_r()
{
u8 data = 0xff;
for (int n = 0; n < 4; n++)
if (!BIT(m_misc_select, n))
data &= m_key_switches[n]->read();
return data;
}
void roland_tr707_state::leds_w(u8 data)
{
}
void roland_tr707_state::accent_level_w(u8 data)
{
}
void roland_tr707_state::ga_trigger_w(offs_t offset, u8 data)
{
}
void roland_tr707_state::voice_select_w(u8 data)
{
}
void roland_tr707_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(0x0800, 0x0800).mirror(0x7ff).r(FUNC(roland_tr707_state::key_scan_r));
//map(0x1000, 0x1000).mirror(0xfff).rw("lcdd", FUNC(hd61602_device::ready_r), FUNC(hd61602_device::write));
map(0x2000, 0x27ff).ram().share("nvram1");
map(0x2800, 0x2fff).ram().share("nvram2");
map(0x3000, 0x3fff).rw("cartslot", FUNC(generic_slot_device::read_ram), FUNC(generic_slot_device::write_ram));
map(0x4000, 0x4000).mirror(0xfff).w(FUNC(roland_tr707_state::leds_w));
map(0x5000, 0x5000).mirror(0xfff).w(FUNC(roland_tr707_state::accent_level_w));
map(0x6000, 0x6fff).w(FUNC(roland_tr707_state::ga_trigger_w));
map(0x7000, 0x7000).mirror(0xfff).w(FUNC(roland_tr707_state::voice_select_w));
map(0x8000, 0xbfff).mirror(0x4000).rom().region("program", 0);
}
static INPUT_PORTS_START(tr707)
PORT_START("KEY0")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("1")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("2")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("3")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("4")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("5")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("6")
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("7")
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("8")
PORT_START("KEY1")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("9")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("10")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("11")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("12")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("13")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("14")
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("15")
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("16")
PORT_START("KEY2")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Start")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Stop/Cont")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Enter")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Shift")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Pattern Clear")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Scale")
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Last Step")
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Inst Select")
PORT_START("KEY3")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Tempo")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Track")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Pattern")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Shuffle")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Group A")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Group B")
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Group C")
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Group D")
INPUT_PORTS_END
void roland_tr707_state::tr707(machine_config &config)
{
HD6303X(config, m_maincpu, 4_MHz_XTAL); // HD6303XF
m_maincpu->set_addrmap(AS_PROGRAM, &roland_tr707_state::mem_map);
m_maincpu->out_p6_cb().set(FUNC(roland_tr707_state::misc_select_w));
NVRAM(config, "nvram1", nvram_device::DEFAULT_ALL_0); // HM6116LP-4 + battery
NVRAM(config, "nvram2", nvram_device::DEFAULT_ALL_0); // HM6116LP-4 + battery
//HD61602(config, "lcdd");
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, nullptr, "tr707_cart");
//RD63H114(config, "muxsound", 1.6_MHz_XTAL);
}
ROM_START(tr707)
ROM_REGION(0x4000, "program", 0)
ROM_LOAD("os_rom_firmware.ic13", 0x0000, 0x4000, CRC(3517ea00) SHA1(f5d57a79abf49131bd9832ae4e2dbced914ea523)) // 27128
ROM_REGION(0x10000, "voices", 0) // "BD-MT" (IC34) and "HT-TAMB" (IC35)
ROM_LOAD("hn61256p_c71_15179694.ic34", 0x0000, 0x8000, CRC(a196489b) SHA1(fd2bfe67d4d03d2b2134aa7feebe9167c44b1f8d))
ROM_LOAD("hn61256p_c72_15179695.ic35", 0x8000, 0x8000, CRC(b05302e5) SHA1(5cc866f345906d817147ae2a61bc36d7be926511))
ROM_REGION(0x8000, "cymbal1", 0) // "Crash Cymbal"
ROM_LOAD("hn61256p_c73_15179696.ic19", 0x0000, 0x8000, CRC(b0bea07f) SHA1(965e23ad71e1f95d56307fa67272725dff46ba67))
ROM_REGION(0x8000, "cymbal2", 0) // "Ride Cymbal"
ROM_LOAD("hn61256p_c74_15179697.ic22", 0x0000, 0x8000, CRC(9411943a) SHA1(6c7c0f002ed66e4ccf182a4538d9bb239623ac43))
ROM_END
ROM_START(tr727)
ROM_REGION(0x4000, "program", 0)
ROM_LOAD("osv_1.0_hd4827128.ic13", 0x0000, 0x4000, CRC(49954161) SHA1(8eb033d9729aa84cc3c33b8ce30925ff3c35e70a))
ROM_REGION(0x10000, "voices", 0) // "BNG-HTB" (IC34) and "LTB-MC" (IC35)
ROM_LOAD("hn61256p_15179694.ic34", 0x0000, 0x8000, NO_DUMP)
ROM_LOAD("hn61256p_15179695.ic35", 0x8000, 0x8000, NO_DUMP)
ROM_REGION(0x8000, "cymbal1", 0) // "Quijada"
ROM_LOAD("hn61256p_15179696.ic19", 0x0000, 0x8000, NO_DUMP)
ROM_REGION(0x8000, "cymbal2", 0) // "Star Chime"
ROM_LOAD("hn61256p_15179697.ic22", 0x0000, 0x8000, NO_DUMP)
ROM_END
SYST(1985, tr707, 0, 0, tr707, tr707, roland_tr707_state, empty_init, "Roland", "TR-707 Rhythm Composer", MACHINE_IS_SKELETON)
SYST(1985, tr727, 0, 0, tr707, tr707, roland_tr707_state, empty_init, "Roland", "TR-727 Rhythm Composer", MACHINE_IS_SKELETON)

View File

@ -34605,6 +34605,10 @@ tb303 // Roland
@source:roland_tr606.cpp
tr606 // Roland
@source:roland_tr707.cpp
tr707 //
tr727 //
@source:rollerg.cpp
rollerg // GX999 (c) 1991 (US)
rollergj // GX999 (c) 1991 (Japan)

View File

@ -759,6 +759,7 @@ roland_r8.cpp
roland_sc55.cpp
roland_tb303.cpp
roland_tr606.cpp
roland_tr707.cpp
rt1715.cpp
rvoice.cpp
rx78.cpp