From afb15c5a70e4d94496af72946f121f347bfb36bd Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 26 Nov 2020 17:47:29 +1000 Subject: [PATCH] Decompile func0f0bd358 --- src/game/data/data_0160b0.c | 12 +++++----- src/game/game_0b63b0.c | 42 ++++++++++------------------------ src/include/game/game_0b63b0.h | 2 +- src/include/types.h | 2 +- 4 files changed, 20 insertions(+), 38 deletions(-) diff --git a/src/game/data/data_0160b0.c b/src/game/data/data_0160b0.c index 135c5529a..95e4ef15e 100644 --- a/src/game/data/data_0160b0.c +++ b/src/game/data/data_0160b0.c @@ -66,12 +66,12 @@ u32 var800705b8 = 0x00000000; u32 var800705bc = 0x00000000; struct var800705c0 var800705c0[] = { - { 0x0000, 0x0140, 0x00dc, 0x00000140, 0x3f800000, 0x00000001, 0x000000dc, 0x00000000, 0x000000b4, 0x00000014, 0x00000088, 0x0000002a }, - { 0x0000, 0x0280, 0x00dc, 0x00000280, 0x3f000000, 0x00000001, 0x000000dc, 0x00000000, 0x000000b4, 0x00000014, 0x00000088, 0x0000002a }, - { 0x0000, 0x0140, 0x01e0, 0x00000140, 0x40000000, 0x00000002, 0x000001b8, 0x00000014, 0x00000168, 0x0000003c, 0x00000110, 0x00000068 }, - { 0x0000, 0x01b8, 0x014a, 0x000001b8, 0x3f800000, 0x00000001, 0x0000014a, 0x00000000, 0x0000014a, 0x00000000, 0x0000014a, 0x00000000 }, - { 0x0000, 0x01b8, 0x00f0, 0x000001b8, 0x3f3a2e8c, 0x00000001, 0x000000dc, 0x00000000, 0x000000b4, 0x00000000, 0x00000088, 0x00000000 }, - { 0x0000, 0x0190, 0x012c, 0x00000190, 0x3f800000, 0x00000002, 0x0000012c, 0x00000000, 0x0000012c, 0x00000000, 0x0000012c, 0x00000000 }, + { 0x0000, 0x0140, 0x00dc, 0x00000140, 1, 0x00000001, 0x000000dc, 0x00000000, 0x000000b4, 0x00000014, 0x00000088, 0x0000002a }, + { 0x0000, 0x0280, 0x00dc, 0x00000280, 0.5, 0x00000001, 0x000000dc, 0x00000000, 0x000000b4, 0x00000014, 0x00000088, 0x0000002a }, + { 0x0000, 0x0140, 0x01e0, 0x00000140, 2, 0x00000002, 0x000001b8, 0x00000014, 0x00000168, 0x0000003c, 0x00000110, 0x00000068 }, + { 0x0000, 0x01b8, 0x014a, 0x000001b8, 1, 0x00000001, 0x0000014a, 0x00000000, 0x0000014a, 0x00000000, 0x0000014a, 0x00000000 }, + { 0x0000, 0x01b8, 0x00f0, 0x000001b8, 0.72727274894714, 0x00000001, 0x000000dc, 0x00000000, 0x000000b4, 0x00000000, 0x00000088, 0x00000000 }, + { 0x0000, 0x0190, 0x012c, 0x00000190, 1, 0x00000002, 0x0000012c, 0x00000000, 0x0000012c, 0x00000000, 0x0000012c, 0x00000000 }, }; s32 g_HiResActive = 0; diff --git a/src/game/game_0b63b0.c b/src/game/game_0b63b0.c index 2d07d4677..036314056 100644 --- a/src/game/game_0b63b0.c +++ b/src/game/game_0b63b0.c @@ -6991,36 +6991,18 @@ glabel func0f0bce24 /* f0bd354: 00000000 */ nop ); -GLOBAL_ASM( -glabel func0f0bd358 -/* f0bd358: 27bdffe0 */ addiu $sp,$sp,-32 -/* f0bd35c: afbf0014 */ sw $ra,0x14($sp) -/* f0bd360: 0fc2f2a8 */ jal func0f0bcaa0 -/* f0bd364: 00000000 */ nop -/* f0bd368: 0fc2f155 */ jal func0f0bc554 -/* f0bd36c: a7a20018 */ sh $v0,0x18($sp) -/* f0bd370: 87ae0018 */ lh $t6,0x18($sp) -/* f0bd374: 44822000 */ mtc1 $v0,$f4 -/* f0bd378: 3c0f8007 */ lui $t7,%hi(g_HiResActive) -/* f0bd37c: 448e4000 */ mtc1 $t6,$f8 -/* f0bd380: 468021a0 */ cvt.s.w $f6,$f4 -/* f0bd384: 8def06c8 */ lw $t7,%lo(g_HiResActive)($t7) -/* f0bd388: 3c018007 */ lui $at,%hi(var800705c0+0xc) -/* f0bd38c: 8fbf0014 */ lw $ra,0x14($sp) -/* f0bd390: 000fc080 */ sll $t8,$t7,0x2 -/* f0bd394: 468042a0 */ cvt.s.w $f10,$f8 -/* f0bd398: 030fc023 */ subu $t8,$t8,$t7 -/* f0bd39c: 0018c080 */ sll $t8,$t8,0x2 -/* f0bd3a0: 030fc023 */ subu $t8,$t8,$t7 -/* f0bd3a4: 0018c080 */ sll $t8,$t8,0x2 -/* f0bd3a8: 00380821 */ addu $at,$at,$t8 -/* f0bd3ac: 460a3403 */ div.s $f16,$f6,$f10 -/* f0bd3b0: c43205cc */ lwc1 $f18,%lo(var800705c0+0xc)($at) -/* f0bd3b4: 27bd0020 */ addiu $sp,$sp,0x20 -/* f0bd3b8: 46109082 */ mul.s $f2,$f18,$f16 -/* f0bd3bc: 03e00008 */ jr $ra -/* f0bd3c0: 46001006 */ mov.s $f0,$f2 -); +f32 func0f0bd358(void) +{ + f32 tmp; + s16 stack; + s16 a = func0f0bcaa0(); + s16 b = func0f0bc554(); + + tmp = (f32)b / (f32)a; + tmp = var800705c0[g_HiResActive].unk0c * tmp; + + return tmp; +} void func0f0bd3c4(void) { diff --git a/src/include/game/game_0b63b0.h b/src/include/game/game_0b63b0.h index c1db17e09..97f3103b8 100644 --- a/src/include/game/game_0b63b0.h +++ b/src/include/game/game_0b63b0.h @@ -53,7 +53,7 @@ s16 func0f0bc478(void); u32 func0f0bc4c0(void); s16 func0f0bc554(void); s16 func0f0bc7ac(void); -s32 func0f0bcaa0(void); +s16 func0f0bcaa0(void); s16 func0f0bce24(void); f32 func0f0bd358(void); void func0f0bd3c4(void); diff --git a/src/include/types.h b/src/include/types.h index 3a8e48063..fc0d678d3 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -5034,7 +5034,7 @@ struct var800705c0 { s16 unk02; u32 unk04; u32 unk08; - u32 unk0c; + f32 unk0c; u32 unk10; u32 unk14; u32 unk18;