From 53509102aec29ed1f9a2b0de5f8eeda33c65759b Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 26 Jan 2021 19:52:30 +1000 Subject: [PATCH] Decompile __osSpDeviceBusy --- Makefile | 1 + ld/libfiles.inc | 2 +- src/include/lib/lib_4b5e0.h | 6 ------ src/lib/lib_05e40.c | 1 - src/lib/lib_06100.c | 1 - src/lib/lib_06330.c | 1 - src/lib/lib_06550.c | 1 - src/lib/lib_4b550.c | 1 - src/lib/lib_4b5e0.c | 31 ------------------------------- src/lib/lib_4c090.c | 1 - src/lib/lib_4cc10.c | 1 - src/lib/lib_4cde0.c | 1 - src/lib/lib_4d000.c | 1 - src/lib/lib_4d480.c | 1 - src/lib/lib_4d6f0.c | 1 - src/lib/lib_4f5e0.c | 1 - src/lib/lib_50480.c | 1 - src/lib/lib_50a00.c | 1 - src/lib/lib_513b0.c | 1 - src/lib/lib_52360.c | 1 - src/lib/ultra/io/sp.c | 12 ++++++++++++ 21 files changed, 14 insertions(+), 54 deletions(-) delete mode 100644 src/include/lib/lib_4b5e0.h delete mode 100644 src/lib/lib_4b5e0.c create mode 100644 src/lib/ultra/io/sp.c diff --git a/Makefile b/Makefile index 6fbc5a1f8..24c5939cf 100644 --- a/Makefile +++ b/Makefile @@ -65,6 +65,7 @@ $(B_DIR)/lib/libc/llcvt.o: MIPSISET := -mips3 -o32 $(B_DIR)/lib/libc/ll.o: OPT_LVL := -O1 $(B_DIR)/lib/libc/llcvt.o: OPT_LVL := -O1 +$(B_DIR)/lib/ultra/io/sp.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/spsetpc.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/vigetcurrframebuf.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/vigetnextframebuf.o: OPT_LVL := -O1 diff --git a/ld/libfiles.inc b/ld/libfiles.inc index 602a48352..8f239c96a 100644 --- a/ld/libfiles.inc +++ b/ld/libfiles.inc @@ -135,7 +135,7 @@ build/ROMID/lib/ultra/io/spsetstat.o (section); \ build/ROMID/lib/ultra/io/spsetpc.o (section); \ build/ROMID/lib/lib_4b550.o (section); \ - build/ROMID/lib/lib_4b5e0.o (section); \ + build/ROMID/lib/ultra/io/sp.o (section); \ build/ROMID/lib/ultra/io/contramwrite.o (section); \ build/ROMID/lib/ultra/io/contramread.o (section); \ build/ROMID/lib/ultra/io/pfsgetstatus.o (section); \ diff --git a/src/include/lib/lib_4b5e0.h b/src/include/lib/lib_4b5e0.h deleted file mode 100644 index 325af00a2..000000000 --- a/src/include/lib/lib_4b5e0.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _IN_LIB_LIB_4B5E0_H -#define _IN_LIB_LIB_4B5E0_H -#include -#include "types.h" - -#endif diff --git a/src/lib/lib_05e40.c b/src/lib/lib_05e40.c index f90d91fa3..18c2581c2 100644 --- a/src/lib/lib_05e40.c +++ b/src/lib/lib_05e40.c @@ -11,7 +11,6 @@ #include "lib/lib_05e40.h" #include "lib/lib_4b170.h" #include "lib/lib_4b550.h" -#include "lib/lib_4b5e0.h" #include "types.h" #include "libultra_internal.h" diff --git a/src/lib/lib_06100.c b/src/lib/lib_06100.c index 352696321..0cf609bf9 100644 --- a/src/lib/lib_06100.c +++ b/src/lib/lib_06100.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_4b5e0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_06330.c b/src/lib/lib_06330.c index ca7a83dfe..be08e74ab 100644 --- a/src/lib/lib_06330.c +++ b/src/lib/lib_06330.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_06100.h" -#include "lib/lib_4b5e0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_06550.c b/src/lib/lib_06550.c index 05b390aa4..49486918d 100644 --- a/src/lib/lib_06550.c +++ b/src/lib/lib_06550.c @@ -10,7 +10,6 @@ #include "gvars/gvars.h" #include "lib/lib_06550.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" #include "lib/lib_4cc10.h" #include "lib/lib_4cde0.h" diff --git a/src/lib/lib_4b550.c b/src/lib/lib_4b550.c index 750fc7e06..2aac4da51 100644 --- a/src/lib/lib_4b550.c +++ b/src/lib/lib_4b550.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_4b5e0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_4b5e0.c b/src/lib/lib_4b5e0.c deleted file mode 100644 index 439afbdeb..000000000 --- a/src/lib/lib_4b5e0.c +++ /dev/null @@ -1,31 +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 "lib/lib_4b170.h" -#include "lib/lib_51d50.h" -#include "types.h" - -GLOBAL_ASM( -glabel __osSpDeviceBusy -/* 4b5e0: 3c0ea404 */ lui $t6,0xa404 -/* 4b5e4: 8dc40010 */ lw $a0,0x10($t6) -/* 4b5e8: 27bdfff8 */ addiu $sp,$sp,-8 -/* 4b5ec: 308f001c */ andi $t7,$a0,0x1c -/* 4b5f0: 11e00003 */ beqz $t7,.L0004b600 -/* 4b5f4: 00000000 */ nop -/* 4b5f8: 10000002 */ b .L0004b604 -/* 4b5fc: 24020001 */ addiu $v0,$zero,0x1 -.L0004b600: -/* 4b600: 00001025 */ or $v0,$zero,$zero -.L0004b604: -/* 4b604: 03e00008 */ jr $ra -/* 4b608: 27bd0008 */ addiu $sp,$sp,0x8 -/* 4b60c: 00000000 */ nop -); diff --git a/src/lib/lib_4c090.c b/src/lib/lib_4c090.c index dae7bba33..1e94097c8 100644 --- a/src/lib/lib_4c090.c +++ b/src/lib/lib_4c090.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" #include "lib/lib_4cde0.h" #include "lib/lib_4d6f0.h" diff --git a/src/lib/lib_4cc10.c b/src/lib/lib_4cc10.c index 6a06d142f..dd59910b6 100644 --- a/src/lib/lib_4cc10.c +++ b/src/lib/lib_4cc10.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" #include "types.h" diff --git a/src/lib/lib_4cde0.c b/src/lib/lib_4cde0.c index 284a984d0..fb59d8d43 100644 --- a/src/lib/lib_4cde0.c +++ b/src/lib/lib_4cde0.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_4b5e0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_4d000.c b/src/lib/lib_4d000.c index 81e54b2e0..59487c67f 100644 --- a/src/lib/lib_4d000.c +++ b/src/lib/lib_4d000.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" #include "lib/lib_4cc10.h" #include "lib/lib_4ce60.h" diff --git a/src/lib/lib_4d480.c b/src/lib/lib_4d480.c index be2448831..e010d73bd 100644 --- a/src/lib/lib_4d480.c +++ b/src/lib/lib_4d480.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/libc/ll.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" #include "lib/lib_4cc10.h" #include "lib/lib_4cde0.h" diff --git a/src/lib/lib_4d6f0.c b/src/lib/lib_4d6f0.c index c1848a301..0e56d80a2 100644 --- a/src/lib/lib_4d6f0.c +++ b/src/lib/lib_4d6f0.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/libc/ll.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" #include "lib/lib_4cde0.h" #include "lib/lib_4d6f0.h" diff --git a/src/lib/lib_4f5e0.c b/src/lib/lib_4f5e0.c index f1e8600bc..5676792dd 100644 --- a/src/lib/lib_4f5e0.c +++ b/src/lib/lib_4f5e0.c @@ -11,7 +11,6 @@ #include "lib/lib_04790.h" #include "lib/lib_16110.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4cde0.h" #include "lib/lib_4f5e0.h" #include "lib/lib_51d50.h" diff --git a/src/lib/lib_50480.c b/src/lib/lib_50480.c index 09b5bac2f..33e6b057c 100644 --- a/src/lib/lib_50480.c +++ b/src/lib/lib_50480.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" #include "lib/lib_4cde0.h" #include "lib/lib_50480.h" diff --git a/src/lib/lib_50a00.c b/src/lib/lib_50a00.c index ed3cf444a..528382b6c 100644 --- a/src/lib/lib_50a00.c +++ b/src/lib/lib_50a00.c @@ -11,7 +11,6 @@ #include "lib/lib_06100.h" #include "lib/lib_06330.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" #include "lib/lib_4cde0.h" #include "lib/lib_4d6f0.h" diff --git a/src/lib/lib_513b0.c b/src/lib/lib_513b0.c index 5335d6a2e..92a6c96f9 100644 --- a/src/lib/lib_513b0.c +++ b/src/lib/lib_513b0.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" #include "lib/lib_4cde0.h" #include "lib/lib_4d6f0.h" diff --git a/src/lib/lib_52360.c b/src/lib/lib_52360.c index 495bf1f83..43f89c6e2 100644 --- a/src/lib/lib_52360.c +++ b/src/lib/lib_52360.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_06100.h" -#include "lib/lib_4b5e0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/ultra/io/sp.c b/src/lib/ultra/io/sp.c new file mode 100644 index 000000000..fa86c72ff --- /dev/null +++ b/src/lib/ultra/io/sp.c @@ -0,0 +1,12 @@ +#include "libultra_internal.h" + +int __osSpDeviceBusy() +{ + register u32 stat = IO_READ(SP_STATUS_REG); + + if (stat & (SP_STATUS_DMA_BUSY | SP_STATUS_DMA_FULL | SP_STATUS_IO_FULL)) { + return 1; + } + + return 0; +}