Decompile osViBlack

This commit is contained in:
Ryan Dwyer
2021-01-30 00:14:34 +10:00
parent a574789a04
commit 27943128e9
8 changed files with 22 additions and 40 deletions
+1
View File
@@ -75,6 +75,7 @@ $(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/sptaskyielded.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/io/vi.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/io/viblack.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
+1
View File
@@ -103,6 +103,7 @@
build/ROMID/lib/ultra/io/sptaskyielded.o (section); \
build/ROMID/lib/ultra/io/dpctr.o (section); \
build/ROMID/lib/lib_48cd0.o (section); \
build/ROMID/lib/ultra/io/viblack.o (section); \
build/ROMID/lib/ultra/io/visetmode.o (section); \
build/ROMID/lib/ultra/io/visetxscale.o (section); \
build/ROMID/lib/ultra/io/visetyscale.o (section); \
+1 -1
View File
@@ -40,7 +40,7 @@ glabel resetproc
/* 2e74: ac82002c */ sw $v0,0x2c($a0)
/* 2e78: 0c012354 */ jal osViSetMode
/* 2e7c: ac820040 */ sw $v0,0x40($a0)
/* 2e80: 0c012338 */ jal func00048ce0
/* 2e80: 0c012338 */ jal osViBlack
/* 2e84: 24040001 */ addiu $a0,$zero,0x1
/* 2e88: 0c012448 */ jal func00049120
/* 2e8c: 00000000 */ nop
+2 -2
View File
@@ -480,7 +480,7 @@ s32 __scTaskComplete(OSSched *sc, OSScTask *t)
&& (t->flags & OS_SC_SWAPBUFFER)
&& (t->flags & OS_SC_LAST_TASK)) {
if (var8005cec8) {
func00048ce0(0);
osViBlack(0);
var8005cec8 = 0;
}
@@ -500,7 +500,7 @@ s32 __scTaskComplete(OSSched *sc, OSScTask *t)
osSetIntMask(mask);
osViSetMode(var8008dd60[1 - var8005ce74]);
func00048ce0(var8005ce90);
osViBlack(var8005ce90);
osViSetXScale(var8005ce78[1 - var8005ce74]);
osViSetYScale(var8005ce80[1 - var8005ce74]);
func00048f50(0x42);
-1
View File
@@ -4,6 +4,5 @@
#include "types.h"
u32 func00048cd0(void);
void func00048ce0(u8 arg0);
#endif
+2 -2
View File
@@ -784,7 +784,7 @@ glabel func00009ed4
/* 9fd8: 0c012354 */ jal osViSetMode
/* 9fdc: 8c84dd64 */ lw $a0,%lo(var8008dd60+0x4)($a0)
/* 9fe0: 3c048006 */ lui $a0,%hi(var8005ce90+0x3)
/* 9fe4: 0c012338 */ jal func00048ce0
/* 9fe4: 0c012338 */ jal osViBlack
/* 9fe8: 9084ce93 */ lbu $a0,%lo(var8005ce90+0x3)($a0)
/* 9fec: 3c0a8006 */ lui $t2,%hi(var8005ce74)
/* 9ff0: 8d4ace74 */ lw $t2,%lo(var8005ce74)($t2)
@@ -836,7 +836,7 @@ glabel func0000a044
/* a094: 44816000 */ mtc1 $at,$f12
/* a098: 0c0123bc */ jal osViSetYScale
/* a09c: 00000000 */ nop
/* a0a0: 0c012338 */ jal func00048ce0
/* a0a0: 0c012338 */ jal osViBlack
/* a0a4: 24040001 */ addiu $a0,$zero,0x1
/* a0a8: 3c098006 */ lui $t1,%hi(g_ViData)
/* a0ac: 8d29d594 */ lw $t1,%lo(g_ViData)($t1)
-34
View File
@@ -17,37 +17,3 @@ glabel func00048cd0
/* 48cd8: 8dc2000c */ lw $v0,0xc($t6)
/* 48cdc: 00000000 */ nop
);
GLOBAL_ASM(
glabel func00048ce0
/* 48ce0: 27bdffd8 */ addiu $sp,$sp,-40
/* 48ce4: afbf001c */ sw $ra,0x1c($sp)
/* 48ce8: afa40028 */ sw $a0,0x28($sp)
/* 48cec: 0c01256c */ jal __osDisableInt
/* 48cf0: afb00018 */ sw $s0,0x18($sp)
/* 48cf4: 93ae002b */ lbu $t6,0x2b($sp)
/* 48cf8: 00408025 */ or $s0,$v0,$zero
/* 48cfc: 11c00007 */ beqz $t6,.L00048d1c
/* 48d00: 00000000 */ nop
/* 48d04: 3c0f8006 */ lui $t7,%hi(__osViNext)
/* 48d08: 8def0914 */ lw $t7,%lo(__osViNext)($t7)
/* 48d0c: 95f80000 */ lhu $t8,0x0($t7)
/* 48d10: 37190020 */ ori $t9,$t8,0x20
/* 48d14: 10000007 */ b .L00048d34
/* 48d18: a5f90000 */ sh $t9,0x0($t7)
.L00048d1c:
/* 48d1c: 3c088006 */ lui $t0,%hi(__osViNext)
/* 48d20: 8d080914 */ lw $t0,%lo(__osViNext)($t0)
/* 48d24: 2401ffdf */ addiu $at,$zero,-33
/* 48d28: 95090000 */ lhu $t1,0x0($t0)
/* 48d2c: 01215024 */ and $t2,$t1,$at
/* 48d30: a50a0000 */ sh $t2,0x0($t0)
.L00048d34:
/* 48d34: 0c012588 */ jal __osRestoreInt
/* 48d38: 02002025 */ or $a0,$s0,$zero
/* 48d3c: 8fbf001c */ lw $ra,0x1c($sp)
/* 48d40: 8fb00018 */ lw $s0,0x18($sp)
/* 48d44: 27bd0028 */ addiu $sp,$sp,0x28
/* 48d48: 03e00008 */ jr $ra
/* 48d4c: 00000000 */ nop
);
+15
View File
@@ -0,0 +1,15 @@
#include <ultra64.h>
#include "game/data/data_000000.h"
void osViBlack(u8 active)
{
register u32 saveMask = __osDisableInt();
if (active) {
__osViNext->state |= VI_STATE_BLACK;
} else {
__osViNext->state &= ~VI_STATE_BLACK;
}
__osRestoreInt(saveMask);
}