New machines marked as NOT_WORKING

----------------------------------
TR-808 Rhythm Composer [afx303, DinSync]
This commit is contained in:
hap 2021-11-20 01:54:49 +01:00
parent db40a44d00
commit 0cb2c9ec36
8 changed files with 167 additions and 123 deletions

View File

@ -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",

View File

@ -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

View File

@ -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<int N> 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
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 )
/***************************************************************************
Drivers
***************************************************************************/
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 )

View File

@ -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<ucom4_cpu_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);
// basic machine hardware
NEC_D650(config, m_maincpu, 454545); // LC circuit(TI S74230), 2.2us
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);
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);
/* video hardware */
config.set_default_layout(layout_tr606);
/* 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
CONS( 1982, tr606, 0, 0, tr606, tr606, tr606_state, empty_init, "Roland", "TR-606 Drumatix", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
/***************************************************************************
Drivers
***************************************************************************/
SYST( 1982, tr606, 0, 0, tr606, tr606, tr606_state, empty_init, "Roland", "TR-606 Drumatix", MACHINE_IS_SKELETON )

View File

@ -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<ucom4_cpu_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 )

View File

@ -1,23 +0,0 @@
<?xml version="1.0"?>
<!--
license:CC0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="led" defstate="0">
<disk state="0"><color red="0.2" green="0.04" blue="0.046" /></disk>
<disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk>
</element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="0" right="100" top="0" bottom="100" />
<element name="0.0" ref="led"><bounds x="1" y="1" width="1" height="1" /></element>
</view>
</mamelayout>

View File

@ -36336,6 +36336,9 @@ tr606 // Roland
tr707 //
tr727 //
@source:roland_tr808.cpp
tr808
@source:roland_tr909.cpp
tr909 //

View File

@ -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