diff --git a/lib/src/os/__osViGetCurrentContext.c b/lib/src/os/__osViGetCurrentContext.c new file mode 100644 index 00000000..fa33239a --- /dev/null +++ b/lib/src/os/__osViGetCurrentContext.c @@ -0,0 +1,9 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D6080 */ + +#include "libultra_internal.h" +#include "viint.h" + +__OSViContext *__osViGetCurrentContext(void){ + return __osViCurr; +} diff --git a/lib/src/os/dp.c b/lib/src/os/dp.c index 54ac9a8d..803e5f49 100644 --- a/lib/src/os/dp.c +++ b/lib/src/os/dp.c @@ -3,10 +3,11 @@ #include "macros.h" #include "libultra_internal.h" -#include "viint.h" -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/__osDpDeviceBusy.s") - -__OSViContext *__osViGetCurrentContext(void){ - return __osViCurr; +int __osDpDeviceBusy(void) { + register u32 stat; + stat = IO_READ(DPC_STATUS_REG); + if (stat & DPC_STATUS_DMA_BUSY) + return 1; + return 0; }