diff --git a/config/dol_slices.yml b/config/dol_slices.yml index a877d81d..62bea40c 100644 --- a/config/dol_slices.yml +++ b/config/dol_slices.yml @@ -30,6 +30,8 @@ libc64/qrand.c: .sdata: [0x80217de8, 0x80217df0] .sbss: [0x80218640, 0x80218648] .sdata2: [0x80219130, 0x80219138] +#libc64/sprintf.c: +# .text: [0x8005ce18, 0x8005cf08] #libc64/malloc.c: # .text: [0x8005cf08, 0x8005d01c] # .bss: [0x80206F30, 0x80206F60] diff --git a/src/dolphin/os/__ppc_eabi_init.cpp b/src/dolphin/os/__ppc_eabi_init.cpp index e7555167..05cc0252 100644 --- a/src/dolphin/os/__ppc_eabi_init.cpp +++ b/src/dolphin/os/__ppc_eabi_init.cpp @@ -1,7 +1,7 @@ #include "types.h" #include "dolphin/os.h" #include "dolphin/BASE/ppcarch.h" -#include "init.h" +#include "dolphin/os/__ppc_eabi_init.h" #ifdef __cplusplus extern "C" { diff --git a/src/libc64/sleep.c b/src/libc64/sleep.c new file mode 100644 index 00000000..a81bba0c --- /dev/null +++ b/src/libc64/sleep.c @@ -0,0 +1,18 @@ +#include "sleep.h" +#include "dolphin/os/OSAlarm.h" +#include "dolphin/os/OSTimer.h" +#include "dolphin/os/OSThread.h" + +void csleep(OSTime c){ + OSMessage msg; + OSMessageQueue mq; + OSTimer timer; + + osCreateMesgQueue(&mq, &msg, 1); + osSetTimer(&timer, c, 0, &mq, NULL); + osRecvMesg(&mq, NULL, 1); +} + +void msleep(u32 ms){ + csleep((OS_MSEC_TO_TICKS((OSTime)ms))); +} \ No newline at end of file diff --git a/src/libc64/sprintf.c b/src/libc64/sprintf.c new file mode 100644 index 00000000..338d7f40 --- /dev/null +++ b/src/libc64/sprintf.c @@ -0,0 +1,21 @@ +#include "libultra/xprintf.h" +#include "_mem.h" + +static void* proutPrintf(void* dst, const char* fmt, size_t size) { + return (void*)((u8*)memcpy(dst, fmt, size) + size); +} + +s32 sprintf(char* dst, const char* fmt, ...) { + s32 ret; + va_list args; + va_start(args, fmt); + + ret = _Printf(&proutPrintf, dst, fmt, args); + if (ret >= 0) { + dst[ret] = '\0'; + } + + va_end(args); + + return ret; +} diff --git a/tools/ppcdis b/tools/ppcdis index 83260829..eca3f301 160000 --- a/tools/ppcdis +++ b/tools/ppcdis @@ -1 +1 @@ -Subproject commit 83260829c50f37dd9fe54889cf8971c8fe14c54e +Subproject commit eca3f3015a86bf0c78d1e415aeff2dda1851194f