diff options
Diffstat (limited to 'src/devices/video/psx.h')
-rw-r--r-- | src/devices/video/psx.h | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/src/devices/video/psx.h b/src/devices/video/psx.h index 847458390cc..f2092387c48 100644 --- a/src/devices/video/psx.h +++ b/src/devices/video/psx.h @@ -14,30 +14,6 @@ #define PSXGPU_DEBUG_VIEWER ( 0 ) - -#define MCFG_PSX_GPU_VBLANK_HANDLER(_devcb) \ - downcast<psxgpu_device &>(*device).set_vblank_handler(DEVCB_##_devcb); - -#define MCFG_PSXGPU_ADD( cputag, tag, type, _vramSize, clock ) \ - MCFG_DEVICE_MODIFY( cputag ) \ - MCFG_PSX_GPU_READ_HANDLER(READ32(tag, psxgpu_device, read)) \ - MCFG_PSX_GPU_WRITE_HANDLER(WRITE32(tag, psxgpu_device, write)) \ - MCFG_DEVICE_ADD( tag, type, clock ) \ - downcast<psxgpu_device &>(*device).set_vram_size(_vramSize); \ - MCFG_PSX_GPU_VBLANK_HANDLER(WRITELINE(cputag ":irq", psxirq_device, intin0)) \ - MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psxdma_device::write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \ - MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psxdma_device::read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) ) - -#define MCFG_PSXGPU_REPLACE( cputag, tag, type, _vramSize, clock ) \ - MCFG_DEVICE_MODIFY( cputag ) \ - MCFG_PSX_GPU_READ_HANDLER(READ32(tag, psxgpu_device, read)) \ - MCFG_PSX_GPU_WRITE_HANDLER(WRITE32(tag, psxgpu_device, write)) \ - MCFG_DEVICE_REPLACE( tag, type, clock ) \ - downcast<psxgpu_device &>(*device).set_vram_size(_vramSize); \ - MCFG_PSX_GPU_VBLANK_HANDLER(WRITELINE(cputag ":irq", psxirq_device, intin0)) \ - MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psxdma_device::write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \ - MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psxdma_device::read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) ) - DECLARE_DEVICE_TYPE(CXD8514Q, cxd8514q_device) DECLARE_DEVICE_TYPE(CXD8538Q, cxd8538q_device) DECLARE_DEVICE_TYPE(CXD8561Q, cxd8561q_device) @@ -45,6 +21,8 @@ DECLARE_DEVICE_TYPE(CXD8561BQ, cxd8561bq_device) DECLARE_DEVICE_TYPE(CXD8561CQ, cxd8561cq_device) DECLARE_DEVICE_TYPE(CXD8654Q, cxd8654q_device) +class psxcpu_device; + class psxgpu_device : public device_t, public device_video_interface, public device_palette_interface { public: @@ -68,6 +46,7 @@ protected: static constexpr unsigned MID_SHADE = 0x80; // construction/destruction + psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu_tag); psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; @@ -333,6 +312,7 @@ class cxd8514q_device : public psxgpu_device { public: // construction/destruction + cxd8514q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu); cxd8514q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; @@ -340,6 +320,7 @@ class cxd8538q_device : public psxgpu_device { public: // construction/destruction + cxd8538q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu); cxd8538q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; @@ -347,6 +328,7 @@ class cxd8561q_device : public psxgpu_device { public: // construction/destruction + cxd8561q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu); cxd8561q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; @@ -354,6 +336,7 @@ class cxd8561bq_device : public psxgpu_device { public: // construction/destruction + cxd8561bq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu); cxd8561bq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; @@ -361,6 +344,7 @@ class cxd8561cq_device : public psxgpu_device { public: // construction/destruction + cxd8561cq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu); cxd8561cq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; @@ -368,6 +352,7 @@ class cxd8654q_device : public psxgpu_device { public: // construction/destruction + cxd8654q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu); cxd8654q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; |