summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/spu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/spu.cpp')
-rw-r--r--src/devices/sound/spu.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/devices/sound/spu.cpp b/src/devices/sound/spu.cpp
index 90d8504b439..d3877ad5bf4 100644
--- a/src/devices/sound/spu.cpp
+++ b/src/devices/sound/spu.cpp
@@ -11,6 +11,7 @@
#include "emu.h"
#include "spu.h"
#include "spureverb.h"
+#include "cpu/psx/psx.h"
//
//
@@ -934,6 +935,16 @@ static int shift_register15(int &shift)
// spu_device - constructor
//-------------------------------------------------
+spu_device::spu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, psxcpu_device *cpu)
+ : spu_device(mconfig, tag, owner, clock)
+{
+ cpu->spu_read().set(tag, FUNC(spu_device::read));
+ cpu->spu_write().set(tag, FUNC(spu_device::write));
+ cpu->subdevice<psxdma_device>("dma")->install_read_handler(4, psxdma_device::read_delegate(&spu_device::dma_read, this));
+ cpu->subdevice<psxdma_device>("dma")->install_write_handler(4, psxdma_device::write_delegate(&spu_device::dma_write, this));
+ irq_handler().set(*cpu->subdevice<psxirq_device>("irq"), FUNC(psxirq_device::intin9));
+}
+
spu_device::spu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, SPU, tag, owner, clock),
device_sound_interface(mconfig, *this),