Matched func_8028DF00, added bss to code_8028DF00.c (#38)

* matched func_8028DF00
This commit is contained in:
CoderStig 2021-10-24 16:47:56 -06:00 committed by GitHub
parent 58fb53c2a4
commit caaea76c42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 39 additions and 80 deletions

View File

@ -2,33 +2,6 @@
.section .bss
glabel D_802BA030
.skip 2
glabel D_802BA032
.skip 2
glabel D_802BA034
.skip 4
glabel D_802BA038
.skip 8
glabel D_802BA040
.skip 2
glabel D_802BA042
.skip 2
glabel D_802BA044
.skip 2
glabel D_802BA046
.skip 2
glabel D_802BA048
.skip 8
glabel D_802BA050
.skip 4

View File

@ -695,8 +695,8 @@ glabel L8028FD10
/* 0F93A0 8028FD90 E4240118 */ swc1 $f4, %lo(D_80150118)($at)
/* 0F93A4 8028FD94 3C01800E */ lui $at, %hi(D_800DC518) # $at, 0x800e
/* 0F93A8 8028FD98 A420C518 */ sh $zero, %lo(D_800DC518)($at)
/* 0F93AC 8028FD9C 3C01802C */ lui $at, %hi(D_802BA032) # $at, 0x802c
/* 0F93B0 8028FDA0 A420A032 */ sh $zero, %lo(D_802BA032)($at)
/* 0F93AC 8028FD9C 3C01802C */ lui $at, %hi(D_802BA030+0x2) # $at, 0x802c
/* 0F93B0 8028FDA0 A420A032 */ sh $zero, %lo(D_802BA030+0x2)($at)
/* 0F93B4 8028FDA4 3C018015 */ lui $at, %hi(D_8015011E) # $at, 0x8015
/* 0F93B8 8028FDA8 A420011E */ sh $zero, %lo(D_8015011E)($at)
/* 0F93BC 8028FDAC 3C01800E */ lui $at, %hi(gCourseTimer) # $at, 0x800e

View File

@ -9,12 +9,12 @@ glabel func_8028EF28
/* 0F8554 8028EF44 AFB30024 */ sw $s3, 0x24($sp)
/* 0F8558 8028EF48 AFB20020 */ sw $s2, 0x20($sp)
/* 0F855C 8028EF4C 3C10800F */ lui $s0, %hi(gPlayers) # $s0, 0x800f
/* 0F8560 8028EF50 3C16802C */ lui $s6, %hi(D_802BA032) # $s6, 0x802c
/* 0F8560 8028EF50 3C16802C */ lui $s6, %hi(D_802BA030+0x2) # $s6, 0x802c
/* 0F8564 8028EF54 3C17800E */ lui $s7, %hi(D_800DC510) # $s7, 0x800e
/* 0F8568 8028EF58 AFBF003C */ sw $ra, 0x3c($sp)
/* 0F856C 8028EF5C AFB1001C */ sw $s1, 0x1c($sp)
/* 0F8570 8028EF60 26F7C510 */ addiu $s7, %lo(D_800DC510) # addiu $s7, $s7, -0x3af0
/* 0F8574 8028EF64 26D6A032 */ addiu $s6, %lo(D_802BA032) # addiu $s6, $s6, -0x5fce
/* 0F8574 8028EF64 26D6A032 */ addiu $s6, %lo(D_802BA030+0x2) # addiu $s6, $s6, -0x5fce
/* 0F8578 8028EF68 26106990 */ addiu $s0, %lo(gPlayers) # addiu $s0, $s0, 0x6990
/* 0F857C 8028EF6C 00009025 */ move $s2, $zero
/* 0F8580 8028EF70 24130002 */ li $s3, 2

View File

@ -296,6 +296,7 @@ SECTIONS
END_SEG(code_8028DF00)
BEGIN_NOLOAD(code_8028DF00) {
BUILD_DIR/src/code_8028DF00.o(.bss);
BUILD_DIR/asm/bss_8028DF00.o(.bss);
}
END_NOLOAD(code_8028DF00)

View File

@ -3,8 +3,6 @@
#include "types.h"
#include "common_structs.h"
extern s16 D_802BA040[4];
extern struct Controller gControllers[];
extern struct Controller *D_800DC4BC;
extern struct Controller *D_800DC4C4;
@ -27,7 +25,6 @@ extern Player D_800DC4E0[];
extern Player D_800DC4DC[];
extern s32 lapCount[];
extern s32 D_80150120;
extern u16 D_802BA032;
extern s32 gModeSelection;
extern s32 gPlayerCountSelection1;
extern u16 D_802BA048;
@ -37,7 +34,6 @@ extern s32 D_80150124;
extern u16 D_800DC5B4;
extern u16 D_800DC5B0;
extern u16 D_800DC5B8;
extern s32 D_802BA038;
extern s32 D_800E86A0;
extern struct Controller *D_800DC4CC;
@ -49,7 +45,6 @@ extern u16 D_800DC518;
extern u16 D_8015011E;
extern float gCourseTimer;
extern float D_800DC594;
extern float D_802BA034;
extern s32 D_800DC530;
extern s32 D_8018D2AC;
extern s32 D_800DC52C;
@ -100,50 +95,39 @@ extern void func_80005AE8();
extern u16 D_8015F894;
u16 D_802BA030[2];
float D_802BA034;
s32 D_802BA038;
UNUSED s32 D_802BA03C;
s16 D_802BA040[4];
u16 D_802BA048;
// Likely bss memed need to declare controllers likely in main.c
/*
void func_8028DF00(void) {
struct Controller *controllers = (u16) &D_800F6914[0];
struct Controller *controllers = &gControllers[0];
s32 i;
for (i = 0; i < 4; i ++) {
D_802BA040[i] = controllers->unk4;
for (i = 0; i < 4; i++) {
D_802BA040[i] = controllers->button;
controllers++;
}
}
*/
GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028DF00.s")
/*
void func_8028DF38(void) {
struct Controller *controllers = &gControllers[0];
s32 i;
for (i = 0; i < 4; i++) {
D_800F6916 = (s16) ((D_802BA040 ^ D_800F6914) & D_800F6914);
D_800F6918 = (s16) ((D_802BA040 ^ D_800F6914) & D_802BA040);
D_800F6914 = (u16) temp_t6;
gPlayer2Controller.unk6 = (s16) ((D_802BA042[i] ^ gPlayer2Controller.unk4) & gPlayer2Controller.unk4);
gPlayer2Controller.unk8 = (s16) ((D_802BA042[i] ^ gPlayer2Controller.unk4;) & D_802BA042[i]);
temp_v1_2 = gPlayer2Controller.unk14;
gPlayer2Controller.unk4 = (u16) D_802BA042;
temp_v0 = &gPlayer2Controller + 0x20;
temp_v0->unk-A = (s16) ((D_802BA044 ^ temp_v1_2) & temp_v1_2);
temp_t1 = D_802BA044;
temp_v0->unk-8 = (s16) ((temp_t1 ^ temp_v1_2) & temp_t1);
temp_v1_3 = temp_v0->unk4;
temp_v0->unk-C = (s16) D_802BA044;
temp_v0->unk6 = (s16) ((D_802BA046 ^ temp_v1_3) & temp_v1_3);
temp_t9 = D_802BA046;
temp_v0->unk8 = (s16) ((temp_t9 ^ temp_v1_3) & temp_t9);
temp_v0->unk4 = (u16) D_802BA046;
controllers->buttonPressed = (controllers->button & (D_802BA040[i] ^ controllers->button));
controllers->buttonDepressed = (D_802BA040[i] & (D_802BA040[i] ^ controllers->button));
controllers->button = D_802BA040[i];
controllers++;
}
}
*/
GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028DF38.s")
void func_8028E028(void) {
@ -166,8 +150,8 @@ void func_8028E028(void) {
void func_8028E0F0(void) {
Player *ply;
s32 i;
s16 unk_arr[4];
s16 unk_arr2[4];
s16 unk_arr[4];
s16 phi_s1 = 0;
s16 phi_s2 = 0;
@ -181,18 +165,19 @@ void func_8028E0F0(void) {
}
if (D_8018D8C0[i] < 0) {
ply->unk_000 |= 0x800;
unk_arr[phi_s1] = (s16) (ply - D_800DC4DC);
unk_arr[phi_s2] = (s16) (ply - D_800DC4DC);
phi_s2++;
func_800CA118((u8) i);
} else {
unk_arr2[phi_s2] = (s16) (ply - D_800DC4DC);
phi_s2++;
unk_arr2[phi_s1] = (s16) (ply - D_800DC4DC);
phi_s1++;
}
}
if (phi_s2 == 1) {
D_800DC5E8 = (s32) unk_arr2;
if (phi_s1 == 1) {
D_800DC5E8 = (s32) unk_arr2[0];
func_8028E028();
} else if (phi_s2 == 0) {
D_800DC5E8 = (s32) unk_arr;
} else if (phi_s1 == 0) {
D_800DC5E8 = (s32) unk_arr[0];
func_8028E028();
}
}
@ -673,8 +658,8 @@ void func_8028EF28(void) {
D_80150120 = 1;
}
func_800CA118((u8)i);
if ((D_802BA032 & 0x8000) == 0) {
D_802BA032 |= 0x8000;
if ((D_802BA030[1] & 0x8000) == 0) {
D_802BA030[1] |= 0x8000;
}
if (gModeSelection == 0 && gPlayerCountSelection1 == 2 && D_802BA048 == 0) {
D_802BA048 = 1;
@ -746,8 +731,8 @@ void func_8028EF28(void) {
if ((gPlayers[i].unk_000 & 0x100) == 0) {
return;
}
if ((D_802BA032 & 0x4000) == 0) {
D_802BA032 |= 0x4000;
if ((D_802BA030[1] & 0x4000) == 0) {
D_802BA030[1] |= 0x4000;
func_800CA49C(i);
}
}