From a3f1ed5821f85573cef57a15f3a29afc6680caad Mon Sep 17 00:00:00 2001 From: Ryan Myers Date: Sun, 24 Oct 2021 22:09:53 -0400 Subject: [PATCH] Match func_800AD40C --- .gitignore | 1 + .../unknown_09F8F0/func_800AD40C.s | 47 ------------------- src/unknown_008C40.h | 1 + src/unknown_0ABDF0.c | 14 +++--- src/unknown_0ABDF0.h | 1 + 5 files changed, 9 insertions(+), 55 deletions(-) delete mode 100644 asm/non_matchings/unknown_09F8F0/func_800AD40C.s diff --git a/.gitignore b/.gitignore index f1901f2f..8ee542b7 100755 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ dkr.ld # CTX files for mips2c should be ignored as we generate those ctx.c ctx_includes.c +ctx.c.m2c # Misc stuff that should be ignored. .*/ diff --git a/asm/non_matchings/unknown_09F8F0/func_800AD40C.s b/asm/non_matchings/unknown_09F8F0/func_800AD40C.s deleted file mode 100644 index 56252cb2..00000000 --- a/asm/non_matchings/unknown_09F8F0/func_800AD40C.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel func_800AD40C -/* 0AE00C 800AD40C 3C0E800E */ lui $t6, %hi(D_800E2C5C) # $t6, 0x800e -/* 0AE010 800AD410 8DCE2C5C */ lw $t6, %lo(D_800E2C5C)($t6) -/* 0AE014 800AD414 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0AE018 800AD418 11C00020 */ beqz $t6, .L800AD49C -/* 0AE01C 800AD41C AFBF001C */ sw $ra, 0x1c($sp) -/* 0AE020 800AD420 0C019884 */ jal get_viewport_count -/* 0AE024 800AD424 00000000 */ nop -/* 0AE028 800AD428 1440001C */ bnez $v0, .L800AD49C -/* 0AE02C 800AD42C 00002025 */ move $a0, $zero -/* 0AE030 800AD430 3C02800E */ lui $v0, %hi(D_800E2C60) # $v0, 0x800e -/* 0AE034 800AD434 8C422C60 */ lw $v0, %lo(D_800E2C60)($v0) -/* 0AE038 800AD438 240A000F */ li $t2, 15 -/* 0AE03C 800AD43C 00020823 */ negu $at, $v0 -/* 0AE040 800AD440 00011880 */ sll $v1, $at, 2 -/* 0AE044 800AD444 00611821 */ addu $v1, $v1, $at -/* 0AE048 800AD448 00031880 */ sll $v1, $v1, 2 -/* 0AE04C 800AD44C 00014080 */ sll $t0, $at, 2 -/* 0AE050 800AD450 00611823 */ subu $v1, $v1, $at -/* 0AE054 800AD454 01014021 */ addu $t0, $t0, $at -/* 0AE058 800AD458 00031840 */ sll $v1, $v1, 1 -/* 0AE05C 800AD45C 00084080 */ sll $t0, $t0, 2 -/* 0AE060 800AD460 00037C03 */ sra $t7, $v1, 0x10 -/* 0AE064 800AD464 0008C403 */ sra $t8, $t0, 0x10 -/* 0AE068 800AD468 25E303FA */ addiu $v1, $t7, 0x3fa -/* 0AE06C 800AD46C 270803FF */ addiu $t0, $t8, 0x3ff -/* 0AE070 800AD470 00083400 */ sll $a2, $t0, 0x10 -/* 0AE074 800AD474 00032C00 */ sll $a1, $v1, 0x10 -/* 0AE078 800AD478 0005CC03 */ sra $t9, $a1, 0x10 -/* 0AE07C 800AD47C 00064C03 */ sra $t1, $a2, 0x10 -/* 0AE080 800AD480 240B0024 */ li $t3, 36 -/* 0AE084 800AD484 AFAB0014 */ sw $t3, 0x14($sp) -/* 0AE088 800AD488 01203025 */ move $a2, $t1 -/* 0AE08C 800AD48C 03202825 */ move $a1, $t9 -/* 0AE090 800AD490 AFAA0010 */ sw $t2, 0x10($sp) -/* 0AE094 800AD494 0C00C199 */ jal func_80030664 -/* 0AE098 800AD498 2407001C */ li $a3, 28 -.L800AD49C: -/* 0AE09C 800AD49C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0AE0A0 800AD4A0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0AE0A4 800AD4A4 03E00008 */ jr $ra -/* 0AE0A8 800AD4A8 00000000 */ nop - -/* 0AE0AC 800AD4AC 3C01800E */ lui $at, %hi(D_800E2C6C) # $at, 0x800e -/* 0AE0B0 800AD4B0 03E00008 */ jr $ra -/* 0AE0B4 800AD4B4 AC242C6C */ sw $a0, %lo(D_800E2C6C)($at) - diff --git a/src/unknown_008C40.h b/src/unknown_008C40.h index cca7f10e..98955b84 100644 --- a/src/unknown_008C40.h +++ b/src/unknown_008C40.h @@ -5,6 +5,7 @@ void func_80008168(void); +void func_800096F8(s32); // Non Matching void func_80009558(u16, f32 x, f32 y, f32 z, s32, s32 *); // Non Matching void func_80009968(f32, f32, f32, u8, u8, s32); // Non Matching void func_800096D8(s32, f32, f32, f32); // Non Matching diff --git a/src/unknown_0ABDF0.c b/src/unknown_0ABDF0.c index 76fe4df7..9aaf92bb 100644 --- a/src/unknown_0ABDF0.c +++ b/src/unknown_0ABDF0.c @@ -8,6 +8,8 @@ #include "f3ddkr.h" #include "PR/libultra.h" #include "camera.h" +#include "unknown_0255E0.h" +#include "unknown_008C40.h" /************ .data ************/ @@ -233,13 +235,12 @@ void func_800AD2C4(s32 arg0, s32 arg1, f32 arg2) { D_800E2C70 = (D_800E2C74 - D_800E2C6C) / D_800E2C78; } -#ifdef NON_MATCHING void func_800AD40C(void) { - s16 a, b; + s32 a, b; if (D_800E2C5C && !get_viewport_count()) { - a = ((-D_800E2C60 * 38) >> 16) + 1018; - b = ((-D_800E2C60 * 20) >> 16) + 1023; - func_80030664(0, a, b, 28, 15, 36); + a = ((D_800E2C60 * -38) >> 16) + 0x3FA; + b = ((D_800E2C60 * -20) >> 16) + 0x3FF; + func_80030664(0, a, b, 0x1CU, 0xFU, 0x24U); } } @@ -247,9 +248,6 @@ void func_800AD40C(void) { void func_800AD4AC(s32 arg0) { D_800E2C6C = arg0; } -#else -GLOBAL_ASM("asm/non_matchings/unknown_09F8F0/func_800AD40C.s") -#endif GLOBAL_ASM("asm/non_matchings/unknown_09F8F0/func_800AD4B8.s") GLOBAL_ASM("asm/non_matchings/unknown_09F8F0/func_800AD658.s") diff --git a/src/unknown_0ABDF0.h b/src/unknown_0ABDF0.h index 1b8cc70f..e1d883c7 100644 --- a/src/unknown_0ABDF0.h +++ b/src/unknown_0ABDF0.h @@ -68,5 +68,6 @@ void func_800AC880(s32 arg0); void func_800ACF60(Object *arg0); void func_800AD220(void); void func_800AD2C4(s32 arg0, s32 arg1, f32 arg2); +void func_800AD40C(void); #endif