aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspicyjpeg <thatspicyjpeg@gmail.com>2022-10-19 14:15:28 +0200
committerspicyjpeg <thatspicyjpeg@gmail.com>2022-10-19 14:15:28 +0200
commit783014e53254fe17102a34c30120eeabf5227a47 (patch)
tree6c3e498295ddd293769b85e7b7cbecd80ce32be7
parente08a3d9366f8ca14a76b3dd569dac1fb9f569748 (diff)
downloadpsn00bsdk-783014e53254fe17102a34c30120eeabf5227a47.tar.gz
Clean up SDK debug logging, fix getTPage()
-rw-r--r--CHANGELOG.md14
-rw-r--r--examples/graphics/gte/main.c6
-rw-r--r--libpsn00b/CMakeLists.txt4
-rw-r--r--libpsn00b/cmake/internal_setup.cmake2
-rw-r--r--libpsn00b/include/assert.h25
-rw-r--r--libpsn00b/include/psxetc.h15
-rw-r--r--libpsn00b/include/psxgpu.h105
-rw-r--r--libpsn00b/libc/_start.s18
-rw-r--r--libpsn00b/libc/_stubs.s27
-rw-r--r--libpsn00b/libc/abort.c21
-rw-r--r--libpsn00b/psxcd/getsector.c4
-rw-r--r--libpsn00b/psxcd/isofs.c109
-rw-r--r--libpsn00b/psxcd/psxcd.c10
-rw-r--r--libpsn00b/psxetc/dl.c52
-rw-r--r--libpsn00b/psxgpu/common.c22
-rw-r--r--libpsn00b/psxgpu/image.c6
-rw-r--r--libpsn00b/psxpress/mdec.c12
-rw-r--r--libpsn00b/psxspu/common.c8
18 files changed, 255 insertions, 205 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 461d2b8..fb40eb6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,7 +19,19 @@ to ensure the changelog can be parsed correctly.
-------------------------------------------------------------------------------
-## 2022-10-16: 0.21
+## 2022-10-19: 0.21
+
+spicyjpeg:
+
+- libpsn00b: Cleaned up the internal logging system.
+
+- psxgpu: Added `MoveImage()` as well as `MoveImage2()`, `LoadImage2()` and
+ `StoreImage2()`. `LoadImage()` and `StoreImage()` now make use of the
+ library's internal drawing queue instead of blocking. Added `EnqueueDrawOp()`
+ for more advanced control of the drawing queue. The `getTPage()` macro now
+ supports extended Y coordinates (512-1023) on systems with 2 MB of VRAM.
+
+## 2022-10-16
spicyjpeg:
diff --git a/examples/graphics/gte/main.c b/examples/graphics/gte/main.c
index 6907c84..3c85d84 100644
--- a/examples/graphics/gte/main.c
+++ b/examples/graphics/gte/main.c
@@ -100,9 +100,9 @@ INDEX cube_indices[] = {
/* source color when using gte_nccs(). 4096 is 1.0 in this matrix */
/* A column of zeroes disables the light source. */
MATRIX color_mtx = {
- ONE / 2, 0, 0, /* Red */
- ONE / 2, 0, 0, /* Green */
- ONE / 2, 0, 0 /* Blue */
+ ONE * 3/4, 0, 0, /* Red */
+ ONE * 3/4, 0, 0, /* Green */
+ ONE * 3/4, 0, 0 /* Blue */
};
/* Light matrix */
diff --git a/libpsn00b/CMakeLists.txt b/libpsn00b/CMakeLists.txt
index 602b3c8..a6b6df3 100644
--- a/libpsn00b/CMakeLists.txt
+++ b/libpsn00b/CMakeLists.txt
@@ -48,6 +48,8 @@ foreach(_library IN LISTS PSN00BSDK_LIBRARIES)
${_library} INTERFACE
$<$<STREQUAL:$<UPPER_CASE:$<TARGET_PROPERTY:PSN00BSDK_TARGET_TYPE>>,${_type}>:${_name}>
)
+
+ target_compile_definitions(${_name} PRIVATE SDK_LIBRARY_NAME="${_library}")
endforeach()
endforeach()
@@ -102,6 +104,6 @@ install(
# once the debug and release builds are merged into the same installation tree.
install(
EXPORT libpsn00b
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/libpsn00b
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/libpsn00b/cmake
#EXPORT_LINK_INTERFACE_LIBRARIES
)
diff --git a/libpsn00b/cmake/internal_setup.cmake b/libpsn00b/cmake/internal_setup.cmake
index e78355f..b21451e 100644
--- a/libpsn00b/cmake/internal_setup.cmake
+++ b/libpsn00b/cmake/internal_setup.cmake
@@ -34,7 +34,7 @@ if(NOT DEFINED PSN00BSDK_VERSION)
string(JSON PSN00BSDK_GIT_COMMIT GET ${_json} git_commit)
endif()
-include(${CMAKE_CURRENT_LIST_DIR}/../libpsn00b.cmake OPTIONAL)
+include(${CMAKE_CURRENT_LIST_DIR}/libpsn00b.cmake OPTIONAL)
if(TARGET psn00bsdk)
link_libraries(psn00bsdk)
endif()
diff --git a/libpsn00b/include/assert.h b/libpsn00b/include/assert.h
index 32301e2..eabe369 100644
--- a/libpsn00b/include/assert.h
+++ b/libpsn00b/include/assert.h
@@ -1,20 +1,33 @@
/*
- * PSn00bSDK assert macro
+ * PSn00bSDK assert macro and internal logging
* (C) 2022 spicyjpeg - MPL licensed
+ *
+ * Note that the _sdk_log() macro is used internally by PSn00bSDK to output
+ * debug messages and warnings.
*/
#ifndef __ASSERT_H
#define __ASSERT_H
-void _assert_abort(const char *file, int line, const char *expr);
-
#ifdef NDEBUG
-#define assert(x)
+
+#define assert(expr)
+#define _sdk_log(fmt, ...)
+
#else
+
+void _assert_abort(const char *file, int line, const char *expr);
+void _sdk_log_inner(const char *fmt, ...);
+
#define assert(expr) { \
- if (!(expr)) \
- _assert_abort(__FILE__, __LINE__, #expr); \
+ if (!(expr)) _assert_abort(__FILE__, __LINE__, #expr); \
}
+#ifdef SDK_LIBRARY_NAME
+#define _sdk_log(fmt, ...) _sdk_log_inner(SDK_LIBRARY_NAME ": " fmt, ##__VA_ARGS__)
+#else
+#define _sdk_log(fmt, ...) _sdk_log_inner(fmt, ##__VA_ARGS__)
+#endif
+
#endif
#endif
diff --git a/libpsn00b/include/psxetc.h b/libpsn00b/include/psxetc.h
index fcfec06..24485d9 100644
--- a/libpsn00b/include/psxetc.h
+++ b/libpsn00b/include/psxetc.h
@@ -6,27 +6,12 @@
#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 f2568b0..68e3bff 100644
--- a/libpsn00b/include/psxgpu.h
+++ b/libpsn00b/include/psxgpu.h
@@ -31,65 +31,65 @@ typedef enum _GPU_VideoMode {
/* Structure macros */
#define setVector(v, _x, _y, _z) \
- (v)->vx = _x, (v)->vy = _y, (v)->vz = _z
+ (v)->vx = (_x), (v)->vy = (_y), (v)->vz = (_z)
#define setRECT(v, _x, _y, _w, _h) \
- (v)->x = _x, (v)->y = _y, (v)->w = _w, (v)->h = _h
+ (v)->x = (_x), (v)->y = (_y), (v)->w = (_w), (v)->h = (_h)
#define setTPage(p, tp, abr, x, y) ((p)->tpage = getTPage(tp, abr, x, y))
#define setClut(p, x, y) ((p)->clut = getClut(x, y))
-#define setRGB0(p, r, g, b) ((p)->r0 = r, (p)->g0 = g, (p)->b0 = b)
-#define setRGB1(p, r, g, b) ((p)->r1 = r, (p)->g1 = g, (p)->b1 = b)
-#define setRGB2(p, r, g, b) ((p)->r2 = r, (p)->g2 = g, (p)->b2 = b)
-#define setRGB3(p, r, g, b) ((p)->r3 = r, (p)->g3 = g, (p)->b3 = b)
+#define setRGB0(p, r, g, b) ((p)->r0 = (r), (p)->g0 = (g), (p)->b0 = (b))
+#define setRGB1(p, r, g, b) ((p)->r1 = (r), (p)->g1 = (g), (p)->b1 = (b))
+#define setRGB2(p, r, g, b) ((p)->r2 = (r), (p)->g2 = (g), (p)->b2 = (b))
+#define setRGB3(p, r, g, b) ((p)->r3 = (r), (p)->g3 = (g), (p)->b3 = (b))
#define setXY0(p, _x0, _y0) \
- (p)->x0 = _x0, (p)->y0 = _y0
+ (p)->x0 = (_x0), (p)->y0 = (_y0)
#define setXY2(p, _x0, _y0, _x1, _y1) \
- (p)->x0 = _x0, (p)->y0 = _y0, \
- (p)->x1 = _x1, (p)->y1 = _y1
+ (p)->x0 = (_x0), (p)->y0 = (_y0), \
+ (p)->x1 = (_x1), (p)->y1 = (_y1)
#define setXY3(p, _x0, _y0, _x1, _y1, _x2, _y2) \
- (p)->x0 = _x0, (p)->y0 = _y0, \
- (p)->x1 = _x1, (p)->y1 = _y1, \
- (p)->x2 = _x2, (p)->y2 = _y2
+ (p)->x0 = (_x0), (p)->y0 = (_y0), \
+ (p)->x1 = (_x1), (p)->y1 = (_y1), \
+ (p)->x2 = (_x2), (p)->y2 = (_y2)
#define setXY4(p, _x0, _y0, _x1, _y1, _x2, _y2, _x3, _y3) \
- (p)->x0 = _x0, (p)->y0 = _y0, \
- (p)->x1 = _x1, (p)->y1 = _y1, \
- (p)->x2 = _x2, (p)->y2 = _y2, \
- (p)->x3 = _x3, (p)->y3 = _y3
+ (p)->x0 = (_x0), (p)->y0 = (_y0), \
+ (p)->x1 = (_x1), (p)->y1 = (_y1), \
+ (p)->x2 = (_x2), (p)->y2 = (_y2), \
+ (p)->x3 = (_x3), (p)->y3 = (_y3)
#define setWH(p, _w, _h) \
- (p)->w = _w, (p)->h = _h
+ (p)->w = (_w), (p)->h = (_h)
#define setXYWH(p, _x0, _y0, _w, _h) \
- (p)->x0 = _x0, (p)->y0 = _y0, \
- (p)->x1 = (_x0 + (_w)), (p)->y1 = _y0, \
- (p)->x2 = _x0, (p)->y2 = (_y0 + (_h)), \
- (p)->x3 = (_x0 + (_w)), (p)->y3 = (_y0 + (_h))
+ (p)->x0 = (_x0), (p)->y0 = (_y0), \
+ (p)->x1 = ((_x0) + (_w)), (p)->y1 = (_y0), \
+ (p)->x2 = (_x0), (p)->y2 = ((_y0) + (_h)), \
+ (p)->x3 = ((_x0) + (_w)), (p)->y3 = ((_y0) + (_h))
#define setUV0(p, _u0, _v0) \
- (p)->u0 = _u0, (p)->v0 = _v0
+ (p)->u0 = (_u0), (p)->v0 = (_v0)
#define setUV3(p, _u0, _v0, _u1, _v1, _u2, _v2) \
- (p)->u0 = _u0, (p)->v0 = _v0, \
- (p)->u1 = _u1, (p)->v1 = _v1, \
- (p)->u2 = _u2, (p)->v2 = _v2
+ (p)->u0 = (_u0), (p)->v0 = (_v0), \
+ (p)->u1 = (_u1), (p)->v1 = (_v1), \
+ (p)->u2 = (_u2), (p)->v2 = (_v2)
#define setUV4(p, _u0, _v0, _u1, _v1, _u2, _v2, _u3, _v3) \
- (p)->u0 = _u0, (p)->v0 = _v0, \
- (p)->u1 = _u1, (p)->v1 = _v1, \
- (p)->u2 = _u2, (p)->v2 = _v2, \
- (p)->u3 = _u3, (p)->v3 = _v3
+ (p)->u0 = (_u0), (p)->v0 = (_v0), \
+ (p)->u1 = (_u1), (p)->v1 = (_v1), \
+ (p)->u2 = (_u2), (p)->v2 = (_v2), \
+ (p)->u3 = (_u3), (p)->v3 = (_v3)
#define setUVWH(p, _u0, _v0, _w, _h) \
- (p)->u0 = _u0, (p)->v0 = _v0, \
- (p)->u1 = (_u0 + (_w)), (p)->v1 = _v0, \
- (p)->u2 = _u0, (p)->v2 = (_v0 + (_h)), \
- (p)->u3 = (_u0 + (_w)), (p)->v3 = (_v0 + (_h))
+ (p)->u0 = (_u0), (p)->v0 = (_v0), \
+ (p)->u1 = ((_u0) + (_w)), (p)->v1 = (_v0), \
+ (p)->u2 = (_u0), (p)->v2 = ((_v0) + (_h)), \
+ (p)->u3 = ((_u0) + (_w)), (p)->v3 = ((_v0) + (_h))
/* Primitive handling macros */
@@ -113,8 +113,13 @@ typedef enum _GPU_VideoMode {
#define setShadeTex(p, tge) \
((tge) ? (getcode(p) |= 1) : (getcode(p) &= ~1))
-#define getTPage(tp, abr, x, y) \
- ((((x) & 0x3ff) >> 6) | (((y) >> 8) << 4) | (((abr) & 3) << 5) | (((tp) & 3) << 7))
+#define getTPage(tp, abr, x, y) ( \
+ (((x) / 64) & 15) | \
+ ((((y) / 256) & 1) << 4) | \
+ (((abr) & 3) << 5) | \
+ (((tp) & 3) << 7) | \
+ ((((y) / 512) & 1) << 11) \
+)
#define getClut(x, y) (((y) << 6) | (((x) >> 4) & 0x3f))
@@ -151,24 +156,42 @@ typedef enum _GPU_VideoMode {
#define setDrawTPage(p, dfe, dtd, tpage) \
setlen(p, 1), \
- (p)->code[0] = 0xe1000000 | tpage | (dfe << 10) | (dtd << 9)
+ (p)->code[0] = (0xe1000000 | \
+ (tpage) | \
+ ((dtd) << 9) | \
+ ((dfe) << 10) \
+ )
#define setDrawOffset(p, _x, _y) \
setlen(p, 1), \
- (p)->code[0] = 0xe5000000 | (_x & 0x3ff) | ((_y & 0x3ff) << 11)
+ (p)->code[0] = (0xe5000000 | \
+ ((_x) % 1024) | \
+ (((_y) % 1024) << 11) \
+ )
#define setDrawMask(p, sb, mt) \
setlen(p, 1), \
- (p)->code[0] = 0xe6000000 | sb | (mt << 1)
+ (p)->code[0] = (0xe6000000 | (sb) | ((mt) << 1))
#define setDrawArea(p, r) \
setlen(p, 2), \
- (p)->code[0] = 0xe3000000 | ((r)->x & 0x3ff) | (((r)->y & 0x1ff) << 10), \
- (p)->code[1] = 0xe4000000 | (((r)->x + (r)->w - 1) & 0x3ff) | ((((r)->y + (r)->h - 1) & 0x1ff) << 10)
+ (p)->code[0] = (0xe3000000 | \
+ ((r)->x % 1024) | \
+ (((r)->y % 1024) << 10) \
+ ), \
+ (p)->code[1] = (0xe4000000 | \
+ (((r)->x + (r)->w - 1) % 1024) | \
+ ((((r)->y + (r)->h - 1) % 1024) << 10) \
+ )
#define setTexWindow(p, r) \
setlen(p, 1), \
- (p)->code[0] = 0xe2000000 | ((r)->w & 0x1f) | (((r)->h & 0x1f) << 5) | (((r)->x & 0x1f) << 10) | (((r)->y & 0x1f) << 15)
+ (p)->code[0] = (0xe2000000 | \
+ ((r)->w % 32) | \
+ (((r)->h % 32) << 5) | \
+ (((r)->x % 32) << 10) | \
+ (((r)->y % 32) << 15) \
+ )
/* Primitive structure definitions */
diff --git a/libpsn00b/libc/_start.s b/libpsn00b/libc/_start.s
deleted file mode 100644
index 56075c8..0000000
--- a/libpsn00b/libc/_start.s
+++ /dev/null
@@ -1,18 +0,0 @@
-# PSn00bSDK _start() trampoline
-# (C) 2022 spicyjpeg - MPL licensed
-#
-# This file provides a weak function that can be easily overridden to e.g. set
-# $sp or perform additional initialization before the "real" _start()
-# (_start_inner()) is called.
-
-.set noreorder
-.section .text
-
-.global _start
-.type _start, @function
-.weak _start
-_start:
- la $gp, _gp
-
- j _start_inner
- nop
diff --git a/libpsn00b/libc/_stubs.s b/libpsn00b/libc/_stubs.s
new file mode 100644
index 0000000..aa7bfbe
--- /dev/null
+++ b/libpsn00b/libc/_stubs.s
@@ -0,0 +1,27 @@
+# PSn00bSDK _start() trampoline and logging endpoint
+# (C) 2022 spicyjpeg - MPL licensed
+#
+# This file provides a weak function that can be easily overridden to e.g. set
+# $sp or perform additional initialization before the "real" _start() function
+# (_start_inner()) is called. The _sdk_log_inner() function called by other
+# libraries to log debug messages can also be overridden in a similar way.
+
+.set noreorder
+
+.section .text._start
+.global _start
+.type _start, @function
+.weak _start
+_start:
+ la $gp, _gp
+ j _start_inner
+ nop
+
+.section .text._sdk_log_inner
+.global _sdk_log_inner
+.type _sdk_log_inner, @function
+.weak _sdk_log_inner
+_sdk_log_inner:
+ li $t2, 0xa0
+ jr $t2
+ li $t1, 0x3f
diff --git a/libpsn00b/libc/abort.c b/libpsn00b/libc/abort.c
index 2db5016..9a4661a 100644
--- a/libpsn00b/libc/abort.c
+++ b/libpsn00b/libc/abort.c
@@ -1,19 +1,24 @@
+/*
+ * PSn00bSDK assert macro and internal logging
+ * (C) 2022 spicyjpeg - MPL licensed
+ */
-#include <psxetc.h>
+#include <assert.h>
+#include <psxapi.h>
-/* Standard abort */
+/* Internal function used by assert() macro */
-void abort(void) {
- _sdk_log("abort()\n");
+void _assert_abort(const char *file, int line, const char *expr) {
+ _sdk_log_inner("%s:%d: assert(%s)\n", file, line, expr);
for (;;)
__asm__ volatile("");
}
-/* Internal function used by assert() macro */
+/* Standard abort */
-void _assert_abort(const char *file, int line, const char *expr) {
- _sdk_log("%s:%d: assert(%s)\n", file, line, expr);
+void abort(void) {
+ _sdk_log_inner("abort()\n");
for (;;)
__asm__ volatile("");
@@ -22,7 +27,7 @@ void _assert_abort(const char *file, int line, const char *expr) {
/* Pure virtual function call (C++) */
void __cxa_pure_virtual(void) {
- _sdk_log("__cxa_pure_virtual()\n");
+ _sdk_log_inner("__cxa_pure_virtual()\n");
for (;;)
__asm__ volatile("");
diff --git a/libpsn00b/psxcd/getsector.c b/libpsn00b/psxcd/getsector.c
index 31d0ac7..a214d7a 100644
--- a/libpsn00b/psxcd/getsector.c
+++ b/libpsn00b/psxcd/getsector.c
@@ -4,7 +4,7 @@
*/
#include <stdint.h>
-#include <psxetc.h>
+#include <assert.h>
#include <psxcd.h>
#include <hwregs_c.h>
@@ -46,6 +46,6 @@ int CdDataSync(int mode) {
return 0;
}
- _sdk_log("psxcd: CdDataSync() timeout\n");
+ _sdk_log("CdDataSync() timeout\n");
return -1;
}
diff --git a/libpsn00b/psxcd/isofs.c b/libpsn00b/psxcd/isofs.c
index 0425c0d..cb60152 100644
--- a/libpsn00b/psxcd/isofs.c
+++ b/libpsn00b/psxcd/isofs.c
@@ -1,10 +1,13 @@
+
+#define SDK_LIBRARY_NAME "psxcd/iso"
+
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
+#include <assert.h>
#include <psxgpu.h>
#include <psxapi.h>
-#include <psxetc.h>
-#include "psxcd.h"
+#include <psxcd.h>
#include "isofs.h"
#define DEFAULT_PATH_SEP '\\'
@@ -43,7 +46,7 @@ static int _CdReadIsoDescriptor(int session_offs)
CdControl(CdlNop, 0, 0);
if( (CdStatus()&0x10) )
{
- _sdk_log("psxcd: Lid is still open.\n");
+ _sdk_log("Lid is still open.\n");
_cd_iso_error = CdlIsoLidOpen;
return -1;
@@ -58,45 +61,45 @@ static int _CdReadIsoDescriptor(int session_offs)
return 0;
}
- _sdk_log("psxcd: Parsing ISO file system.\n");
+ _sdk_log("Parsing ISO file system.\n");
// Seek to volume descriptor
CdIntToPos(16+session_offs, &loc);
if( !CdControl(CdlSetloc, (uint8_t*)&loc, 0) )
{
- _sdk_log("psxcd: Could not set seek destination.\n");
+ _sdk_log("Could not set seek destination.\n");
_cd_iso_error = CdlIsoSeekError;
return -1;
}
- _sdk_log("psxcd: Read sectors.\n");
+ _sdk_log("Read sectors.\n");
// Read volume descriptor
CdRead(1, (uint32_t*)_cd_iso_descriptor_buff, CdlModeSpeed);
if( CdReadSync(0, 0) )
{
- _sdk_log("psxcd: Error reading ISO volume descriptor.\n");
+ _sdk_log("Error reading ISO volume descriptor.\n");
_cd_iso_error = CdlIsoReadError;
return -1;
}
- _sdk_log("psxcd: Read complete.\n");
+ _sdk_log("Read complete.\n");
// Verify if volume descriptor is present
descriptor = (ISO_DESCRIPTOR*)_cd_iso_descriptor_buff;
if( strncmp("CD001", descriptor->header.id, 5) )
{
- _sdk_log("psxcd: Disc does not contain a ISO9660 file system.\n");
+ _sdk_log("Disc does not contain a ISO9660 file system.\n");
_cd_iso_error = CdlIsoInvalidFs;
return -1;
}
- _sdk_log("psxcd: Path table LBA = %d\n", descriptor->pathTable1Offs);
- _sdk_log("psxcd: Path table len = %d\n", descriptor->pathTableSize.lsb);
+ _sdk_log("Path table LBA = %d\n", descriptor->pathTable1Offs);
+ _sdk_log("Path table len = %d\n", descriptor->pathTableSize.lsb);
// Allocate path table buffer
i = ((2047+descriptor->pathTableSize.lsb)>>11)<<11;
@@ -106,7 +109,7 @@ static int _CdReadIsoDescriptor(int session_offs)
}
_cd_iso_pathtable_buff = (uint8_t*)malloc(i);
- _sdk_log("psxcd: Allocated %d bytes for path table.\n", i);
+ _sdk_log("Allocated %d bytes for path table.\n", i);
// Read path table
CdIntToPos(descriptor->pathTable1Offs, &loc);
@@ -114,7 +117,7 @@ static int _CdReadIsoDescriptor(int session_offs)
CdRead(i>>11, (uint32_t*)_cd_iso_pathtable_buff, CdlModeSpeed);
if( CdReadSync(0, 0) )
{
- _sdk_log("psxcd: Error reading ISO path table.\n");
+ _sdk_log("Error reading ISO path table.\n");
_cd_iso_error = CdlIsoReadError;
return -1;
@@ -142,11 +145,11 @@ static int _CdReadIsoDirectory(int lba)
CdIntToPos(lba, &loc);
i = CdPosToInt(&loc);
- _sdk_log("psxcd: Seek to sector %d\n", i);
+ _sdk_log("Seek to sector %d\n", i);
if( !CdControl(CdlSetloc, (uint8_t*)&loc, 0) )
{
- _sdk_log("psxcd: Could not set seek destination.\n");
+ _sdk_log("Could not set seek destination.\n");
_cd_iso_error = CdlIsoSeekError;
return -1;
@@ -162,7 +165,7 @@ static int _CdReadIsoDirectory(int lba)
CdRead(1, (uint32_t*)_cd_iso_directory_buff, CdlModeSpeed);
if( CdReadSync(0, 0) )
{
- _sdk_log("psxcd: Error reading initial directory record.\n");
+ _sdk_log("Error reading initial directory record.\n");
_cd_iso_error = CdlIsoReadError;
return -1;
@@ -171,14 +174,14 @@ static int _CdReadIsoDirectory(int lba)
direntry = (ISO_DIR_ENTRY*)_cd_iso_directory_buff;
_cd_iso_directory_len = direntry->entrySize.lsb;
- _sdk_log("psxcd: Location of directory record = %d\n", direntry->entryOffs.lsb);
- _sdk_log("psxcd: Size of directory record = %d\n", _cd_iso_directory_len);
+ _sdk_log("Location of directory record = %d\n", direntry->entryOffs.lsb);
+ _sdk_log("Size of directory record = %d\n", _cd_iso_directory_len);
if( _cd_iso_directory_len > 2048 )
{
if( !CdControl(CdlSetloc, (uint8_t*)&loc, 0) )
{
- _sdk_log("psxcd: Could not set seek destination.\n");
+ _sdk_log("Could not set seek destination.\n");
_cd_iso_error = CdlIsoSeekError;
return -1;
@@ -188,12 +191,12 @@ static int _CdReadIsoDirectory(int lba)
i = ((2047+_cd_iso_directory_len)>>11)<<11;
_cd_iso_directory_buff = (uint8_t*)malloc(i);
- _sdk_log("psxcd: Allocated %d bytes for directory record.\n", i);
+ _sdk_log("Allocated %d bytes for directory record.\n", i);
CdRead(i>>11, (uint32_t*)_cd_iso_directory_buff, CdlModeSpeed);
if( CdReadSync(0, 0) )
{
- _sdk_log("psxcd: Error reading remaining directory record.\n");
+ _sdk_log("Error reading remaining directory record.\n");
_cd_iso_error = CdlIsoReadError;
return -1;
@@ -215,7 +218,7 @@ static void dump_directory(void)
ISO_DIR_ENTRY *dir_entry;
char namebuff[16];
- _sdk_log("psxcd: Cached directory record contents:\n");
+ _sdk_log("Cached directory record contents:\n");
i = 0;
dir_pos = 0;
@@ -226,7 +229,7 @@ static void dump_directory(void)
strncpy(namebuff,
_cd_iso_directory_buff+dir_pos+sizeof(ISO_DIR_ENTRY), dir_entry->identifierLen);
- _sdk_log("psxcd: P:%d L:%d %s\n", dir_pos, dir_entry->identifierLen, namebuff);
+ _sdk_log("P:%d L:%d %s\n", dir_pos, dir_entry->identifierLen, namebuff);
dir_pos += dir_entry->entryLength;
i++;
@@ -245,7 +248,7 @@ static void dump_directory(void)
}
}
- _sdk_log("psxcd: --\n");
+ _sdk_log("--\n");
}
@@ -256,7 +259,7 @@ static void dump_pathtable(void)
ISO_DESCRIPTOR *descriptor;
char namebuff[16];
- _sdk_log("psxcd: Path table entries:\n");
+ _sdk_log("Path table entries:\n");
descriptor = (ISO_DESCRIPTOR*)_cd_iso_descriptor_buff;
@@ -270,7 +273,7 @@ static void dump_pathtable(void)
tbl_pos+sizeof(ISO_PATHTABLE_ENTRY),
tbl_entry->nameLength);
- _sdk_log("psxcd: %s\n", namebuff);
+ _sdk_log("%s\n", namebuff);
// Advance to next entry
tbl_pos += sizeof(ISO_PATHTABLE_ENTRY)
@@ -366,7 +369,7 @@ static int find_dir_entry(const char *name, ISO_DIR_ENTRY *dirent)
ISO_DIR_ENTRY *dir_entry;
char namebuff[16];
- _sdk_log("psxcd: Locating file %s.\n", name);
+ _sdk_log("Locating file %s.\n", name);
i = 0;
dir_pos = 0;
@@ -459,11 +462,11 @@ CdlFILE *CdSearchFile(CdlFILE *fp, const char *filename)
// Read ISO descriptor and path table
if( _CdReadIsoDescriptor(0) )
{
- _sdk_log("psxcd: Could not read ISO file system.\n");
+ _sdk_log("Could not read ISO file system.\n");
return NULL;
}
- // _sdk_log("psxcd: ISO file system cache updated.\n");
+ // _sdk_log("ISO file system cache updated.\n");
// _cd_media_changed = 0;
//}
@@ -471,23 +474,23 @@ CdlFILE *CdSearchFile(CdlFILE *fp, const char *filename)
num_dirs = get_pathtable_entry(0, NULL, NULL);
#ifndef NDEBUG
- _sdk_log("psxcd: Directories in path table: %d\n", num_dirs);
+ _sdk_log("Directories in path table: %d\n", num_dirs);
rbuff = resolve_pathtable_path(num_dirs-1, tpath_rbuff+127);
if( !rbuff )
{
- _sdk_log("psxcd: Could not resolve path.\n");
+ _sdk_log("Could not resolve path.\n");
}
else
{
- _sdk_log("psxcd: Longest path: %s|\n", rbuff);
+ _sdk_log("Longest path: %s|\n", rbuff);
}
#endif
if( get_pathname(search_path, filename) )
{
- _sdk_log("psxcd: Search path = %s|\n", search_path);
+ _sdk_log("Search path = %s|\n", search_path);
}
// Search the pathtable for a matching path
@@ -495,7 +498,7 @@ CdlFILE *CdSearchFile(CdlFILE *fp, const char *filename)
for(i=1; i<num_dirs; i++)
{
rbuff = resolve_pathtable_path(i, tpath_rbuff+127);
- _sdk_log("psxcd: Found = %s|\n", rbuff);
+ _sdk_log("Found = %s|\n", rbuff);
if( rbuff )
{
@@ -509,14 +512,14 @@ CdlFILE *CdSearchFile(CdlFILE *fp, const char *filename)
if( !found_dir )
{
- _sdk_log("psxcd: Directory path not found.\n");
+ _sdk_log("Directory path not found.\n");
return NULL;
}
- _sdk_log("psxcd: Found directory at record %d!\n", found_dir);
+ _sdk_log("Found directory at record %d!\n", found_dir);
get_pathtable_entry(found_dir, &tbl_entry, NULL);
- _sdk_log("psxcd: Directory LBA = %d\n", tbl_entry.dirOffs);
+ _sdk_log("Directory LBA = %d\n", tbl_entry.dirOffs);
_CdReadIsoDirectory(tbl_entry.dirOffs);
get_filename(fp->name, filename);
@@ -533,12 +536,12 @@ CdlFILE *CdSearchFile(CdlFILE *fp, const char *filename)
if( find_dir_entry(fp->name, &dir_entry) )
{
- _sdk_log("psxcd: Could not find file.\n");
+ _sdk_log("Could not find file.\n");
return NULL;
}
- _sdk_log("psxcd: Located file at LBA %d.\n", dir_entry.entryOffs.lsb);
+ _sdk_log("Located file at LBA %d.\n", dir_entry.entryOffs.lsb);
CdIntToPos(dir_entry.entryOffs.lsb, &fp->pos);
fp->size = dir_entry.entrySize.lsb;
@@ -562,11 +565,11 @@ CdlDIR *CdOpenDir(const char* path)
// Read ISO descriptor and path table
if( _CdReadIsoDescriptor( 0 ) )
{
- _sdk_log( "psxcd: Could not read ISO file system.\n" );
+ _sdk_log( "Could not read ISO file system.\n" );
return NULL;
}
-// _sdk_log( "psxcd: ISO file system cache updated.\n" );
+// _sdk_log( "ISO file system cache updated.\n" );
// _cd_media_changed = 0;
// }
@@ -576,7 +579,7 @@ CdlDIR *CdOpenDir(const char* path)
for( i=1; i<num_dirs; i++ )
{
rbuff = resolve_pathtable_path( i, tpath_rbuff+127 );
- _sdk_log( "psxcd: Found = %s|\n", rbuff );
+ _sdk_log( "Found = %s|\n", rbuff );
if( rbuff )
{
@@ -590,14 +593,14 @@ CdlDIR *CdOpenDir(const char* path)
if( !found_dir )
{
- _sdk_log( "psxcd: Directory path not found.\n" );
+ _sdk_log( "Directory path not found.\n" );
return NULL;
}
- _sdk_log( "psxcd: Found directory at record %d!\n", found_dir );
+ _sdk_log( "Found directory at record %d!\n", found_dir );
get_pathtable_entry( found_dir, &tbl_entry, NULL );
- _sdk_log( "psxcd: Directory LBA = %d\n", tbl_entry.dirOffs );
+ _sdk_log( "Directory LBA = %d\n", tbl_entry.dirOffs );
_CdReadIsoDirectory( tbl_entry.dirOffs );
@@ -662,11 +665,11 @@ int CdReadDir(CdlDIR *dir, CdlFILE* file)
file->size = dir_entry->entrySize.lsb;
- _sdk_log("psxcd: dir_entry->entryLength = %d, ", dir_entry->entryLength);
+ _sdk_log("dir_entry->entryLength = %d, ", dir_entry->entryLength);
d_dir->_pos += dir_entry->entryLength;
- _sdk_log("psxcd: d_dir->_pos = %d\n", d_dir->_pos);
+ _sdk_log("d_dir->_pos = %d\n", d_dir->_pos);
// Check if padding is reached (end of record sector)
if( d_dir->_dir[d_dir->_pos] == 0 )
@@ -770,13 +773,13 @@ int CdLoadSession(int session)
int i;
// Seek to specified session
- _sdk_log("psxcd: CdLoadSession(): Seeking to session %d...\n", session);
+ _sdk_log("CdLoadSession(): Seeking to session %d...\n", session);
CdControl(CdlSetsession, (unsigned char*)&session,
(unsigned char*)&resultbuff);
if( CdSync(0, 0) == CdlDiskError )
{
- _sdk_log("psxcd: CdLoadSession(): Session seek failed, session does not exist. Restarting CD-ROM...\n");
+ _sdk_log("CdLoadSession(): Session seek failed, session does not exist. Restarting CD-ROM...\n");
// Restart CD-ROM on session seek failure
CdControl(CdlNop, 0, 0);
@@ -797,7 +800,7 @@ int CdLoadSession(int session)
_ses_scanbuff = scanbuff;
// Begin scan for an ISO volume descriptor
- _sdk_log("psxcd: CdLoadSession(): Scanning for ISO9660 volume descriptor.\n");
+ _sdk_log("CdLoadSession(): Scanning for ISO9660 volume descriptor.\n");
i = CdlModeSpeed;
CdControl(CdlSetmode, (unsigned char*)&i, 0);
@@ -812,7 +815,7 @@ int CdLoadSession(int session)
if( !_ses_scanfound )
{
- _sdk_log("psxcd: CdLoadSession(): Did not find volume descriptor.\n");
+ _sdk_log("CdLoadSession(): Did not find volume descriptor.\n");
_cd_iso_error = CdlIsoInvalidFs;
EnterCriticalSection();
@@ -841,11 +844,11 @@ int CdLoadSession(int session)
loc = (CdlLOC*)resultbuff;
- _sdk_log("psxcd: CdLoadSession(): Session found in %02d:%02d:%02d (LBA=%d)\n",
+ _sdk_log("CdLoadSession(): Session found in %02d:%02d:%02d (LBA=%d)\n",
btoi(loc->minute), btoi(loc->second), btoi(loc->sector), CdPosToInt(loc));
i = CdPosToInt(loc)-17;
- _sdk_log("psxcd: CdLoadSession(): Session starting at LBA=%d\n", i);
+ _sdk_log("CdLoadSession(): Session starting at LBA=%d\n", i);
_cd_media_changed = 1;
diff --git a/libpsn00b/psxcd/psxcd.c b/libpsn00b/psxcd/psxcd.c
index b914b5e..d8d0686 100644
--- a/libpsn00b/psxcd/psxcd.c
+++ b/libpsn00b/psxcd/psxcd.c
@@ -1,8 +1,8 @@
#include <stdint.h>
+#include <assert.h>
#include <psxgpu.h>
-#include <psxetc.h>
#include <psxapi.h>
-#include "psxcd.h"
+#include <psxcd.h>
#define READ_TIMEOUT 600 // 10 seconds for NTSC
@@ -39,9 +39,9 @@ int CdInit(void) {
if(CdSync(0, 0) != CdlDiskError) {
CdControl(CdlDemute, 0, 0);
- _sdk_log("psxcd: setup done\n");
+ _sdk_log("setup done\n");
} else {
- _sdk_log("psxcd: setup error, bad disc/drive or no disc inserted\n");
+ _sdk_log("setup error, bad disc/drive or no disc inserted\n");
}
return 1;
@@ -305,7 +305,7 @@ static void CdDoRetry()
{
int cb;
- _sdk_log("psxcd: retrying read...\n");
+ _sdk_log("retrying read...\n");
// Stop reading
CdControl(CdlPause, 0, 0);
diff --git a/libpsn00b/psxetc/dl.c b/libpsn00b/psxetc/dl.c
index b85a7df..51c1d2d 100644
--- a/libpsn00b/psxetc/dl.c
+++ b/libpsn00b/psxetc/dl.c
@@ -23,14 +23,16 @@
* of entries
*/
+#define SDK_LIBRARY_NAME "psxetc/dl"
+
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
+#include <assert.h>
#include <elf.h>
#include <dlfcn.h>
#include <string.h>
-#include <psxetc.h>
#include <psxapi.h>
/* Compile options */
@@ -87,7 +89,7 @@ void *_dl_resolve_helper(DLL *dll, uint32_t index) {
address = DL_GetSymbolByName(_name);
if (!address) {
- _sdk_log("psxetc: FATAL! can't resolve %s, locking up\n", _name);
+ _sdk_log("FATAL! can't resolve %s, locking up\n", _name);
while (1)
__asm__ volatile("nop");
}
@@ -128,7 +130,7 @@ static uint32_t _elf_hash(const char *str) {
static uint8_t *_dl_load_file(const char *filename, size_t *size_output) {
int32_t fd = open(filename, 1);
if (fd < 0) {
- _sdk_log("psxetc: can't open %s, error = %d\n", filename, fd);
+ _sdk_log("can't open %s, error = %d\n", filename, fd);
_ERROR(RTLD_E_FILE_OPEN, 0);
}
@@ -139,11 +141,11 @@ static uint8_t *_dl_load_file(const char *filename, size_t *size_output) {
uint8_t *buffer = malloc(size);
if (!buffer) {
- _sdk_log("psxetc: unable to allocate %d bytes for %s\n", size, filename);
+ _sdk_log("unable to allocate %d bytes for %s\n", size, filename);
_ERROR(RTLD_E_FILE_ALLOC, 0);
}
- //_sdk_log("psxetc: loading %s (%d bytes)..", filename, size);
+ //_sdk_log("loading %s (%d bytes)..", filename, size);
for (uint32_t offset = 0; offset < size; ) {
int32_t length = read(fd, &(buffer[offset]), 0x800);
@@ -188,7 +190,7 @@ int32_t DL_ParseSymbolMap(const char *ptr, size_t size) {
_symbol_map.nbucket = entries;
_symbol_map.nchain = entries;
_sdk_log(
- "psxetc: allocating nbucket = %d, nchain = %d\n",
+ "allocating nbucket = %d, nchain = %d\n",
_symbol_map.nbucket,
entries
);
@@ -200,7 +202,7 @@ int32_t DL_ParseSymbolMap(const char *ptr, size_t size) {
_symbol_map.chain = malloc(sizeof(uint32_t) * entries);
if (!_symbol_map.entries || !_symbol_map.bucket || !_symbol_map.chain) {
- _sdk_log("psxetc: unable to allocate symbol map table\n");
+ _sdk_log("unable to allocate symbol map table\n");
_ERROR(RTLD_E_MAP_ALLOC, -1);
}
@@ -244,7 +246,7 @@ int32_t DL_ParseSymbolMap(const char *ptr, size_t size) {
(_type == 'B') // .bss
)) {
//_sdk_log(
- //"psxetc: map sym: %08x,%08x [%c %s]\n",
+ //"map sym: %08x,%08x [%c %s]\n",
//address, _size, _type, name
//);
@@ -269,7 +271,7 @@ int32_t DL_ParseSymbolMap(const char *ptr, size_t size) {
pos++;
}
- _sdk_log("psxetc: parsed %d symbols\n", entries);
+ _sdk_log("parsed %d symbols\n", entries);
if (!entries)
_ERROR(RTLD_E_NO_SYMBOLS, -1);
@@ -302,7 +304,7 @@ void DL_UnloadSymbolMap(void) {
void *DL_GetSymbolByName(const char *name) {
if (!_symbol_map.entries) {
- _sdk_log("psxetc: attempted lookup with no map loaded\n");
+ _sdk_log("attempted lookup with no map loaded\n");
_ERROR(RTLD_E_NO_MAP, 0);
}
@@ -315,7 +317,7 @@ void *DL_GetSymbolByName(const char *name) {
for (uint32_t i = _symbol_map.bucket[hash_mod]; i != 0xffffffff;) {
if (i >= _symbol_map.nchain) {
_sdk_log(
- "psxetc: GetSymbolByName() index out of bounds (%d >= %d)\n",
+ "GetSymbolByName() index out of bounds (%d >= %d)\n",
i, _symbol_map.nchain
);
_ERROR(RTLD_E_HASH_LOOKUP, 0);
@@ -324,14 +326,14 @@ void *DL_GetSymbolByName(const char *name) {
MapEntry *entry = &(_symbol_map.entries[i]);
if (hash == entry->hash) {
- //_sdk_log("psxetc: map lookup [%s = %08x]\n", name, entry->ptr);
+ //_sdk_log("map lookup [%s = %08x]\n", name, entry->ptr);
return entry->ptr;
}
i = _symbol_map.chain[i];
}
- _sdk_log("psxetc: map lookup [%s not found]\n", name);
+ _sdk_log("map lookup [%s not found]\n", name);
_ERROR(RTLD_E_MAP_SYMBOL, 0);
}
@@ -347,14 +349,14 @@ DLL *DL_CreateDLL(void *ptr, size_t size, DL_ResolveMode mode) {
DLL *dll = malloc(sizeof(DLL));
if (!dll) {
- _sdk_log("psxetc: unable to allocate DLL struct\n");
+ _sdk_log("unable to allocate DLL struct\n");
_ERROR(RTLD_E_DLL_ALLOC, 0);
}
dll->ptr = ptr;
dll->malloc_ptr = (mode & RTLD_FREE_ON_DESTROY) ? ptr : 0;
dll->size = size;
- _sdk_log("psxetc: initializing DLL at %08x\n", ptr);
+ _sdk_log("initializing DLL at %08x\n", ptr);
// Interpret the key-value pairs in the .dynamic section to obtain info
// about all the other sections. The pairs are null-terminated, which makes
@@ -363,7 +365,7 @@ DLL *DL_CreateDLL(void *ptr, size_t size, DL_ResolveMode mode) {
uint32_t first_got_sym = 0;
for (Elf32_Dyn *dyn = (Elf32_Dyn *) ptr; dyn->d_tag; dyn++) {
- //_sdk_log("psxetc: .dynamic %08x=%08x ", dyn->d_tag, dyn->d_un.d_val);
+ //_sdk_log(".dynamic %08x=%08x ", dyn->d_tag, dyn->d_un.d_val);
switch (dyn->d_tag) {
// Offset of .got section
@@ -407,7 +409,7 @@ DLL *DL_CreateDLL(void *ptr, size_t size, DL_ResolveMode mode) {
if (dyn->d_un.d_val != sizeof(Elf32_Sym)) {
free(dll);
- _sdk_log("psxetc: invalid DLL symtab entry size %d\n", dyn->d_un.d_val);
+ _sdk_log("invalid DLL symtab entry size %d\n", dyn->d_un.d_val);
_ERROR(RTLD_E_DLL_FORMAT, 0);
}
break;
@@ -420,7 +422,7 @@ DLL *DL_CreateDLL(void *ptr, size_t size, DL_ResolveMode mode) {
if (dyn->d_un.d_val != 1) {
free(dll);
- _sdk_log("psxetc: invalid DLL version %d\n", dyn->d_un.d_val);
+ _sdk_log("invalid DLL version %d\n", dyn->d_un.d_val);
_ERROR(RTLD_E_DLL_FORMAT, 0);
}
break;
@@ -433,7 +435,7 @@ DLL *DL_CreateDLL(void *ptr, size_t size, DL_ResolveMode mode) {
if (dyn->d_un.d_val & RHF_QUICKSTART) {
free(dll);
- _sdk_log("psxetc: invalid DLL flags\n");
+ _sdk_log("invalid DLL flags\n");
_ERROR(RTLD_E_DLL_FORMAT, 0);
}
break;
@@ -454,7 +456,7 @@ DLL *DL_CreateDLL(void *ptr, size_t size, DL_ResolveMode mode) {
if (dyn->d_un.d_val) {
free(dll);
- _sdk_log("psxetc: invalid DLL base address %08x\n", dyn->d_un.d_val);
+ _sdk_log("invalid DLL base address %08x\n", dyn->d_un.d_val);
_ERROR(RTLD_E_DLL_FORMAT, 0);
}
break;
@@ -497,7 +499,7 @@ DLL *DL_CreateDLL(void *ptr, size_t size, DL_ResolveMode mode) {
dll->got_length = local_got_len + (dll->symbol_count - first_got_sym) - 2;
_sdk_log(
- "psxetc: %d symbols, %d GOT entries\n",
+ "%d symbols, %d GOT entries\n",
dll->symbol_count, dll->got_length
);
@@ -526,7 +528,7 @@ DLL *DL_CreateDLL(void *ptr, size_t size, DL_ResolveMode mode) {
sym->st_value += (uint32_t) ptr;
//_sdk_log(
- //"psxetc: DLL sym: %08x,%08x [%s]\n",
+ //"DLL sym: %08x,%08x [%s]\n",
//sym->st_value, sym->st_size, _name
//);
@@ -636,7 +638,7 @@ void *DL_GetDLLSymbol(const DLL *dll, const char *name) {
// provided.
for (uint32_t i = bucket[hash_mod]; i != 0xffffffff;) {
if (i >= nchain) {
- _sdk_log("psxetc: DL_GetDLLSymbol() index out of bounds (%d >= %d)\n", i, nchain);
+ _sdk_log("DL_GetDLLSymbol() index out of bounds (%d >= %d)\n", i, nchain);
_ERROR(RTLD_E_HASH_LOOKUP, 0);
}
@@ -644,14 +646,14 @@ void *DL_GetDLLSymbol(const DLL *dll, const char *name) {
const char *_name = &(dll->strtab[sym->st_name]);
if (!strcmp(name, _name)) {
- //_sdk_log("psxetc: DLL lookup [%s = %08x]\n", name, sym->st_value);
+ //_sdk_log("DLL lookup [%s = %08x]\n", name, sym->st_value);
return sym->st_value;
}
i = chain[i];
}
- _sdk_log("psxetc: DLL lookup [%s not found]\n", name);
+ _sdk_log("DLL lookup [%s not found]\n", name);
_ERROR(RTLD_E_DLL_SYMBOL, 0);
}
diff --git a/libpsn00b/psxgpu/common.c b/libpsn00b/psxgpu/common.c
index a262472..9eb4ea4 100644
--- a/libpsn00b/psxgpu/common.c
+++ b/libpsn00b/psxgpu/common.c
@@ -4,6 +4,7 @@
*/
#include <stdint.h>
+#include <assert.h>
#include <psxetc.h>
#include <psxapi.h>
#include <psxgpu.h>
@@ -75,7 +76,7 @@ void ResetGraph(int mode) {
_gpu_video_mode = (GPU_GP1 >> 20) & 1;
ExitCriticalSection();
- _sdk_log("psxgpu: setup done, default mode is %s\n", _gpu_video_mode ? "PAL" : "NTSC");
+ _sdk_log("setup done, default mode is %s\n", _gpu_video_mode ? "PAL" : "NTSC");
}
if (mode == 3) {
@@ -113,8 +114,7 @@ static void _default_vsync_halt(void) {
return;
}
- _sdk_log("psxgpu: VSync() timeout\n");
- _sdk_dump_log();
+ _sdk_log("VSync() timeout\n");
ChangeClearPAD(0);
ChangeClearRCnt(3, 0);
}
@@ -130,7 +130,6 @@ int VSync(int mode) {
// Wait for at least one vertical blank event to occur.
do {
- _sdk_dump_log();
_vsync_halt_func();
// If interlaced mode is enabled, wait until the GPU starts displaying
@@ -182,17 +181,17 @@ int EnqueueDrawOp(
IRQ_MASK = 0;
if (_queue_length) {
- if (_queue_length >= QUEUE_LENGTH) {
+ int length = _queue_length;
+
+ if (length >= QUEUE_LENGTH) {
IRQ_MASK = mask;
- _sdk_log("psxgpu: draw queue overflow, dropping commands\n");
+ _sdk_log("draw queue overflow, dropping commands\n");
return -1;
}
- int length = _queue_length;
- _queue_length = length + 1;
-
volatile QueueEntry *entry = &_draw_queue[_queue_tail++];
- _queue_tail %= QUEUE_LENGTH;
+ _queue_tail %= QUEUE_LENGTH;
+ _queue_length = length + 1;
entry->func = func;
entry->arg1 = arg1;
@@ -230,8 +229,7 @@ int DrawSync(int mode) {
while (!(GPU_GP1 & (1 << 26)))
__asm__ volatile("");
} else {
- _sdk_log("psxgpu: DrawSync() timeout\n");
- _sdk_dump_log();
+ _sdk_log("DrawSync() timeout\n");
}
return _queue_length;
diff --git a/libpsn00b/psxgpu/image.c b/libpsn00b/psxgpu/image.c
index 968dde5..bbdb7c8 100644
--- a/libpsn00b/psxgpu/image.c
+++ b/libpsn00b/psxgpu/image.c
@@ -4,7 +4,7 @@
*/
#include <stdint.h>
-#include <psxetc.h>
+#include <assert.h>
#include <psxgpu.h>
#include <hwregs_c.h>
@@ -15,11 +15,11 @@
static void _dma_transfer(const RECT *rect, uint32_t *data, int write) {
size_t length = rect->w * rect->h;
if (length % 2)
- _sdk_log("psxgpu: can't transfer an odd number of pixels\n");
+ _sdk_log("can't transfer an odd number of pixels\n");
length /= 2;
if ((length >= DMA_CHUNK_LENGTH) && (length % DMA_CHUNK_LENGTH)) {
- _sdk_log("psxgpu: transfer data length (%d) is not a multiple of %d, rounding\n", length, DMA_CHUNK_LENGTH);
+ _sdk_log("transfer data length (%d) is not a multiple of %d, rounding\n", length, DMA_CHUNK_LENGTH);
length += DMA_CHUNK_LENGTH - 1;
}
diff --git a/libpsn00b/psxpress/mdec.c b/libpsn00b/psxpress/mdec.c
index d43436f..d55dbbb 100644
--- a/libpsn00b/psxpress/mdec.c
+++ b/libpsn00b/psxpress/mdec.c
@@ -4,7 +4,7 @@
*/
#include <stdint.h>
-#include <psxetc.h>
+#include <assert.h>
#include <psxapi.h>
#include <psxpress.h>
#include <hwregs_c.h>
@@ -127,7 +127,7 @@ void DecDCTin(const uint32_t *data, int mode) {
// the stream.
void DecDCTinRaw(const uint32_t *data, size_t length) {
if ((length >= DMA_CHUNK_LENGTH) && (length % DMA_CHUNK_LENGTH)) {
- _sdk_log("psxpress: transfer data length (%d) is not a multiple of %d, rounding\n", length, DMA_CHUNK_LENGTH);
+ _sdk_log("transfer data length (%d) is not a multiple of %d, rounding\n", length, DMA_CHUNK_LENGTH);
length += DMA_CHUNK_LENGTH - 1;
}
@@ -149,8 +149,7 @@ int DecDCTinSync(int mode) {
return 0;
}
- _sdk_log("psxpress: DecDCTinSync() timeout\n");
- _sdk_dump_log();
+ _sdk_log("DecDCTinSync() timeout\n");
return -1;
}
@@ -158,7 +157,7 @@ void DecDCTout(uint32_t *data, size_t length) {
DecDCToutSync(0);
if ((length >= DMA_CHUNK_LENGTH) && (length % DMA_CHUNK_LENGTH)) {
- _sdk_log("psxpress: transfer data length (%d) is not a multiple of %d, rounding\n", length, DMA_CHUNK_LENGTH);
+ _sdk_log("transfer data length (%d) is not a multiple of %d, rounding\n", length, DMA_CHUNK_LENGTH);
length += DMA_CHUNK_LENGTH - 1;
}
@@ -180,7 +179,6 @@ int DecDCToutSync(int mode) {
return 0;
}
- _sdk_log("psxpress: DecDCToutSync() timeout\n");
- _sdk_dump_log();
+ _sdk_log("DecDCToutSync() timeout\n");
return -1;
}
diff --git a/libpsn00b/psxspu/common.c b/libpsn00b/psxspu/common.c
index 7d90858..42f7cb7 100644
--- a/libpsn00b/psxspu/common.c
+++ b/libpsn00b/psxspu/common.c
@@ -4,7 +4,7 @@
*/
#include <stdint.h>
-#include <psxetc.h>
+#include <assert.h>
#include <psxspu.h>
#include <hwregs_c.h>
@@ -25,16 +25,16 @@ static void _wait_status(uint16_t mask, uint16_t value) {
return;
}
- _sdk_log("psxspu: status register timeout (0x%04x)\n", SPU_STAT);
+ _sdk_log("status register timeout (0x%04x)\n", SPU_STAT);
}
static void _dma_transfer(uint32_t *data, size_t length, int write) {
if (length % 4)
- _sdk_log("psxspu: can't transfer a number of bytes that isn't multiple of 4\n");
+ _sdk_log("can't transfer a number of bytes that isn't multiple of 4\n");
length /= 4;
if ((length >= DMA_CHUNK_LENGTH) && (length % DMA_CHUNK_LENGTH)) {
- _sdk_log("psxspu: transfer data length (%d) is not a multiple of %d, rounding\n", length, DMA_CHUNK_LENGTH);
+ _sdk_log("transfer data length (%d) is not a multiple of %d, rounding\n", length, DMA_CHUNK_LENGTH);
length += DMA_CHUNK_LENGTH - 1;
}