From 0cb2c9ec367149c10a9fa65e203cffe0c0991bb1 Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 20 Nov 2021 01:54:49 +0100 Subject: New machines marked as NOT_WORKING ---------------------------------- TR-808 Rhythm Composer [afx303, DinSync] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/hh_ucom4.cpp | 2 +- src/mame/drivers/roland_tb303.cpp | 87 ++++++++++++++++-------------------- src/mame/drivers/roland_tr606.cpp | 79 ++++++++++++-------------------- src/mame/drivers/roland_tr808.cpp | 94 +++++++++++++++++++++++++++++++++++++++ src/mame/layout/tr606.lay | 23 ---------- src/mame/mame.lst | 3 ++ src/mame/mess.flt | 1 + 8 files changed, 167 insertions(+), 123 deletions(-) create mode 100644 src/mame/drivers/roland_tr808.cpp delete mode 100644 src/mame/layout/tr606.lay diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 32d829e9bf0..c4ef39eecfb 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3514,6 +3514,7 @@ files { MAME_DIR .. "src/mame/drivers/roland_tr505.cpp", MAME_DIR .. "src/mame/drivers/roland_tr606.cpp", MAME_DIR .. "src/mame/drivers/roland_tr707.cpp", + MAME_DIR .. "src/mame/drivers/roland_tr808.cpp", MAME_DIR .. "src/mame/drivers/roland_tr909.cpp", MAME_DIR .. "src/mame/drivers/roland_u20.cpp", MAME_DIR .. "src/mame/audio/bu3905.cpp", diff --git a/src/mame/drivers/hh_ucom4.cpp b/src/mame/drivers/hh_ucom4.cpp index 915500d1ddf..fc75f7a5a98 100644 --- a/src/mame/drivers/hh_ucom4.cpp +++ b/src/mame/drivers/hh_ucom4.cpp @@ -43,7 +43,7 @@ known chips: @513 uPD557LC 1980, Castle Toy Name That Tune @060 uPD650C 1979, Mattel Computer Gin - *085 uPD650C 1980, Roland TR-808 + 085 uPD650C 1980, Roland TR-808 -> roland_tr808.cpp *127 uPD650C 198?, Sony OA-S1100 Typecorder (subcpu, have dump) 128 uPD650C 1981, Roland TR-606 -> roland_tr606.cpp 133 uPD650C 1982, Roland TB-303 -> roland_tb303.cpp diff --git a/src/mame/drivers/roland_tb303.cpp b/src/mame/drivers/roland_tb303.cpp index ce9e8e003c5..007e3ad723e 100644 --- a/src/mame/drivers/roland_tb303.cpp +++ b/src/mame/drivers/roland_tb303.cpp @@ -2,24 +2,29 @@ // copyright-holders:hap /*************************************************************************** - Roland TB-303 Bass Line, 1982, designed by Tadao Kikumoto - * NEC uCOM-43 MCU, labeled D650C 133 - * 3*uPD444C 1024x4 Static CMOS SRAM - * board is packed with discrete components +Roland TB-303 Bass Line, 1982, designed by Tadao Kikumoto - TODO: - - still too much to list here +Hardware notes: +- NEC uCOM-43 MCU, labeled D650C 133 +- 3*uPD444C 1024x4 Static CMOS SRAM +- board is packed with discrete components + +TODO: +- still too much to list here ***************************************************************************/ #include "emu.h" + #include "cpu/ucom4/ucom4.h" +#include "machine/clock.h" #include "video/pwm.h" -#include "machine/timer.h" #include "tb303.lh" +namespace { + class tb303_state : public driver_device { public: @@ -42,12 +47,12 @@ private: u8 m_ram[0xc00]; u8 m_ram_addrset[3]; - u16 m_ram_address; - u8 m_ram_data; - bool m_ram_ce; - bool m_ram_we; - u8 m_led_data; - u8 m_inp_mux; + u16 m_ram_address = 0; + u8 m_ram_data = 0; + bool m_ram_ce = false; + bool m_ram_we = false; + u8 m_led_data = 0; + u8 m_inp_mux = 0; void refresh_ram(); template void ram_address_w(u8 data); @@ -59,9 +64,6 @@ private: void led_w(u8 data); void input_w(u8 data); u8 input_r(offs_t offset); - - TIMER_DEVICE_CALLBACK_MEMBER(tp3_clock) { m_maincpu->set_input_line(0, ASSERT_LINE); } - TIMER_DEVICE_CALLBACK_MEMBER(tp3_clear) { m_maincpu->set_input_line(0, CLEAR_LINE); } }; void tb303_state::machine_start() @@ -69,12 +71,6 @@ void tb303_state::machine_start() // zerofill memset(m_ram, 0, sizeof(m_ram)); memset(m_ram_addrset, 0, sizeof(m_ram_addrset)); - m_ram_address = 0; - m_ram_data = 0; - m_ram_ce = false; - m_ram_we = false; - m_led_data = 0; - m_inp_mux = 0; // register for savestates save_item(NAME(m_ram)); @@ -87,18 +83,10 @@ void tb303_state::machine_start() save_item(NAME(m_inp_mux)); } -// TP2 to MCU CLK: LC circuit(TI S74230), stable sine wave, 2.2us interval -#define TP2_HZ 454545 - -// TP3 to MCU _INT: square wave, 1.8ms interval, short duty cycle -#define TP3_PERIOD attotime::from_usec(1800) -#define TP3_LOW (TP3_PERIOD / 8) /*************************************************************************** - - I/O - + I/O ***************************************************************************/ // external ram @@ -222,9 +210,7 @@ u8 tb303_state::input_r(offs_t offset) /*************************************************************************** - - Inputs - + Inputs ***************************************************************************/ static INPUT_PORTS_START( tb303 ) @@ -282,15 +268,13 @@ INPUT_PORTS_END /*************************************************************************** - - Machine Config - + Machine Configs ***************************************************************************/ void tb303_state::tb303(machine_config &config) { - /* basic machine hardware */ - NEC_D650(config, m_maincpu, TP2_HZ); + // basic machine hardware + NEC_D650(config, m_maincpu, 454545); // LC circuit(TI S74230), 2.2us m_maincpu->read_a().set(FUNC(tb303_state::input_r)); m_maincpu->read_b().set(FUNC(tb303_state::input_r)); m_maincpu->read_c().set(FUNC(tb303_state::ram_data_r)); @@ -302,25 +286,23 @@ void tb303_state::tb303(machine_config &config) m_maincpu->write_h().set(FUNC(tb303_state::input_w)); m_maincpu->write_i().set(FUNC(tb303_state::strobe_w)); - timer_device &tp3_clock(TIMER(config, "tp3_clock")); - tp3_clock.configure_periodic(FUNC(tb303_state::tp3_clock), TP3_PERIOD); - tp3_clock.set_start_delay(TP3_PERIOD - TP3_LOW); - TIMER(config, "tp3_clear").configure_periodic(FUNC(tb303_state::tp3_clear), TP3_PERIOD); + auto &irq_clock(CLOCK(config, "irq_clock")); + irq_clock.set_period(attotime::from_usec(1800)); // clock rate 1.8ms + irq_clock.set_duty_cycle(0.1); // short duty cycle + irq_clock.signal_handler().set_inputline(m_maincpu, 0); - /* video hardware */ + // video hardware PWM_DISPLAY(config, m_display).set_size(4, 4); config.set_default_layout(layout_tb303); - /* sound hardware */ + // sound hardware // discrete... } /*************************************************************************** - - Game driver(s) - + ROM Definitions ***************************************************************************/ ROM_START( tb303 ) @@ -328,5 +310,12 @@ ROM_START( tb303 ) ROM_LOAD( "d650c-133.ic8", 0x0000, 0x0800, CRC(268a8d8b) SHA1(7a4236b2bc9a5cd4c80c63ca1a193e03becfcb4c) ) ROM_END +} // anonymous namespace + + + +/*************************************************************************** + Drivers +***************************************************************************/ -CONS( 1982, tb303, 0, 0, tb303, tb303, tb303_state, empty_init, "Roland", "TB-303 Bass Line", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +SYST( 1982, tb303, 0, 0, tb303, tb303, tb303_state, empty_init, "Roland", "TB-303 Bass Line", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/roland_tr606.cpp b/src/mame/drivers/roland_tr606.cpp index f52c7d488b2..2bafa9f973d 100644 --- a/src/mame/drivers/roland_tr606.cpp +++ b/src/mame/drivers/roland_tr606.cpp @@ -2,22 +2,25 @@ // copyright-holders:hap /*************************************************************************** - Roland TR-606 Drumatix, early 1982 - * NEC uCOM-43 MCU, labeled D650C 128 - * 2*uPD444C 1024x4 Static CMOS SRAM - * board is packed with discrete components +Roland TR-606 Drumatix, early 1982 - TODO: - - still too much to list here +Hardware notes: +- NEC uCOM-43 MCU, labeled D650C 128 +- 2*uPD444C 1024x4 Static CMOS SRAM +- board is packed with discrete components + +TODO: +- everything ***************************************************************************/ #include "emu.h" + #include "cpu/ucom4/ucom4.h" -#include "machine/timer.h" +#include "machine/clock.h" -#include "tr606.lh" +namespace { class tr606_state : public driver_device { @@ -34,76 +37,45 @@ protected: private: required_device m_maincpu; - - TIMER_DEVICE_CALLBACK_MEMBER(tp3_clock) { m_maincpu->set_input_line(0, ASSERT_LINE); } - TIMER_DEVICE_CALLBACK_MEMBER(tp3_clear) { m_maincpu->set_input_line(0, CLEAR_LINE); } }; void tr606_state::machine_start() { - // zerofill - - // register for savestates } -// TP2 to MCU CLK: LC circuit(TI S74230), stable sine wave, 2.2us interval -#define TP2_HZ 454545 - -// MCU interrupt timing is same as in TB303 -// TP3 to MCU _INT: square wave, 1.8ms interval, short duty cycle -#define TP3_PERIOD attotime::from_usec(1800) -#define TP3_LOW (TP3_PERIOD / 8) /*************************************************************************** - - I/O - -***************************************************************************/ - - - -/*************************************************************************** - - Inputs - + Inputs ***************************************************************************/ static INPUT_PORTS_START( tr606 ) - INPUT_PORTS_END /*************************************************************************** - - Machine Config - + Machine Configs ***************************************************************************/ void tr606_state::tr606(machine_config &config) { - /* basic machine hardware */ - NEC_D650(config, m_maincpu, TP2_HZ); - - timer_device &tp3_clock(TIMER(config, "tp3_clock")); - tp3_clock.configure_periodic(FUNC(tr606_state::tp3_clock), TP3_PERIOD); - tp3_clock.set_start_delay(TP3_PERIOD - TP3_LOW); - TIMER(config, "tp3_clear").configure_periodic(FUNC(tr606_state::tp3_clear), TP3_PERIOD); + // basic machine hardware + NEC_D650(config, m_maincpu, 454545); // LC circuit(TI S74230), 2.2us - /* video hardware */ - config.set_default_layout(layout_tr606); + auto &irq_clock(CLOCK(config, "irq_clock")); + irq_clock.set_period(attotime::from_usec(1800)); // clock rate 1.8ms (same as tb303) + irq_clock.set_duty_cycle(0.1); // short duty cycle + irq_clock.signal_handler().set_inputline(m_maincpu, 0); - /* sound hardware */ + // sound hardware // discrete... } /*************************************************************************** - - Game driver(s) - + ROM Definitions ***************************************************************************/ ROM_START( tr606 ) @@ -111,5 +83,12 @@ ROM_START( tr606 ) ROM_LOAD( "d650c-128.ic4", 0x0000, 0x0800, CRC(eee88f80) SHA1(ae605ce2b95adc2e0bacde3cd7ed0f39ac88b981) ) ROM_END +} // anonymous namespace + + + +/*************************************************************************** + Drivers +***************************************************************************/ -CONS( 1982, tr606, 0, 0, tr606, tr606, tr606_state, empty_init, "Roland", "TR-606 Drumatix", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +SYST( 1982, tr606, 0, 0, tr606, tr606, tr606_state, empty_init, "Roland", "TR-606 Drumatix", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/roland_tr808.cpp b/src/mame/drivers/roland_tr808.cpp new file mode 100644 index 00000000000..a04aabf527c --- /dev/null +++ b/src/mame/drivers/roland_tr808.cpp @@ -0,0 +1,94 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/*************************************************************************** + +Roland TR-808 Rhythm Composer, drum machine from 1980 + +Hardware notes: +- NEC uCOM-43 MCU, labeled D650C 085 +- 4*uPD444C 1024x4 Static CMOS SRAM +- board is packed with discrete components + +TODO: +- everything + +***************************************************************************/ + +#include "emu.h" + +#include "cpu/ucom4/ucom4.h" +#include "machine/clock.h" + + +namespace { + +class tr808_state : public driver_device +{ +public: + tr808_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { } + + void tr808(machine_config &config); + +protected: + virtual void machine_start() override; + +private: + required_device m_maincpu; +}; + +void tr808_state::machine_start() +{ +} + + + +/*************************************************************************** + Inputs +***************************************************************************/ + +static INPUT_PORTS_START( tr808 ) +INPUT_PORTS_END + + + +/*************************************************************************** + Machine Configs +***************************************************************************/ + +void tr808_state::tr808(machine_config &config) +{ + // basic machine hardware + NEC_D650(config, m_maincpu, 500000); // 2us according to schematics + + auto &irq_clock(CLOCK(config, "irq_clock")); + irq_clock.set_period(attotime::from_usec(1900)); // clock rate 1.9ms + irq_clock.set_duty_cycle(0.1); // short duty cycle + irq_clock.signal_handler().set_inputline(m_maincpu, 0); + + // sound hardware + // discrete... +} + + + +/*************************************************************************** + ROM Definitions +***************************************************************************/ + +ROM_START( tr808 ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d650c-085.ic4", 0x0000, 0x0800, CRC(06f0c405) SHA1(eddac7af6396c3f220914d9cad2c9e398872b034) ) +ROM_END + +} // anonymous namespace + + + +/*************************************************************************** + Drivers +***************************************************************************/ + +SYST( 1982, tr808, 0, 0, tr808, tr808, tr808_state, empty_init, "Roland", "TR-808 Rhythm Composer", MACHINE_IS_SKELETON ) diff --git a/src/mame/layout/tr606.lay b/src/mame/layout/tr606.lay deleted file mode 100644 index 5e6f5cbf31a..00000000000 --- a/src/mame/layout/tr606.lay +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 083be4101aa..f721eb73c95 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -36336,6 +36336,9 @@ tr606 // Roland tr707 // tr727 // +@source:roland_tr808.cpp +tr808 + @source:roland_tr909.cpp tr909 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 7f76166c49f..1d8e48285b4 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -893,6 +893,7 @@ roland_tb303.cpp roland_tr505.cpp roland_tr606.cpp roland_tr707.cpp +roland_tr808.cpp roland_tr909.cpp roland_u20.cpp rt1715.cpp -- cgit v1.2.3