mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Decompiled 4 functions in unknown_0B8920.c
This commit is contained in:
@@ -74,7 +74,7 @@ glabel func_80076C58
|
||||
/* 077964 80076D64 0C01DBDE */ jal func_80076F78
|
||||
/* 077968 80076D68 24060008 */ li $a2, 8
|
||||
/* 07796C 80076D6C 8FA40028 */ lw $a0, 0x28($sp)
|
||||
/* 077970 80076D70 0C03186B */ jal func_800C61AC
|
||||
/* 077970 80076D70 0C03186B */ jal byteswap32
|
||||
/* 077974 80076D74 00000000 */ nop
|
||||
/* 077978 80076D78 8FA9003C */ lw $t1, 0x3c($sp)
|
||||
/* 07797C 80076D7C 8FA40028 */ lw $a0, 0x28($sp)
|
||||
|
||||
@@ -100,7 +100,7 @@ glabel func_8007AE74
|
||||
/* 07BBE0 8007AFE0 1000002A */ b .L8007B08C
|
||||
/* 07BBE4 8007AFE4 00000000 */ nop
|
||||
.L8007AFE8:
|
||||
/* 07BBE8 8007AFE8 0C03186B */ jal func_800C61AC
|
||||
/* 07BBE8 8007AFE8 0C03186B */ jal byteswap32
|
||||
/* 07BBEC 8007AFEC 24640020 */ addiu $a0, $v1, 0x20
|
||||
/* 07BBF0 8007AFF0 0011C080 */ sll $t8, $s1, 2
|
||||
/* 07BBF4 8007AFF4 0311C023 */ subu $t8, $t8, $s1
|
||||
|
||||
@@ -42,7 +42,7 @@ glabel func_8007C57C
|
||||
/* 07D210 8007C610 24070028 */ li $a3, 40
|
||||
/* 07D214 8007C614 3C038012 */ lui $v1, %hi(D_8012636C) # $v1, 0x8012
|
||||
/* 07D218 8007C618 8C63636C */ lw $v1, %lo(D_8012636C)($v1)
|
||||
/* 07D21C 8007C61C 0C03186B */ jal func_800C61AC
|
||||
/* 07D21C 8007C61C 0C03186B */ jal byteswap32
|
||||
/* 07D220 8007C620 24640020 */ addiu $a0, $v1, 0x20
|
||||
/* 07D224 8007C624 3C058012 */ lui $a1, %hi(D_8012636C) # $a1, 0x8012
|
||||
/* 07D228 8007C628 8CA5636C */ lw $a1, %lo(D_8012636C)($a1)
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
glabel func_800C6170
|
||||
/* 0C6D70 800C6170 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 0C6D74 800C6174 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0C6D78 800C6178 24042800 */ li $a0, 10240
|
||||
/* 0C6D7C 800C617C 0C01C327 */ jal func_80070C9C
|
||||
/* 0C6D80 800C6180 240500FF */ li $a1, 255
|
||||
/* 0C6D84 800C6184 3C01800E */ lui $at, %hi(D_800E3760) # $at, 0x800e
|
||||
/* 0C6D88 800C6188 AC223760 */ sw $v0, %lo(D_800E3760)($at)
|
||||
/* 0C6D8C 800C618C 24040010 */ li $a0, 16
|
||||
/* 0C6D90 800C6190 0C01C327 */ jal func_80070C9C
|
||||
/* 0C6D94 800C6194 240500FF */ li $a1, 255
|
||||
/* 0C6D98 800C6198 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0C6D9C 800C619C 3C01800E */ lui $at, %hi(D_800E3764) # $at, 0x800e
|
||||
/* 0C6DA0 800C61A0 AC223764 */ sw $v0, %lo(D_800E3764)($at)
|
||||
/* 0C6DA4 800C61A4 03E00008 */ jr $ra
|
||||
/* 0C6DA8 800C61A8 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
glabel func_800C61AC
|
||||
/* 0C6DAC 800C61AC 908E0001 */ lbu $t6, 1($a0)
|
||||
/* 0C6DB0 800C61B0 90830000 */ lbu $v1, ($a0)
|
||||
/* 0C6DB4 800C61B4 90980002 */ lbu $t8, 2($a0)
|
||||
/* 0C6DB8 800C61B8 90880003 */ lbu $t0, 3($a0)
|
||||
/* 0C6DBC 800C61BC 000E7A00 */ sll $t7, $t6, 8
|
||||
/* 0C6DC0 800C61C0 006F1825 */ or $v1, $v1, $t7
|
||||
/* 0C6DC4 800C61C4 0018CC00 */ sll $t9, $t8, 0x10
|
||||
/* 0C6DC8 800C61C8 00791825 */ or $v1, $v1, $t9
|
||||
/* 0C6DCC 800C61CC 00084E00 */ sll $t1, $t0, 0x18
|
||||
/* 0C6DD0 800C61D0 24840003 */ addiu $a0, $a0, 3
|
||||
/* 0C6DD4 800C61D4 03E00008 */ jr $ra
|
||||
/* 0C6DD8 800C61D8 00691025 */ or $v0, $v1, $t1
|
||||
|
||||
@@ -8,7 +8,7 @@ glabel func_800C61DC
|
||||
/* 0C6DF4 800C61F4 24070008 */ li $a3, 8
|
||||
/* 0C6DF8 800C61F8 3C04800E */ lui $a0, %hi(D_800E3764) # $a0, 0x800e
|
||||
/* 0C6DFC 800C61FC 8C843764 */ lw $a0, %lo(D_800E3764)($a0)
|
||||
/* 0C6E00 800C6200 0C03186B */ jal func_800C61AC
|
||||
/* 0C6E00 800C6200 0C03186B */ jal byteswap32
|
||||
/* 0C6E04 800C6204 00000000 */ nop
|
||||
/* 0C6E08 800C6208 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0C6E0C 800C620C 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
glabel func_800C6218
|
||||
/* 0C6E18 800C6218 248E0005 */ addiu $t6, $a0, 5
|
||||
/* 0C6E1C 800C621C 3C01800E */ lui $at, %hi(D_800E3768) # $at, 0x800e
|
||||
/* 0C6E20 800C6220 AC2E3768 */ sw $t6, %lo(D_800E3768)($at)
|
||||
/* 0C6E24 800C6224 3C01800E */ lui $at, %hi(D_800E376C) # $at, 0x800e
|
||||
/* 0C6E28 800C6228 AC25376C */ sw $a1, %lo(D_800E376C)($at)
|
||||
/* 0C6E2C 800C622C 3C018013 */ lui $at, %hi(D_8012AAD4) # $at, 0x8013
|
||||
/* 0C6E30 800C6230 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 0C6E34 800C6234 AC20AAD4 */ sw $zero, %lo(D_8012AAD4)($at)
|
||||
/* 0C6E38 800C6238 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0C6E3C 800C623C 3C018013 */ lui $at, %hi(D_8012AAD0) # $at, 0x8013
|
||||
/* 0C6E40 800C6240 AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* 0C6E44 800C6244 0C031A30 */ jal func_800C68C0
|
||||
/* 0C6E48 800C6248 AC20AAD0 */ sw $zero, %lo(D_8012AAD0)($at)
|
||||
/* 0C6E4C 800C624C 10400006 */ beqz $v0, .L800C6268
|
||||
/* 0C6E50 800C6250 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800C6254:
|
||||
/* 0C6E54 800C6254 0C031A30 */ jal func_800C68C0
|
||||
/* 0C6E58 800C6258 00000000 */ nop
|
||||
/* 0C6E5C 800C625C 1440FFFD */ bnez $v0, .L800C6254
|
||||
/* 0C6E60 800C6260 00000000 */ nop
|
||||
/* 0C6E64 800C6264 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800C6268:
|
||||
/* 0C6E68 800C6268 8FA2001C */ lw $v0, 0x1c($sp)
|
||||
/* 0C6E6C 800C626C 03E00008 */ jr $ra
|
||||
/* 0C6E70 800C6270 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
|
||||
@@ -56,13 +56,19 @@ glabel func_800C68C0
|
||||
/* 0C7588 800C6988 00000000 */ nop
|
||||
/* 0C758C 800C698C 08031A6B */ j func_800C69AC
|
||||
/* 0C7590 800C6990 00000000 */ nop
|
||||
|
||||
.L800C6994:
|
||||
/* 0C7594 800C6994 0C031B77 */ jal func_800C6DDC
|
||||
/* 0C7598 800C6998 00000000 */ nop
|
||||
/* 0C759C 800C699C 08031A6B */ j func_800C69AC
|
||||
/* 0C75A0 800C69A0 00000000 */ nop
|
||||
|
||||
.L800C69A4:
|
||||
/* 0C75A4 800C69A4 0C031A71 */ jal func_800C69C4
|
||||
/* 0C75A8 800C69A8 00000000 */ nop
|
||||
glabel func_800C69AC
|
||||
/* 0C75AC 800C69AC 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0C75B0 800C69B0 24020001 */ li $v0, 1
|
||||
/* 0C75B4 800C69B4 00501022 */ sub $v0, $v0, $s0
|
||||
/* 0C75B8 800C69B8 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0C75BC 800C69BC 03E00008 */ jr $ra
|
||||
/* 0C75C0 800C69C0 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
glabel func_800C69AC
|
||||
/* 0C75AC 800C69AC 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0C75B0 800C69B0 24020001 */ li $v0, 1
|
||||
/* 0C75B4 800C69B4 00501022 */ sub $v0, $v0, $s0
|
||||
/* 0C75B8 800C69B8 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0C75BC 800C69BC 03E00008 */ jr $ra
|
||||
/* 0C75C0 800C69C0 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
|
||||
+106
-5
@@ -4,7 +4,80 @@
|
||||
#include "types.h"
|
||||
#include "macros.h"
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800B7D20.s")
|
||||
extern s32 D_800E3760;
|
||||
extern s32 D_800E3764;
|
||||
extern s32 D_800E3768;
|
||||
extern s32 D_800E376C;
|
||||
extern s32 D_8012AAD8;
|
||||
extern s32 D_8012AAD4;
|
||||
extern s32 D_8012AAD0;
|
||||
|
||||
s32 func_80070C9C(s32 arg0, s32 arg1);
|
||||
void func_80071140(s32* arg0);
|
||||
void func_8007B2BC(s32* arg0);
|
||||
|
||||
extern s32* D_800E3040;
|
||||
extern s32* D_800E3044;
|
||||
extern s32* D_800E3048;
|
||||
extern s32* D_800E304C;
|
||||
extern s32* D_800E3070;
|
||||
extern s32* D_800E3080;
|
||||
extern s32* D_800E30D0;
|
||||
extern s32* D_800E30D4;
|
||||
extern s32* D_800E30D8;
|
||||
extern s32* D_800E3178;
|
||||
extern s32* D_800E3184;
|
||||
extern s32* D_800E3188;
|
||||
extern s32* D_800E3190;
|
||||
extern s32* D_800E3194;
|
||||
|
||||
void func_800B7D20(void) {
|
||||
if (D_800E3040 != NULL) {
|
||||
func_80071140(D_800E3040);
|
||||
D_800E3040 = NULL;
|
||||
}
|
||||
if (D_800E3044 != NULL) {
|
||||
func_80071140(D_800E3044);
|
||||
D_800E3044 = NULL;
|
||||
}
|
||||
if (D_800E3048 != NULL) {
|
||||
func_80071140(D_800E3048);
|
||||
D_800E3048 = NULL;
|
||||
}
|
||||
if (D_800E304C != NULL) {
|
||||
func_80071140(D_800E304C);
|
||||
D_800E304C = NULL;
|
||||
}
|
||||
if (D_800E3070 != NULL) {
|
||||
func_80071140(D_800E3070);
|
||||
D_800E3070 = NULL;
|
||||
}
|
||||
if (D_800E3080 != NULL) {
|
||||
func_80071140(D_800E3080);
|
||||
D_800E3080 = NULL;
|
||||
}
|
||||
if (D_800E30D0 != NULL) {
|
||||
func_8007B2BC(D_800E30D0);
|
||||
D_800E30D0 = NULL;
|
||||
}
|
||||
if (D_800E30D4 != NULL) {
|
||||
func_80071140(D_800E30D4);
|
||||
D_800E30D4 = NULL;
|
||||
}
|
||||
if (D_800E30D8 != NULL) {
|
||||
func_80071140(D_800E30D8);
|
||||
D_800E30D8 = NULL;
|
||||
}
|
||||
if (D_800E3178 != NULL) {
|
||||
func_80071140(D_800E3178);
|
||||
D_800E3178 = NULL;
|
||||
}
|
||||
D_800E3190 = NULL;
|
||||
D_800E3194 = NULL;
|
||||
D_800E3184 = NULL;
|
||||
D_800E3188 = NULL;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800B7EB4.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800B8134.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800B82B4.s")
|
||||
@@ -96,13 +169,41 @@ GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C5AA0.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C5B58.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C5F60.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6000.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6170.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C61AC.s")
|
||||
|
||||
void func_800C6170(void) {
|
||||
D_800E3760 = func_80070C9C(0x2800, 0xFF);
|
||||
D_800E3764 = func_80070C9C(0x10, 0xFF);
|
||||
}
|
||||
|
||||
// Returns the little-endian value from a byte array.
|
||||
s32 byteswap32(u8* arg0) {
|
||||
s32 value;
|
||||
value = *arg0++;
|
||||
value |= (*arg0++ << 8);
|
||||
value |= (*arg0++ << 16);
|
||||
value |= (*arg0++ << 24);
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C61DC.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6218.s")
|
||||
|
||||
s32 func_800C68C0(void);
|
||||
|
||||
s32 func_800C6218(s32 arg0, s32 arg1) {
|
||||
// The compression header is 5 bytes. Maybe this is part of the decompression routine?
|
||||
D_800E3768 = (s32) (arg0 + 5);
|
||||
D_800E376C = arg1;
|
||||
D_8012AAD4 = 0;
|
||||
D_8012AAD0 = 0;
|
||||
while(func_800C68C0() != 0) {} // Keep calling func_800C68C0() until it returns 0.
|
||||
return arg1;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6274.s")
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C68C0.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C69AC.s")
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C69C4.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6B90.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6DDC.s")
|
||||
|
||||
Reference in New Issue
Block a user