aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/include
diff options
context:
space:
mode:
authorspicyjpeg <thatspicyjpeg@gmail.com>2022-10-27 12:04:11 +0200
committerspicyjpeg <thatspicyjpeg@gmail.com>2022-10-27 12:04:11 +0200
commit4dbf47f129a55428b90df2805228fbd481e1d117 (patch)
tree5f85468522e96e00157a290ad3b809d1c3633b1d /libpsn00b/include
parent5f25c0bf306d316c87fca9d3fe160d6661be230d (diff)
downloadpsn00bsdk-4dbf47f129a55428b90df2805228fbd481e1d117.tar.gz
Fix SPU_TRANSFER_BY_IO mode, add IRQ/DMA enums
Diffstat (limited to 'libpsn00b/include')
-rw-r--r--libpsn00b/include/psxcd.h4
-rw-r--r--libpsn00b/include/psxetc.h35
-rw-r--r--libpsn00b/include/psxspu.h5
3 files changed, 36 insertions, 8 deletions
diff --git a/libpsn00b/include/psxcd.h b/libpsn00b/include/psxcd.h
index 0460f20..bd89f53 100644
--- a/libpsn00b/include/psxcd.h
+++ b/libpsn00b/include/psxcd.h
@@ -136,7 +136,7 @@ extern "C" {
int CdInit(void);
CdlLOC* CdIntToPos(int i, CdlLOC *p);
-int CdPosToInt(CdlLOC *p);
+int CdPosToInt(const CdlLOC *p);
int CdGetToc(CdlLOC *toc);
int CdControl(uint8_t com, const void *param, uint8_t *result);
@@ -159,7 +159,7 @@ uint32_t CdReadCallback(CdlCB func);
int CdStatus(void);
int CdMode(void);
-int CdMix(CdlATV *vol);
+int CdMix(const CdlATV *vol);
/* ORIGINAL CODE */
CdlDIR* CdOpenDir(const char* path);
diff --git a/libpsn00b/include/psxetc.h b/libpsn00b/include/psxetc.h
index 24485d9..3b18784 100644
--- a/libpsn00b/include/psxetc.h
+++ b/libpsn00b/include/psxetc.h
@@ -6,16 +6,43 @@
#ifndef __PSXETC_H
#define __PSXETC_H
+/* IRQ and DMA channel definitions */
+
+typedef enum _IRQ_Channel {
+ IRQ_VBLANK = 0,
+ IRQ_GPU = 1,
+ IRQ_CD = 2,
+ IRQ_DMA = 3,
+ IRQ_TIMER0 = 4,
+ IRQ_TIMER1 = 5,
+ IRQ_TIMER2 = 6,
+ IRQ_SIO0 = 7,
+ IRQ_SIO1 = 8,
+ IRQ_SPU = 9,
+ IRQ_GUN = 10,
+ IRQ_PIO = 10
+} IRQ_Channel;
+
+typedef enum _DMA_Channel {
+ DMA_MDEC_IN = 0,
+ DMA_MDEC_OUT = 1,
+ DMA_GPU = 2,
+ DMA_CD = 3,
+ DMA_SPU = 4,
+ DMA_PIO = 5,
+ DMA_OTC = 6
+} DMA_Channel;
+
/* Public API */
#ifdef __cplusplus
extern "C" {
#endif
-void *InterruptCallback(int irq, void (*func)(void));
-void *GetInterruptCallback(int irq);
-void *DMACallback(int dma, void (*func)(void));
-void *GetDMACallback(int dma);
+void *InterruptCallback(IRQ_Channel irq, void (*func)(void));
+void *GetInterruptCallback(IRQ_Channel irq);
+void *DMACallback(DMA_Channel dma, void (*func)(void));
+void *GetDMACallback(DMA_Channel dma);
int ResetCallback(void);
void RestartCallback(void);
diff --git a/libpsn00b/include/psxspu.h b/libpsn00b/include/psxspu.h
index 7858e88..05737f7 100644
--- a/libpsn00b/include/psxspu.h
+++ b/libpsn00b/include/psxspu.h
@@ -125,8 +125,9 @@ extern "C" {
void SpuInit(void);
-void SpuRead(uint32_t *data, size_t size);
-void SpuWrite(const uint32_t *data, size_t size);
+size_t SpuRead(uint32_t *data, size_t size);
+size_t SpuWrite(const uint32_t *data, size_t size);
+size_t SpuWritePartly(const uint32_t *data, size_t size);
SPU_TransferMode SpuSetTransferMode(SPU_TransferMode mode);
uint32_t SpuSetTransferStartAddr(uint32_t addr);
int SpuIsTransferCompleted(int mode);