Decompile osGetTime

This commit is contained in:
Ryan Dwyer
2021-01-30 00:46:18 +10:00
parent 363421279a
commit e375f43a8f
12 changed files with 45 additions and 84 deletions
+3 -2
View File
@@ -67,8 +67,6 @@ $(B_DIR)/lib/ultra/gu/frustum.o: LOOPUNROLL :=
$(B_DIR)/lib/ultra/libc/ll.o: MIPSISET := -mips3 -o32
$(B_DIR)/lib/ultra/libc/llcvt.o: MIPSISET := -mips3 -o32
$(B_DIR)/lib/ultra/libc/ll.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/libc/llcvt.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/io/dpctr.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/io/pigetcmdq.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/io/sp.o: OPT_LVL := -O1
@@ -83,8 +81,11 @@ $(B_DIR)/lib/ultra/io/visetmode.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/io/visetxscale.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/io/visetyscale.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/io/viswapbuf.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/libc/ll.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/libc/llcvt.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/createmesgqueue.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/destroythread.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/gettime.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/jammesg.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/recvmesg.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/resetglobalintmask.o: OPT_LVL := -O1
+1 -1
View File
@@ -110,7 +110,7 @@
build/ROMID/lib/ultra/io/visetspecial.o (section); \
build/ROMID/lib/ultra/io/viswapbuf.o (section); \
build/ROMID/lib/ultra/io/sptaskyield.o (section); \
build/ROMID/lib/lib_49120.o (section); \
build/ROMID/lib/ultra/os/gettime.o (section); \
build/ROMID/lib/ultra/os/timerintr.o (section); \
build/ROMID/lib/ultra/os/interrupt.o (section); \
build/ROMID/lib/ultra/io/vi.o (section); \
+3 -3
View File
@@ -42,11 +42,11 @@ glabel resetproc
/* 2e7c: ac820040 */ sw $v0,0x40($a0)
/* 2e80: 0c012338 */ jal osViBlack
/* 2e84: 24040001 */ addiu $a0,$zero,0x1
/* 2e88: 0c012448 */ jal func00049120
/* 2e88: 0c012448 */ jal osGetTime
/* 2e8c: 00000000 */ nop
/* 2e90: 3c018009 */ lui $at,%hi(g_ResetSp)
/* 2e94: ac22fdf0 */ sw $v0,%lo(g_ResetSp)($at)
/* 2e98: 0c012448 */ jal func00049120
/* 2e98: 0c012448 */ jal osGetTime
/* 2e9c: ac23fdf4 */ sw $v1,-0x20c($at)
/* 2ea0: 3c198009 */ lui $t9,%hi(var8008fdf4)
/* 2ea4: 8f39fdf4 */ lw $t9,%lo(var8008fdf4)($t9)
@@ -66,7 +66,7 @@ glabel resetproc
/* 2edc: 10200015 */ beqz $at,.L00002f34
/* 2ee0: 00000000 */ nop
.L00002ee4:
/* 2ee4: 0c012448 */ jal func00049120
/* 2ee4: 0c012448 */ jal osGetTime
/* 2ee8: 00000000 */ nop
/* 2eec: 3c0b8009 */ lui $t3,%hi(var8008fdf4)
/* 2ef0: 8d6bfdf4 */ lw $t3,%lo(var8008fdf4)($t3)
+2 -3
View File
@@ -14052,9 +14052,8 @@ __OSEventState __osEventStateTab[15] = {0};
u32 var8009c758 = 0;
u32 var8009c75c = 0;
OSTimer var8009c760 = {0};
u32 var8009c780 = 0;
u32 var8009c784 = 0;
u32 var8009c788 = 0;
u64 __osCurrentTime = 0;
u32 __osBaseCounter = 0;
u32 var8009c78c = 0;
u32 var8009c790 = 0;
u32 var8009c794 = 0;
+2 -2
View File
@@ -471,8 +471,8 @@ extern u32 var8009c400;
extern u32 var8009c650;
extern __OSEventState __osEventStateTab[15];
extern OSTimer var8009c760;
extern u32 var8009c780;
extern u32 var8009c788;
extern u64 __osCurrentTime;
extern u32 __osBaseCounter;
extern u32 var8009c78c;
extern OSMesg piAccessBuf;
extern OSMesgQueue __osPiAccessQueue;
-9
View File
@@ -1,9 +0,0 @@
#ifndef _IN_LIB_LIB_490B0_H
#define _IN_LIB_LIB_490B0_H
#include <ultra64.h>
#include "types.h"
void osViSwapBuffer(void *framebuffer);
u64 func00049120(void);
#endif
+4 -4
View File
@@ -919,7 +919,7 @@ glabel amgrMain
/* 9224: 10000077 */ b .L00009404
/* 9228: 00000000 */ nop
.L0000922c:
/* 922c: 0c012448 */ jal func00049120
/* 922c: 0c012448 */ jal osGetTime
/* 9230: 00000000 */ nop
/* 9234: ae820000 */ sw $v0,0x0($s4)
/* 9238: ae830004 */ sw $v1,0x4($s4)
@@ -941,7 +941,7 @@ glabel amgrMain
/* 9278: 26520001 */ addiu $s2,$s2,0x1
/* 927c: 0c0026a8 */ jal func00009aa0
/* 9280: 3c040006 */ lui $a0,0x6
/* 9284: 0c012448 */ jal func00049120
/* 9284: 0c012448 */ jal osGetTime
/* 9288: 00000000 */ nop
/* 928c: 8e8c0000 */ lw $t4,0x0($s4)
/* 9290: 8e8d0004 */ lw $t5,0x4($s4)
@@ -1082,7 +1082,7 @@ glabel amgrMain
//
// switch (*msg) {
// case 4:
// var80091588 = func00049120();
// var80091588 = osGetTime();
// func00009aa0(0x30000);
// amgrHandleFrameMsg(var800915d0[var80092828 % 3], info);
// func00009a08();
@@ -1090,7 +1090,7 @@ glabel amgrMain
// count++;
// func00009aa0(0x60000);
//
// var80091590 = func00049120();
// var80091590 = osGetTime();
// var80091570 = var80091590 - var80091588;
//
// // 2d8
-51
View File
@@ -1,51 +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 func00049120
/* 49120: 27bdffc8 */ addiu $sp,$sp,-56
/* 49124: afbf001c */ sw $ra,0x1c($sp)
/* 49128: 0c01256c */ jal __osDisableInt
/* 4912c: afb00018 */ sw $s0,0x18($sp)
/* 49130: 0c012144 */ jal osGetCount
/* 49134: 00408025 */ or $s0,$v0,$zero
/* 49138: afa20034 */ sw $v0,0x34($sp)
/* 4913c: 3c0f800a */ lui $t7,%hi(var8009c788)
/* 49140: 8defc788 */ lw $t7,%lo(var8009c788)($t7)
/* 49144: 8fae0034 */ lw $t6,0x34($sp)
/* 49148: 3c08800a */ lui $t0,%hi(var8009c780)
/* 4914c: 3c09800a */ lui $t1,%hi(var8009c784)
/* 49150: 8d29c784 */ lw $t1,%lo(var8009c784)($t1)
/* 49154: 8d08c780 */ lw $t0,%lo(var8009c780)($t0)
/* 49158: 01cfc023 */ subu $t8,$t6,$t7
/* 4915c: afb80030 */ sw $t8,0x30($sp)
/* 49160: 02002025 */ or $a0,$s0,$zero
/* 49164: afa9002c */ sw $t1,0x2c($sp)
/* 49168: 0c012588 */ jal __osRestoreInt
/* 4916c: afa80028 */ sw $t0,0x28($sp)
/* 49170: 8fb90030 */ lw $t9,0x30($sp)
/* 49174: 8fad002c */ lw $t5,0x2c($sp)
/* 49178: 8fbf001c */ lw $ra,0x1c($sp)
/* 4917c: 03205825 */ or $t3,$t9,$zero
/* 49180: 016d1821 */ addu $v1,$t3,$t5
/* 49184: 8fac0028 */ lw $t4,0x28($sp)
/* 49188: 240a0000 */ addiu $t2,$zero,0x0
/* 4918c: 006d082b */ sltu $at,$v1,$t5
/* 49190: 002a1021 */ addu $v0,$at,$t2
/* 49194: 8fb00018 */ lw $s0,0x18($sp)
/* 49198: 27bd0038 */ addiu $sp,$sp,0x38
/* 4919c: 03e00008 */ jr $ra
/* 491a0: 004c1021 */ addu $v0,$v0,$t4
/* 491a4: 00000000 */ nop
/* 491a8: 00000000 */ nop
/* 491ac: 00000000 */ nop
);
+1 -1
View File
@@ -16,7 +16,7 @@ glabel osContInit
.L0004a9ac:
/* 4a9ac: 240f0001 */ addiu $t7,$zero,0x1
/* 4a9b0: 3c018006 */ lui $at,%hi(__osContInitialized)
/* 4a9b4: 0c012448 */ jal func00049120
/* 4a9b4: 0c012448 */ jal osGetTime
/* 4a9b8: ac2f0960 */ sw $t7,%lo(__osContInitialized)($at)
/* 4a9bc: afa20060 */ sw $v0,0x60($sp)
/* 4a9c0: 8fb80060 */ lw $t8,0x60($sp)
+4 -4
View File
@@ -127,10 +127,10 @@ glabel viMgrMain
/* 3220: a4230290 */ sh $v1,%lo(var80090290)($at)
.L00003224:
/* 3224: 3c13800a */ lui $s3,%hi(var8009c78c)
/* 3228: 3c12800a */ lui $s2,%hi(var8009c788)
/* 322c: 3c11800a */ lui $s1,%hi(var8009c780)
/* 3230: 2631c780 */ addiu $s1,$s1,%lo(var8009c780)
/* 3234: 2652c788 */ addiu $s2,$s2,%lo(var8009c788)
/* 3228: 3c12800a */ lui $s2,%hi(__osBaseCounter)
/* 322c: 3c11800a */ lui $s1,%hi(__osCurrentTime)
/* 3230: 2631c780 */ addiu $s1,$s1,%lo(__osCurrentTime)
/* 3234: 2652c788 */ addiu $s2,$s2,%lo(__osBaseCounter)
/* 3238: 2673c78c */ addiu $s3,$s3,%lo(var8009c78c)
/* 323c: 2415000d */ addiu $s5,$zero,0xd
/* 3240: 27b40044 */ addiu $s4,$sp,0x44
+21
View File
@@ -0,0 +1,21 @@
#include <ultra64.h>
#include "game/data/data_000000.h"
#include "gvars/gvars.h"
OSTime osGetTime()
{
u32 tmptime;
u32 elapseCount;
OSTime currentCount;
register u32 saveMask;
saveMask = __osDisableInt();
tmptime = osGetCount();
elapseCount = tmptime - __osBaseCounter;
currentCount = __osCurrentTime;
__osRestoreInt(saveMask);
return currentCount + elapseCount;
}
+4 -4
View File
@@ -2,15 +2,15 @@
GLOBAL_ASM(
glabel __osTimerServicesInit
/* 491b0: 3c01800a */ lui $at,%hi(var8009c784)
/* 491b0: 3c01800a */ lui $at,%hi(__osCurrentTime+0x4)
/* 491b4: 240e0000 */ addiu $t6,$zero,0x0
/* 491b8: 240f0000 */ addiu $t7,$zero,0x0
/* 491bc: ac2fc784 */ sw $t7,%lo(var8009c784)($at)
/* 491bc: ac2fc784 */ sw $t7,%lo(__osCurrentTime+0x4)($at)
/* 491c0: ac2ec780 */ sw $t6,-0x3880($at)
/* 491c4: 3c01800a */ lui $at,%hi(var8009c788)
/* 491c4: 3c01800a */ lui $at,%hi(__osBaseCounter)
/* 491c8: 3c188006 */ lui $t8,%hi(__osTimerList)
/* 491cc: 8f1808a0 */ lw $t8,%lo(__osTimerList)($t8)
/* 491d0: ac20c788 */ sw $zero,%lo(var8009c788)($at)
/* 491d0: ac20c788 */ sw $zero,%lo(__osBaseCounter)($at)
/* 491d4: 3c01800a */ lui $at,%hi(var8009c78c)
/* 491d8: ac20c78c */ sw $zero,%lo(var8009c78c)($at)
/* 491dc: 3c198006 */ lui $t9,%hi(__osTimerList)