mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-09-09 19:41:16 -04:00
Decompile vmPrintStatsIfEnabled
This commit is contained in:
@@ -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); \
|
||||
|
||||
@@ -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); \
|
||||
|
||||
@@ -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); \
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user