Decompile frametimeCalculate
This commit is contained in:
parent
549157dd0f
commit
dd7da7b655
|
|
@ -1972,9 +1972,9 @@ glabel func0f118334
|
|||
/* f1185dc: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
|
||||
void func0f1185e0(s8 device, s32 arg1, s32 param_3)
|
||||
void func0f1185e0(s8 device, s32 arg1, s32 arg2)
|
||||
{
|
||||
if (param_3) {
|
||||
if (arg2) {
|
||||
var800a2380[device].unk2bd = 0x80;
|
||||
} else {
|
||||
var800a2380[device].unk2bd = 0;
|
||||
|
|
|
|||
|
|
@ -20,13 +20,13 @@ const char var7f1b7908[] = "playing";
|
|||
const char var7f1b7910[] = "paused";
|
||||
const char var7f1b7918[] = "MUSIC : activedeath=%d\n";
|
||||
|
||||
void func0f16ce10(void)
|
||||
void frametimeInit(void)
|
||||
{
|
||||
g_Vars.thisframetime = osGetCount();
|
||||
g_Vars.lastframetime = g_Vars.thisframetime;
|
||||
}
|
||||
|
||||
void func0f16ce3c(s32 diffframe60, s32 diffframe240, s32 frametime)
|
||||
void frametimeApply(s32 diffframe60, s32 diffframe240, s32 frametime)
|
||||
{
|
||||
g_Vars.lastframetime = g_Vars.thisframetime;
|
||||
g_Vars.thisframetime = frametime;
|
||||
|
|
@ -40,94 +40,28 @@ void func0f16ce3c(s32 diffframe60, s32 diffframe240, s32 frametime)
|
|||
g_Vars.diffframe240freal = g_Vars.diffframe240f = diffframe240;
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f16ce94
|
||||
/* f16ce94: 27bdffd0 */ addiu $sp,$sp,-48
|
||||
/* f16ce98: afb40028 */ sw $s4,0x28($sp)
|
||||
/* f16ce9c: afb30024 */ sw $s3,0x24($sp)
|
||||
/* f16cea0: afb20020 */ sw $s2,0x20($sp)
|
||||
/* f16cea4: afb1001c */ sw $s1,0x1c($sp)
|
||||
/* f16cea8: afb00018 */ sw $s0,0x18($sp)
|
||||
/* f16ceac: 3c10800a */ lui $s0,%hi(g_Vars)
|
||||
/* f16ceb0: 3c11000b */ lui $s1,0xb
|
||||
/* f16ceb4: 3c120002 */ lui $s2,0x2
|
||||
/* f16ceb8: 3c130005 */ lui $s3,0x5
|
||||
/* f16cebc: 3c140001 */ lui $s4,0x1
|
||||
/* f16cec0: afbf002c */ sw $ra,0x2c($sp)
|
||||
/* f16cec4: 36947d78 */ ori $s4,$s4,0x7d78
|
||||
/* f16cec8: 3673f5e1 */ ori $s3,$s3,0xf5e1
|
||||
/* f16cecc: 3652faf0 */ ori $s2,$s2,0xfaf0
|
||||
/* f16ced0: 3631ebc2 */ ori $s1,$s1,0xebc2
|
||||
/* f16ced4: 26109fc0 */ addiu $s0,$s0,%lo(g_Vars)
|
||||
.L0f16ced8:
|
||||
/* f16ced8: 0c012144 */ jal osGetCount
|
||||
/* f16cedc: 00000000 */ nop
|
||||
/* f16cee0: 8e0e0018 */ lw $t6,0x18($s0)
|
||||
/* f16cee4: 8e0f0020 */ lw $t7,0x20($s0)
|
||||
/* f16cee8: 8e190024 */ lw $t9,0x24($s0)
|
||||
/* f16ceec: 004e1823 */ subu $v1,$v0,$t6
|
||||
/* f16cef0: 01e33821 */ addu $a3,$t7,$v1
|
||||
/* f16cef4: 00f3c021 */ addu $t8,$a3,$s3
|
||||
/* f16cef8: 0311001b */ divu $zero,$t8,$s1
|
||||
/* f16cefc: 00002012 */ mflo $a0
|
||||
/* f16cf00: 03234021 */ addu $t0,$t9,$v1
|
||||
/* f16cf04: 01144821 */ addu $t1,$t0,$s4
|
||||
/* f16cf08: 0132001b */ divu $zero,$t1,$s2
|
||||
/* f16cf0c: 8e0a0028 */ lw $t2,0x28($s0)
|
||||
/* f16cf10: 00002812 */ mflo $a1
|
||||
/* f16cf14: 00403025 */ or $a2,$v0,$zero
|
||||
/* f16cf18: 008a082b */ sltu $at,$a0,$t2
|
||||
/* f16cf1c: ae03001c */ sw $v1,0x1c($s0)
|
||||
/* f16cf20: 16200002 */ bnez $s1,.L0f16cf2c
|
||||
/* f16cf24: 00000000 */ nop
|
||||
/* f16cf28: 0007000d */ break 0x7
|
||||
.L0f16cf2c:
|
||||
/* f16cf2c: 16400002 */ bnez $s2,.L0f16cf38
|
||||
/* f16cf30: 00000000 */ nop
|
||||
/* f16cf34: 0007000d */ break 0x7
|
||||
.L0f16cf38:
|
||||
/* f16cf38: 1420ffe7 */ bnez $at,.L0f16ced8
|
||||
/* f16cf3c: 00000000 */ nop
|
||||
/* f16cf40: 00910019 */ multu $a0,$s1
|
||||
/* f16cf44: 240f0001 */ addiu $t7,$zero,0x1
|
||||
/* f16cf48: ae0f0028 */ sw $t7,0x28($s0)
|
||||
/* f16cf4c: 00005812 */ mflo $t3
|
||||
/* f16cf50: 00eb6023 */ subu $t4,$a3,$t3
|
||||
/* f16cf54: ae0c0020 */ sw $t4,0x20($s0)
|
||||
/* f16cf58: 00b20019 */ multu $a1,$s2
|
||||
/* f16cf5c: 00006812 */ mflo $t5
|
||||
/* f16cf60: 010d7023 */ subu $t6,$t0,$t5
|
||||
/* f16cf64: 0fc5b38f */ jal func0f16ce3c
|
||||
/* f16cf68: ae0e0024 */ sw $t6,0x24($s0)
|
||||
/* f16cf6c: 8fbf002c */ lw $ra,0x2c($sp)
|
||||
/* f16cf70: 8fb00018 */ lw $s0,0x18($sp)
|
||||
/* f16cf74: 8fb1001c */ lw $s1,0x1c($sp)
|
||||
/* f16cf78: 8fb20020 */ lw $s2,0x20($sp)
|
||||
/* f16cf7c: 8fb30024 */ lw $s3,0x24($sp)
|
||||
/* f16cf80: 8fb40028 */ lw $s4,0x28($sp)
|
||||
/* f16cf84: 03e00008 */ jr $ra
|
||||
/* f16cf88: 27bd0030 */ addiu $sp,$sp,0x30
|
||||
);
|
||||
void frametimeCalculate(void)
|
||||
{
|
||||
u32 count;
|
||||
u32 thisframeticks;
|
||||
u32 diffframe60;
|
||||
u32 diffframe240;
|
||||
|
||||
// Mismatch most likely due to signedness not being right
|
||||
//void func0f16ce94(void)
|
||||
//{
|
||||
// u32 thisframeticks;
|
||||
// u32 diffframe60;
|
||||
// u32 diffframe240;
|
||||
//
|
||||
// do {
|
||||
// g_Vars.thisframeticks = thisframeticks = osGetCount() - g_Vars.thisframetime;
|
||||
// diffframe60 = (thisframeticks + g_Vars.lostframetime + 390625) / 781250;
|
||||
// diffframe240 = (thisframeticks + g_Vars.lostframetime240 + 97656) / 195312;
|
||||
// } while (diffframe60 < g_Vars.mininc60);
|
||||
//
|
||||
// g_Vars.mininc60 = 1;
|
||||
// g_Vars.lostframetime += thisframeticks - diffframe60 * 781250;
|
||||
// g_Vars.lostframetime240 += thisframeticks - diffframe240 * 195312;
|
||||
//
|
||||
// func0f16ce3c(diffframe60, diffframe240, thisframeticks);
|
||||
//}
|
||||
do {
|
||||
count = osGetCount();
|
||||
thisframeticks = count - g_Vars.thisframetime;
|
||||
g_Vars.thisframeticks = thisframeticks;
|
||||
|
||||
diffframe60 = (g_Vars.lostframetime + thisframeticks + 390625) / 781250;
|
||||
diffframe240 = (g_Vars.lostframetime240 + thisframeticks + 97656) / 195312;
|
||||
} while (diffframe60 < g_Vars.mininc60);
|
||||
|
||||
g_Vars.lostframetime = (g_Vars.lostframetime + thisframeticks) - (diffframe60 * 781250);
|
||||
g_Vars.lostframetime240 = (g_Vars.lostframetime240 + thisframeticks) - (diffframe240 * 195312);
|
||||
g_Vars.mininc60 = 1;
|
||||
|
||||
frametimeApply(diffframe60, diffframe240, count);
|
||||
}
|
||||
|
||||
void func0f16cf8c(s32 arg0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
#include <ultra64.h>
|
||||
#include "types.h"
|
||||
|
||||
void func0f16ce10(void);
|
||||
void func0f16ce3c(s32 diffframe60, s32 diffframe240, s32 frametime);
|
||||
void func0f16ce94(void);
|
||||
void frametimeInit(void);
|
||||
void frametimeApply(s32 diffframe60, s32 diffframe240, s32 frametime);
|
||||
void frametimeCalculate(void);
|
||||
void func0f16cf94(void);
|
||||
|
||||
extern const char var7f1b78c0[];
|
||||
|
|
|
|||
|
|
@ -539,7 +539,7 @@ glabel mainInit
|
|||
/* da0c: 00000000 */ nop
|
||||
/* da10: 0fc49e44 */ jal func0f127910
|
||||
/* da14: 00000000 */ nop
|
||||
/* da18: 0fc5b384 */ jal func0f16ce10
|
||||
/* da18: 0fc5b384 */ jal frametimeInit
|
||||
/* da1c: 00000000 */ nop
|
||||
/* da20: 0fc02c80 */ jal func0f00b200
|
||||
/* da24: 00000000 */ nop
|
||||
|
|
@ -778,7 +778,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400";
|
|||
// func0f1531a0();
|
||||
// func00013790();
|
||||
// func0f127910();
|
||||
// func0f16ce10();
|
||||
// frametimeInit();
|
||||
// func0f00b200();
|
||||
// func00009a80();
|
||||
// func0f000870();
|
||||
|
|
@ -1037,7 +1037,7 @@ void mainLoop(void)
|
|||
func0f17608c(g_StageNum);
|
||||
func0f167e7c(g_StageNum);
|
||||
func00009c3c(g_StageNum);
|
||||
func0f16ce94();
|
||||
frametimeCalculate();
|
||||
func00009a90();
|
||||
|
||||
while (osRecvMesg(&var8008db30, &msg, OS_MESG_NOBLOCK) != -1) {
|
||||
|
|
@ -1087,7 +1087,7 @@ void mainTick(void)
|
|||
s32 i;
|
||||
|
||||
if (g_MainStageNum < 0 && var8005d9cc < 2) {
|
||||
func0f16ce94();
|
||||
frametimeCalculate();
|
||||
func00009a98();
|
||||
func00009a90();
|
||||
func00009aa0(0x20000);
|
||||
|
|
|
|||
Loading…
Reference in New Issue