Merge pull request #195 from Kelebek1/fragment63

fragment63
This commit is contained in:
Maide 2025-04-30 01:36:07 +01:00 committed by GitHub
commit fb4c531914
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 11948 additions and 237 deletions

View File

@ -16,6 +16,8 @@ typedef unsigned int uintptr_t;
#include "string.h"
#include "math.h"
struct unk_D_86002F58_004_000_00C;
typedef struct unk_D_86002F58_004_000_00C_028 {
/* 0x00 */ char pad0[4];
/* 0x04 */ u8 unk_04;
@ -27,11 +29,6 @@ typedef struct unk_D_86002F58_004_000_00C_028 {
typedef unk_D_86002F58_004_000_00C_028* (*unk_D_86002F58_004_000_00C_028_func)(s32, s32);
typedef struct unk_D_86002F58_004_000_00C {
/* 0x00 */ char unk_00[0x28];
/* 0x28 */ unk_D_86002F58_004_000_00C_028_func unk_28;
} unk_D_86002F58_004_000_00C; // size >= 0x2C
typedef union unk_D_86002F58_004_000_010_02C {
struct {
u16 unk_00;
@ -68,9 +65,15 @@ typedef struct unk_D_86002F58_004_000_010 {
typedef struct unk_D_86002F58_004_000_004 {
/* 0x00 */ struct unk_D_86002F58_004_000_004* unk_00[4];
/* 0x04 */ unk_D_86002F58_004_000_00C* unk_04;
/* 0x08 */ unk_D_86002F58_004_000_010* unk_08;
} unk_D_86002F58_004_000_004; // size >= 0x0C
/* 0x10 */ struct unk_D_86002F58_004_000_00C* unk_10;
/* 0x14 */ unk_D_86002F58_004_000_010* unk_14;
} unk_D_86002F58_004_000_004; // size >= 0x18
typedef struct unk_D_86002F58_004_000_00C {
/* 0x00 */ unk_D_86002F58_004_000_004 unk_00;
/* 0x18 */ char unk_18[0x10];
/* 0x28 */ unk_D_86002F58_004_000_00C_028_func unk_28;
} unk_D_86002F58_004_000_00C; // size >= 0x2C
typedef struct unk_D_86002F58_004_000_000 {
/* 0x00 */ u8 unk_00;
@ -182,7 +185,7 @@ typedef struct GraphNode {
/* 0x08 */ struct GraphNode* unk_08;
/* 0x0C */ struct unk_D_86002F34_00C* unk_0C;
/* 0x10 */ func_D_86002F34_000_010 unk_10;
/* 0x14 */ unk_D_86002F34_000_014* unk_14;
/* 0x14 */ void* unk_14;
} GraphNode; // size = 0x18
typedef struct unk_D_86002F34_00C_018 {

View File

@ -616,6 +616,89 @@ extern u8 D_20180A0[];
extern u8 D_201A300[];
extern u8 D_20165C0[];
extern u8 D_2016980[];
extern u8 D_3024A00[];
extern u8 D_3013000[];
extern u8 D_3014000[];
extern u8 D_3017F00[];
extern u8 D_3018780[];
extern u8 D_30187C0[];
extern u8 D_3018700[];
extern u8 D_3018740[];
extern u8 D_3010800[];
extern u8 D_3011400[];
extern u8 D_302AA70[];
extern u8 D_302BA70[];
extern u8 D_302CA70[];
extern u8 D_302DA70[];
extern u8 D_302EA70[];
extern u8 D_30497F0[];
extern u8 D_30339F0[];
extern u8 D_3034FD0[];
extern u8 D_30365B0[];
extern u8 D_3037B90[];
extern u8 D_3039170[];
extern u8 D_303A750[];
extern u8 D_303BD30[];
extern u8 D_303D310[];
extern u8 D_303E8F0[];
extern u8 D_303FED0[];
extern u8 D_30414B0[];
extern u8 D_3042A90[];
extern u8 D_3044070[];
extern u8 D_3045650[];
extern u8 D_3046C30[];
extern u8 D_3048210[];
extern u8 D_3029270[];
extern u8 D_3029670[];
extern u8 D_3029A70[];
extern u8 D_3029E70[];
extern u8 D_302A270[];
extern u8 D_302A670[];
extern u8 D_3030A70[];
extern u8 D_3031650[];
extern u8 D_3032230[];
extern u8 D_3032E10[];
extern u8 D_3027890[];
extern u8 D_3003000[];
extern u8 D_300F000[];
extern u8 D_300FC00[];
extern u8 D_300D800[];
extern u8 D_3010000[];
extern u8 D_3016E80[];
extern u8 D_30200C0[];
extern u8 D_3004000[];
extern u8 D_3008000[];
extern u8 D_300C000[];
extern u8 D_2018000[];
extern u8 D_2021620[];
extern u8 D_2023240[];
extern u8 D_2022E40[];
extern u8 D_3016F00[];
extern u8 D_3027690[];
extern u8 D_10031D0[];
extern u8 D_3025200[];
extern u8 D_3025950[];
extern u8 D_30260A0[];
extern u8 D_30267F0[];
extern u8 D_3026F40[];
extern u8 D_3028030[];
extern u8 D_30280F0[];
extern u8 D_3027EB0[];
extern u8 D_3027F70[];
extern u8 D_30281B0[];
extern u8 D_3024800[];
extern u8 D_3020800[];
extern u8 D_3018800[];
extern u8 D_301C800[];
extern u8 D_3015100[];
extern u8 D_3015700[];
extern u8 D_3015D00[];
extern u8 D_3016300[];
extern u8 D_3016900[];
extern u8 D_3015000[];
extern u8 D_3015040[];
extern u8 D_3015080[];
extern u8 D_30150C0[];
extern LEODiskID D_800818E0;
@ -654,11 +737,12 @@ typedef struct unk_D_8006FF00 {
/* 0x04 */ char* name;
/* 0x08 */ s32 unk_08;
/* 0x0C */ u8 unk_0C;
/* 0x0D */ char unk_0D[0x3];
/* 0x0D */ u8 unk_0D;
/* 0x0E */ s16 unk_0E;
/* 0x10 */ s16 unk_10;
/* 0x12 */ s16 unk_12;
/* 0x14 */ u32 unk_14;
/* 0x18 */ char unk_18[0x4];
/* 0x18 */ u32 unk_18;
} unk_D_8006FF00; // size = 0x1C
extern unk_D_8006FF00 D_8006FF00[];
@ -709,12 +793,6 @@ extern unk_D_800A6CF4 D_800A6CF4;
extern u8 D_15C0000[];
extern Mtx D_8006F010;
extern u32 D_3010000;
extern u32 D_3016E80;
extern u32 D_30200C0;
extern u32 D_3004000;
extern u32 D_3008000;
extern u32 D_300C000;
extern u32 D_1003E78[];
extern u32 D_304F120[];

View File

@ -876,4 +876,83 @@ D_2019CC0 = 0x2019CC0;
D_20180A0 = 0x20180A0;
D_201A300 = 0x201A300;
D_20165C0 = 0x20165C0;
D_2016980 = 0x2016980;
D_2016980 = 0x2016980;
D_84B1A598 = 0x84B1A598; // size:0xB410
D_3024A00 = 0x3024A00;
D_3013000 = 0x3013000;
D_3014000 = 0x3014000;
D_3017F00 = 0x3017F00;
D_3018780 = 0x3018780;
D_30187C0 = 0x30187C0;
D_3018700 = 0x3018700;
D_3018740 = 0x3018740;
D_3010800 = 0x3010800;
D_3011400 = 0x3011400;
D_302AA70 = 0x302AA70;
D_302BA70 = 0x302BA70;
D_302CA70 = 0x302CA70;
D_302DA70 = 0x302DA70;
D_302EA70 = 0x302EA70;
D_30497F0 = 0x30497F0;
D_30339F0 = 0x30339F0;
D_3034FD0 = 0x3034FD0;
D_30365B0 = 0x30365B0;
D_3037B90 = 0x3037B90;
D_3039170 = 0x3039170;
D_303A750 = 0x303A750;
D_303BD30 = 0x303BD30;
D_303D310 = 0x303D310;
D_303E8F0 = 0x303E8F0;
D_303FED0 = 0x303FED0;
D_30414B0 = 0x30414B0;
D_3042A90 = 0x3042A90;
D_3044070 = 0x3044070;
D_3045650 = 0x3045650;
D_3046C30 = 0x3046C30;
D_3048210 = 0x3048210;
D_3029270 = 0x3029270;
D_3029670 = 0x3029670;
D_3029A70 = 0x3029A70;
D_3029E70 = 0x3029E70;
D_302A270 = 0x302A270;
D_302A670 = 0x302A670;
D_3030A70 = 0x3030A70;
D_3031650 = 0x3031650;
D_3032230 = 0x3032230;
D_3032E10 = 0x3032E10;
D_3027890 = 0x3027890;
D_3003000 = 0x3003000;
D_300F000 = 0x300F000;
D_300FC00 = 0x300FC00;
D_300D800 = 0x300D800;
D_2018000 = 0x2018000;
D_2021620 = 0x2021620;
D_2023240 = 0x2023240;
D_2022E40 = 0x2022E40;
D_3016F00 = 0x3016F00;
D_84B17550 = 0x84B17550; // size:0xB4
D_3027690 = 0x3027690;
D_10031D0 = 0x10031D0;
D_3025200 = 0x3025200;
D_3025950 = 0x3025950;
D_30260A0 = 0x30260A0;
D_30267F0 = 0x30267F0;
D_3026F40 = 0x3026F40;
D_3028030 = 0x3028030;
D_30280F0 = 0x30280F0;
D_3027EB0 = 0x3027EB0;
D_3027F70 = 0x3027F70;
D_30281B0 = 0x30281B0;
D_3024800 = 0x3024800;
D_3020800 = 0x3020800;
D_3018800 = 0x3018800;
D_301C800 = 0x301C800;
D_3015100 = 0x3015100;
D_3015700 = 0x3015700;
D_3015D00 = 0x3015D00;
D_3016300 = 0x3016300;
D_3016900 = 0x3016900;
D_3015000 = 0x3015000;
D_3015040 = 0x3015040;
D_3015080 = 0x3015080;
D_30150C0 = 0x30150C0;

View File

@ -384,4 +384,81 @@ D_20180A0 = 0x20180A0;
D_201A300 = 0x201A300;
D_20165C0 = 0x20165C0;
D_2016980 = 0x2016980;
D_200DFA0 = 0x200DFA0;
D_200DFA0 = 0x200DFA0;
D_3024A00 = 0x3024A00;
D_3013000 = 0x3013000;
D_3014000 = 0x3014000;
D_3017F00 = 0x3017F00;
D_3018780 = 0x3018780;
D_30187C0 = 0x30187C0;
D_3018700 = 0x3018700;
D_3018740 = 0x3018740;
D_3010800 = 0x3010800;
D_3011400 = 0x3011400;
D_302AA70 = 0x302AA70;
D_302BA70 = 0x302BA70;
D_302CA70 = 0x302CA70;
D_302DA70 = 0x302DA70;
D_302EA70 = 0x302EA70;
D_30497F0 = 0x30497F0;
D_30339F0 = 0x30339F0;
D_3034FD0 = 0x3034FD0;
D_30365B0 = 0x30365B0;
D_3037B90 = 0x3037B90;
D_3039170 = 0x3039170;
D_303A750 = 0x303A750;
D_303BD30 = 0x303BD30;
D_303D310 = 0x303D310;
D_303E8F0 = 0x303E8F0;
D_303FED0 = 0x303FED0;
D_30414B0 = 0x30414B0;
D_3042A90 = 0x3042A90;
D_3044070 = 0x3044070;
D_3045650 = 0x3045650;
D_3046C30 = 0x3046C30;
D_3048210 = 0x3048210;
D_3029270 = 0x3029270;
D_3029670 = 0x3029670;
D_3029A70 = 0x3029A70;
D_3029E70 = 0x3029E70;
D_302A270 = 0x302A270;
D_302A670 = 0x302A670;
D_3030A70 = 0x3030A70;
D_3031650 = 0x3031650;
D_3032230 = 0x3032230;
D_3032E10 = 0x3032E10;
D_3027890 = 0x3027890;
D_3003000 = 0x3003000;
D_300F000 = 0x300F000;
D_300FC00 = 0x300FC00;
D_300D800 = 0x300D800;
D_2018000 = 0x2018000;
D_2021620 = 0x2021620;
D_2023240 = 0x2023240;
D_2022E40 = 0x2022E40;
D_3016F00 = 0x3016F00;
D_3027690 = 0x3027690;
D_10031D0 = 0x10031D0;
D_3025200 = 0x3025200;
D_3025950 = 0x3025950;
D_30260A0 = 0x30260A0;
D_30267F0 = 0x30267F0;
D_3026F40 = 0x3026F40;
D_3028030 = 0x3028030;
D_30280F0 = 0x30280F0;
D_3027EB0 = 0x3027EB0;
D_3027F70 = 0x3027F70;
D_30281B0 = 0x30281B0;
D_3024800 = 0x3024800;
D_3020800 = 0x3020800;
D_3018800 = 0x3018800;
D_301C800 = 0x301C800;
D_3015100 = 0x3015100;
D_3015700 = 0x3015700;
D_3015D00 = 0x3015D00;
D_3016300 = 0x3016300;
D_3016900 = 0x3016900;
D_3015000 = 0x3015000;
D_3015040 = 0x3015040;
D_3015080 = 0x3015080;
D_30150C0 = 0x30150C0;

View File

@ -17,7 +17,7 @@ void func_80010FA0(GraphNode* arg0, u8 arg1) {
}
}
void func_80010FDC(GraphNode* arg0, func_D_86002F34_000_010 arg1, unk_D_86002F34_000_014* arg2) {
void func_80010FDC(GraphNode* arg0, func_D_86002F34_000_010 arg1, void* arg2) {
if (arg1 != NULL) {
arg1 = Util_ConvertAddrToVirtAddr(arg1);
}

View File

@ -21,7 +21,7 @@ typedef struct unk_D_8690A610 {
} unk_D_8690A610; // size = 0x20
void func_80010FA0(GraphNode* arg0, u8 arg1);
void func_80010FDC(GraphNode* arg0, func_D_86002F34_000_010 arg1, unk_D_86002F34_000_014* arg2);
void func_80010FDC(GraphNode* arg0, func_D_86002F34_000_010 arg1, void* arg2);
GraphNode* func_8001103C(MainPoolState* arg0, GraphNode* arg1);
unk_D_86002F34_alt2* func_80011088(MainPoolState* arg0, unk_D_86002F34_alt2* arg1, GraphNode* arg2);
unk_D_86002F34_00C* func_800110E0(MemoryBlock* arg0, unk_D_86002F34_00C* arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5);

View File

@ -57,11 +57,32 @@ typedef struct unk_func_8001A024 {
/* 0x18 */ unk_D_8006FF00* unk_18;
} unk_func_8001A024; // size = 0x1C
typedef struct unk_D_84B25A28 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ u8 unk_02;
/* 0x04 */ unk_D_86002F58_004_000* unk_04;
/* 0x08 */ unk_D_86002F34_00C* unk_08;
/* 0x0C */ GraphNode* unk_0C;
/* 0x10 */ GraphNode* unk_10;
/* 0x14 */ GraphNode* unk_14;
/* 0x18 */ GraphNode* unk_18;
/* 0x1C */ GraphNode* unk_1C;
/* 0x20 */ unk_func_8001A024* unk_20;
/* 0x24 */ unk_D_80068BB0* unk_24;
/* 0x28 */ unk_D_80068BB0* unk_28;
/* 0x2C */ char unk2C[0x4];
} unk_D_84B25A28; // size = 0x30
unk_func_8001A024* func_8001A024(unk_D_86002F58_004_000_010*, s16, s16, s16);
void func_8001A1D0(unk_func_8001A024*, unk_D_86002F58_004_000_010*, unk_D_80068BB0*);
void func_8001A250(unk_func_8001A024*, unk_D_8006FF00*);
void func_8001A324(unk_func_8001A024*, s32, s32, u16);
void func_8001A46C(unk_func_8001A024*, s32, unk_func_80026268_arg0*, s32);
void func_8001AA18(unk_func_8001A024*, s32, unk_D_84B25A28*);
s32 func_8001ABAC(unk_func_8001A024*, s32);
void* func_8001AFD8(unk_func_8001A024*, s32);
s32 func_8001B010(unk_func_8001A024*);
void func_8001B058(void);
void func_8001B0DC(u16*, s32, unk_func_80026268_arg0*);
unk_func_8001B1FC* func_8001B1FC(unk_D_86002F58_004_000_010*, s16, s16, s16, s16, s16, s16, u8*);

View File

@ -459,7 +459,7 @@ void func_86900410(void) {
void func_86900484(s32 arg0) {
MemoryBlock* sp1C;
FragmentEntry sp18;
unk_D_86002F58_004_000_000* temp_v0;
u32* temp_v0;
unk_D_8690A610_018* temp_v1;
main_pool_push_state('BACK');

View File

@ -148,7 +148,7 @@ void func_86A0003C(u8 r, u8 g, u8 b) {
void func_86A000B4(s8 arg0, u8 arg1) {
MemoryBlock* sp2C;
FragmentEntry sp28;
unk_D_86002F58_004_000_000* temp_v0;
u32* temp_v0;
unk_D_8690A610_018* temp_v0_4;
while (func_80001C90() == 0) {}

View File

@ -16,7 +16,8 @@
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F1D60/func_843075D0.s")
void func_84307630(void) {}
void func_84307630(void) {
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F1D60/func_84307638.s")

View File

@ -0,0 +1,389 @@
#ifndef _FRAGMENT63_H_
#define _FRAGMENT63_H_
#include "global.h"
#include "src/3FB0.h"
#include "src/1AB70.h"
#include "src/geo_layout.h"
typedef struct unk_D_84B19910_002 {
/* 0x02 */ s16 unk_00;
/* 0x04 */ s16 unk_02;
/* 0x06 */ s16 unk_04;
} unk_D_84B19910_002;
typedef struct unk_D_84B19910 {
/* 0x00 */ s16 unk_00;
/* 0x02 */ unk_D_84B19910_002 unk_02;
///* 0x02 */ s16 unk_02;
///* 0x04 */ s16 unk_04;
///* 0x06 */ s16 unk_06;
} unk_D_84B19910; // size = 0x8
typedef struct unk_D_84B1A598 {
/* 0x0000 */ char unk0000[0x1];
/* 0x0001 */ u8 unk_0001;
/* 0x0002 */ u8 unk_0002;
/* 0x0003 */ u8 unk_0003;
/* 0x0004 */ GraphNode* unk_0004;
/* 0x0008 */ unk_D_86002F58_004_000 unk_0008[128];
/* 0xB408 */ BinArchive* unk_B408;
/* 0xB40C */ BinArchive* unk_B40C;
} unk_D_84B1A598; // size >= 0xB410
typedef struct unk_D_84B2665C {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ s16 unk_02;
/* 0x04 */ s16 unk_04;
/* 0x06 */ char unk06[0x2];
} unk_D_84B2665C; // size >= 0x8
typedef struct unk_D_84B259A8 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ s16 unk_02[5];
/* 0x0C */ void* unk_0C;
/* 0x10 */ void* unk_10;
/* 0x14 */ void* unk_14;
/* 0x18 */ void* unk_18;
/* 0x1C */ void* unk_1C;
/* 0x20 */ unk_D_86002F58_004_000* unk_20;
/* 0x24 */ unk_D_86002F34* unk_24;
/* 0x28 */ unk_D_86002F34* unk_28;
/* 0x2C */ unk_D_86002F34* unk_2C;
/* 0x30 */ unk_D_86002F34* unk_30;
/* 0x34 */ unk_D_86002F34* unk_34;
/* 0x38 */ unk_D_86002F34* unk_38;
/* 0x3C */ char unk3C[0x4];
} unk_D_84B259A8; // size >= 0x40
typedef struct unk_D_84B259E8 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ u8 unk_02;
/* 0x04 */ s32 unk_04;
/* 0x08 */ unk_D_86002F58_004_000* unk_08;
/* 0x0C */ GraphNode* unk_0C;
/* 0x10 */ u8* unk_10[4];
/* 0x20 */ char unk20[0x10];
/* 0x30 */ unk_D_80068BB0* unk_30[4];
} unk_D_84B259E8; // size >= 0x40
typedef struct unk_D_84B25A58 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ u8 unk_02;
/* 0x04 */ unk_D_86002F58_004_000* unk_04;
/* 0x08 */ unk_D_86002F34* unk_08;
/* 0x0C */ unk_D_86002F34* unk_0C;
/* 0x10 */ unk_D_86002F34* unk_10;
/* 0x14 */ unk_D_86002F34* unk_14;
/* 0x18 */ unk_D_86002F34* unk_18;
/* 0x1C */ unk_func_8001A024* unk_1C;
/* 0x20 */ u16 (*unk_20)[0x640];
/* 0x24 */ unk_D_80068BB0* unk_24;
/* 0x28 */ unk_D_80068BB0* unk_28;
/* 0x2C */ u8 unk_2C[12];
} unk_D_84B25A58; // size = 0x38
typedef struct unk_D_84B25A90 {
/* 0x00 */ u8 unk_00;
/* 0x00 */ u8 unk_01;
/* 0x04 */ unk_D_86002F58_004_000* unk_04;
/* 0x08 */ unk_D_86002F34* unk_08;
/* 0x0C */ unk_D_86002F34* unk_0C;
/* 0x10 */ unk_D_86002F34* unk_10;
/* 0x14 */ unk_D_86002F34* unk_14;
/* 0x18 */ unk_D_86002F34* unk_18;
/* 0x1C */ u8* unk_1C;
/* 0x20 */ u8* unk_20;
/* 0x24 */ u8** unk_24;
/* 0x28 */ s8 unk_28[4];
/* 0x2C */ char unk2C[0x4];
} unk_D_84B25A90; // size = 0x30
typedef struct unk_D_84B25AC0_000 {
/* 0x00 */ unk_D_86002F58_004_000* unk_00;
/* 0x04 */ s16 unk_04;
/* 0x06 */ s16 unk_06;
/* 0x08 */ Color_RGB8 unk_08;
/* 0x0C */ u8* unk_0C;
} unk_D_84B25AC0_000; // size = 0x10
typedef struct unk_D_84B25AC0_0A0 {
/* 0x00 */ unk_D_86002F58_004_000* unk_00;
/* 0x04 */ s16 unk_04;
/* 0x06 */ s16 unk_06;
/* 0x08 */ s16 unk_08;
/* 0x0A */ Color_RGBA8 unk_0A;
} unk_D_84B25AC0_0A0; // size = 0x10
typedef struct unk_D_84B25AC0 {
/* 0x000 */ unk_D_84B25AC0_000 unk_000[10];
/* 0x0A0 */ unk_D_84B25AC0_0A0 unk_0A0[10][8];
/* 0x5A0 */ u8 unk_5A0;
/* 0x5A1 */ s8 unk_5A1;
/* 0x5A2 */ s8 unk_5A2;
/* 0x5A3 */ s8 unk_5A3;
/* 0x5A4 */ f32 unk_5A4;
/* 0x5A8 */ unk_D_86002F58_004_000* unk_5A8;
/* 0x5AC */ unk_D_86002F58_004_000* unk_5AC;
/* 0x5B0 */ unk_D_86002F34* unk_5B0;
/* 0x5B4 */ unk_D_86002F34* unk_5B4;
/* 0x5B8 */ unk_D_86002F34* unk_5B8;
/* 0x5BC */ char unk5BC[0x4];
} unk_D_84B25AC0; // size = 0x5C0
typedef struct unk_D_84B26640_010_010 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ s8 unk_01;
/* 0x02 */ s8 unk_02;
/* 0x04 */ unk_D_86002F58_004_000* unk_04;
/* 0x08 */ unk_D_86002F34* unk_08;
} unk_D_84B26640_010; // size = 0xC
typedef struct unk_D_84B26640 {
/* 0x00 */ unk_D_84B26640_010 unk_00;
/* 0x00 */ char unk0C[0x4];
/* 0x00 */ unk_D_84B26640_010 unk_10;
/* 0x00 */ unk_D_84B2665C unk_1C;
/* 0x00 */ unk_D_84B2665C unk_28;
} unk_D_84B26640; // size = 0x30
typedef struct unk_func_84B067B4 {
/* 0x000 */ char unk00[0x10];
/* 0x010 */ char unk_010[4];
/* 0x014 */ char unk14[0x24];
/* 0x038 */ u16 unk_038;
/* 0x03A */ char unk03A[0x1F6];
} unk_func_84B067B4; // size = 0x230
typedef struct unk_D_84B17550 {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ s16 unk_04;
/* 0x06 */ s16 unk_06;
/* 0x08 */ s16 unk_08;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ s16 unk_0C;
/* 0x0E */ s16 unk_0E;
/* 0x10 */ s16 unk_10;
} unk_D_84B17550; // size = 0x12
extern unk_D_8006FF00 D_84B17620[];
extern unk_D_8006FF00 D_84B186C0[];
void func_84B00020(void);
void func_84B000F0(void);
void func_84B001D8(void);
void func_84B00280(void);
char* func_84B0037C(s32);
char* func_84B003AC(char* arg0, s32 arg1, u32 arg2);
s32 func_84B003D4(s32 arg0, unk_D_86002F34_alt8* arg1);
void func_84B00404(unk_D_86002F58_004_000* arg0);
void func_84B00478(void);
void func_84B0053C(s16, s16, s16, s16, u8, u8, u8, u8);
void func_84B00D3C(unk_D_80068BB0*, s16, u8*, u8*);
void func_84B0117C(s16 arg0);
void func_84B01474(s16 arg0);
void func_84B014DC(void);
void func_84B01538(void);
s32 func_84B01578(void);
void func_84B016F4(void);
void func_84B0174C(void);
s32 func_84B017AC(void);
void func_84B01994(void);
void func_84B01AA0(void);
void func_84B01B40(void);
void func_84B01C2C(void);
void func_84B01DBC(void);
void func_84B01F94(void);
void func_84B0204C(void);
void func_84B02188(void);
void func_84B021FC(void);
s32 func_84B022A0(void);
s32 func_84B023C0(void);
s32 func_84B02474(void);
s32 func_84B025D0(void);
s32 func_84B02654(void);
s32 func_84B02984(void);
s32 func_84B02C40(void);
u8 func_84B02DF8(void);
s32 func_84B02E5C(void);
s32 func_84B02F60(void);
void func_84B03064(void);
s32 func_84B03194(s32 arg0, UNUSED s32 arg1);
s16 func_84B033E0(void);
void func_84B0345C(unk_D_84B19910* arg0);
void func_84B03814(unk_D_84B19910* arg0);
void func_84B038F8(unk_D_84B19910* arg0);
s32 func_84B03A10(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B03AB4(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B03B58(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B03C20(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B03CC4(s32 arg0, unk_D_86002F34_alt5* arg1);
void func_84B03D08(unk_D_84B259A8* arg0, s16 arg1);
void func_84B03D74(unk_D_84B259A8* arg0, s16 arg1);
void func_84B03F10(unk_D_84B259A8* arg0, s16 arg1);
void func_84B040AC(unk_D_84B259A8* arg0, s16 arg1);
void func_84B04364(unk_D_84B259A8* arg0, s16 arg1);
void func_84B04628(unk_D_84B259A8* arg0);
void func_84B04798(unk_D_84B259A8* arg0);
void func_84B0492C(unk_D_84B259A8* arg0);
void func_84B04A7C(unk_D_84B259A8* arg0);
void func_84B04AE4(unk_D_84B259A8* arg0, s16 arg1, s16 arg2);
void func_84B04B5C(unk_D_84B259A8* arg0, s16 arg1, s16 arg2, s16 arg3);
void func_84B04CCC(unk_D_84B259A8* arg0, s16 arg1);
void func_84B04DB0(unk_D_84B259A8* arg0, s16 arg1);
void func_84B04E94(unk_D_84B259A8* arg0, s16 arg1);
void func_84B04F78(unk_D_84B259A8* arg0, unk_D_86002F58_004_000* arg1);
void func_84B0509C(unk_D_84B259A8* arg0);
void func_84B050AC(unk_D_84B259A8* arg0, unk_D_86002F58_004_000* arg1);
void func_84B05184(unk_D_84B259A8* arg0);
void func_84B0535C(unk_D_84B259A8* arg0);
void func_84B053F4(unk_D_84B259A8* arg0);
void func_84B055B8(unk_D_86002F34* arg0, Color_RGBA8* arg1, Color_RGBA8* arg2);
void func_84B05668(unk_D_84B259A8* arg0);
void func_84B05728(unk_D_84B259A8* arg0);
s32 func_84B05760(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B05844(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B05A2C(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B05B04(s32 arg0, unk_func_80011B94* arg1);
void func_84B05CE0(s32 arg0);
void func_84B05DD0(unk_D_84B259E8* arg0);
void func_84B05E64(unk_D_84B259E8* arg0);
void func_84B05F18(unk_D_84B259E8* arg0);
void func_84B05FCC(unk_D_84B259E8* arg0);
void func_84B06204(unk_D_84B259E8* arg0);
void func_84B062E4(unk_D_84B259E8* arg0);
void func_84B06364(unk_D_84B259E8* arg0, unk_D_86002F58_004_000* arg1, s16 arg2);
void func_84B064FC(unk_D_84B259E8* arg0, s16 arg1, char* arg2);
s32 func_84B06720(s32* arg0);
void func_84B067B4(unk_D_84B259E8* arg0, BinArchive* arg1, BinArchive* arg2);
void func_84B06A54(unk_D_84B259E8* arg0, BinArchive* arg1, BinArchive* arg2);
s32 func_84B06B50(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B06C7C(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B06E08(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B06ED0(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B06F60(unk_D_84B25A28* arg0, s16 arg1);
void func_84B07058(unk_D_84B25A28* arg0, s16 arg1);
s32 func_84B070EC(unk_D_84B25A28* arg0, s16 arg1);
s32 func_84B071C0(unk_D_84B25A28* arg0, s16 arg1);
void func_84B07294(unk_D_84B25A28* arg0);
void func_84B07370(unk_D_84B25A28* arg0);
void func_84B073D8(unk_D_84B25A28* arg0);
void func_84B07428(unk_D_84B25A28* arg0);
void func_84B07560(unk_D_84B25A28* arg0);
void func_84B07758(unk_D_84B25A28* arg0, BinArchive* arg1);
void func_84B07848(unk_D_84B25A28* arg0);
void func_84B07978(unk_D_84B25A28* arg0);
s32 func_84B07AB8(unk_D_84B25A28* arg0, unk_D_86002F58_004_000* arg1);
void func_84B07CF8(unk_D_84B25A28* arg0, unk_D_86002F34_00C* arg1);
s32 func_84B07EB0(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B07F78(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B080F4(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B08230(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B083D8(s32 arg0, unk_func_80011B94* arg1);
void func_84B0852C(unk_D_84B25A58* arg0, s32 arg1);
void func_84B08694(unk_D_84B25A58* arg0, s32 arg1);
void func_84B08858(unk_D_84B25A58* arg0, s32 arg1);
void func_84B08954(unk_D_84B25A58* arg0, s32 arg1);
void func_84B08A90(unk_D_84B25A58* arg0);
void func_84B08BFC(unk_D_84B25A58* arg0);
void func_84B08D54(unk_D_84B25A58* arg0);
void func_84B08F7C(unk_D_84B25A58* arg0);
void func_84B091A0(unk_D_84B25A58* arg0, s16 arg1);
void func_84B09268(unk_D_84B25A58* arg0, s16 arg1);
void func_84B09354(unk_D_84B25A58* arg0, s16 arg1);
void func_84B09444(unk_D_84B25A58* arg0, s16 arg1);
void func_84B09534(unk_D_84B25A58* arg0, s16 arg1);
void func_84B0962C(unk_D_84B25A58* arg0, s16 arg1);
void func_84B09720(unk_D_84B25A58* arg0, s16 arg1);
void func_84B099D8(unk_D_84B25A58* arg0, s16 arg1);
void func_84B09F60(unk_D_84B25A58* arg0);
void func_84B0A18C(unk_D_84B25A58* arg0);
void func_84B0A1F4(unk_D_84B25A58* arg0);
void func_84B0A244(unk_D_84B25A58* arg0);
void func_84B0A36C(unk_D_84B25A58* arg0);
void func_84B0A544(unk_D_84B25A58* arg0, BinArchive* arg1);
s32 func_84B0A634(unk_D_84B25A58* arg0, unk_D_86002F58_004_000* arg1);
void func_84B0A738(unk_D_84B25A58* arg0);
void func_84B0A82C(unk_D_84B25A58* arg0);
void func_84B0A9D0(unk_D_84B25A58* arg0);
s32 func_84B0AC60(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B0AD48(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B0AE30(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B0AF48(s32 arg0, unk_func_80011B94* arg1);
void func_84B0B054(void);
void func_84B0B05C(unk_D_84B25A90* arg0);
void func_84B0B228(unk_D_84B25A90* arg0);
void func_84B0B6EC(unk_D_84B25A90* arg0, unk_D_86002F58_004_000* arg1, s16 arg2);
void func_84B0B7F4(unk_D_84B25A90* arg0);
void func_84B0B984(unk_D_84B25A90* arg0);
void func_84B0BBEC(unk_D_84B25A90* arg0);
void func_84B0BC6C(unk_D_84B25A90* arg0, unk_D_86002F58_004_000* arg1);
void func_84B0BDCC(unk_D_84B25A90* arg0);
void func_84B0BE28(unk_D_84B25A90* arg0);
s32 func_84B0BF10(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B0BFE4(s32 arg0, unk_func_80011B94* arg1);
s32 func_84B0C094(s32 arg0, unk_func_80011B94* arg1);
void func_84B0C174(unk_D_84B25AC0_000* arg0, unk_D_86002F34* arg1, s16 arg2, s16 arg3, s16 arg4);
void func_84B0C278(unk_D_84B25AC0_000* arg0);
s32 func_84B0C3A4(s32 arg0, unk_func_80011B94* arg1);
void func_84B0C45C(unk_D_84B25AC0_0A0* arg0, unk_D_86002F34* arg1, s16 arg2, s16 arg3, s16 arg4);
void func_84B0C534(unk_D_84B25AC0_0A0* arg0, unk_D_84B25AC0_0A0* arg1);
void func_84B0C5E4(unk_D_84B25AC0_0A0* arg0, unk_D_84B25AC0_0A0* arg1, s16 arg2);
void func_84B0C6B4(unk_D_84B25AC0_0A0* arg0, unk_D_86002F34* arg1, Vec3f* arg2);
void func_84B0C7D0(unk_D_84B25AC0_0A0* arg0);
void func_84B0CA34(unk_D_84B25AC0_0A0* arg0);
void func_84B0CACC(unk_D_84B25AC0_0A0* arg0);
void func_84B0CBCC(unk_D_84B25AC0_0A0* arg0);
void func_84B0CC7C(unk_D_84B25AC0_0A0* arg0);
void func_84B0CCFC(unk_D_84B25AC0* arg0);
void func_84B0CDEC(unk_D_84B25AC0* arg0);
void func_84B0D194(unk_D_84B25AC0* arg0);
void func_84B0D31C(unk_D_84B25AC0* arg0);
void func_84B0D3E4(unk_D_84B25AC0* arg0);
void func_84B0D450(unk_D_84B25AC0* arg0);
void func_84B0D4B4(unk_D_84B25AC0* arg0);
void func_84B0D54C(unk_D_84B25AC0* arg0, unk_D_86002F58_004_000* arg1, unk_D_86002F58_004_000* arg2);
void func_84B0D718(unk_D_84B25AC0* arg0);
void func_84B0D7A8(unk_D_84B25AC0* arg0, s8 arg1, s8 arg2);
void func_84B0D870(unk_D_84B26640_010* arg0);
void func_84B0D878(unk_D_84B26640_010* arg0);
void func_84B0D8F0(unk_D_84B26640_010* arg0);
void func_84B0D970(unk_D_84B26640_010* arg0);
void func_84B0D9D8(unk_D_84B26640_010* arg0, unk_D_86002F58_004_000* arg1);
void func_84B0DA90(unk_D_84B26640_010* arg0);
void func_84B0DAA4(unk_D_84B26640_010* arg0, u8 arg1);
void func_84B0DB30(unk_D_84B2665C* arg0, s16 arg1, s16 arg2);
void func_84B0DD5C(unk_D_84B2665C* arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4, s8* arg5);
void func_84B0DE04(unk_D_84B2665C* arg0, unk_D_84B17550* arg1);
void func_84B0DF70(unk_D_84B2665C* arg0, unk_D_84B17550* arg1);
void func_84B0E198(unk_D_84B2665C* arg0, unk_D_84B17550* arg1);
void func_84B0E2D8(unk_D_84B2665C* arg0, unk_D_84B17550* arg1);
void func_84B0E424(unk_D_84B2665C* arg0, unk_D_84B17550* arg1);
void func_84B0E50C(unk_D_84B2665C* arg0, unk_D_84B17550* arg1);
void func_84B0E718(unk_D_84B2665C* arg0, unk_D_84B17550* arg1);
void func_84B0E948(s16 arg0, s16 arg1, unk_D_800AE540_1194* arg2);
void func_84B0EC18(unk_D_800AE540_1194* arg0);
void func_84B0ECE8(unk_D_84B2665C* arg0, unk_D_84B17550* arg1);
void func_84B0EF14(unk_D_84B2665C* arg0, unk_D_84B17550* arg1);
void func_84B0F464(unk_D_84B2665C* arg0);
void func_84B0F6C4(unk_D_84B2665C* arg0);
void func_84B0F888(unk_D_84B2665C* arg0);
void func_84B0F8BC(unk_D_84B2665C* arg0);
void func_84B0F8E8(unk_D_84B2665C* arg0);
void func_84B0F950(unk_D_84B2665C* arg0, s16 arg1);
void func_84B0FACC(unk_D_84B2665C* arg0);
s32 func_84B0FADC(unk_D_84B2665C* arg0);
#endif // _FRAGMENT63_H_

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,88 @@
#include "global.h"
#include "fragment63.h"
#include "src/1CF30.h"
#include "src/6A40.h"
#include "src/math_util.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3974E0/func_84B033E0.s")
s16 func_84B033E0(void) {
f32 temp_fv0 = MathUtil_Random_ZeroOne();
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3974E0/func_84B0345C.s")
if (temp_fv0 >= 0.5f) {
temp_fv0 = (temp_fv0 - 0.5f) * 4000.0f;
} else {
temp_fv0 = (temp_fv0 - 0.5f) * 4000.0f;
}
return temp_fv0;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3974E0/func_84B03814.s")
void func_84B0345C(unk_D_84B19910* arg0) {
Vtx* temp_v0_12;
s32 i;
unk_D_84B19910_002* ptr2;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3974E0/func_84B038F8.s")
gDPPipeSync(gDisplayListHead++);
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_PASS2);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gDPLoadTextureBlock(gDisplayListHead++, D_3024A00, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
for (i = 0; i < 400; i++) {
temp_v0_12 = func_80005F5C(sizeof(Vtx) * 4);
if (temp_v0_12 != NULL) {
ptr2 = &(i + ((void)0, arg0))->unk_02;
func_8001E680(&temp_v0_12[0], ptr2->unk_00 - 8, ptr2->unk_02 + 8, ptr2->unk_04, 0, 0, 0xFF, 0xFF, 0x96,
0xFF);
func_8001E680(&temp_v0_12[1], ptr2->unk_00 - 8, ptr2->unk_02 - 8, ptr2->unk_04, 0, 0x400, 0xFF, 0xFF, 0x96,
0xFF);
func_8001E680(&temp_v0_12[2], ptr2->unk_00 + 8, ptr2->unk_02 - 8, ptr2->unk_04, 0x400, 0x400, 0xFF, 0xFF,
0x96, 0xFF);
func_8001E680(&temp_v0_12[3], ptr2->unk_00 + 8, ptr2->unk_02 + 8, ptr2->unk_04, 0x400, 0, 0xFF, 0xFF, 0x96,
0xFF);
gSPVertex(gDisplayListHead++, temp_v0_12, 4, 0);
gSP2Triangles(gDisplayListHead++, 0, 1, 2, 0, 0, 2, 3, 0);
}
}
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF);
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}
void func_84B03814(unk_D_84B19910* arg0) {
s32 temp_s0;
s32 temp_v0;
s32 i;
for (i = 0; i < 400; i++) {
arg0[i].unk_02.unk_04 += 0x64;
if (arg0[i].unk_02.unk_04 > 0) {
do {
temp_s0 = func_84B033E0();
temp_v0 = func_84B033E0();
} while ((SQ(temp_s0) + SQ(temp_v0)) < 0x6400);
arg0[i].unk_02.unk_00 = temp_s0;
arg0[i].unk_02.unk_02 = temp_v0;
arg0[i].unk_02.unk_04 = (-MathUtil_Random_ZeroOne() * 500.0f) - 5000.0f;
}
}
}
void func_84B038F8(unk_D_84B19910* arg0) {
s32 temp_s0;
s32 temp_v0;
s32 i;
for (i = 0; i < 400; i++) {
do {
temp_s0 = func_84B033E0();
temp_v0 = func_84B033E0();
} while ((SQ(temp_s0) + SQ(temp_v0)) < 0x6400);
arg0[i].unk_02.unk_00 = temp_s0;
arg0[i].unk_02.unk_02 = temp_v0;
arg0[i].unk_02.unk_04 = (-MathUtil_Random_ZeroOne() * 5000.0f) - 100.0f;
arg0[i + 1].unk_00 = (MathUtil_Random_ZeroOne() * 10.0f) + 20.0f;
}
*(s8*)&arg0->unk_00 = 1;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,470 @@
#include "fragment63.h"
#include "src/12D80.h"
#include "src/19840.h"
#include "src/1C720.h"
#include "src/20470.h"
#include "src/4CBC0.h"
#include "src/6BC0.h"
#include "src/F420.h"
#include "src/math_util.h"
#include "src/memmap.h"
#include "src/memory.h"
static s16 D_84B16390[] = { -0x60, -0x20, 0x20, 0x60, -0x60, -0x20, 0x20, 0x60 };
static s16 D_84B163A0[] = { 0x30, 0x30, 0x30, 0x30, -0x30, -0x30, -0x30, -0x30 };
static f32 D_84B163B0[] = { 0.1f, 0.3f, 0.5f, 0.7f, 0.9f, 1.0f, 1.0f, 0.9f, 0.7f, 0.5f, 0.3f, 0.1f };
static Vtx D_84B163E0[] = {
VTX(-32, 48, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, 16, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(32, 16, 0, 2048, 1024, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, 48, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-32, 16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, -16, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(32, -16, 0, 2048, 1024, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, 16, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-32, -16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, -48, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(32, -48, 0, 2048, 1024, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, -16, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B164A0[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, COMBINED, 0, PRIM_LOD_FRAC, 0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B163E0, 12, 0),
gsDPLoadTextureBlock(0x0F000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsDPLoadTextureBlock(0x0F001000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
gsDPLoadTextureBlock(0x0F002000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
gsSPEndDisplayList(),
};
static u32 D_84B16588[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B163E0, 0x05000000, 0x22010000,
0x00000000, 0x08000000, func_84B0AC60, D_84B164A0, 0x06000000, 0x01000000, 0x00000000,
};
static Vtx D_84B165C0[] = {
VTX(-24, 25, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-24, 0, 0, 0, 800, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(24, 0, 0, 1536, 800, 0xFF, 0xFF, 0xFF, 0xFF), VTX(24, 25, 0, 1536, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-24, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-24, -25, 0, 0, 800, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(24, -25, 0, 1536, 800, 0xFF, 0xFF, 0xFF, 0xFF), VTX(24, 0, 0, 1536, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B16640[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, COMBINED, 0, PRIM_LOD_FRAC, 0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B165C0, 8, 0),
gsDPLoadTextureBlock(0x0F000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 48, 25, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsDPLoadTextureBlock(0x0F000960, G_IM_FMT_RGBA, G_IM_SIZ_16b, 48, 25, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
gsSPEndDisplayList(),
};
static u32 D_84B166E8[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B165C0, 0x05000000, 0x1B000000,
0x00000000, 0x00000000, 0x00050000, 0x05000000, 0x22050000, 0x00000000, 0x08000000,
func_84B0AD48, D_84B16640, 0x06000000, 0x06000000, 0x01000000, 0x00000000,
};
static Vtx D_84B16738[] = {
VTX(-16, 16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-16, -16, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(16, -16, 0, 1024, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(16, 16, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B16778[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_PASS2),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B16738, 4, 0),
gsDPLoadTextureBlock_4b(0x0F000000, G_IM_FMT_I, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP,
5, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList(),
};
static u32 D_84B167E0[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B16738, 0x05000000, 0x22050000,
0x00000000, 0x08000000, func_84B0AE30, D_84B16778, 0x06000000, 0x01000000, 0x00000000,
};
static Vtx D_84B16818[] = {
VTX(-32, 32, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, 0, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(32, 0, 0, 2048, 1024, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, 32, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-32, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, -32, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(32, -32, 0, 2048, 1024, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, 0, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B16898[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineLERP(PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, COMBINED, 0, 0,
0, COMBINED),
gsDPSetPrimColor(0, 0, 0, 255, 255, 255),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B16818, 8, 0),
gsDPLoadTextureBlock_4b(0x02022640, G_IM_FMT_I, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP,
6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsDPLoadTextureBlock_4b(0x02022A40, G_IM_FMT_I, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP,
6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
gsSPEndDisplayList(),
};
static u32 D_84B16948[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B16818, 0x05000000, 0x22050000,
0x00000000, 0x08000000, func_84B0AF48, D_84B16898, 0x06000000, 0x01000000, 0x00000000,
};
static Vtx D_84B16980[] = {
VTX(-16, 16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-16, -16, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(16, -16, 0, 1024, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(16, 16, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B169C0[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineLERP(PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED, 0, 0, 0,
COMBINED),
gsDPSetEnvColor(255, 255, 0, 255),
gsDPSetPrimColor(0, 0, 255, 255, 255, 255),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B16980, 4, 0),
gsDPLoadTextureBlock(D_2022E40, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList(),
};
static u32 D_84B16A38[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B16980, 0x05000000,
0x22050000, D_84B169C0, 0x25000000, 0x06000000, 0x01000000,
};
s32 func_84B0AC60(s32 arg0, unk_func_80011B94* arg1) {
unk_D_84B25A90* temp_v0;
s32 tmp;
if (arg0 == 5) {
temp_v0 = (unk_D_84B25A90*)D_8006F09C->unk_000.unk_14;
tmp = (D_8006F09C->unk_0A6 - temp_v0->unk_04->unk_0A6) % 8;
gDPPipeSync(gDisplayListHead++);
gSPSegment(gDisplayListHead++, 0x0F,
(u32)Memmap_GetSegmentVaddr(*(s32*)(temp_v0->unk_1C + tmp * 4)) & 0x1FFFFFFF);
gSPDisplayList(gDisplayListHead++, arg1->unk_00.unk_14);
func_80015684();
}
return 0;
}
s32 func_84B0AD48(s32 arg0, unk_func_80011B94* arg1) {
unk_D_84B25A90* temp_v0;
s32 tmp;
if (arg0 == 5) {
temp_v0 = (unk_D_84B25A90*)D_8006F09C->unk_000.unk_14;
tmp = (D_8006F09C->unk_0A6 - temp_v0->unk_04->unk_0A6) % 8;
gDPPipeSync(gDisplayListHead++);
gSPSegment(gDisplayListHead++, 0x0F,
(u32)Memmap_GetSegmentVaddr(*(s32*)(temp_v0->unk_20 + tmp * 4)) & 0x1FFFFFFF);
gSPDisplayList(gDisplayListHead++, arg1->unk_00.unk_14);
func_80015684();
}
return 0;
}
s32 func_84B0AE30(s32 arg0, unk_func_80011B94* arg1) {
unk_D_84B25A90* temp_a3;
s32 tmp;
if (arg0 == 5) {
temp_a3 = (unk_D_84B25A90*)D_8006F09C->unk_000.unk_14;
tmp = (D_8006F09C->unk_0A6 - temp_a3->unk_04->unk_0A6) - 0x10;
if (temp_a3->unk_28[tmp] >= 0) {
gDPPipeSync(gDisplayListHead++);
gSPSegment(gDisplayListHead++, 0x0F,
(u32)Memmap_GetSegmentVaddr(temp_a3->unk_24[temp_a3->unk_28[tmp]]) & 0x1FFFFFFF);
gSPDisplayList(gDisplayListHead++, arg1->unk_00.unk_14);
func_80015684();
temp_a3->unk_28[tmp]++;
if (temp_a3->unk_28[tmp] == 8) {
temp_a3->unk_28[tmp] = -1;
}
}
}
return 0;
}
s32 func_84B0AF48(s32 arg0, unk_func_80011B94* arg1) {
UNUSED s32 pad[2];
s16 sp1E;
f32 temp_fv0;
if (arg0 == 5) {
temp_fv0 = D_8006F09C->unk_030.x;
sp1E = (4.5f - temp_fv0) * 255.0f * 0.25f;
if (temp_fv0 <= 4.0f) {
temp_fv0 += 0.5f;
func_8000E88C(&D_8006F09C->unk_030, temp_fv0, temp_fv0, temp_fv0);
gDPPipeSync(gDisplayListHead++);
gDPSetEnvColor(gDisplayListHead++, 0, 0, 255, sp1E);
gSPDisplayList(gDisplayListHead++, arg1->unk_00.unk_14);
func_80015684();
}
}
return 0;
}
void func_84B0B054(void) {
}
void func_84B0B05C(unk_D_84B25A90* arg0) {
s32 i;
if (arg0->unk_01 == 0) {
func_8004DF94(0x0110000D, 0, 0);
}
arg0->unk_01++;
if (arg0->unk_01 < 0x10) {
for (i = 0; i < 4; i++) {
arg0->unk_04[0 + i].unk_01E.y -= 0x800;
arg0->unk_04[8 + i].unk_01E.y -= 0x800;
}
for (i = 4; i < 8; i++) {
arg0->unk_04[0 + i].unk_01E.y += 0x800;
arg0->unk_04[8 + i].unk_01E.y += 0x800;
}
} else {
for (i = 0; i < 8; i++) {
func_8001BCF0(&arg0->unk_04[i]);
func_84B00404(&arg0->unk_04[8 + i]);
func_8001BC34(&arg0->unk_04[i], 0, 0, arg0->unk_08);
arg0->unk_04[i].unk_01E.y = 0;
arg0->unk_04[i].unk_000.unk_14 = arg0;
}
for (i = 0; i < 8; i++) {
arg0->unk_28[i] = -1;
}
arg0->unk_01 = 0;
arg0->unk_00 = 2;
}
}
void func_84B0B228(unk_D_84B25A90* arg0) {
s16 i;
s16 var_s3;
s16 var_a0;
s16 var_a1;
s16 var_a2;
if (osTvType == OS_TV_PAL) {
var_a0 = 5;
var_a1 = 0x11;
var_a2 = 0x22;
} else {
var_a0 = 6;
var_a1 = 0x14;
var_a2 = 0x28;
}
var_s3 = arg0->unk_01 / var_a0;
arg0->unk_01++;
if (D_800AE540.unk_0003 - 1 < var_s3) {
var_s3 = D_800AE540.unk_0003 - 1;
}
if (var_s3 < D_800AE540.unk_0003 - 1) {
if ((arg0->unk_01 % var_a0) == 0) {
func_8004DF94(0x0110000E, var_s3 + 1, 0);
func_8001BC34(&arg0->unk_04[8 + var_s3], 1, 0, arg0->unk_0C);
func_8000E88C(&arg0->unk_04[8 + var_s3].unk_024, D_84B16390[var_s3], D_84B163A0[var_s3], -289.0f);
arg0->unk_04[8 + var_s3].unk_000.unk_14 = arg0;
func_8001BC34(&arg0->unk_04[16 + var_s3], 0, 0, arg0->unk_10);
func_8000E88C(&arg0->unk_04[16 + var_s3].unk_024, D_84B16390[var_s3], D_84B163A0[var_s3] + 5, -289.0f);
func_8000E88C(&arg0->unk_04[16 + var_s3].unk_030, 2.5f, 2.5f, 2.5f);
arg0->unk_04[16 + var_s3].unk_000.unk_14 = arg0;
arg0->unk_28[var_s3] = 0;
}
} else if (var_s3 == D_800AE540.unk_0003 - 1) {
if (var_a1 == (arg0->unk_01 - (var_s3 * var_a0))) {
func_8004DF94(0x0110000F, 0, 0);
func_8001BC34(&arg0->unk_04[8 + var_s3], 1, 0, arg0->unk_0C);
func_8000E88C(&arg0->unk_04[8 + var_s3].unk_024, D_84B16390[var_s3], D_84B163A0[var_s3], -289.0f);
arg0->unk_04[8 + var_s3].unk_000.unk_14 = arg0;
func_8001BC34(&arg0->unk_04[16 + var_s3], 0, 0, arg0->unk_10);
func_8000E88C(&arg0->unk_04[16 + var_s3].unk_024, D_84B16390[var_s3], D_84B163A0[var_s3] + 5, -289.0f);
func_8000E88C(&arg0->unk_04[16 + var_s3].unk_030, 6.0f, 6.0f, 6.0f);
arg0->unk_04[16 + var_s3].unk_000.unk_14 = arg0;
arg0->unk_28[var_s3] = 0;
func_8001BC34(&arg0->unk_04[24], 0, 0, arg0->unk_14);
func_8000E88C(&arg0->unk_04[24].unk_024, D_84B16390[var_s3], D_84B163A0[var_s3] + 5, -289.0f);
arg0->unk_04[24].unk_000.unk_14 = arg0;
for (i = 0; i < D_800AE540.unk_0003 - 1; i++) {
arg0->unk_04[8 + i].unk_018 = 0;
}
} else {
if (var_a2 == (arg0->unk_01 - (var_s3 * var_a0))) {
for (i = 16; i < 25; i++) {
func_84B00404(&arg0->unk_04[i]);
}
arg0->unk_04[8 + var_s3].unk_018 = 0;
arg0->unk_01 = 0;
arg0->unk_00 = 3;
}
}
}
}
void func_84B0B6EC(unk_D_84B25A90* arg0, unk_D_86002F58_004_000* arg1, s16 arg2) {
u16 sp26;
f32 temp_fv0;
if (arg2 < D_800AE540.unk_0003) {
if (arg1->unk_000.unk_0C == NULL) {
func_8001BC34(arg1, 2, 0, arg0->unk_18);
}
sp26 = MathUtil_Random16();
temp_fv0 = (MathUtil_Random_ZeroOne() * 20.0f) + 15.0f;
arg1->unk_000.unk_14 = 0;
arg1->unk_024.x = D_84B16390[arg2] + (COSS(sp26) * temp_fv0);
arg1->unk_024.y = (D_84B163A0[arg2] + 5) + (SINS(sp26) * temp_fv0);
arg1->unk_024.z = -289.0f;
}
}
void func_84B0B7F4(unk_D_84B25A90* arg0) {
s32 i;
s32 temp_s0 = arg0->unk_01 % 4;
func_84B0B6EC(arg0, &arg0->unk_04[16 + arg0->unk_01], temp_s0);
func_84B0B6EC(arg0, &arg0->unk_04[28 + arg0->unk_01], 7 - temp_s0);
for (i = 16; i < 41; i++) {
if ((s32)arg0->unk_18 == (s32)arg0->unk_04[i].unk_000.unk_0C) {
s32 idx = arg0->unk_04[i].unk_000.unk_14;
func_8000E88C(&arg0->unk_04[i].unk_030, D_84B163B0[idx], D_84B163B0[idx], D_84B163B0[idx]);
arg0->unk_04[i].unk_000.unk_14 = (idx + 1) % 12;
}
}
arg0->unk_01 = (arg0->unk_01 + 1) % 12;
}
void func_84B0B984(unk_D_84B25A90* arg0) {
static s16 D_84B16A64[] = { 0x300, 0x150, -0x150, -0x300, -0x300, -0x150, 0x150, 0x300 };
static f32 D_84B16A74[] = { -3.0f, -2.0f, 2.0f, 3.0f, -3.0f, -2.0f, 2.0f, 3.0f };
s32 i;
arg0->unk_01++;
if (arg0->unk_01 < 0x10) {
for (i = 0; i < 4; i++) {
arg0->unk_04[0 + i].unk_01E.x += 0x300;
arg0->unk_04[8 + i].unk_01E.x += 0x300;
arg0->unk_04[4 + i].unk_01E.x -= 0x300;
arg0->unk_04[12 + i].unk_01E.x -= 0x300;
arg0->unk_04[0 + i].unk_024.y += 2.0f * arg0->unk_01 * 0.5f;
arg0->unk_04[8 + i].unk_024.y += 2.0f * arg0->unk_01 * 0.5f;
arg0->unk_04[4 + i].unk_024.y -= 2.0f * arg0->unk_01 * 0.5f;
arg0->unk_04[12 + i].unk_024.y -= 2.0f * arg0->unk_01 * 0.5f;
}
for (i = 0; i < 8; i++) {
arg0->unk_04[0 + i].unk_01E.z += D_84B16A64[i];
arg0->unk_04[8 + i].unk_01E.z += D_84B16A64[i];
arg0->unk_04[0 + i].unk_024.x += (arg0->unk_01 * D_84B16A74[i] * 0.5f);
arg0->unk_04[8 + i].unk_024.x += (arg0->unk_01 * D_84B16A74[i] * 0.5f);
}
} else {
arg0->unk_01 = 0;
arg0->unk_00 = 0;
}
}
void func_84B0BBEC(unk_D_84B25A90* arg0) {
switch (arg0->unk_00) {
case 1:
func_84B0B05C(arg0);
break;
case 2:
func_84B0B228(arg0);
break;
case 3:
func_84B0B7F4(arg0);
break;
case 4:
func_84B0B984(arg0);
break;
}
}
void func_84B0BC6C(unk_D_84B25A90* arg0, unk_D_86002F58_004_000* arg1) {
s32 i;
arg0->unk_04 = arg1;
arg0->unk_01 = 0;
arg0->unk_00 = 1;
for (i = 0; i < 8; i++) {
func_8001BC34(&arg0->unk_04[8 + i], 0, 0, arg0->unk_08);
arg0->unk_04[8 + i].unk_01E.y = -0x8000;
arg0->unk_04[8 + i].unk_000.unk_14 = arg0;
}
func_8000E88C(&arg0->unk_04[8].unk_024, -96.0f, 48.0f, -289.0f);
func_8000E88C(&arg0->unk_04[9].unk_024, -32.0f, 48.0f, -289.0f);
func_8000E88C(&arg0->unk_04[10].unk_024, 32.0f, 48.0f, -289.0f);
func_8000E88C(&arg0->unk_04[11].unk_024, 96.0f, 48.0f, -289.0f);
func_8000E88C(&arg0->unk_04[12].unk_024, -96.0f, -48.0f, -289.0f);
func_8000E88C(&arg0->unk_04[13].unk_024, -32.0f, -48.0f, -289.0f);
func_8000E88C(&arg0->unk_04[14].unk_024, 32.0f, -48.0f, -289.0f);
func_8000E88C(&arg0->unk_04[15].unk_024, 96.0f, -48.0f, -289.0f);
}
void func_84B0BDCC(unk_D_84B25A90* arg0) {
s32 i;
for (i = 16; i < 41; i++) {
func_84B00404(&arg0->unk_04[i]);
}
arg0->unk_01 = 0;
arg0->unk_00 = 4;
}
void func_84B0BE28(unk_D_84B25A90* arg0) {
MemoryBlock* temp_v0;
arg0->unk_00 = 0;
arg0->unk_01 = 0;
arg0->unk_20 = Memmap_GetSegmentVaddr(D_2021620);
arg0->unk_1C = Memmap_GetSegmentVaddr(D_2018000);
arg0->unk_24 = Memmap_GetSegmentVaddr(D_2023240);
temp_v0 = func_80002D10(main_pool_get_available(), 0);
arg0->unk_08 = process_geo_layout(temp_v0, D_84B16588);
arg0->unk_0C = process_geo_layout(temp_v0, D_84B166E8);
arg0->unk_10 = process_geo_layout(temp_v0, D_84B167E0);
arg0->unk_14 = process_geo_layout(temp_v0, D_84B16948);
arg0->unk_18 = process_geo_layout(temp_v0, D_84B16A38);
func_80002D60(temp_v0);
}

View File

@ -1,107 +1,639 @@
#include "global.h"
#include "fragment63.h"
#include "src/12D80.h"
#include "src/1C720.h"
#include "src/1CF30.h"
#include "src/20470.h"
#include "src/26820.h"
#include "src/49790.h"
#include "src/F420.h"
#include "src/math_util.h"
#include "src/memmap.h"
#include "src/memory.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0BF10.s")
static Vtx D_84B16AA0[] = {
VTX(-64, 32, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-64, -32, 0, 0, 2048, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-32, -32, 0, 1024, 2048, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, 32, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-32, 32, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, -32, 0, 1024, 2048, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(0, -32, 0, 2048, 2048, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, 32, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(0, 32, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, -32, 0, 2048, 2048, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(32, -32, 0, 3072, 2048, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, 32, 0, 3072, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(32, 32, 0, 3072, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, -32, 0, 3072, 2048, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(64, -32, 0, 4096, 2048, 0xFF, 0xFF, 0xFF, 0xFF), VTX(64, 32, 0, 4096, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B16BA0[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, COMBINED, 0, PRIM_LOD_FRAC, 0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B16AA0, 16, 0),
gsDPLoadTextureTile(0x0F000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 128, 0, 0, 0, 31, 63, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsDPLoadTextureTile(0x0F000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 128, 0, 32, 0, 63, 63, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
gsDPLoadTextureTile(0x0F000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 128, 0, 64, 0, 95, 63, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
gsDPLoadTextureTile(0x0F000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 128, 0, 96, 0, 127, 63, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
gsSPEndDisplayList(),
};
static u32 D_84B16CC8[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B16AA0, 0x05000000, 0x22050000,
0x00000000, 0x08000000, func_84B0BF10, D_84B16BA0, 0x06000000, 0x01000000,
};
static u32 D_84B16CFC[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B16AA0, 0x05000000, 0x22050000,
0x00000000, 0x08000000, func_84B0BFE4, D_84B16BA0, 0x06000000, 0x01000000,
};
static Vtx D_84B16D30[] = {
VTX(-16, 16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-16, -16, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(16, -16, 0, 1024, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(16, 16, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B16D70[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B16D30, 4, 0),
gsDPLoadTextureBlock_4b(0x0F000000, G_IM_FMT_I, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP,
5, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList(),
};
static u32 D_84B16DD8[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B16D30, 0x05000000, 0x22050000,
0x00000000, 0x08000000, func_84B0C094, D_84B16D70, 0x06000000, 0x01000000, 0x00000000,
};
static Vtx D_84B16E10[] = {
VTX(-16, 16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-16, -16, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(16, -16, 0, 1024, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(16, 16, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B16E50[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B16E10, 4, 0),
gsDPLoadTextureBlock_4b(D_3024800, G_IM_FMT_I, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 5,
5, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList(),
};
static u32 D_84B16EB8[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B16E10, 0x05000000, 0x22050000,
0x00000000, 0x08000000, func_84B0C3A4, D_84B16E50, 0x06000000, 0x01000000,
};
static Color_RGBA8 D_84B16EEC[] = { {
0xFF,
0x00,
0x00,
0xFF,
},
{
0xE6,
0x64,
0x19,
0xFF,
},
{
0xFF,
0xFF,
0x00,
0xFF,
},
{
0xFF,
0xFF,
0xFF,
0xFF,
},
{
0xFF,
0xFF,
0xFF,
0x80,
} };
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0BFE4.s")
s32 func_84B0BF10(s32 arg0, unk_func_80011B94* arg1) {
unk_D_84B25AC0* temp_a0;
u8* var_a0;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0C094.s")
if (arg0 == 5) {
temp_a0 = (unk_D_84B25AC0*)D_8006F09C->unk_000.unk_14;
if (temp_a0->unk_5A2 != 0) {
var_a0 = D_3018800;
} else {
var_a0 = D_301C800;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0C174.s")
gDPPipeSync(gDisplayListHead++);
gSPSegment(gDisplayListHead++, 0x0F, (u32)Memmap_GetSegmentVaddr(var_a0) & 0x1FFFFFFF);
gSPDisplayList(gDisplayListHead++, arg1->unk_00.unk_14);
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0C278.s")
func_80015684();
}
return 0;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0C3A4.s")
s32 func_84B0BFE4(s32 arg0, unk_func_80011B94* arg1) {
UNUSED s32 pad;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0C45C.s")
if (arg0 == 5) {
gDPPipeSync(gDisplayListHead++);
gSPSegment(gDisplayListHead++, 0x0F, (u32)Memmap_GetSegmentVaddr(D_3020800) & 0x1FFFFFFF);
gSPDisplayList(gDisplayListHead++, arg1->unk_00.unk_14);
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0C534.s")
func_80015684();
}
return 0;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0C5E4.s")
s32 func_84B0C094(s32 arg0, unk_func_80011B94* arg1) {
unk_D_84B25AC0_000* temp_a0;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0C6B4.s")
if (arg0 == 5) {
temp_a0 = (unk_D_84B25AC0_000*)D_8006F09C->unk_000.unk_14;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0C7D0.s")
gDPPipeSync(gDisplayListHead++);
gSPSegment(gDisplayListHead++, 0x0F, (u32)temp_a0->unk_0C & 0x1FFFFFFF);
gDPSetEnvColor(gDisplayListHead++, temp_a0->unk_08.r, temp_a0->unk_08.g, temp_a0->unk_08.b, 255);
gSPDisplayList(gDisplayListHead++, arg1->unk_00.unk_14);
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0CA34.s")
func_80015684();
}
return 0;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0CACC.s")
void func_84B0C174(unk_D_84B25AC0_000* arg0, unk_D_86002F34* arg1, s16 arg2, s16 arg3, s16 arg4) {
arg0->unk_04 = 0;
arg0->unk_06 = arg4;
arg0->unk_08.r = 0x50;
arg0->unk_08.g = 0x64;
func_8001BC34(arg0->unk_00, 0, 0, arg1);
func_8000E88C(&arg0->unk_00->unk_030, 2.0f, 2.0f, 2.0f);
arg0->unk_00->unk_000.unk_14 = arg0;
arg0->unk_00->unk_024.x = (COSS(arg4) * 52.0f) + arg2;
arg0->unk_00->unk_024.y = (SINS(arg4) * 26.0f) + arg3;
arg0->unk_00->unk_024.z = -289.0f;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0CBCC.s")
void func_84B0C278(unk_D_84B25AC0_000* arg0) {
s16 temp_v0;
unk_D_86002F58_004_000* temp_v1;
unk_D_86002F58_004_000* temp_v1_2;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0CC7C.s")
if (arg0->unk_04 < 0x10) {
arg0->unk_0C = Memmap_GetSegmentVaddr(((s32*)Memmap_GetSegmentVaddr(D_2023240))[(arg0->unk_04 / 2)]);
arg0->unk_08.b = ((arg0->unk_04 * -0x5A) / 16) + 0x82;
arg0->unk_00->unk_024.x += 2.0f * COSS(arg0->unk_06);
arg0->unk_00->unk_024.y += 2.0f * SINS(arg0->unk_06);
arg0->unk_04++;
} else if (arg0->unk_04 == 0x10) {
func_84B00404(arg0->unk_00);
arg0->unk_04++;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0CCFC.s")
s32 func_84B0C3A4(s32 arg0, unk_func_80011B94* arg1) {
unk_D_84B25AC0_0A0* temp_v1;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0CDEC.s")
if (arg0 == 5) {
temp_v1 = (unk_D_84B25AC0_0A0*)D_8006F09C->unk_000.unk_14;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D194.s")
gDPPipeSync(gDisplayListHead++);
gDPSetEnvColor(gDisplayListHead++, temp_v1->unk_0A.r, temp_v1->unk_0A.g, temp_v1->unk_0A.b, temp_v1->unk_0A.a);
gSPDisplayList(gDisplayListHead++, arg1->unk_00.unk_14);
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D31C.s")
func_80015684();
}
return 0;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D3E4.s")
void func_84B0C45C(unk_D_84B25AC0_0A0* arg0, unk_D_86002F34* arg1, s16 arg2, s16 arg3, s16 arg4) {
arg0->unk_06 = 0;
arg0->unk_04 = 0;
arg0->unk_08 = arg4;
func_8001BC34(arg0->unk_00, 2, 0, arg1);
arg0->unk_00->unk_000.unk_14 = arg0;
arg0->unk_00->unk_024.x = (COSS(arg4) * 60.0f) + arg2;
arg0->unk_00->unk_024.y = (SINS(arg4) * 30.0f) + arg3;
arg0->unk_00->unk_024.z = -289.0f;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D450.s")
void func_84B0C534(unk_D_84B25AC0_0A0* arg0, unk_D_84B25AC0_0A0* arg1) {
arg0->unk_06 = 0;
arg0->unk_04 = 1;
arg0->unk_0A = arg1->unk_0A;
func_8001BC34(arg0->unk_00, 1, 0, &arg1->unk_00->unk_000.unk_0C->unk_00);
arg0->unk_00->unk_000.unk_14 = arg0;
arg0->unk_00->unk_024 = arg1->unk_00->unk_024;
arg0->unk_00->unk_030 = arg1->unk_00->unk_030;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D4B4.s")
void func_84B0C5E4(unk_D_84B25AC0_0A0* arg0, unk_D_84B25AC0_0A0* arg1, s16 arg2) {
arg0->unk_06 = 0;
arg0->unk_04 = 2;
arg0->unk_08 = arg1->unk_08 + arg2;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D54C.s")
func_8000E840(&arg0->unk_0A, 0xFF, 0xFF, 0xFF, 0xFF);
func_8001BC34(arg0->unk_00, 1, 0, &arg1->unk_00->unk_000.unk_0C->unk_00);
arg0->unk_00->unk_000.unk_14 = arg0;
arg0->unk_00->unk_024 = arg1->unk_00->unk_024;
func_8000E88C(&arg0->unk_00->unk_030, 0.5f, 0.5f, 0.5f);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D718.s")
void func_84B0C6B4(unk_D_84B25AC0_0A0* arg0, unk_D_86002F34* arg1, Vec3f* arg2) {
arg0->unk_06 = 0;
arg0->unk_04 = 3;
func_8000E840(&arg0->unk_0A, 0xFF, 0xFF, 0xC8, 0xFF);
arg0->unk_0A.b = (MathUtil_Random16() % 200) + 0x32;
func_8001BC34(arg0->unk_00, 2, 0, arg1);
func_8000E88C(&arg0->unk_00->unk_030, 0.6f, 0.6f, 0.6f);
arg0->unk_00->unk_000.unk_14 = arg0;
arg0->unk_00->unk_024.x = ((MathUtil_Random_ZeroOne() - 0.5f) * 50.0f) + arg2->x;
arg0->unk_00->unk_024.y = ((MathUtil_Random_ZeroOne() - 0.5f) * 40.0f) + arg2->y;
arg0->unk_00->unk_024.z = arg2->z;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D7A8.s")
void func_84B0C7D0(unk_D_84B25AC0_0A0* arg0) {
f32 temp_fv0;
Color_RGBA8* color1;
Color_RGBA8* color2;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D870.s")
if (arg0->unk_06 < 0x10) {
temp_fv0 = ((arg0->unk_06 * 0.5f) / 12.0f) + 0.3f;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D878.s")
color1 = &D_84B16EEC[arg0->unk_06 / 4];
color2 = &D_84B16EEC[arg0->unk_06 / 4 + 1];
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D8F0.s")
arg0->unk_0A.r = (((color2->r - color1->r) * (arg0->unk_06 % 4)) / 4) + color1->r;
arg0->unk_0A.g = (((color2->g - color1->g) * (arg0->unk_06 % 4)) / 4) + color1->g;
arg0->unk_0A.b = (((color2->b - color1->b) * (arg0->unk_06 % 4)) / 4) + color1->b;
arg0->unk_0A.a = (((color2->a - color1->a) * (arg0->unk_06 % 4)) / 4) + color1->a;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D970.s")
arg0->unk_00->unk_024.x += 3.0f * COSS(arg0->unk_08);
arg0->unk_00->unk_024.y += (3.0f * SINS(arg0->unk_08)) - (arg0->unk_06 * 0.0625f);
func_8000E88C(&arg0->unk_00->unk_030, temp_fv0, temp_fv0, temp_fv0);
if (!(arg0->unk_06 & 3)) {
func_84B0C534(&arg0[arg0->unk_06 / 4 + 1], arg0);
}
arg0->unk_06++;
} else if (arg0->unk_06 == 0x10) {
func_84B0C5E4(&arg0[5], &arg0[0], -0x6500);
func_84B0C5E4(&arg0[6], &arg0[0], 0);
func_84B0C5E4(&arg0[7], &arg0[0], 0x6500);
func_84B00404(arg0->unk_00);
arg0->unk_06 = -1;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0D9D8.s")
void func_84B0CA34(unk_D_84B25AC0_0A0* arg0) {
arg0->unk_06++;
if ((arg0->unk_06 >= 8) && (arg0->unk_06 < 0x10)) {
func_8000E88C(&arg0->unk_00->unk_030, arg0->unk_00->unk_030.x * 0.8f, arg0->unk_00->unk_030.x * 0.8f,
arg0->unk_00->unk_030.x * 0.8f);
} else if (arg0->unk_06 == 0x10) {
func_84B00404(arg0->unk_00);
arg0->unk_06 = -1;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0DA90.s")
void func_84B0CACC(unk_D_84B25AC0_0A0* arg0) {
f32 temp_fv0;
f32 temp_fv1;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0DAA4.s")
if (arg0->unk_06 < 0x10) {
temp_fv0 = arg0->unk_00->unk_030.x * 0.9f;
temp_fv1 = (20.0f - arg0->unk_06) / 5.0f;
arg0->unk_00->unk_024.x += temp_fv1 * COSS(arg0->unk_08);
arg0->unk_00->unk_024.y += temp_fv1 * SINS(arg0->unk_08);
func_8000E88C(&arg0->unk_00->unk_030, temp_fv0, temp_fv0, temp_fv0);
arg0->unk_06++;
} else if (arg0->unk_06 == 0x10) {
func_84B00404(arg0->unk_00);
arg0->unk_06 = -1;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0DB30.s")
void func_84B0CBCC(unk_D_84B25AC0_0A0* arg0) {
if (arg0->unk_06 < 0x14) {
func_8000E88C(&arg0->unk_00->unk_030, arg0->unk_00->unk_030.x - 0.025f, arg0->unk_00->unk_030.x - 0.025f,
arg0->unk_00->unk_030.x - 0.025f);
arg0->unk_0A.a -= 5;
arg0->unk_00->unk_024.y -= 2.0f;
arg0->unk_06++;
} else if (arg0->unk_06 == 0x14) {
func_84B00404(arg0->unk_00);
arg0->unk_06 = -1;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0DD5C.s")
void func_84B0CC7C(unk_D_84B25AC0_0A0* arg0) {
switch (arg0->unk_04) {
case 0:
func_84B0C7D0(arg0);
break;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0DE04.s")
case 1:
func_84B0CA34(arg0);
break;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0DF70.s")
case 2:
func_84B0CACC(arg0);
break;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0E198.s")
case 3:
func_84B0CBCC(arg0);
break;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0E2D8.s")
void func_84B0CCFC(unk_D_84B25AC0* arg0) {
s32 i;
s32 j;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0E424.s")
arg0->unk_5A1++;
if (arg0->unk_5A1 < 0x25) {
if (arg0->unk_5A2 != 0) {
for (i = 0; i < 10; i++) {
for (j = 0; j < 8; j++) {
if (arg0->unk_0A0[i][j].unk_06 >= 0) {
func_84B0CC7C(&arg0->unk_0A0[i][j]);
}
}
}
} else {
for (i = 0; i < 10; i++) {
if (arg0->unk_000[i].unk_04 >= 0) {
func_84B0C278(&arg0->unk_000[i]);
}
}
}
} else {
arg0->unk_5A1 = 0;
arg0->unk_5A0 = 0;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0E50C.s")
void func_84B0CDEC(unk_D_84B25AC0* arg0) {
s16 i;
s16 var_s2;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0E718.s")
arg0->unk_5A1++;
if (arg0->unk_5A1 > 0) {
arg0->unk_5A8->unk_000.unk_01 |= 1;
arg0->unk_5A8->unk_024.z -= 8.0f;
if (arg0->unk_5A3 != 0) {
arg0->unk_5A8->unk_01E.z += 0x400;
arg0->unk_5A8->unk_024.x = (COSS(arg0->unk_5A8->unk_01E.z + 0x6000) * 70.71f) + 82.0f;
arg0->unk_5A8->unk_024.y = (SINS(arg0->unk_5A8->unk_01E.z + 0x6000) * 70.71f) + -2.0f;
} else {
arg0->unk_5A8->unk_01E.z -= 0x400;
arg0->unk_5A8->unk_024.x = (COSS(arg0->unk_5A8->unk_01E.z + 0x2000) * 70.71f) + -82.0f;
arg0->unk_5A8->unk_024.y = (SINS(arg0->unk_5A8->unk_01E.z + 0x2000) * 70.71f) + -98.0f;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0E948.s")
if (arg0->unk_5A1 == 0x10) {
if (arg0->unk_5A2 != 0) {
var_s2 = 0x2000;
for (i = 0; i < 5; i++, var_s2 += 0x3000) {
func_84B0C45C(&arg0->unk_0A0[i], arg0->unk_5B8, arg0->unk_5A8->unk_024.x, arg0->unk_5A8->unk_024.y,
var_s2);
func_84B0CC7C(&arg0->unk_0A0[i]);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0EC18.s")
var_s2 = 0x6000;
for (i = 5; i < 10; i++, var_s2 -= 0x3000) {
func_84B0C45C(&arg0->unk_0A0[i], arg0->unk_5B8, arg0->unk_5A8->unk_024.x, arg0->unk_5A8->unk_024.y,
var_s2);
func_84B0CC7C(&arg0->unk_0A0[i]);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0ECE8.s")
arg0->unk_5A1 = 0;
arg0->unk_5A0 = 1;
} else {
var_s2 = 0x3000;
for (i = 0; i < 5; i++, var_s2 += 0x2800) {
func_84B0C174(&arg0->unk_000[i], arg0->unk_5B4, arg0->unk_5A8->unk_024.x, arg0->unk_5A8->unk_024.y,
var_s2);
func_84B0C278(&arg0->unk_000[i]);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0EF14.s")
var_s2 = 0x5000;
for (i = 5; i < 10; i++, var_s2 -= 0x2800) {
func_84B0C174(&arg0->unk_000[i], arg0->unk_5B4, arg0->unk_5A8->unk_024.x, arg0->unk_5A8->unk_024.y,
var_s2);
func_84B0C278(&arg0->unk_000[i]);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0F464.s")
arg0->unk_5A1 = 0;
arg0->unk_5A0 = 1;
}
}
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0F6C4.s")
void func_84B0D194(unk_D_84B25AC0* arg0) {
s32 i;
s32 j;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0F888.s")
arg0->unk_5A1++;
if (arg0->unk_5A1 >= 4) {
arg0->unk_5A8->unk_024.y += arg0->unk_5A4;
arg0->unk_5A4 -= 0.5f;
arg0->unk_5A8->unk_024.x -= 20.0f;
arg0->unk_5A8->unk_01E.z += 0x400;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0F8BC.s")
if (arg0->unk_5A1 < 0xE) {
for (i = 0; i < 4; i++) {
func_84B0C6B4(&arg0->unk_0A0[arg0->unk_5A1 - 4][0 + i], arg0->unk_5B8, &arg0->unk_5A8->unk_024);
func_84B0C6B4(&arg0->unk_0A0[arg0->unk_5A1 - 4][4 + i], arg0->unk_5B8, &arg0->unk_5A8->unk_024);
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0F8E8.s")
for (j = 0; j < 10; j++) {
for (i = 0; i < 8; i++) {
if (arg0->unk_0A0[j][i].unk_06 >= 0) {
func_84B0CC7C(&arg0->unk_0A0[j][i]);
}
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0F950.s")
if (arg0->unk_5A1 == 0x22) {
func_84B00404(arg0->unk_5A8);
arg0->unk_5A0 = 0;
}
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0FACC.s")
void func_84B0D31C(unk_D_84B25AC0* arg0) {
arg0->unk_5A1++;
if (arg0->unk_5A1 >= 4) {
arg0->unk_5A8->unk_024.y += arg0->unk_5A4;
arg0->unk_5A4 -= 1.0f;
if (arg0->unk_5A2 != 0) {
arg0->unk_5A8->unk_024.x -= 10.0f;
arg0->unk_5A8->unk_01E.z += 0x400;
} else {
arg0->unk_5A8->unk_01E.z -= 0x400;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0FADC.s")
if (arg0->unk_5A1 == 0x20) {
func_84B00404(arg0->unk_5A8);
arg0->unk_5A0 = 0;
}
}
}
void func_84B0D3E4(unk_D_84B25AC0* arg0) {
if ((arg0->unk_5A1 < 0x14) && (arg0->unk_5A3 != 0) && (arg0->unk_5A1 < 7)) {
arg0->unk_5A8->unk_024.x += 40.0f;
}
arg0->unk_5A1++;
if (arg0->unk_5A1 == 0x2C) {
arg0->unk_5A1 = 0;
arg0->unk_5A0 = 0;
}
}
void func_84B0D450(unk_D_84B25AC0* arg0) {
s32 tmp;
if (arg0->unk_5A3 != 0) {
if (arg0->unk_5A1 >= 0) {
arg0->unk_5A8->unk_024.x += 40.0f;
}
tmp = arg0->unk_5A1;
} else {
tmp = arg0->unk_5A1;
}
arg0->unk_5A1++;
if (arg0->unk_5A1 == 0xB) {
arg0->unk_5A1 = 0;
arg0->unk_5A0 = 0;
}
}
void func_84B0D4B4(unk_D_84B25AC0* arg0) {
switch (arg0->unk_5A0) {
case 1:
func_84B0CCFC(arg0);
break;
case 2:
func_84B0CDEC(arg0);
break;
case 3:
func_84B0D194(arg0);
break;
case 4:
func_84B0D31C(arg0);
break;
case 5:
func_84B0D3E4(arg0);
break;
case 7:
func_84B0D450(arg0);
break;
}
}
void func_84B0D54C(unk_D_84B25AC0* arg0, unk_D_86002F58_004_000* arg1, unk_D_86002F58_004_000* arg2) {
s32 i;
s32 j;
arg0->unk_5A8 = arg1;
arg0->unk_5AC = arg2;
func_8001BC34(arg1, 1, 0, arg0->unk_5B0);
arg0->unk_5A8->unk_000.unk_14 = arg0;
if (arg0->unk_5A2 == -1) {
arg0->unk_5A1 = 0;
arg0->unk_5A0 = 5;
if (arg0->unk_5A3 != 0) {
func_8000E88C(&arg0->unk_5A8->unk_024, -280.0f, 0.0f, -289.0f);
} else {
func_8000E88C(&arg0->unk_5A8->unk_024, -372.0f, 0.0f, -289.0f);
}
return;
}
if (arg0->unk_5A2 != 0) {
arg0->unk_5A1 = 0;
} else {
arg0->unk_5A1 = -6;
}
arg0->unk_5A0 = 2;
arg0->unk_5A8->unk_000.unk_01 &= ~1;
if (arg0->unk_5A3 != 0) {
func_8000E88C(&arg0->unk_5A8->unk_024, 32.0f, 48.0f, -161.0f);
arg0->unk_5A8->unk_01E.z = -0x4000;
} else {
func_8000E88C(&arg0->unk_5A8->unk_024, -32.0f, -48.0f, -161.0f);
arg0->unk_5A8->unk_01E.z = 0x4000;
}
for (i = 0; i < 10; i++) {
arg0->unk_000[i].unk_00 = arg2++;
}
for (i = 0; i < 10; i++) {
for (j = 0; j < 8; j++) {
arg0->unk_0A0[i][j].unk_00 = arg2++;
arg0->unk_0A0[i][j].unk_06 = -1;
}
}
}
void func_84B0D718(unk_D_84B25AC0* arg0) {
arg0->unk_5A1 = 0;
if (arg0->unk_5A2 == -1) {
arg0->unk_5A0 = 7;
} else if (arg0->unk_5A3 != 0) {
if (arg0->unk_5A2 != 0) {
arg0->unk_5A4 = 10.0f;
arg0->unk_5A0 = 3;
} else {
arg0->unk_5A4 = -10.0f;
arg0->unk_5A0 = 4;
}
} else {
if (arg0->unk_5A2 != 0) {
arg0->unk_5A4 = 20.0f;
} else {
arg0->unk_5A4 = -10.0f;
}
arg0->unk_5A0 = 4;
}
}
void func_84B0D7A8(unk_D_84B25AC0* arg0, s8 arg1, s8 arg2) {
GraphNode* var_v0;
MemoryBlock* temp_v0;
arg0->unk_5A0 = 0;
arg0->unk_5A1 = 0;
arg0->unk_5A3 = arg1;
arg0->unk_5A2 = arg2;
temp_v0 = func_80002D10(main_pool_get_available(), 0);
if (arg2 == -1) {
arg0->unk_5B0 = process_geo_layout(temp_v0, D_84B16CFC);
} else {
arg0->unk_5B0 = process_geo_layout(temp_v0, D_84B16CC8);
}
arg0->unk_5B4 = process_geo_layout(temp_v0, D_84B16DD8);
arg0->unk_5B8 = process_geo_layout(temp_v0, D_84B16EB8);
func_80002D60(temp_v0);
}

View File

@ -0,0 +1,185 @@
#include "fragment63.h"
#include "src/12D80.h"
#include "src/1C720.h"
#include "src/1CF30.h"
#include "src/20470.h"
#include "src/26820.h"
#include "src/49790.h"
#include "src/F420.h"
#include "src/math_util.h"
#include "src/memmap.h"
#include "src/memory.h"
static Vtx D_84B16F00[] = {
VTX(-66, 14, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-66, -2, 0, 0, 512, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(50, -2, 0, 3712, 512, 0xFF, 0xFF, 0xFF, 0xFF), VTX(50, 14, 0, 3712, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(50, 14, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(50, -2, 0, 0, 512, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(66, -2, 0, 512, 512, 0xFF, 0xFF, 0xFF, 0xFF), VTX(66, 14, 0, 512, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-66, -2, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-66, -14, 0, 0, 384, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(50, -14, 0, 3712, 384, 0xFF, 0xFF, 0xFF, 0xFF), VTX(50, -2, 0, 3712, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(50, -2, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(50, -14, 0, 0, 384, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(66, -14, 0, 512, 384, 0xFF, 0xFF, 0xFF, 0xFF), VTX(66, -2, 0, 512, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-64, 10, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-64, -10, 0, 0, 640, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(0, -10, 0, 2048, 640, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, 10, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(0, 10, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, -10, 0, 2048, 640, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(64, -10, 0, 4096, 640, 0xFF, 0xFF, 0xFF, 0xFF), VTX(64, 10, 0, 4096, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B17080[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B16F00, 24, 0),
gsDPSetEnvColor(30, 115, 115, 255),
gsDPLoadTextureBlock(D_3028030, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 12, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsDPLoadTextureBlock(D_30280F0, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 12, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
gsDPLoadTextureBlock(D_3027EB0, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 12, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
gsDPLoadTextureBlock(D_3027F70, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 12, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
gsDPPipeSync(),
gsDPSetEnvColor(220, 220, 30, 255),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_8b, 128, 0x03028870),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 8, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadTile(G_TX_LOADTILE, 0, 0, 0x00FC, 0x004C),
gsDPPipeSync(),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOLOD),
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x00FC, 0x004C),
gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_8b, 128, 0x03028870),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 8, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadTile(G_TX_LOADTILE, 0x0100, 0, 0x01FC, 0x004C),
gsDPPipeSync(),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOLOD),
gsDPSetTileSize(G_TX_RENDERTILE, 0x0100, 0, 0x01FC, 0x004C),
gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0),
gsSPEndDisplayList(),
};
static u32 D_84B17240[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B16F00,
0x05000000, 0x22050000, D_84B17080, 0x06000000, 0x01000000,
};
static Vtx D_84B17268[] = {
VTX(-40, 16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-40, -4, 0, 0, 640, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(24, -4, 0, 2048, 640, 0xFF, 0xFF, 0xFF, 0xFF), VTX(24, 16, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(24, 16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(24, -4, 0, 0, 640, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(40, -4, 0, 512, 640, 0xFF, 0xFF, 0xFF, 0xFF), VTX(40, 16, 0, 512, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-40, -4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-40, -16, 0, 0, 384, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(24, -16, 0, 2048, 384, 0xFF, 0xFF, 0xFF, 0xFF), VTX(24, -4, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(24, -4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(24, -16, 0, 0, 384, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(40, -16, 0, 512, 384, 0xFF, 0xFF, 0xFF, 0xFF), VTX(40, -4, 0, 512, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-36, 12, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-36, -12, 0, 0, 768, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(36, -12, 0, 2304, 768, 0xFF, 0xFF, 0xFF, 0xFF), VTX(36, 12, 0, 2304, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx D_84B173A8[] = {
gsSPSetGeometryMode(G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(D_84B17268, 20, 0),
gsDPSetEnvColor(30, 115, 115, 255),
gsDPLoadTextureBlock(D_3028030, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 12, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsDPLoadTextureBlock(D_30280F0, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 12, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
gsDPLoadTextureBlock(D_3027EB0, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 12, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
gsDPLoadTextureBlock(D_3027F70, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 12, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
gsDPPipeSync(),
gsDPSetEnvColor(220, 220, 30, 255),
gsDPLoadTextureBlock(D_30281B0, G_IM_FMT_IA, G_IM_SIZ_8b, 72, 24, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD),
gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0),
gsSPEndDisplayList(),
};
static u32 D_84B17528[] = {
0x17000000, 0x00000000, 0x00000000, 0x00000000, D_84B17268,
0x05000000, 0x22050000, D_84B173A8, 0x06000000, 0x01000000,
};
void func_84B0D870(unk_D_84B26640_010* arg0) {
}
void func_84B0D878(unk_D_84B26640_010* arg0) {
arg0->unk_01++;
if (arg0->unk_01 == 8) {
arg0->unk_00 = 0;
}
func_8000E88C(&arg0->unk_04->unk_030, arg0->unk_01 * 0.125f, arg0->unk_01 * 0.125f, arg0->unk_01 * 0.125f);
}
void func_84B0D8F0(unk_D_84B26640_010* arg0) {
arg0->unk_01--;
if (arg0->unk_01 == 0) {
arg0->unk_00 = 0;
func_8001BCF0(arg0->unk_04);
} else {
func_8000E88C(&arg0->unk_04->unk_030, arg0->unk_01 * 0.125f, arg0->unk_01 * 0.125f, arg0->unk_01 * 0.125f);
}
}
void func_84B0D970(unk_D_84B26640_010* arg0) {
switch ((s8)arg0->unk_00) {
case 1:
func_84B0D870(arg0);
break;
case 2:
func_84B0D878(arg0);
break;
case 3:
func_84B0D8F0(arg0);
break;
}
}
void func_84B0D9D8(unk_D_84B26640_010* arg0, unk_D_86002F58_004_000* arg1) {
arg0->unk_04 = arg1;
arg0->unk_01 = 0;
arg0->unk_00 = 2;
func_8001BC34(arg1, 1, 0, arg0->unk_08);
arg0->unk_04->unk_000.unk_14 = arg0;
if (arg0->unk_02 == 0) {
func_8000E88C(&arg0->unk_04->unk_024, 32.0f, 26.0f, -288.0f);
} else {
func_8000E88C(&arg0->unk_04->unk_024, -96.0f, 80.0f, -288.0f);
}
func_8000E88C(&arg0->unk_04->unk_030, 0.1f, 0.1f, 0.1f);
}
void func_84B0DA90(unk_D_84B26640_010* arg0) {
arg0->unk_01 = 8;
arg0->unk_00 = 3;
}
void func_84B0DAA4(unk_D_84B26640_010* arg0, u8 arg1) {
MemoryBlock* sp2C;
arg0->unk_00 = 0;
arg0->unk_01 = 0;
arg0->unk_02 = arg1;
sp2C = func_80002D10(main_pool_get_available(), 0);
if (arg1 == 0) {
arg0->unk_08 = process_geo_layout(sp2C, D_84B17240);
} else {
arg0->unk_08 = process_geo_layout(sp2C, D_84B17528);
}
func_80002D60(sp2C);
}

View File

@ -0,0 +1,629 @@
#include "fragment63.h"
#include "src/12D80.h"
#include "src/1C720.h"
#include "src/1CF30.h"
#include "src/20470.h"
#include "src/26820.h"
#include "src/49790.h"
#include "src/F420.h"
#include "src/math_util.h"
#include "src/memmap.h"
#include "src/memory.h"
static unk_D_84B17550 D_84B17550[] = {
{
78,
84,
164,
72,
2,
8481,
0,
-1,
44,
},
{
78,
91,
164,
58,
2,
8481,
0,
-1,
44,
},
{
77,
122,
166,
92,
5,
8481,
0,
-1,
9362,
},
{
77,
142,
166,
52,
3,
8481,
0,
-1,
146,
},
{
77,
144,
166,
52,
3,
8481,
0,
-1,
146,
},
{
77,
149,
166,
38,
2,
8481,
0,
-1,
18,
},
{
60,
40,
200,
64,
1,
8481,
0,
-1,
2,
},
{
60,
40,
200,
64,
1,
8481,
0,
-1,
2,
},
{
68,
32,
184,
104,
1,
8481,
1,
-1,
2,
},
{
60,
38,
200,
164,
2,
26889,
0,
-1,
13,
},
};
void func_84B0DB30(unk_D_84B2665C* arg0, s16 arg1, s16 arg2) {
static s16 D_84B17604 = 0;
if (D_84B17604 < 6) {
arg1 = (arg1 + (D_84B17604 / 2));
} else {
arg1 = ((arg1 - (D_84B17604 / 2)) + 6);
}
gSPDisplayList(gDisplayListHead++, D_8006F518);
gDPLoadTextureBlock(gDisplayListHead++, D_10031D0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 22, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD);
func_8001C330(arg1, arg2 + (arg0->unk_04 * 0xE) + 1, 0x10, 0xB, 0, 0, 0x800, 0x800, 0);
gSPDisplayList(gDisplayListHead++, D_8006F630);
D_84B17604 = (D_84B17604 + 1) % 12;
}
void func_84B0DD5C(unk_D_84B2665C* arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4, s8* arg5) {
if (arg4 == 0) {
func_8001F324(0x64, 0x64, 0x64, 0xFF);
} else if (arg3 == arg0->unk_04) {
func_8001F324(0xFF, 0xFF, 0, 0xFF);
} else {
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
}
func_8001F1E8(arg1, arg2 + (arg3 * 0xE), arg5);
}
void func_84B0DE04(unk_D_84B2665C* arg0, unk_D_84B17550* arg1) {
func_84B0DB30(arg0, arg1->unk_00 + 0xC, arg1->unk_02 + 0x18);
func_8001F3F4();
func_8001EBE0(2, 0);
func_8001F1E8(arg1->unk_00 + 0x10, arg1->unk_02 + 6, func_84B0037C(0x29));
func_84B0DD5C(arg0, arg1->unk_00 + 0x22, arg1->unk_02 + 0x18, 0, 1, func_84B0037C(0x2A));
func_84B0DD5C(arg0, arg1->unk_00 + 0x22, arg1->unk_02 + 0x18, 1, 1, func_84B0037C(0x2B));
if (arg1->unk_06 == 0x48) {
func_8001EBE0(1, 0);
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
func_8001F1E8(arg1->unk_00 + 0x4A, arg1->unk_02 + 0x36, "%s%d", func_84B0037C(0x2C), D_800AE540.unk_11F3);
}
func_8001F444();
}
void func_84B0DF70(unk_D_84B2665C* arg0, unk_D_84B17550* arg1) {
s32 sp2C;
s32 sp28;
sp2C = D_800AE540.unk_11F3 > 0;
sp28 = !!(D_800AE540.unk_11F5 & 2);
sp28 = !sp28;
func_84B0DB30(arg0, arg1->unk_00 + 5, arg1->unk_02 + 6);
func_8001F3F4();
func_8001EBE0(2, 0);
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 0, sp2C, func_84B0037C(0x2D));
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 1, sp2C, func_84B0037C(0x2E));
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 2, sp28, func_84B0037C(0x2F));
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 3, 1, func_84B0037C(0x30));
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 4, 1, func_84B0037C(0x31));
func_8001EBE0(1, 0);
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
func_8001F1E8(arg1->unk_00 + 0x4A, arg1->unk_02 + 0x4C, "%s%d", func_84B0037C(0x2C), D_800AE540.unk_11F3);
func_8001F444();
}
void func_84B0E198(unk_D_84B2665C* arg0, unk_D_84B17550* arg1) {
s32 sp2C = !!(D_800AE540.unk_11F5 & 2);
sp2C = !sp2C;
func_84B0DB30(arg0, arg1->unk_00 + 5, arg1->unk_02 + 6);
func_8001F3F4();
func_8001EBE0(2, 0);
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 0, sp2C, func_84B0037C(0x2F));
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 1, 1, func_84B0037C(0x32));
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 2, 1, func_84B0037C(0x31));
func_8001F444();
}
void func_84B0E2D8(unk_D_84B2665C* arg0, unk_D_84B17550* arg1) {
s32 sp2C = D_800AE540.unk_1194[0].unk_1E < 0x63 && D_800AE540.unk_1194[1].unk_1E < 0x63;
func_84B0DB30(arg0, arg1->unk_00 + 5, arg1->unk_02 + 6);
func_8001F3F4();
func_8001EBE0(2, 0);
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 0, sp2C, func_84B0037C(0x33));
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 1, 1, func_84B0037C(0x34));
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 2, 1, func_84B0037C(0x31));
func_8001F444();
}
void func_84B0E424(unk_D_84B2665C* arg0, unk_D_84B17550* arg1) {
func_84B0DB30(arg0, arg1->unk_00 + 5, arg1->unk_02 + 6);
func_8001F3F4();
func_8001EBE0(2, 0);
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 0, 1, func_84B0037C(0x35));
func_84B0DD5C(arg0, arg1->unk_00 + 0x1A, arg1->unk_02 + 6, 1, 1, func_84B0037C(0x31));
func_8001F444();
}
void func_84B0E50C(unk_D_84B2665C* arg0, unk_D_84B17550* arg1) {
char* temp_v0;
func_8001F3F4();
func_8001F470();
func_8001EBE0(4, 0);
func_8001F36C(0x32, 0xFF, 0x64, 0xFF);
if ((D_800AE540.unk_0000 == 3) || (D_800AE540.unk_0000 == 6)) {
temp_v0 = func_84B0037C(D_800AE540.unk_0000 - 1);
func_8001F1E8((arg1->unk_00 - (func_8001F5B0(4, 0, temp_v0) / 2)) + 0x64, arg1->unk_02 + 6, temp_v0);
temp_v0 = func_84B0037C(D_800AE540.unk_0002 + 7);
func_8001F1E8((arg1->unk_00 - (func_8001F5B0(4, 0, temp_v0) / 2)) + 0x64, arg1->unk_02 + 0x18, temp_v0);
temp_v0 = func_84B0037C(D_800AE540.unk_0003 + 0xA);
func_8001F1E8((arg1->unk_00 - (func_8001F5B0(4, 0, temp_v0) / 2)) + 0x64, arg1->unk_02 + 0x2A, temp_v0);
} else {
temp_v0 = func_84B0037C(D_800AE540.unk_0000 - 1);
func_8001F1E8((arg1->unk_00 - (func_8001F5B0(4, 0, temp_v0) / 2)) + 0x64, arg1->unk_02 + 0xA, temp_v0);
temp_v0 = func_84B0037C(D_800AE540.unk_0003 + 0xA);
func_8001F1E8((arg1->unk_00 - (func_8001F5B0(4, 0, temp_v0) / 2)) + 0x64, arg1->unk_02 + 0x26, temp_v0);
}
func_8001F4C4();
func_8001F444();
}
void func_84B0E718(unk_D_84B2665C* arg0, unk_D_84B17550* arg1) {
s32 sp12C;
char sp2C[0x100];
func_8001F3F4();
func_8001F470();
func_8001EBE0(4, 0);
func_8001F36C(0x32, 0xFF, 0x64, 0xFF);
sprintf(sp2C, "%s %s", func_84B0037C(D_800AE540.unk_0002 + 0x13), func_84B0037C(0x36));
sp12C = func_8001F5B0(4, 0, sp2C);
func_8001F1E8((arg1->unk_00 - (sp12C / 2)) + 0x64, arg1->unk_02 + 0xA, sp2C);
if (D_800AE540.unk_0002 < 9) {
if (D_800AE540.unk_0002 == 8) {
sprintf(sp2C, "%s %d", func_84B0037C(0x1B), D_800AE540.unk_0003);
sp12C = func_8001F5B0(4, 0, sp2C);
func_8001F1E8((arg1->unk_00 - (sp12C / 2)) + 0x64, arg1->unk_02 + 0x26, sp2C);
} else if (D_800AE540.unk_0003 < 4) {
sprintf(&sp2C, "%s %d", func_84B0037C(0x37), D_800AE540.unk_0003);
sp12C = func_8001F5B0(4, 0, sp2C);
func_8001F1E8((arg1->unk_00 - (sp12C / 2)) + 0x64, arg1->unk_02 + 0x26, sp2C);
} else {
sp12C = func_8001F5B0(4, 0, func_84B0037C(D_800AE540.unk_0002 + 0x1D));
func_8001F1E8((arg1->unk_00 - (sp12C / 2)) + 0x64, arg1->unk_02 + 0x26,
func_84B0037C(D_800AE540.unk_0002 + 0x1D));
}
}
func_8001F4C4();
func_8001F444();
}
void func_84B0E948(s16 arg0, s16 arg1, unk_D_800AE540_1194* arg2) {
static u8* D_84B17608[] = { D_3025950, D_30260A0, D_30267F0, D_3026F40 };
gSPDisplayList(gDisplayListHead++, D_8006F518);
if (arg2->unk_01 == 1) {
if (arg2->unk_08[0]->unk_000 & 2) {
func_8001C6AC(arg0 + 0x1A, arg1 + 3, 0x24, 0x1A, D_3025200, 0x24, 0);
if (0) {}
} else {
func_8001C6AC(arg0 + 0x1A, arg1 + 3, 0x24, 0x1A, D_84B17608[arg2->unk_08[0]->unk_001], 0x24, 0);
}
gSPDisplayList(gDisplayListHead++, D_8006F630);
return;
}
if (arg2->unk_08[0]->unk_001 < arg2->unk_08[1]->unk_001) {
func_8001C6AC(arg0 + 6, arg1 + 3, 0x24, 0x1A, D_84B17608[arg2->unk_08[0]->unk_001], 0x24, 0);
func_8001C6AC(arg0 + 0x30, arg1 + 3, 0x24, 0x1A, D_84B17608[arg2->unk_08[1]->unk_001], 0x24, 0);
} else {
func_8001C6AC(arg0 + 6, arg1 + 3, 0x24, 0x1A, D_84B17608[arg2->unk_08[1]->unk_001], 0x24, 0);
func_8001C6AC(arg0 + 0x30, arg1 + 3, 0x24, 0x1A, D_84B17608[arg2->unk_08[0]->unk_001], 0x24, 0);
}
gSPDisplayList(gDisplayListHead++, D_8006F630);
func_8001F3F4();
func_8001EBE0(4, 0);
func_8001F2E4(arg0 + 0x24, arg1 + 8, 0x26);
func_8001F444();
}
void func_84B0EC18(unk_D_800AE540_1194* arg0) {
static s16 D_84B17618 = 0;
if (arg0->unk_1C == 1) {
func_8001F324(0xFF, (SINS((s32)(SINS(D_84B17618) * 16384.0f)) * 100.0f) + 155.0f, 0x37, 0xFF);
D_84B17618 += 0x400;
} else {
func_8001F324(0xFF, 0x37, 0x37, 0xFF);
}
}
void func_84B0ECE8(unk_D_84B2665C* arg0, unk_D_84B17550* arg1) {
func_84B0053C(arg1->unk_00 + 8, arg1->unk_02 + 0x14, 0xA8, 0x20, 0, 0, 0, 0xFF);
func_84B0053C(arg1->unk_00 + 8, arg1->unk_02 + 0x44, 0xA8, 0x20, 0, 0, 0, 0xFF);
func_84B0E948(arg1->unk_00 + 8, arg1->unk_02 + 0x14, D_800AE540.unk_1194);
func_84B0E948(arg1->unk_00 + 8, arg1->unk_02 + 0x44, &D_800AE540.unk_1194[1]);
func_8001F3F4();
func_8001F470();
func_8001EBE0(4, 0);
func_8001F36C(0x32, 0xFF, 0x64, 0xFF);
func_8001F1E8(arg1->unk_00 + 0x40, arg1->unk_02 + 2, func_84B0037C(0x38));
func_8001F4C4();
func_8001EBE0(0x10, 0);
func_84B0EC18(&D_800AE540.unk_1194[0]);
func_8001F1E8(arg1->unk_00 + 0x5C, arg1->unk_02 + 0x18, "%2d", D_800AE540.unk_1194[0].unk_1E);
func_84B0EC18(&D_800AE540.unk_1194[1]);
func_8001F1E8(arg1->unk_00 + 0x5C, arg1->unk_02 + 0x48, "%2d", D_800AE540.unk_1194[1].unk_1E);
func_8001EBE0(4, 0);
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
func_8001F1E8(arg1->unk_00 + 0x82, arg1->unk_02 + 0x1F, func_84B0037C(0x39));
func_8001F1E8(arg1->unk_00 + 0x82, arg1->unk_02 + 0x4F, func_84B0037C(0x39));
func_8001F444();
}
void func_84B0EF14(unk_D_84B2665C* arg0, unk_D_84B17550* arg1) {
unk_func_800281D4 sp50;
UNUSED s32 pad;
s32 sp48;
s32 temp_v0;
func_80028320(&sp50, NULL);
func_84B0053C(arg1->unk_00 + 0x10, arg1->unk_02 + 0x14, 0xA8, 0x3C, 0, 0, 0, 0xFF);
func_84B0053C(arg1->unk_00 + 0x10, arg1->unk_02 + 0x60, 0xA8, 0x22, 0, 0, 0, 0xFF);
func_84B0DB30(arg0, arg1->unk_00 + 0x14, arg1->unk_02 + 0x64);
func_8001F3F4();
func_8001EBE0(2, 0);
func_8001F1E8(arg1->unk_00 + 0x10, arg1->unk_02 + 6, func_84B0037C(0x3A));
func_8001F1E8(arg1->unk_00 + 0x10, arg1->unk_02 + 0x52, func_84B0037C(0x3B));
func_84B0DD5C(arg0, arg1->unk_00 + 0x2A, arg1->unk_02 + 0x64, 0, 1, func_84B0037C(0x3C));
func_84B0DD5C(arg0, arg1->unk_00 + 0x2A, arg1->unk_02 + 0x64, 1, 1, func_84B0037C(0x3D));
func_8001F324(0xFF, 0x64, 0x64, 0xFF);
if (sp50.unk_00 == 7) {
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x17, func_84B0037C(sp50.unk_00 - 1));
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x26, func_84B0037C(sp50.unk_01 + 0x13));
if (sp50.unk_01 < 8) {
if (sp50.unk_02 < 4) {
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x35, "%s %d", func_84B0037C(0x37), sp50.unk_02);
} else {
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x35, func_84B0037C(0x3E));
}
} else {
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x35, "%s %d", func_84B0037C(0x1B), sp50.unk_02);
}
} else if ((sp50.unk_00 == 3) || (sp50.unk_00 == 6)) {
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x17, func_84B0037C(sp50.unk_00 - 1));
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x26, func_84B0037C(sp50.unk_01 + 7));
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x35, func_84B0037C(sp50.unk_02 + 0xA));
} else {
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x17, func_84B0037C(sp50.unk_00 - 1));
func_8001F1E8(arg1->unk_00 + 0x1E, arg1->unk_02 + 0x26, func_84B0037C(sp50.unk_02 + 0xA));
}
if (sp50.unk_00 != 7) {
func_8001EBE0(1, 0);
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
func_8001F1E8(arg1->unk_00 + 0x64, arg1->unk_02 + 0x43, "%s %d", func_84B0037C(0x2C), sp50.unk_04);
}
if (arg0->unk_04 == 0) {
sp48 = (arg1->unk_04 - func_8001F5B0(1, 0, func_84B0037C(0x3F))) / 2;
func_8001EBE0(1, 0);
func_8001F324(0xFF, 0xFF, 0, 0xFF);
func_8001F3B4(0xC);
func_8001F1E8(arg1->unk_00 + sp48, arg1->unk_02 + 0x86, func_84B0037C(0x3F));
}
func_8001F444();
if (sp50.unk_03 == 1) {
temp_v0 = func_8001F5B0(1, 0, func_84B0037C(sp50.unk_00 - 1));
gSPDisplayList(gDisplayListHead++, D_8006F518);
func_8001C6AC(arg1->unk_00 + temp_v0 + 0x20, arg1->unk_02 + 0x15, 0x10, 0x10, D_3027690, 0x10, 0);
gSPDisplayList(gDisplayListHead++, D_8006F630);
}
}
void func_84B0F464(unk_D_84B2665C* arg0) {
unk_D_84B17550* temp_s0;
s16 temp_a1;
s16 var_a3;
if ((arg0->unk_00 != 0) && (arg0->unk_02 > 0)) {
temp_s0 = &D_84B17550[arg0->unk_01 - 1];
if (arg0->unk_02 < 4) {
var_a3 = (temp_s0->unk_06 * arg0->unk_02) / 4;
if (var_a3 < 0x10) {
var_a3 = 0x10;
}
temp_a1 = temp_s0->unk_02 + ((temp_s0->unk_06 - var_a3) / 2);
if (temp_s0->unk_0C == 0) {
func_80020460(temp_s0->unk_00, temp_a1, temp_s0->unk_04, var_a3, temp_s0->unk_0A);
} else {
func_84B0053C(temp_s0->unk_00, temp_a1, temp_s0->unk_04, var_a3, 0x1E, 0x1E, 0x82, 0xFF);
}
} else {
if (temp_s0->unk_0C == 0) {
func_80020460(temp_s0->unk_00, temp_s0->unk_02, temp_s0->unk_04, temp_s0->unk_06, temp_s0->unk_0A);
} else {
func_84B0053C(temp_s0->unk_00, temp_s0->unk_02, temp_s0->unk_04, temp_s0->unk_06, 0x1E, 0x1E, 0x82,
0xFF);
}
switch (arg0->unk_01) {
case 1:
func_84B0DE04(arg0, temp_s0);
break;
case 2:
func_84B0DE04(arg0, temp_s0);
break;
case 3:
func_84B0DF70(arg0, temp_s0);
break;
case 4:
func_84B0E198(arg0, temp_s0);
break;
case 5:
func_84B0E2D8(arg0, temp_s0);
break;
case 6:
func_84B0E424(arg0, temp_s0);
break;
case 7:
func_84B0E50C(arg0, temp_s0);
break;
case 8:
func_84B0E718(arg0, temp_s0);
break;
case 9:
func_84B0ECE8(arg0, temp_s0);
break;
case 10:
func_84B0EF14(arg0, temp_s0);
break;
}
}
}
}
void func_84B0F6C4(unk_D_84B2665C* arg0) {
unk_D_84B17550* sp24;
s16 sp22;
s32 tmp;
sp24 = &D_84B17550[arg0->unk_01 - 1];
sp22 = sp24->unk_08 - 1;
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_A)) {
tmp = sp24->unk_10 >> (arg0->unk_04 * 3);
switch (tmp & 7) {
case 1:
func_80048B90(3);
break;
case 2:
func_80048B90(2);
break;
case 3:
func_80048B90(0x1C);
break;
case 4:
func_80048B90(0x20);
break;
case 5:
func_80048B90(0x1D);
break;
case 6:
func_80048B90(0x21);
break;
}
arg0->unk_00 = 2;
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_DUP)) {
func_80048B90(1);
do {
arg0->unk_04--;
if (arg0->unk_04 < 0) {
arg0->unk_04 = sp22;
}
} while (!(sp24->unk_0E & (1 << arg0->unk_04)));
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_DDOWN)) {
func_80048B90(1);
do {
arg0->unk_04++;
if (sp22 < arg0->unk_04) {
arg0->unk_04 = 0;
}
} while (!(sp24->unk_0E & (1 << arg0->unk_04)));
}
}
void func_84B0F888(unk_D_84B2665C* arg0) {
arg0->unk_02++;
if (arg0->unk_02 >= 5) {
arg0->unk_02 = 4;
arg0->unk_00 = 3;
}
}
void func_84B0F8BC(unk_D_84B2665C* arg0) {
arg0->unk_02--;
if (arg0->unk_02 < 0) {
arg0->unk_02 = 0;
arg0->unk_00 = 4;
}
}
void func_84B0F8E8(unk_D_84B2665C* arg0) {
switch (arg0->unk_00) {
case 1:
func_84B0F888(arg0);
break;
case 2:
func_84B0F8BC(arg0);
break;
case 3:
func_84B0F6C4(arg0);
break;
}
}
void func_84B0F950(unk_D_84B2665C* arg0, s16 arg1) {
unk_D_84B17550* ptr = &D_84B17550[arg1 - 1];
arg0->unk_01 = arg1;
arg0->unk_02 = 0;
arg0->unk_04 = 0;
arg0->unk_00 = 1;
ptr->unk_0E = -1;
func_80048B90(4);
if (arg1 - 1 == 2) {
if (D_800AE540.unk_11F3 == 0) {
ptr->unk_0E &= ~3;
}
if (D_800AE540.unk_11F5 & 2) {
ptr->unk_0E &= ~4;
}
} else if (arg1 - 1 == 3) {
if (D_800AE540.unk_11F5 & 2) {
ptr->unk_0E &= ~1;
}
} else if ((arg1 - 1 == 4) &&
((D_800AE540.unk_1194[0].unk_1E >= 0x63) || (D_800AE540.unk_1194[1].unk_1E >= 0x63))) {
ptr->unk_0E &= ~1;
}
while (!(ptr->unk_0E & (1 << arg0->unk_04))) {
arg0->unk_04++;
}
}
void func_84B0FACC(unk_D_84B2665C* arg0) {
arg0->unk_00 = 0;
arg0->unk_01 = 0;
arg0->unk_02 = 0;
}
s32 func_84B0FADC(unk_D_84B2665C* arg0) {
if (arg0->unk_00 == 4) {
arg0->unk_00 = 0;
return arg0->unk_04;
}
return -1;
}

File diff suppressed because it is too large Load Diff

View File

@ -2238,11 +2238,33 @@
- [0x397B10, c, fragments/63/fragment63_397B10]
- [0x39AC50, c, fragments/63/fragment63_39AC50]
- [0x39BFB0, c, fragments/63/fragment63_39BFB0]
- [0x39ED60, c, fragments/63/fragment63_39ED60]
- [0x3A0010, c, fragments/63/fragment63_3A0010]
- [0x3A3C10, data, fragments/63/fragment63_data]
- [0x3AD980, rodata, fragments/63/fragment63_rodata]
- [0x3A1970, c, fragments/63/fragment63_3A1970]
- [0x3A1C30, c, fragments/63/fragment63_3A1C30]
- [0x3A3BF0, c, fragments/63/fragment63_data]
- [0x3A3C10, .data, fragments/63/fragment63_394120]
- [0x3A3D40, .data, fragments/63/fragment63_397B10]
- [0x3A5D20, .data, fragments/63/fragment63_39AC50]
- [0x3A8D10, .data, fragments/63/fragment63_39BFB0]
- [0x3AA490, .data, fragments/63/fragment63_39ED60]
- [0x3AABA0, .data, fragments/63/fragment63_3A0010]
- [0x3AB000, .data, fragments/63/fragment63_3A1970]
- [0x3AB650, .data, fragments/63/fragment63_3A1C30]
- [0x3AB720, .data, fragments/63/fragment63_data]
- [0x3AD860, .rodata, fragments/63/fragment63_394120]
- [0x3AD8B0, .rodata, fragments/63/fragment63_3974E0]
- [0x3AD8C0, .rodata, fragments/63/fragment63_397B10]
- [0x3AD8F0, .rodata, fragments/63/fragment63_39AC50]
- [0x3AD900, .rodata, fragments/63/fragment63_39BFB0]
- [0x3AD920, .rodata, fragments/63/fragment63_39ED60]
- [0x3AD930, .rodata, fragments/63/fragment63_3A0010]
- [0x3AD970, .rodata, fragments/63/fragment63_3A1970]
- [0x3AD980, .rodata, fragments/63/fragment63_3A1C30]
- {vram: 0x84B19910, type: bss, name: fragments/63/fragment63_bss}
- {vram: 0x84B19910, type: .bss, name: fragments/63/fragment63_394120}
- name: fragment63_relocs
type: code