aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/include
diff options
context:
space:
mode:
authorJohn "Lameguy" Wilbert Villamor <lameguy64@gmail.com>2022-10-19 17:57:06 +0800
committerGitHub <noreply@github.com>2022-10-19 17:57:06 +0800
commite08a3d9366f8ca14a76b3dd569dac1fb9f569748 (patch)
tree33654513b0b184c27f8035dbc405640fcbeb44ab /libpsn00b/include
parentc4a2533d21dfd05cde841ea48c67b05e0e6a853f (diff)
parent9b2ffc6078a850b7d354855cca7622090b41f30c (diff)
downloadpsn00bsdk-e08a3d9366f8ca14a76b3dd569dac1fb9f569748.tar.gz
Merge pull request #59 from spicyjpeg/psxmdec
IRQ handler fix, .STR playback example, multiple library builds (v0.21)
Diffstat (limited to 'libpsn00b/include')
-rw-r--r--libpsn00b/include/assert.h6
-rw-r--r--libpsn00b/include/psxcd.h12
-rw-r--r--libpsn00b/include/psxetc.h15
-rw-r--r--libpsn00b/include/psxgpu.h22
-rw-r--r--libpsn00b/include/stdlib.h15
5 files changed, 55 insertions, 15 deletions
diff --git a/libpsn00b/include/assert.h b/libpsn00b/include/assert.h
index e27f2ed..32301e2 100644
--- a/libpsn00b/include/assert.h
+++ b/libpsn00b/include/assert.h
@@ -8,13 +8,13 @@
void _assert_abort(const char *file, int line, const char *expr);
-#ifdef DEBUG
+#ifdef NDEBUG
+#define assert(x)
+#else
#define assert(expr) { \
if (!(expr)) \
_assert_abort(__FILE__, __LINE__, #expr); \
}
-#else
-#define assert(x)
#endif
#endif
diff --git a/libpsn00b/include/psxcd.h b/libpsn00b/include/psxcd.h
index 03ee792..0460f20 100644
--- a/libpsn00b/include/psxcd.h
+++ b/libpsn00b/include/psxcd.h
@@ -55,8 +55,10 @@
#define CdlModeAP 0x02
#define CdlModeRept 0x04
#define CdlModeSF 0x08
-#define CdlModeSize0 0x10
-#define CdlModeSize1 0x20
+//#define CdlModeSize0 0x10
+//#define CdlModeSize1 0x20
+#define CdlModeIgnore 0x10
+#define CdlModeSize 0x20
#define CdlModeRT 0x40
#define CdlModeSpeed 0x80
@@ -143,8 +145,10 @@ int CdControlF(uint8_t com, const void *param);
int CdSync(int mode, uint8_t *result);
uint32_t CdSyncCallback(CdlCB func);
-long CdReadyCallback(CdlCB func);
+int CdReadyCallback(CdlCB func);
int CdGetSector(void *madr, int size);
+int CdGetSector2(void *madr, int size);
+int CdDataSync(int mode);
CdlFILE* CdSearchFile(CdlFILE *loc, const char *filename);
@@ -164,7 +168,7 @@ void CdCloseDir(CdlDIR* dir);
int CdGetVolumeLabel(char* label);
-long* CdAutoPauseCallback(void(*func)());
+int* CdAutoPauseCallback(void(*func)());
int CdIsoError();
int CdLoadSession(int session);
diff --git a/libpsn00b/include/psxetc.h b/libpsn00b/include/psxetc.h
index 24485d9..fcfec06 100644
--- a/libpsn00b/include/psxetc.h
+++ b/libpsn00b/include/psxetc.h
@@ -6,12 +6,27 @@
#ifndef __PSXETC_H
#define __PSXETC_H
+/* Macros */
+
+// This macro is used internally by PSn00bSDK to log debug messages to a buffer
+// which is then printed to stdout when calling VSync().
+#ifdef NDEBUG
+#define _sdk_log(...)
+#define _sdk_dump_log()
+#else
+#define _sdk_log(...) _sdk_log_inner(__VA_ARGS__)
+#define _sdk_dump_log() _sdk_dump_log_inner()
+#endif
+
/* Public API */
#ifdef __cplusplus
extern "C" {
#endif
+void _sdk_log_inner(const char *fmt, ...);
+void _sdk_dump_log_inner(void);
+
void *InterruptCallback(int irq, void (*func)(void));
void *GetInterruptCallback(int irq);
void *DMACallback(int dma, void (*func)(void));
diff --git a/libpsn00b/include/psxgpu.h b/libpsn00b/include/psxgpu.h
index 0e7ec00..f2568b0 100644
--- a/libpsn00b/include/psxgpu.h
+++ b/libpsn00b/include/psxgpu.h
@@ -488,20 +488,30 @@ void PutDrawEnvFast(DRAWENV *env);
int GetODE(void);
int VSync(int mode);
-int DrawSync(int mode);
-
void *VSyncHaltFunction(void (*func)(void));
void *VSyncCallback(void (*func)(void));
+
+int EnqueueDrawOp(
+ void (*func)(uint32_t, uint32_t, uint32_t),
+ uint32_t arg1,
+ uint32_t arg2,
+ uint32_t arg3
+);
+int DrawSync(int mode);
void *DrawSyncCallback(void (*func)(void));
-void LoadImage(const RECT *rect, const uint32_t *data);
-void StoreImage(const RECT *rect, uint32_t *data);
+int LoadImage(const RECT *rect, const uint32_t *data);
+int StoreImage(const RECT *rect, uint32_t *data);
+int MoveImage(const RECT *rect, int x, int y);
+void LoadImage2(const RECT *rect, const uint32_t *data);
+void StoreImage2(const RECT *rect, uint32_t *data);
+void MoveImage2(const RECT *rect, int x, int y);
void ClearOTagR(uint32_t *ot, size_t length);
void ClearOTag(uint32_t *ot, size_t length);
-void DrawOTag(const uint32_t *ot);
+int DrawOTag(const uint32_t *ot);
+int DrawOTagEnv(const uint32_t *ot, DRAWENV *env);
void DrawOTag2(const uint32_t *ot);
-void DrawOTagEnv(const uint32_t *ot, DRAWENV *env);
void DrawPrim(const uint32_t *pri);
void AddPrim(uint32_t *ot, const void *pri);
diff --git a/libpsn00b/include/stdlib.h b/libpsn00b/include/stdlib.h
index 1888c69..f0753c1 100644
--- a/libpsn00b/include/stdlib.h
+++ b/libpsn00b/include/stdlib.h
@@ -12,6 +12,16 @@
#define RAND_MAX 0x7fff
+/* Structure definitions */
+
+typedef struct _HeapUsage {
+ size_t total; // Total size of heap + stack
+ size_t heap; // Amount of memory currently reserved for heap
+ size_t stack; // Amount of memory currently reserved for stack
+ size_t alloc; // Amount of memory currently allocated
+ size_t alloc_max; // Maximum amount of memory ever allocated
+} HeapUsage;
+
/* API */
#ifdef __cplusplus
@@ -33,11 +43,12 @@ long double strtold(const char *nptr, char **endptr);
double strtod(const char *nptr, char **endptr);
float strtof(const char *nptr, char **endptr);
-void _mem_init(size_t ram_size, size_t stack_max_size);
void InitHeap(void *addr, size_t size);
-//int SetHeapSize(size_t size);
void *sbrk(ptrdiff_t incr);
+void TrackHeapUsage(ptrdiff_t alloc_incr);
+void GetHeapUsage(HeapUsage *usage);
+
void *malloc(size_t size);
void *calloc(size_t num, size_t size);
void *realloc(void *ptr, size_t size);