mirror of https://github.com/n64decomp/mk64.git
Matched func_8028DF00, added bss to code_8028DF00.c (#38)
* matched func_8028DF00
This commit is contained in:
parent
58fb53c2a4
commit
caaea76c42
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
1
mk64.ld
1
mk64.ld
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue