mirror of
https://github.com/holub/mame
synced 2025-06-06 21:03:47 +03:00
New NOT_WORKING machine added
------------ Roland TR-606 [hap, Kevin Horton]
This commit is contained in:
parent
3b94f23dad
commit
c3293c4820
@ -40,7 +40,7 @@
|
||||
@MP3301A TMS1000 1979, Milton Bradley Big Trak
|
||||
*MP3320A TMS1000 1979, Coleco Head to Head Basketball
|
||||
*M32001 TMS1000 1981, Coleco Quiz Wiz Challenger (note: MP3398, MP3399, M3200x?)
|
||||
MP3403 TMS1100 1978, Marx Electronic Bowling -> elecbowl.c
|
||||
MP3403 TMS1100 1978, Marx Electronic Bowling -> elecbowl.cpp
|
||||
@MP3404 TMS1100 1978, Parker Brothers Merlin
|
||||
@MP3405 TMS1100 1979, Coleco Amaze-A-Tron
|
||||
*MP3415 TMS1100 1978, Coleco Electronic Quarterback
|
||||
@ -69,7 +69,7 @@
|
||||
@MP7313 TMS1400 1980, Parker Brothers Bank Shot
|
||||
@MP7314 TMS1400 1980, Parker Brothers Split Second
|
||||
*MP7324 TMS1400? 1985, Coleco Talking Teacher
|
||||
MP7332 TMS1400 1981, Milton Bradley Dark Tower -> mbdtower.c
|
||||
MP7332 TMS1400 1981, Milton Bradley Dark Tower -> mbdtower.cpp
|
||||
@MP7334 TMS1400 1981, Coleco Total Control 4
|
||||
@MP7351 TMS1400CR 1982, Parker Brothers Master Merlin
|
||||
@MP7551 TMS1670 1980, Entex Color Football 4 (6009)
|
||||
|
@ -49,8 +49,8 @@
|
||||
*060 uPD650C 1979, Mattel Computer Gin
|
||||
*085 uPD650C 1980, Roland TR-808
|
||||
*127 uPD650C 198?, Sony OA-S1100 Typecorder (subcpu, have dump)
|
||||
*128 uPD650C 1981, Roland TR-606
|
||||
133 uPD650C 1982, Roland TB-303 -> tb303.c
|
||||
128 uPD650C 1981, Roland TR-606 -> tr606.cpp
|
||||
133 uPD650C 1982, Roland TB-303 -> tb303.cpp
|
||||
|
||||
(* denotes not yet emulated by MAME, @ denotes it's in this driver)
|
||||
|
||||
|
@ -24,10 +24,10 @@ class tb303_state : public hh_ucom4_state
|
||||
public:
|
||||
tb303_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_ucom4_state(mconfig, type, tag),
|
||||
m_t3_off_timer(*this, "t3_off")
|
||||
m_tp3_off_timer(*this, "tp3_off")
|
||||
{ }
|
||||
|
||||
required_device<timer_device> m_t3_off_timer;
|
||||
required_device<timer_device> m_tp3_off_timer;
|
||||
|
||||
UINT8 m_ram[0xc00];
|
||||
UINT16 m_ram_address;
|
||||
@ -43,8 +43,8 @@ public:
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
void update_leds();
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(t3_clock);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(t3_off);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tp3_clock);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tp3_off);
|
||||
|
||||
virtual void machine_start() override;
|
||||
};
|
||||
@ -56,22 +56,22 @@ public:
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
// T2 to MCU CLK: LC circuit, stable sine wave, 2.2us interval
|
||||
#define TB303_T2_CLOCK_HZ 454545 /* in hz */
|
||||
// TP2 to MCU CLK: LC circuit(TI S74230), stable sine wave, 2.2us interval
|
||||
#define TP2_CLOCK_HZ 454545 /* in hz */
|
||||
|
||||
// T3 to MCU _INT: square wave, 1.8ms interval, short duty cycle
|
||||
#define TB303_T3_CLOCK attotime::from_usec(1800)
|
||||
#define TB303_T3_OFF (TB303_T3_CLOCK / 8)
|
||||
// TP3 to MCU _INT: square wave, 1.8ms interval, short duty cycle
|
||||
#define TP3_CLOCK attotime::from_usec(1800)
|
||||
#define TP3_OFF (TP3_CLOCK / 8)
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tb303_state::t3_off)
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tb303_state::tp3_off)
|
||||
{
|
||||
m_maincpu->set_input_line(0, CLEAR_LINE);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tb303_state::t3_clock)
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tb303_state::tp3_clock)
|
||||
{
|
||||
m_maincpu->set_input_line(0, ASSERT_LINE);
|
||||
m_t3_off_timer->adjust(TB303_T3_OFF);
|
||||
m_tp3_off_timer->adjust(TP3_OFF);
|
||||
}
|
||||
|
||||
|
||||
@ -270,7 +270,7 @@ void tb303_state::machine_start()
|
||||
static MACHINE_CONFIG_START( tb303, tb303_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", NEC_D650, TB303_T2_CLOCK_HZ)
|
||||
MCFG_CPU_ADD("maincpu", NEC_D650, TP2_CLOCK_HZ)
|
||||
MCFG_UCOM4_READ_A_CB(READ8(tb303_state, input_r))
|
||||
MCFG_UCOM4_READ_B_CB(READ8(tb303_state, input_r))
|
||||
MCFG_UCOM4_READ_C_CB(READ8(tb303_state, ram_r))
|
||||
@ -282,15 +282,13 @@ static MACHINE_CONFIG_START( tb303, tb303_state )
|
||||
MCFG_UCOM4_WRITE_H_CB(WRITE8(tb303_state, switch_w))
|
||||
MCFG_UCOM4_WRITE_I_CB(WRITE8(tb303_state, strobe_w))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("t3_clock", tb303_state, t3_clock, TB303_T3_CLOCK)
|
||||
MCFG_TIMER_START_DELAY(TB303_T3_CLOCK)
|
||||
MCFG_TIMER_DRIVER_ADD("t3_off", tb303_state, t3_off)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("tp3_clock", tb303_state, tp3_clock, TP3_CLOCK)
|
||||
MCFG_TIMER_START_DELAY(TP3_CLOCK)
|
||||
MCFG_TIMER_DRIVER_ADD("tp3_off", tb303_state, tp3_off)
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_tb303)
|
||||
|
||||
/* no video! */
|
||||
|
||||
/* sound hardware */
|
||||
// discrete...
|
||||
MACHINE_CONFIG_END
|
||||
@ -309,4 +307,4 @@ ROM_START( tb303 )
|
||||
ROM_END
|
||||
|
||||
|
||||
CONS( 1982, tb303, 0, 0, tb303, tb303, driver_device, 0, "Roland", "TB-303", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1982, tb303, 0, 0, tb303, tb303, driver_device, 0, "Roland", "TB-303 Bass Line", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
130
src/mame/drivers/tr606.cpp
Normal file
130
src/mame/drivers/tr606.cpp
Normal file
@ -0,0 +1,130 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:hap
|
||||
/***************************************************************************
|
||||
|
||||
** subclass of hh_ucom4_state (includes/hh_ucom4.h, drivers/hh_ucom4.cpp) **
|
||||
|
||||
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
|
||||
|
||||
TODO:
|
||||
- still too much to list here
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "includes/hh_ucom4.h"
|
||||
|
||||
#include "tr606.lh"
|
||||
|
||||
|
||||
class tr606_state : public hh_ucom4_state
|
||||
{
|
||||
public:
|
||||
tr606_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_ucom4_state(mconfig, type, tag),
|
||||
m_tp3_off_timer(*this, "tp3_off")
|
||||
{ }
|
||||
|
||||
required_device<timer_device> m_tp3_off_timer;
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tp3_clock);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tp3_off);
|
||||
|
||||
virtual void machine_start() override;
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Timer/Interrupt
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
// TP2 to MCU CLK: LC circuit(TI S74230), stable sine wave, 2.2us interval
|
||||
#define TP2_CLOCK_HZ 454545 /* in hz */
|
||||
|
||||
// TP3 to MCU _INT: square wave, 1.8ms interval, short duty cycle
|
||||
#define TP3_CLOCK attotime::from_usec(1800)
|
||||
#define TP3_OFF (TP3_CLOCK / 8)
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tr606_state::tp3_off)
|
||||
{
|
||||
m_maincpu->set_input_line(0, CLEAR_LINE);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tr606_state::tp3_clock)
|
||||
{
|
||||
m_maincpu->set_input_line(0, ASSERT_LINE);
|
||||
m_tp3_off_timer->adjust(TP3_OFF);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
I/O
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Inputs
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( tr606 )
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Machine Config
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void tr606_state::machine_start()
|
||||
{
|
||||
hh_ucom4_state::machine_start();
|
||||
|
||||
// zerofill
|
||||
|
||||
// register for savestates
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( tr606, tr606_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", NEC_D650, TP2_CLOCK_HZ)
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("tp3_clock", tr606_state, tp3_clock, TP3_CLOCK)
|
||||
MCFG_TIMER_START_DELAY(TP3_CLOCK)
|
||||
MCFG_TIMER_DRIVER_ADD("tp3_off", tr606_state, tp3_off)
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_tr606)
|
||||
|
||||
/* sound hardware */
|
||||
// discrete...
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Game driver(s)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
ROM_START( tr606 )
|
||||
ROM_REGION( 0x0800, "maincpu", 0 )
|
||||
ROM_LOAD( "d650c-128.ic4", 0x0000, 0x0800, CRC(eee88f80) SHA1(ae605ce2b95adc2e0bacde3cd7ed0f39ac88b981) )
|
||||
ROM_END
|
||||
|
||||
|
||||
CONS( 1982, tr606, 0, 0, tr606, tr606, driver_device, 0, "Roland", "TR-606 Drumatix", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
|
20
src/mame/layout/tr606.lay
Normal file
20
src/mame/layout/tr606.lay
Normal file
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0"?>
|
||||
<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" />
|
||||
|
||||
<bezel name="0.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
Loading…
Reference in New Issue
Block a user