Decompile vmPrintStatsIfEnabled

This commit is contained in:
Ryan Dwyer
2021-10-29 18:23:44 +10:00
parent d3557c7a75
commit 8f03da4a80
10 changed files with 101 additions and 129 deletions
+2
View File
@@ -193,6 +193,8 @@
build/ROMID/game/game_197600.o (section); \
build/ROMID/game/game_197c00.o (section); \
build/ROMID/game/game_1999b0.o (section); \
build/ROMID/game/mplayer/mpaicommands.o (section); \
build/ROMID/game/vmstats.o (section); \
build/ROMID/game/game_19aa80.o (section); \
build/ROMID/game/training/training.o (section); \
build/ROMID/game/training/menus.o (section); \
+2
View File
@@ -192,6 +192,8 @@
build/ROMID/game/game_197600.o (section); \
build/ROMID/game/game_197c00.o (section); \
build/ROMID/game/game_1999b0.o (section); \
build/ROMID/game/mplayer/mpaicommands.o (section); \
build/ROMID/game/vmstats.o (section); \
build/ROMID/game/game_19aa80.o (section); \
build/ROMID/game/training/training.o (section); \
build/ROMID/game/training/menus.o (section); \
+2
View File
@@ -192,6 +192,8 @@
build/ROMID/game/game_197600.o (section); \
build/ROMID/game/game_197c00.o (section); \
build/ROMID/game/game_1999b0.o (section); \
build/ROMID/game/mplayer/mpaicommands.o (section); \
build/ROMID/game/vmstats.o (section); \
build/ROMID/game/game_19aa80.o (section); \
build/ROMID/game/training/training.o (section); \
build/ROMID/game/training/menus.o (section); \
-113
View File
@@ -58,119 +58,6 @@ struct challenge g_MpChallenges[NUM_CHALLENGES] = {
{ L_OPTIONS_435, MPCONFIG_CHALLENGE30 }, // "Challenge 30"
};
/**
* @cmd 0185
*/
bool aiMpInitSimulants(void)
{
mpInitSimulants();
g_Vars.aioffset += 2;
return false;
}
/**
* @cmd 0176
*/
bool ai0176(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
struct aibot *aibot;
/**
* @bug: Missing return means a crash will occur if either of these are
* null.
*/
if (!g_Vars.chrdata || !g_Vars.chrdata->aibot) {
g_Vars.aioffset += 3;
//return false;
}
aibot = g_Vars.chrdata->aibot;
if (aibot->unk059 == 1) {
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]);
aibot->unk059 = 0;
} else {
g_Vars.aioffset += 3;
}
return false;
}
#if VERSION >= VERSION_NTSC_1_0
void func0f19ab40(void)
{
if (g_Is4Mb) {
var80090af4 = 0;
var80090af8 = 0;
var80090afc = 0;
}
}
#else
const char var7f1b3750nb[] = "VM: Page Misses %d (%d Replaces)";
const char var7f1b3774nb[] = "VM: TLB Misses %d";
const char var7f1b3788nb[] = "";
const char var7f1b378cnb[] = "";
GLOBAL_ASM(
glabel func0f19ab40
/* f194b20: 3c0e8009 */ lui $t6,0x8009
/* f194b24: 91ce30e0 */ lbu $t6,0x30e0($t6)
/* f194b28: 27bdff98 */ addiu $sp,$sp,-104
/* f194b2c: afbf0014 */ sw $ra,0x14($sp)
/* f194b30: 11c0002b */ beqz $t6,.NB0f194be0
/* f194b34: 3c0f8006 */ lui $t7,0x8006
/* f194b38: 91efe710 */ lbu $t7,-0x18f0($t7)
/* f194b3c: 240400ff */ addiu $a0,$zero,0xff
/* f194b40: 240500ff */ addiu $a1,$zero,0xff
/* f194b44: 11e00020 */ beqz $t7,.NB0f194bc8
/* f194b48: 240600ff */ addiu $a2,$zero,0xff
/* f194b4c: 0c005106 */ jal dhudSetFgColour
/* f194b50: 240700ff */ addiu $a3,$zero,0xff
/* f194b54: 00002025 */ or $a0,$zero,$zero
/* f194b58: 00002825 */ or $a1,$zero,$zero
/* f194b5c: 00003025 */ or $a2,$zero,$zero
/* f194b60: 0c005115 */ jal dhudSetBgColour
/* f194b64: 240700ff */ addiu $a3,$zero,0xff
/* f194b68: 3c057f1b */ lui $a1,0x7f1b
/* f194b6c: 3c068009 */ lui $a2,0x8009
/* f194b70: 3c078009 */ lui $a3,0x8009
/* f194b74: 8ce730ec */ lw $a3,0x30ec($a3)
/* f194b78: 8cc630e8 */ lw $a2,0x30e8($a2)
/* f194b7c: 24a53750 */ addiu $a1,$a1,0x3750
/* f194b80: 0c004fc1 */ jal sprintf
/* f194b84: 27a40018 */ addiu $a0,$sp,0x18
/* f194b88: 24040002 */ addiu $a0,$zero,0x2
/* f194b8c: 0c0050df */ jal dhudSetPos
/* f194b90: 24050001 */ addiu $a1,$zero,0x1
/* f194b94: 0c005175 */ jal dhudPrintString
/* f194b98: 27a40018 */ addiu $a0,$sp,0x18
/* f194b9c: 3c057f1b */ lui $a1,0x7f1b
/* f194ba0: 3c068009 */ lui $a2,0x8009
/* f194ba4: 8cc630e4 */ lw $a2,0x30e4($a2)
/* f194ba8: 24a53774 */ addiu $a1,$a1,0x3774
/* f194bac: 0c004fc1 */ jal sprintf
/* f194bb0: 27a40018 */ addiu $a0,$sp,0x18
/* f194bb4: 24040002 */ addiu $a0,$zero,0x2
/* f194bb8: 0c0050df */ jal dhudSetPos
/* f194bbc: 24050002 */ addiu $a1,$zero,0x2
/* f194bc0: 0c005175 */ jal dhudPrintString
/* f194bc4: 27a40018 */ addiu $a0,$sp,0x18
.NB0f194bc8:
/* f194bc8: 3c018009 */ lui $at,0x8009
/* f194bcc: ac2030e4 */ sw $zero,0x30e4($at)
/* f194bd0: 3c018009 */ lui $at,0x8009
/* f194bd4: ac2030e8 */ sw $zero,0x30e8($at)
/* f194bd8: 3c018009 */ lui $at,0x8009
/* f194bdc: ac2030ec */ sw $zero,0x30ec($at)
.NB0f194be0:
/* f194be0: 8fbf0014 */ lw $ra,0x14($sp)
/* f194be4: 27bd0068 */ addiu $sp,$sp,0x68
/* f194be8: 03e00008 */ jr $ra
/* f194bec: 00000000 */ sll $zero,$zero,0x0
);
#endif
GLOBAL_ASM(
glabel func0f19ab70
/* f19ab70: 27bdfde8 */ addiu $sp,$sp,-536
+3 -3
View File
@@ -6984,7 +6984,7 @@ glabel var7f1b8ed0pf
/* f16c7c8: 2415ffff */ li $s5,-1
/* f16c7cc: 56190004 */ bnel $s0,$t9,.PF0f16c7e0
/* f16c7d0: 8e8c006c */ lw $t4,0x6c($s4)
/* f16c7d4: 0fc66f10 */ jal func0f19ab40
/* f16c7d4: 0fc66f10 */ jal vmPrintStatsIfEnabled
/* f16c7d8: 00000000 */ nop
/* f16c7dc: 8e8c006c */ lw $t4,0x6c($s4)
.PF0f16c7e0:
@@ -8253,7 +8253,7 @@ void lvTick(void)
}
if (IS4MB()) {
func0f19ab40();
vmPrintStatsIfEnabled();
}
for (j = 0; j < PLAYERCOUNT(); j++) {
@@ -8624,7 +8624,7 @@ glabel lvTick
/* f1667d4: 2415ffff */ addiu $s5,$zero,-1
/* f1667d8: 56180004 */ bnel $s0,$t8,.NB0f1667ec
/* f1667dc: 8e99006c */ lw $t9,0x6c($s4)
/* f1667e0: 0fc652c8 */ jal func0f19ab40
/* f1667e0: 0fc652c8 */ jal vmPrintStatsIfEnabled
/* f1667e4: 00000000 */ sll $zero,$zero,0x0
/* f1667e8: 8e99006c */ lw $t9,0x6c($s4)
.NB0f1667ec:
+46
View File
@@ -0,0 +1,46 @@
#include <ultra64.h>
#include "constants.h"
#include "game/chr/chrai.h"
#include "game/game_190260.h"
#include "bss.h"
#include "data.h"
#include "types.h"
/**
* @cmd 0185
*/
bool aiMpInitSimulants(void)
{
mpInitSimulants();
g_Vars.aioffset += 2;
return false;
}
/**
* @cmd 0176
*/
bool ai0176(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
struct aibot *aibot;
/**
* @bug: Missing return means a crash will occur if either of these are
* null.
*/
if (!g_Vars.chrdata || !g_Vars.chrdata->aibot) {
g_Vars.aioffset += 3;
//return false;
}
aibot = g_Vars.chrdata->aibot;
if (aibot->unk059 == 1) {
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]);
aibot->unk059 = 0;
} else {
g_Vars.aioffset += 3;
}
return false;
}
+33
View File
@@ -0,0 +1,33 @@
#include <ultra64.h>
#include "constants.h"
#include "bss.h"
#include "lib/debughud.h"
#include "lib/vm.h"
#include "data.h"
#include "types.h"
void vmPrintStatsIfEnabled(void)
{
char buffer[80];
if (g_Is4Mb) {
#if VERSION < VERSION_NTSC_1_0
if (g_VmShowStats) {
dhudSetFgColour(0xff, 0xff, 0xff, 0xff);
dhudSetBgColour(0, 0, 0, 0xff);
sprintf(buffer, "VM: Page Misses %d (%d Replaces)", g_VmNumPageMisses, g_VmNumPageReplaces);
dhudSetPos(2, 1);
dhudPrintString(buffer);
sprintf(buffer, "VM: TLB Misses %d", g_VmNumTlbMisses);
dhudSetPos(2, 2);
dhudPrintString(buffer);
}
#endif
g_VmNumTlbMisses = 0;
g_VmNumPageMisses = 0;
g_VmNumPageReplaces = 0;
}
}
+3 -3
View File
@@ -25,9 +25,9 @@ extern OSTimer var80090ab0;
extern OSMesgQueue g_GbpakMesgQueue;
extern OSMesg var80090ae8;
extern u8 g_Is4Mb;
extern u32 var80090af4;
extern u32 var80090af8;
extern u32 var80090afc;
extern u32 g_VmNumTlbMisses;
extern u32 g_VmNumPageMisses;
extern u32 g_VmNumPageReplaces;
extern u32 var80090b00;
extern u32 var80090b04;
extern u32 var80090b08;
+1 -1
View File
@@ -24,7 +24,7 @@ char *mpGetCurrentChallengeDescription(void);
char *mpconfigGetDescription(struct mpconfigfull *mpconfig);
bool mpIsChallengeCompleteForEndscreen(void);
bool aiMpInitSimulants(void);
void func0f19ab40(void);
void vmPrintStatsIfEnabled(void);
bool mpIsChallengeAvailableToPlayer(s32 chrnum, s32 challengeindex);
bool mpIsChallengeAvailableToAnyPlayer(s32 challengeindex);
s32 mpGetNumAvailableChallenges(void);
+9 -9
View File
@@ -9,9 +9,9 @@
#include "types.h"
u8 g_Is4Mb;
u32 var80090af4;
u32 var80090af8;
u32 var80090afc;
u32 g_VmNumTlbMisses;
u32 g_VmNumPageMisses;
u32 g_VmNumPageReplaces;
u32 var80090b00;
u32 var80090b04;
u32 var80090b08;
@@ -285,12 +285,12 @@ glabel vmInit
/* 748c: 1020ffef */ beqz $at,.L0000744c
/* 7490: 26100001 */ addiu $s0,$s0,0x1
.L00007494:
/* 7494: 3c018009 */ lui $at,%hi(var80090af4)
/* 7498: ac200af4 */ sw $zero,%lo(var80090af4)($at)
/* 749c: 3c018009 */ lui $at,%hi(var80090af8)
/* 74a0: ac200af8 */ sw $zero,%lo(var80090af8)($at)
/* 74a4: 3c018009 */ lui $at,%hi(var80090afc)
/* 74a8: ac200afc */ sw $zero,%lo(var80090afc)($at)
/* 7494: 3c018009 */ lui $at,%hi(g_VmNumTlbMisses)
/* 7498: ac200af4 */ sw $zero,%lo(g_VmNumTlbMisses)($at)
/* 749c: 3c018009 */ lui $at,%hi(g_VmNumPageMisses)
/* 74a0: ac200af8 */ sw $zero,%lo(g_VmNumPageMisses)($at)
/* 74a4: 3c018009 */ lui $at,%hi(g_VmNumPageReplaces)
/* 74a8: ac200afc */ sw $zero,%lo(g_VmNumPageReplaces)($at)
/* 74ac: 00002025 */ or $a0,$zero,$zero
/* 74b0: 0c012054 */ jal osInvalICache
/* 74b4: 24054000 */ addiu $a1,$zero,0x4000