summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/roland_sc55.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/roland_sc55.cpp')
-rw-r--r--src/mame/drivers/roland_sc55.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/mame/drivers/roland_sc55.cpp b/src/mame/drivers/roland_sc55.cpp
new file mode 100644
index 00000000000..0616c32b744
--- /dev/null
+++ b/src/mame/drivers/roland_sc55.cpp
@@ -0,0 +1,86 @@
+// license:BSD-3-Clause
+// copyright-holders:R. Belmont
+/*************************************************************************************************
+
+ Roland Sound Canvas SC-55
+
+ Skeleton by R. Belmont
+
+ Reference and LCD photo: http://www.synthman.com/roland/Roland_SC-55.html
+ http://en.wikipedia.org/wiki/Roland_SCC-1
+
+ The Roland SC55 is an expander (synthesizer without the keyboard)
+ from 1991. It has 24 voice polyphony, is 16 part multitimbral, and
+ outputs 16-bit stereo samples at 32 kHz. The synthesis engine uses a
+ combination of Roland's LA and straight PCM playback.
+
+ The front panel includes the power switch, a headphone jack with volume knob,
+ a second MIDI IN port, a large LCD, ALL and MUTE buttons, and a group of up/down
+ buttons for Part, Level, Reverb, Key Shift, Instrument, Pan, Chorus, and MIDI Channel.
+
+ The SCC-1 is an ISA board variant of the SC55 with a MPU-401 frontend added to
+ communicate with the synth.
+
+ Main PCB:
+
+ 20.0 MHz crystal
+ Roland R15239147 HG62E11B23FS 1L1 Japan
+ Roland R15199778 6435328A97F 1M1 R Japan - Hitachi H8/532 MCU with internal ROM (Hitachi p/n HD6435328A97F)
+ Roland R15239148 24201F002 9148EAI Japan
+ Roland R15209363 LH532H6D 9152 D
+ R15239176 BU3910F
+ HM62256ALFP-12T 32K by 8-bit RAM
+ 65256BLFP-12T 32K by 8-bit high-speed pseudo-static RAM
+ MB89251A - Serial data transceiver
+
+ LCD controller (on front panel board) is a Toshiba T7934.
+*/
+
+#include "emu.h"
+#include "machine/ram.h"
+#include "cpu/mcs96/i8x9x.h"
+
+static INPUT_PORTS_START( sc55 )
+INPUT_PORTS_END
+
+class sc55_state : public driver_device
+{
+public:
+ sc55_state(const machine_config &mconfig, device_type type, const char *tag);
+
+ void sc55(machine_config &config);
+
+private:
+ required_device<i8x9x_device> m_maincpu;
+
+ void sc55_map(address_map &map);
+};
+
+sc55_state::sc55_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+{
+}
+
+void sc55_state::sc55_map(address_map &map)
+{
+ map(0x1000, 0x3fff).rom().region("maincpu", 0x1000);
+}
+
+void sc55_state::sc55(machine_config &config)
+{
+ P8098(config, m_maincpu, XTAL(20'000'000)); // probably not?
+ m_maincpu->set_addrmap(AS_PROGRAM, &sc55_state::sc55_map);
+}
+
+ROM_START( sc55 )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // additional H8/532 code and patch data - revisions match main CPU revisions
+ ROM_LOAD( "roland_r15209363.ic23", 0x000000, 0x040000, CRC(2dc58549) SHA1(9c17f85e784dc1549ac1f98d457b353393331f6b) )
+
+ ROM_REGION( 0x300000, "la", 0 )
+ ROM_LOAD( "roland-gss.a_r15209276.ic28", 0x000000, 0x100000, CRC(1ac774d3) SHA1(8cc3c0d7ec0993df81d4ca1970e01a4b0d8d3775) )
+ ROM_LOAD( "roland-gss.b_r15209277.ic27", 0x100000, 0x100000, CRC(8dcc592a) SHA1(80e6eb130c18c09955551563f78906163c55cc11) )
+ ROM_LOAD( "roland-gss.c_r15209281.ic26", 0x200000, 0x100000, CRC(e21ebc04) SHA1(7454b817778179806f3f9d1985b3a2ef67ace76f) )
+ROM_END
+
+CONS( 1991, sc55, 0, 0, sc55, sc55, sc55_state, empty_init, "Roland", "Sound Canvas SC-55", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )