diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index caef1461b..0e86b70b0 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -5286,114 +5286,7 @@ u32 var80092870 = 0; u32 var80092874 = 0; u32 var80092878 = 0; u32 var8009287c = 0; -u32 var80092880 = 0; -u32 var80092884 = 0; -u32 var80092888 = 0; -u32 var8009288c = 0; -u32 var80092890 = 0; -u32 var80092894 = 0; -u32 var80092898 = 0; -u32 var8009289c = 0; -u32 var800928a0 = 0; -u32 var800928a4 = 0; -u32 var800928a8 = 0; -u32 var800928ac = 0; -u32 var800928b0 = 0; -u32 var800928b4 = 0; -u32 var800928b8 = 0; -u32 var800928bc = 0; -u32 var800928c0 = 0; -u32 var800928c4 = 0; -u32 var800928c8 = 0; -u32 var800928cc = 0; -u32 var800928d0 = 0; -u32 var800928d4 = 0; -u32 var800928d8 = 0; -u32 var800928dc = 0; -u32 var800928e0 = 0; -u32 var800928e4 = 0; -u32 var800928e8 = 0; -u32 var800928ec = 0; -u32 var800928f0 = 0; -u32 var800928f4 = 0; -u32 var800928f8 = 0; -u32 var800928fc = 0; -u32 var80092900 = 0; -u32 var80092904 = 0; -u32 var80092908 = 0; -u32 var8009290c = 0; -u32 var80092910 = 0; -u32 var80092914 = 0; -u32 var80092918 = 0; -u32 var8009291c = 0; -u32 var80092920 = 0; -u32 var80092924 = 0; -u32 var80092928 = 0; -u32 var8009292c = 0; -u32 var80092930 = 0; -u32 var80092934 = 0; -u32 var80092938 = 0; -u32 var8009293c = 0; -u32 var80092940 = 0; -u32 var80092944 = 0; -u32 var80092948 = 0; -u32 var8009294c = 0; -u32 var80092950 = 0; -u32 var80092954 = 0; -u32 var80092958 = 0; -u32 var8009295c = 0; -u32 var80092960 = 0; -u32 var80092964 = 0; -u32 var80092968 = 0; -u32 var8009296c = 0; -u32 var80092970 = 0; -u32 var80092974 = 0; -u32 var80092978 = 0; -u32 var8009297c = 0; -u32 var80092980 = 0; -u32 var80092984 = 0; -u32 var80092988 = 0; -u32 var8009298c = 0; -u32 var80092990 = 0; -u32 var80092994 = 0; -u32 var80092998 = 0; -u32 var8009299c = 0; -u32 var800929a0 = 0; -u32 var800929a4 = 0; -u32 var800929a8 = 0; -u32 var800929ac = 0; -u32 var800929b0 = 0; -u32 var800929b4 = 0; -u32 var800929b8 = 0; -u32 var800929bc = 0; -u32 var800929c0 = 0; -u32 var800929c4 = 0; -u32 var800929c8 = 0; -u32 var800929cc = 0; -u32 var800929d0 = 0; -u32 var800929d4 = 0; -u32 var800929d8 = 0; -u32 var800929dc = 0; -u32 var800929e0 = 0; -u32 var800929e4 = 0; -u32 var800929e8 = 0; -u32 var800929ec = 0; -u32 var800929f0 = 0; -u32 var800929f4 = 0; -u32 var800929f8 = 0; -u32 var800929fc = 0; -u32 var80092a00 = 0; -u32 var80092a04 = 0; -u32 var80092a08 = 0; -u32 var80092a0c = 0; -u32 var80092a10 = 0; -u32 var80092a14 = 0; -u32 var80092a18 = 0; -u32 var80092a1c = 0; -u32 var80092a20 = 0; -u32 var80092a24 = 0; -u32 var80092a28 = 0; -u32 var80092a2c = 0; +OSThread g_RmonThread = {0}; u32 var80092a30 = 0; u32 var80092a34 = 0; u32 var80092a38 = 0; @@ -5682,7 +5575,7 @@ u32 var80092ea0 = 0; u32 var80092ea4 = 0; u32 var80092ea8 = 0; u32 var80092eac = 0; -u32 var80092eb0 = 0; +u32 g_RmonSp = 0; u32 var80092eb4 = 0; u32 var80092eb8 = 0; u32 var80092ebc = 0; @@ -7474,13 +7367,8 @@ u32 var80094aa0 = 0; u32 var80094aa4 = 0; u32 var80094aa8 = 0; u32 var80094aac = 0; -u32 var80094ab0 = 0; -u32 var80094ab4 = 0; -u32 var80094ab8 = 0; -u32 var80094abc = 0; -u32 var80094ac0 = 0; -u32 var80094ac4 = 0; -u32 var80094ac8 = 0; +OSMesgQueue g_RmonMesgQueue = {0}; +OSMesg var80094ac8 = {0}; u32 var80094acc = 0; u32 var80094ad0 = 0; u32 var80094ad4 = 0; diff --git a/src/include/constants.h b/src/include/constants.h index edf9a9a65..a87487ee6 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2840,6 +2840,8 @@ #define TELEPORTSTATE_3 3 #define TELEPORTSTATE_4 4 +#define THREAD_RMON 5 + #define TICKMODE_0 0 #define TICKMODE_1 1 #define TICKMODE_3 3 diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 6a9774d6f..ede17c441 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -424,10 +424,10 @@ extern u32 var80092828; extern u32 var80092830; extern u32 var80092870; extern u32 var80092874; -extern u32 var80092880; -extern u32 var80092eb0; -extern u32 var80094ab0; -extern u32 var80094ac8; +extern OSThread g_RmonThread; +extern u32 g_RmonSp; +extern OSMesgQueue g_RmonMesgQueue; +extern OSMesg var80094ac8; extern u32 var80094ae0; extern u32 var80094ae8; extern u32 var80094de8; diff --git a/src/include/lib/lib_0c000.h b/src/include/lib/lib_0c000.h index 02463c6fe..1da321391 100644 --- a/src/include/lib/lib_0c000.h +++ b/src/include/lib/lib_0c000.h @@ -86,7 +86,7 @@ extern const char var700529a4[]; extern const char var700529a8[]; extern const char var700529ac[]; -u32 func0000c000(void); +void rmonCreateThread(void); u32 func0000c118(void); u32 func0000c240(void); u32 func0000c2b8(void); diff --git a/src/lib/lib_0bfb0.c b/src/lib/lib_0bfb0.c index eee8fff8d..52249e35f 100644 --- a/src/lib/lib_0bfb0.c +++ b/src/lib/lib_0bfb0.c @@ -16,7 +16,7 @@ GLOBAL_ASM( glabel func0000bfb0 /* bfb0: 27bdffe8 */ addiu $sp,$sp,-24 /* bfb4: afbf0014 */ sw $ra,0x14($sp) -/* bfb8: 0c003000 */ jal func0000c000 +/* bfb8: 0c003000 */ jal rmonCreateThread /* bfbc: 00000000 */ nop /* bfc0: 8fbf0014 */ lw $ra,0x14($sp) /* bfc4: 27bd0018 */ addiu $sp,$sp,0x18 diff --git a/src/lib/lib_0c000.c b/src/lib/lib_0c000.c index 927600cfd..267b4244b 100644 --- a/src/lib/lib_0c000.c +++ b/src/lib/lib_0c000.c @@ -145,43 +145,21 @@ const char var70052c94[] = ">"; const char var70052c98[] = ""; const char var70052c9c[] = ""; -GLOBAL_ASM( -glabel func0000c000 -/* c000: 27bdffe0 */ addiu $sp,$sp,-32 -/* c004: afbf001c */ sw $ra,0x1c($sp) -/* c008: 3c048009 */ lui $a0,%hi(var80094ab0) -/* c00c: 3c058009 */ lui $a1,%hi(var80094ac8) -/* c010: 24a54ac8 */ addiu $a1,$a1,%lo(var80094ac8) -/* c014: 24844ab0 */ addiu $a0,$a0,%lo(var80094ab0) -/* c018: 0c0120d0 */ jal osCreateMesgQueue -/* c01c: 24060001 */ addiu $a2,$zero,0x1 -/* c020: 3c0e8009 */ lui $t6,%hi(var80092eb0) -/* c024: 25ce2eb0 */ addiu $t6,$t6,%lo(var80092eb0) -/* c028: 3c048009 */ lui $a0,%hi(var80092880) -/* c02c: 3c067001 */ lui $a2,%hi(func0000c06c) -/* c030: 240f0028 */ addiu $t7,$zero,0x28 -/* c034: afaf0014 */ sw $t7,0x14($sp) -/* c038: 24c6c06c */ addiu $a2,$a2,%lo(func0000c06c) -/* c03c: 24842880 */ addiu $a0,$a0,%lo(var80092880) -/* c040: afae0010 */ sw $t6,0x10($sp) -/* c044: 24050005 */ addiu $a1,$zero,0x5 -/* c048: 0c000fb8 */ jal osCreateThread -/* c04c: 00003825 */ or $a3,$zero,$zero -/* c050: 3c048009 */ lui $a0,%hi(var80092880) -/* c054: 0c01207c */ jal osStartThread -/* c058: 24842880 */ addiu $a0,$a0,%lo(var80092880) -/* c05c: 8fbf001c */ lw $ra,0x1c($sp) -/* c060: 27bd0020 */ addiu $sp,$sp,0x20 -/* c064: 03e00008 */ jr $ra -/* c068: 00000000 */ nop -); +void rmonLoop(void *arg0); + +void rmonCreateThread(void) +{ + osCreateMesgQueue(&g_RmonMesgQueue, &var80094ac8, 1); + osCreateThread(&g_RmonThread, THREAD_RMON, rmonLoop, NULL, &g_RmonSp, 40); + osStartThread(&g_RmonThread); +} GLOBAL_ASM( -glabel func0000c06c +glabel rmonLoop /* c06c: 27bdffa0 */ addiu $sp,$sp,-96 /* c070: afb1001c */ sw $s1,0x1c($sp) -/* c074: 3c118009 */ lui $s1,%hi(var80094ab0) -/* c078: 26314ab0 */ addiu $s1,$s1,%lo(var80094ab0) +/* c074: 3c118009 */ lui $s1,%hi(g_RmonMesgQueue) +/* c078: 26314ab0 */ addiu $s1,$s1,%lo(g_RmonMesgQueue) /* c07c: afbf0024 */ sw $ra,0x24($sp) /* c080: afa40060 */ sw $a0,0x60($sp) /* c084: afb20020 */ sw $s2,0x20($sp)