diff --git a/Makefile b/Makefile index 2690c3eae..d180a904b 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/vigetcurrframebuf.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/io/vigetnextframebuf.o: OPT_LVL := -O1 CFLAGS = -DVERSION=$(VERSION) \ diff --git a/ld/libfiles.inc b/ld/libfiles.inc index 40a50aea6..2f0026264 100644 --- a/ld/libfiles.inc +++ b/ld/libfiles.inc @@ -92,7 +92,7 @@ build/ROMID/lib/lib_485e0.o (section); \ build/ROMID/lib/ultra/os/setintmask.o (section); \ build/ROMID/lib/ultra/os/recvmesg.o (section); \ - build/ROMID/lib/lib_48830.o (section); \ + build/ROMID/lib/ultra/io/vigetcurrframebuf.o (section); \ build/ROMID/lib/ultra/io/vigetnextframebuf.o (section); \ build/ROMID/lib/ultra/io/dpsetstat.o (section); \ build/ROMID/lib/ultra/os/getthreadpri.o (section); \ diff --git a/src/boot/entry.c b/src/boot/entry.c index d30c5c64e..b6af2dc85 100644 --- a/src/boot/entry.c +++ b/src/boot/entry.c @@ -27,7 +27,6 @@ #include "lib/lib_48150.h" #include "lib/lib_481d0.h" #include "lib/lib_485e0.h" -#include "lib/lib_48830.h" #include "lib/lib_48c00.h" #include "lib/lib_48cd0.h" #include "lib/lib_48dc0.h" diff --git a/src/boot/init.c b/src/boot/init.c index 8f3e4339c..0a7671b47 100644 --- a/src/boot/init.c +++ b/src/boot/init.c @@ -28,7 +28,6 @@ #include "lib/lib_48150.h" #include "lib/lib_481d0.h" #include "lib/lib_485e0.h" -#include "lib/lib_48830.h" #include "lib/lib_48c00.h" #include "lib/lib_48cd0.h" #include "lib/lib_48dc0.h" diff --git a/src/boot/sched.c b/src/boot/sched.c index d795015b9..4f9bc4231 100644 --- a/src/boot/sched.c +++ b/src/boot/sched.c @@ -28,7 +28,6 @@ #include "lib/lib_48150.h" #include "lib/lib_481d0.h" #include "lib/lib_485e0.h" -#include "lib/lib_48830.h" #include "lib/lib_48c00.h" #include "lib/lib_48cd0.h" #include "lib/lib_48dc0.h" diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 28b227f1c..c53d70177 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -58,7 +58,6 @@ #include "lib/lib_1a500.h" #include "lib/lib_233c0.h" #include "lib/lib_317f0.h" -#include "lib/lib_48830.h" #include "lib/libc/ll.h" #include "types.h" diff --git a/src/game/data/data_003dc0.c b/src/game/data/data_003dc0.c index 3ab443078..f68974efe 100644 --- a/src/game/data/data_003dc0.c +++ b/src/game/data/data_003dc0.c @@ -2278,20 +2278,9 @@ u32 __osTimerList = (u32) &var8009c760; u32 var800608a4 = 0x00000000; u32 var800608a8 = 0x00000000; u32 var800608ac = 0x00000000; -u32 var800608b0 = 0x00000000; -u32 var800608b4 = 0x00000000; -u32 var800608b8 = 0x00000000; -u32 var800608bc = 0x00000000; -u32 var800608c0 = 0x00000000; -u32 var800608c4 = 0x00000000; -u32 var800608c8 = 0x00000000; -u32 var800608cc = 0x00000000; -u32 var800608d0 = 0x00000000; -u32 var800608d4 = 0x00000000; -u32 var800608d8 = 0x00000000; -u32 var800608dc = 0x00000000; +__OSViContext var800608b0 = {0}; __OSViContext var800608e0 = {0}; -u32 var80060910 = (u32) &var800608b0; +__OSViContext *__osViCurr = &var800608b0; __OSViContext *__osViNext = &var800608e0; u32 var80060918 = 0x00000000; u32 var8006091c = 0x00000000; diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index 5f9ac018b..d7d50c2ff 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -41,7 +41,6 @@ #include "lib/lib_1a500.h" #include "lib/lib_233c0.h" #include "lib/lib_317f0.h" -#include "lib/lib_48830.h" #include "lib/lib_4a360.h" #include "types.h" diff --git a/src/game/game_092610.c b/src/game/game_092610.c index 0c92aa106..41e39af14 100644 --- a/src/game/game_092610.c +++ b/src/game/game_092610.c @@ -21,7 +21,6 @@ #include "lib/lib_12dc0.h" #include "lib/lib_16110.h" #include "lib/lib_317f0.h" -#include "lib/lib_48830.h" #include "lib/lib_4a360.h" #include "types.h" diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 8e851a717..5c760fe3c 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -57,7 +57,6 @@ #include "lib/lib_1a500.h" #include "lib/lib_233c0.h" #include "lib/lib_317f0.h" -#include "lib/lib_48830.h" #include "lib/lib_4a360.h" #include "types.h" diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 456376234..6d375fa21 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -49,7 +49,6 @@ #include "lib/lib_16110.h" #include "lib/lib_1a500.h" #include "lib/lib_317f0.h" -#include "lib/lib_48830.h" #include "types.h" const struct menucolourpalette g_MenuColourPalettes[] = { diff --git a/src/include/game/data/data_000000.h b/src/include/game/data/data_000000.h index 70d35dd70..4b8c1e263 100644 --- a/src/include/game/data/data_000000.h +++ b/src/include/game/data/data_000000.h @@ -178,8 +178,8 @@ extern u32 var80060190; extern u32 var800601b0; extern u32 var80060340; extern u32 var80060368; -extern u32 var800608b0; -extern u32 var80060910; +extern __OSViContext var800608b0; +extern __OSViContext *__osViCurr; extern __OSViContext *__osViNext; extern u32 __osThreadTail; extern u32 __osRunQueue; diff --git a/src/include/lib/lib_48830.h b/src/include/lib/lib_48830.h deleted file mode 100644 index 7f977d002..000000000 --- a/src/include/lib/lib_48830.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _IN_LIB_LIB_48830_H -#define _IN_LIB_LIB_48830_H -#include -#include "types.h" - -void *osViGetCurrentFramebuffer(void); -void *osViGetNextFramebuffer(void); -OSPri osGetThreadPri(OSThread *thread); - -#endif diff --git a/src/lib/lib_0e9d0.c b/src/lib/lib_0e9d0.c index 8f412f5f4..ce0921637 100644 --- a/src/lib/lib_0e9d0.c +++ b/src/lib/lib_0e9d0.c @@ -26,7 +26,6 @@ #include "lib/lib_38d10.h" #include "lib/lib_38d30.h" #include "lib/lib_39c80.h" -#include "lib/lib_48830.h" #include "types.h" const char var70053b20[] = "RUSSES SOUND GUARD STRING"; diff --git a/src/lib/lib_48830.c b/src/lib/lib_48830.c deleted file mode 100644 index 583da30ad..000000000 --- a/src/lib/lib_48830.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 "types.h" - -GLOBAL_ASM( -glabel osViGetCurrentFramebuffer -/* 48830: 27bdffd8 */ addiu $sp,$sp,-40 -/* 48834: afbf001c */ sw $ra,0x1c($sp) -/* 48838: 0c01256c */ jal __osDisableInt -/* 4883c: afb00018 */ sw $s0,0x18($sp) -/* 48840: 3c0e8006 */ lui $t6,%hi(var80060910) -/* 48844: 8dce0910 */ lw $t6,%lo(var80060910)($t6) -/* 48848: 00408025 */ or $s0,$v0,$zero -/* 4884c: 02002025 */ or $a0,$s0,$zero -/* 48850: 8dcf0004 */ lw $t7,0x4($t6) -/* 48854: 0c012588 */ jal __osRestoreInt -/* 48858: afaf0020 */ sw $t7,0x20($sp) -/* 4885c: 8fbf001c */ lw $ra,0x1c($sp) -/* 48860: 8fa20020 */ lw $v0,0x20($sp) -/* 48864: 8fb00018 */ lw $s0,0x18($sp) -/* 48868: 03e00008 */ jr $ra -/* 4886c: 27bd0028 */ addiu $sp,$sp,0x28 -); diff --git a/src/lib/lib_49780.c b/src/lib/lib_49780.c index a2da5283d..9ef4d09cf 100644 --- a/src/lib/lib_49780.c +++ b/src/lib/lib_49780.c @@ -12,8 +12,8 @@ GLOBAL_ASM( glabel func00049780 -/* 49780: 3c028006 */ lui $v0,%hi(var80060910) +/* 49780: 3c028006 */ lui $v0,%hi(__osViCurr) /* 49784: 03e00008 */ jr $ra -/* 49788: 8c420910 */ lw $v0,%lo(var80060910)($v0) +/* 49788: 8c420910 */ lw $v0,%lo(__osViCurr)($v0) /* 4978c: 00000000 */ nop ); diff --git a/src/lib/ultra/io/vi.c b/src/lib/ultra/io/vi.c index 35c09234e..cc3411c5c 100644 --- a/src/lib/ultra/io/vi.c +++ b/src/lib/ultra/io/vi.c @@ -10,23 +10,23 @@ glabel __osViInit /* 49654: 24050060 */ addiu $a1,$zero,0x60 /* 49658: 3c0e8006 */ lui $t6,%hi(var800608b0) /* 4965c: 25ce08b0 */ addiu $t6,$t6,%lo(var800608b0) -/* 49660: 3c018006 */ lui $at,%hi(var80060910) -/* 49664: ac2e0910 */ sw $t6,%lo(var80060910)($at) +/* 49660: 3c018006 */ lui $at,%hi(__osViCurr) +/* 49664: ac2e0910 */ sw $t6,%lo(__osViCurr)($at) /* 49668: 3c018006 */ lui $at,%hi(__osViNext) /* 4966c: 25cf0030 */ addiu $t7,$t6,0x30 /* 49670: ac2f0914 */ sw $t7,%lo(__osViNext)($at) /* 49674: 24180001 */ addiu $t8,$zero,0x1 /* 49678: a5d80032 */ sh $t8,0x32($t6) -/* 4967c: 3c088006 */ lui $t0,%hi(var80060910) -/* 49680: 8d080910 */ lw $t0,%lo(var80060910)($t0) +/* 4967c: 3c088006 */ lui $t0,%hi(__osViCurr) +/* 49680: 8d080910 */ lw $t0,%lo(__osViCurr)($t0) /* 49684: 24190001 */ addiu $t9,$zero,0x1 /* 49688: 3c0a8006 */ lui $t2,%hi(__osViNext) /* 4968c: a5190002 */ sh $t9,0x2($t0) /* 49690: 8d4a0914 */ lw $t2,%lo(__osViNext)($t2) /* 49694: 3c098000 */ lui $t1,0x8000 -/* 49698: 3c0c8006 */ lui $t4,%hi(var80060910) +/* 49698: 3c0c8006 */ lui $t4,%hi(__osViCurr) /* 4969c: ad490004 */ sw $t1,0x4($t2) -/* 496a0: 8d8c0910 */ lw $t4,%lo(var80060910)($t4) +/* 496a0: 8d8c0910 */ lw $t4,%lo(__osViCurr)($t4) /* 496a4: 3c0b8000 */ lui $t3,0x8000 /* 496a8: 3c0d8000 */ lui $t5,0x8000 /* 496ac: ad8b0004 */ sw $t3,0x4($t4) diff --git a/src/lib/ultra/io/vigetcurrframebuf.c b/src/lib/ultra/io/vigetcurrframebuf.c new file mode 100644 index 000000000..d993cffae --- /dev/null +++ b/src/lib/ultra/io/vigetcurrframebuf.c @@ -0,0 +1,16 @@ +#include +#include "game/data/data_000000.h" + +void *osViGetCurrentFramebuffer(void) +{ + register u32 saveMask; + void *framep; + + saveMask = __osDisableInt(); + + framep = __osViCurr->framep; + + __osRestoreInt(saveMask); + + return framep; +} diff --git a/src/lib/ultra/io/viswapcontext.c b/src/lib/ultra/io/viswapcontext.c index 85798697c..5b0516839 100644 --- a/src/lib/ultra/io/viswapcontext.c +++ b/src/lib/ultra/io/viswapcontext.c @@ -162,11 +162,11 @@ glabel __osViSwapContext /* 499d8: ad6a0018 */ sw $t2,0x18($t3) /* 499dc: 8cad0014 */ lw $t5,0x14($a1) /* 499e0: 3c0aa440 */ lui $t2,0xa440 -/* 499e4: 3c028006 */ lui $v0,%hi(var80060910) +/* 499e4: 3c028006 */ lui $v0,%hi(__osViCurr) /* 499e8: ad8d001c */ sw $t5,0x1c($t4) /* 499ec: 8cae0018 */ lw $t6,0x18($a1) /* 499f0: 3c0da440 */ lui $t5,0xa440 -/* 499f4: 24420910 */ addiu $v0,$v0,%lo(var80060910) +/* 499f4: 24420910 */ addiu $v0,$v0,%lo(__osViCurr) /* 499f8: adee0020 */ sw $t6,0x20($t7) /* 499fc: af070024 */ sw $a3,0x24($t8) /* 49a00: 8fb90034 */ lw $t9,0x34($sp)