Decompile osViGetCurrentFramebuffer

This commit is contained in:
Ryan Dwyer 2021-01-26 19:37:26 +10:00
parent 9bd39d0101
commit d460a7fcdb
19 changed files with 32 additions and 76 deletions

View File

@ -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) \

View File

@ -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); \

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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;

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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[] = {

View File

@ -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;

View File

@ -1,10 +0,0 @@
#ifndef _IN_LIB_LIB_48830_H
#define _IN_LIB_LIB_48830_H
#include <ultra64.h>
#include "types.h"
void *osViGetCurrentFramebuffer(void);
void *osViGetNextFramebuffer(void);
OSPri osGetThreadPri(OSThread *thread);
#endif

View File

@ -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";

View File

@ -1,31 +0,0 @@
#include <ultra64.h>
#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
);

View File

@ -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
);

View File

@ -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)

View File

@ -0,0 +1,16 @@
#include <ultra64.h>
#include "game/data/data_000000.h"
void *osViGetCurrentFramebuffer(void)
{
register u32 saveMask;
void *framep;
saveMask = __osDisableInt();
framep = __osViCurr->framep;
__osRestoreInt(saveMask);
return framep;
}

View File

@ -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)