aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/psxcd/getsector.c
diff options
context:
space:
mode:
authorspicyjpeg <thatspicyjpeg@gmail.com>2022-11-17 22:20:38 +0100
committerspicyjpeg <thatspicyjpeg@gmail.com>2022-11-17 22:20:38 +0100
commitfc021dc6d6f06f8eff7edc72929faddd1e1f0d1b (patch)
treec088d292c6cc974854c2e7d3a4024c4951ef3602 /libpsn00b/psxcd/getsector.c
parent85d765f30595fe7f27c1b065c5a1934c3d389cef (diff)
downloadpsn00bsdk-fc021dc6d6f06f8eff7edc72929faddd1e1f0d1b.tar.gz
Refactor libpsxcd, add new CD-ROM APIs, fix SPU DMA read
Diffstat (limited to 'libpsn00b/psxcd/getsector.c')
-rw-r--r--libpsn00b/psxcd/getsector.c51
1 files changed, 0 insertions, 51 deletions
diff --git a/libpsn00b/psxcd/getsector.c b/libpsn00b/psxcd/getsector.c
deleted file mode 100644
index a214d7a..0000000
--- a/libpsn00b/psxcd/getsector.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * PSn00bSDK CD drive library (sector DMA API)
- * (C) 2022 spicyjpeg - MPL licensed
- */
-
-#include <stdint.h>
-#include <assert.h>
-#include <psxcd.h>
-#include <hwregs_c.h>
-
-#define DATA_SYNC_TIMEOUT 0x100000
-
-/* DMA transfer functions */
-
-int CdGetSector(void *madr, int size) {
- //while (!(CD_STAT & (1 << 6)))
- //__asm__ volatile("");
-
- DMA_MADR(3) = (uint32_t) madr;
- DMA_BCR(3) = size | (1 << 16);
- DMA_CHCR(3) = 0x11000000;
-
- while (DMA_CHCR(3) & (1 << 24))
- __asm__ volatile("");
-
- return 1;
-}
-
-int CdGetSector2(void *madr, int size) {
- //while (!(CD_STAT & (1 << 6)))
- //__asm__ volatile("");
-
- DMA_MADR(3) = (uint32_t) madr;
- DMA_BCR(3) = size | (1 << 16);
- DMA_CHCR(3) = 0x11400100; // Transfer 1 word every 16 CPU cycles
-
- return 1;
-}
-
-int CdDataSync(int mode) {
- if (mode)
- return (DMA_CHCR(3) >> 24) & 1;
-
- for (int i = DATA_SYNC_TIMEOUT; i; i--) {
- if (!(DMA_CHCR(3) & (1 << 24)))
- return 0;
- }
-
- _sdk_log("CdDataSync() timeout\n");
- return -1;
-}