summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2021-01-12 13:29:34 -0500
committer AJR <ajrhacker@users.noreply.github.com>2021-01-12 13:29:34 -0500
commite325adaed353897bdc9f8083447dfb82d7160ac2 (patch)
treeead3515a0d7baaa762f96935b400e34f10c14a43 /src/mame/drivers
parentae0bb17dc3f0adcfc775fd8d13d268823e91b203 (diff)
roland_s10.cpp, roland_s50.cpp: Add skeleton sampler devices
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/roland_s10.cpp12
-rw-r--r--src/mame/drivers/roland_s50.cpp27
2 files changed, 25 insertions, 14 deletions
diff --git a/src/mame/drivers/roland_s10.cpp b/src/mame/drivers/roland_s10.cpp
index 7c198ac45b5..072aef20fa6 100644
--- a/src/mame/drivers/roland_s10.cpp
+++ b/src/mame/drivers/roland_s10.cpp
@@ -12,6 +12,7 @@
#include "emu.h"
#include "audio/bu3905.h"
+#include "audio/sa16.h"
//#include "bus/midi/midi.h"
#include "cpu/mcs51/mcs51.h"
#include "machine/i8251.h"
@@ -33,6 +34,7 @@ public:
, m_io(*this, "io")
, m_usart(*this, "usart")
, m_lcdc(*this, "lcdc")
+ , m_sampler(*this, "sampler")
{
}
@@ -60,6 +62,7 @@ protected:
required_device<mb62h195_device> m_io;
required_device<i8251_device> m_usart;
required_device<hd44780_device> m_lcdc;
+ required_device<sa16_base_device> m_sampler;
};
class roland_s220_state : public roland_s10_state
@@ -168,7 +171,7 @@ void roland_s10_state::mks100_ext_map(address_map &map)
map(0x9000, 0x90ff).mirror(0xf00).w(FUNC(roland_s10_state::led_data_w));
map(0xa000, 0xa0ff).mirror(0xf00).rw(FUNC(roland_s10_state::sw_scan_r), FUNC(roland_s10_state::sw_scan_w));
map(0xc000, 0xc000).mirror(0xfff).w(FUNC(roland_s10_state::led_latch_w));
- //map(0xe000, 0xffff).rw("wave", FUNC(rf5c36_device::read), FUNC(rf5c36_device::write));
+ map(0xe000, 0xffff).rw(m_sampler, FUNC(rf5c36_device::read), FUNC(rf5c36_device::write));
}
void roland_s10_state::s10_ext_map(address_map &map)
@@ -188,7 +191,7 @@ void roland_s220_state::s220_ext_map(address_map &map)
map(0x9000, 0x90ff).mirror(0xf00).w(FUNC(roland_s220_state::vca_cv_w));
map(0xa000, 0xa0ff).mirror(0xf00).rw(FUNC(roland_s220_state::sw_scan_r), FUNC(roland_s220_state::sw_scan_w));
map(0xc000, 0xc000).mirror(0xfff).w(FUNC(roland_s220_state::led_latch2_w));
- //map(0xe000, 0xffff).rw("wave", FUNC(rf5c36_device::read), FUNC(rf5c36_device::write));
+ map(0xe000, 0xffff).rw(m_sampler, FUNC(rf5c36_device::read), FUNC(rf5c36_device::write));
}
@@ -247,7 +250,8 @@ void roland_s10_state::s10(machine_config &config)
UPD7001(config, "adc", RES_K(27), CAP_P(47));
- //RF5C36(config, "wave", 26.88_MHz_XTAL);
+ RF5C36(config, m_sampler, 26.88_MHz_XTAL);
+ m_sampler->int_callback().set_inputline(m_maincpu, MCS51_INT1_LINE);
}
void roland_s10_state::mks100(machine_config &config)
@@ -283,6 +287,8 @@ void roland_s220_state::s220(machine_config &config)
m_lcdc->set_pixel_update_cb(FUNC(roland_s220_state::lcd_pixel_update));
BU3905(config, m_outctrl);
+
+ m_sampler->sh_callback().set(m_outctrl, FUNC(bu3905_device::axi_w));
}
diff --git a/src/mame/drivers/roland_s50.cpp b/src/mame/drivers/roland_s50.cpp
index 2ca7500c2e2..d05f54b332b 100644
--- a/src/mame/drivers/roland_s50.cpp
+++ b/src/mame/drivers/roland_s50.cpp
@@ -8,6 +8,7 @@
#include "emu.h"
#include "audio/bu3905.h"
+#include "audio/sa16.h"
//#include "bus/midi/midi.h"
#include "cpu/mcs96/i8x9x.h"
#include "imagedev/floppy.h"
@@ -31,6 +32,7 @@ public:
, m_fdc(*this, "fdc")
, m_floppy(*this, "fdc:0")
, m_vdp(*this, "vdp")
+ , m_wave(*this, "wave")
, m_keyscan(*this, "keyscan")
{
}
@@ -64,7 +66,7 @@ protected:
required_device<wd_fdc_digital_device_base> m_fdc;
required_device<floppy_connector> m_floppy;
optional_device<tms3556_device> m_vdp;
- //required_device<sa16_device> m_wave;
+ required_device<sa16_base_device> m_wave;
optional_device<mb63h149_device> m_keyscan;
};
@@ -213,7 +215,7 @@ void roland_s50_state::io_map(address_map &map)
map(0x1200, 0x1200).r(m_vdp, FUNC(tms3556_device::vram_r));
map(0x1202, 0x1202).rw(m_vdp, FUNC(tms3556_device::initptr_r), FUNC(tms3556_device::vram_w));
map(0x1204, 0x1204).rw(m_vdp, FUNC(tms3556_device::reg_r), FUNC(tms3556_device::reg_w));
- //map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c16_device::read), FUNC(rf5c16_device::write)).umask16(0xff00);
+ map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c36_device::read), FUNC(rf5c36_device::write)).umask16(0xff00);
map(0x4000, 0x4fff).mirror(0x3000).rw(FUNC(roland_s50_state::key_r), FUNC(roland_s50_state::key_w));
}
@@ -238,7 +240,7 @@ void roland_s550_state::io_map(address_map &map)
map(0x2000, 0x2000).w(FUNC(roland_s550_state::sram_bank_w));
map(0x2800, 0x281f).w("outas", FUNC(bu3905_device::write)).umask16(0x00ff);
//map(0x3800, 0x381f).rw(m_scsic, FUNC(mb89352_device::read), FUNC(mb89352_device::write)).umask16(0x00ff);
- //map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c16_device::read), FUNC(rf5c16_device::write)).umask16(0xff00);
+ map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c36_device::read), FUNC(rf5c36_device::write)).umask16(0xff00);
}
void roland_w30_state::w30_mem_map(address_map &map)
@@ -255,7 +257,7 @@ void roland_w30_state::w30_mem_map(address_map &map)
map(0xe400, 0xe403).rw("lcd", FUNC(lm24014h_device::read), FUNC(lm24014h_device::write)).umask16(0x00ff);
//map(0xe800, 0xe83f).w("output", FUNC(upd65006gf_376_3b8_device::write)).umask16(0x00ff);
//map(0xf000, 0xf01f).rw(m_tvf, FUNC(mb654419u_device::read), FUNC(mb654419u_device::write)).umask16(0x00ff);
- //map(0xc000, 0xffff).rw(m_wave, FUNC(sa16_device::read), FUNC(sa16_device::write)).umask16(0xff00);
+ map(0xc000, 0xffff).rw(m_wave, FUNC(sa16_device::read), FUNC(sa16_device::write)).umask16(0xff00);
}
#ifdef UNUSED_DEFINITION
@@ -265,7 +267,7 @@ void roland_w30_state::s330_mem_map(address_map &map)
map(0x2000, 0x3fff).rom().region("program", 0x2000);
map(0x4000, 0x7fff).ram().share("common");
map(0x8000, 0xbfff).m(m_psram[1], FUNC(address_map_bank_device::amap16));
- //map(0xc000, 0xffff).rw(m_wave, FUNC(sa16_device::read), FUNC(sa16_device::write)).umask16(0xff00);
+ map(0xc000, 0xffff).rw(m_wave, FUNC(sa16_device::read), FUNC(sa16_device::write)).umask16(0xff00);
}
#endif
@@ -368,8 +370,8 @@ void roland_s50_state::s50(machine_config &config)
TIMER(config, "vdp_timer").configure_scanline(FUNC(roland_s50_state::vdp_timer), "screen", 0, 1);
- //RF5C16(config, m_wave, 26.88_MHz_XTAL);
- //m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
+ RF5C36(config, m_wave, 26.88_MHz_XTAL);
+ m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
}
void roland_s550_state::s550(machine_config &config)
@@ -396,6 +398,8 @@ void roland_s550_state::s550(machine_config &config)
BU3905(config, "outas");
//MB654419U(config, m_tvf, 20_MHz_XTAL);
+
+ m_wave->sh_callback().set("outas", FUNC(bu3905_device::axi_w));
}
void roland_w30_state::w30(machine_config &config)
@@ -429,8 +433,8 @@ void roland_w30_state::w30(machine_config &config)
LM24014H(config, "lcd"); // LCD unit: LM240142
- //R15229874(config, m_wave, 26.88_MHz_XTAL);
- //m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
+ SA16(config, m_wave, 26.88_MHz_XTAL);
+ m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
//UPD65006GF_376_3B8(config, "output", 26.88_MHz_XTAL);
@@ -480,8 +484,9 @@ void roland_w30_state::s330(machine_config &config)
TIMER(config, "vdp_timer").configure_scanline(FUNC(roland_w30_state::vdp_timer), "screen", 0, 1);
- //R15229874(config, m_wave, 26.88_MHz_XTAL);
- //m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
+ SA16(config, m_wave, 26.88_MHz_XTAL);
+ m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
+ m_wave->sh_callback().set("outas", FUNC(bu3905_device::axi_w));
BU3905(config, "outas");