From 758a1a31f68d14f68c05c0e516110d01504a85cb Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 26 Jan 2021 20:07:38 +1000 Subject: [PATCH] Decompile osViSetEvent --- Makefile | 1 + ld/libfiles.inc | 2 +- src/boot/entry.c | 1 - src/boot/init.c | 1 - src/boot/sched.c | 1 - src/include/lib/lib_485e0.h | 6 ----- src/lib/lib_485e0.c | 43 ----------------------------------- src/lib/ultra/io/visetevent.c | 15 ++++++++++++ 8 files changed, 17 insertions(+), 53 deletions(-) delete mode 100644 src/include/lib/lib_485e0.h delete mode 100644 src/lib/lib_485e0.c create mode 100644 src/lib/ultra/io/visetevent.c diff --git a/Makefile b/Makefile index a2c932113..d1db7aea8 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,7 @@ $(B_DIR)/lib/ultra/io/spsetpc.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/sptaskyielded.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/vigetcurrframebuf.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/vigetnextframebuf.o: OPT_LVL := -O1 +$(B_DIR)/lib/ultra/io/visetevent.o: OPT_LVL := -O1 CFLAGS = -DVERSION=$(VERSION) \ -DNTSC=$(NTSC) \ diff --git a/ld/libfiles.inc b/ld/libfiles.inc index 2b4df9203..2d5922b90 100644 --- a/ld/libfiles.inc +++ b/ld/libfiles.inc @@ -89,7 +89,7 @@ build/ROMID/lib/ultra/os/setthreadpri.o (section); \ build/ROMID/lib/ultra/os/getcount.o (section); \ build/ROMID/lib/ultra/os/seteventmesg.o (section); \ - build/ROMID/lib/lib_485e0.o (section); \ + build/ROMID/lib/ultra/io/visetevent.o (section); \ build/ROMID/lib/ultra/os/setintmask.o (section); \ build/ROMID/lib/ultra/os/recvmesg.o (section); \ build/ROMID/lib/ultra/io/vigetcurrframebuf.o (section); \ diff --git a/src/boot/entry.c b/src/boot/entry.c index bb9caba6c..583aa6b58 100644 --- a/src/boot/entry.c +++ b/src/boot/entry.c @@ -26,7 +26,6 @@ #include "lib/lib_48120.h" #include "lib/lib_48150.h" #include "lib/lib_481d0.h" -#include "lib/lib_485e0.h" #include "lib/lib_48cd0.h" #include "lib/lib_48dc0.h" #include "lib/lib_48ef0.h" diff --git a/src/boot/init.c b/src/boot/init.c index 47f50e9d7..a31b2c9f7 100644 --- a/src/boot/init.c +++ b/src/boot/init.c @@ -27,7 +27,6 @@ #include "lib/lib_48120.h" #include "lib/lib_48150.h" #include "lib/lib_481d0.h" -#include "lib/lib_485e0.h" #include "lib/lib_48cd0.h" #include "lib/lib_48dc0.h" #include "lib/lib_48ef0.h" diff --git a/src/boot/sched.c b/src/boot/sched.c index e752bc42b..8c15c1581 100644 --- a/src/boot/sched.c +++ b/src/boot/sched.c @@ -27,7 +27,6 @@ #include "lib/lib_48120.h" #include "lib/lib_48150.h" #include "lib/lib_481d0.h" -#include "lib/lib_485e0.h" #include "lib/lib_48cd0.h" #include "lib/lib_48dc0.h" #include "lib/lib_48ef0.h" diff --git a/src/include/lib/lib_485e0.h b/src/include/lib/lib_485e0.h deleted file mode 100644 index ce20c6f67..000000000 --- a/src/include/lib/lib_485e0.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _IN_LIB_LIB_485E0_H -#define _IN_LIB_LIB_485E0_H -#include -#include "types.h" - -#endif diff --git a/src/lib/lib_485e0.c b/src/lib/lib_485e0.c deleted file mode 100644 index ed39678de..000000000 --- a/src/lib/lib_485e0.c +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "types.h" - -GLOBAL_ASM( -glabel osViSetEvent -/* 485e0: 27bdffd8 */ addiu $sp,$sp,-40 -/* 485e4: afbf001c */ sw $ra,0x1c($sp) -/* 485e8: afa40028 */ sw $a0,0x28($sp) -/* 485ec: afa5002c */ sw $a1,0x2c($sp) -/* 485f0: afa60030 */ sw $a2,0x30($sp) -/* 485f4: 0c01256c */ jal __osDisableInt -/* 485f8: afb00018 */ sw $s0,0x18($sp) -/* 485fc: 3c0f8006 */ lui $t7,%hi(__osViNext) -/* 48600: 8def0914 */ lw $t7,%lo(__osViNext)($t7) -/* 48604: 8fae0028 */ lw $t6,0x28($sp) -/* 48608: 3c198006 */ lui $t9,%hi(__osViNext) -/* 4860c: 3c098006 */ lui $t1,%hi(__osViNext) -/* 48610: adee0010 */ sw $t6,0x10($t7) -/* 48614: 8f390914 */ lw $t9,%lo(__osViNext)($t9) -/* 48618: 8fb8002c */ lw $t8,0x2c($sp) -/* 4861c: 00408025 */ or $s0,$v0,$zero -/* 48620: 02002025 */ or $a0,$s0,$zero -/* 48624: af380014 */ sw $t8,0x14($t9) -/* 48628: 8d290914 */ lw $t1,%lo(__osViNext)($t1) -/* 4862c: 8fa80030 */ lw $t0,0x30($sp) -/* 48630: 0c012588 */ jal __osRestoreInt -/* 48634: a5280002 */ sh $t0,0x2($t1) -/* 48638: 8fbf001c */ lw $ra,0x1c($sp) -/* 4863c: 8fb00018 */ lw $s0,0x18($sp) -/* 48640: 27bd0028 */ addiu $sp,$sp,0x28 -/* 48644: 03e00008 */ jr $ra -/* 48648: 00000000 */ nop -/* 4864c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/ultra/io/visetevent.c b/src/lib/ultra/io/visetevent.c new file mode 100644 index 000000000..1572924db --- /dev/null +++ b/src/lib/ultra/io/visetevent.c @@ -0,0 +1,15 @@ +#include "libultra_internal.h" +#include "game/data/data_000000.h" + +void osViSetEvent(OSMesgQueue *mq, OSMesg m, u32 retraceCount) +{ + register u32 saveMask; + + saveMask = __osDisableInt(); + + __osViNext->msgq = mq; + __osViNext->msg = m; + __osViNext->retraceCount = retraceCount; + + __osRestoreInt(saveMask); +}