diff options
| author | spicyjpeg <thatspicyjpeg@gmail.com> | 2022-10-27 12:04:11 +0200 |
|---|---|---|
| committer | spicyjpeg <thatspicyjpeg@gmail.com> | 2022-10-27 12:04:11 +0200 |
| commit | 4dbf47f129a55428b90df2805228fbd481e1d117 (patch) | |
| tree | 5f85468522e96e00157a290ad3b809d1c3633b1d /libpsn00b/include | |
| parent | 5f25c0bf306d316c87fca9d3fe160d6661be230d (diff) | |
| download | psn00bsdk-4dbf47f129a55428b90df2805228fbd481e1d117.tar.gz | |
Fix SPU_TRANSFER_BY_IO mode, add IRQ/DMA enums
Diffstat (limited to 'libpsn00b/include')
| -rw-r--r-- | libpsn00b/include/psxcd.h | 4 | ||||
| -rw-r--r-- | libpsn00b/include/psxetc.h | 35 | ||||
| -rw-r--r-- | libpsn00b/include/psxspu.h | 5 |
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); |
